From fe6e5562844f91c4d4f48875fdd066b7955b940f Mon Sep 17 00:00:00 2001 From: gryf Date: Wed, 27 Jan 2021 22:32:33 +0100 Subject: [PATCH] Introduced additional fonts for symbols and emoji. Using some of the nerd fonts[1] urxvt can display glyphs, which are available there, but still, there is a several other glyphs, which are defined in different font files, than Deja Vu, which I'm using as a main scalable font. Moreover, I really like to use Fixed Misc[2] from Xorg, since it's crisp and readable. In this commit, urxvt will have a list of fonts passed to, instead of only one, to have greater number of glyphs to display. [1] https://www.nerdfonts.com/ [2] https://gitlab.freedesktop.org/xorg/font/font-misc-misc --- urxvt.sh | 95 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 78 insertions(+), 17 deletions(-) diff --git a/urxvt.sh b/urxvt.sh index d049d9a..c5abb07 100755 --- a/urxvt.sh +++ b/urxvt.sh @@ -1,23 +1,33 @@ #!/usr/bin/env bash # urxvt.sh - simplify urxvt commandline execution. -# v1.1 +# v1.2 SIZE=14 +FIXED_SIZE=16 ICON_PATH="${HOME}/GNUstep/Library/Icons" ICON="tilda.png" -FONT_NAME="DejaVuSansMono Nerd Font Mono" -FONT_NORMAL="style=Book" +FONT_BOOK="style=Book" +FONT_REGULAR="style=Regular" +FONT_MEDIUM="style=Medium" FONT_BOLD="style=Bold" -FONT_ITALIC="style=Oblique" -FONT_BOLDITALIC="style=Bold Oblique" -FIXED_NORMAL="-Misc-Fixed-Medium-R-Normal-*-15-*-*-*-C-*-ISO10646-1" -FIXED_ITALIC="-Misc-Fixed-Medium-O-Normal-*-15-*-*-*-C-*-ISO10646-1" -FIXED_BOLD="-Misc-Fixed-Bold-R-Normal-*-15-*-*-*-C-*-ISO10646-1" + +# FIXED_NORMAL="-Misc-Fixed-Medium-R-Normal-*-15-*-*-*-C-*-ISO10646-1" +# FIXED_ITALIC="-Misc-Fixed-Medium-O-Normal-*-15-*-*-*-C-*-ISO10646-1" +# FIXED_BOLD="-Misc-Fixed-Bold-R-Normal-*-15-*-*-*-C-*-ISO10646-1" + +# Regular fonts. +DEJAVU="xft:DejaVuSansMono Nerd Font Mono:_FONT_STYLE_:pixelsize=_SIZE_" +FIXED="xft:Misc Fixed:_FONT_STYLE_:pixelsize=_FIXEDSIZE_:antialias=false" +# Fonts, that provides with symbols, icons, emoji (besides those in Nerd Font) +SYMBOLA="xft:Symbola:_FONT_STYLE_:pixelsize=_SIZE_" +UNIFONT="xft:Unifont Upper:_FONT_STYLE_:pixelsize=_SIZE_" + XFT=true EXEC='' PERLEXT="url-select,keyboard-select,font-size,color-themes" +# TODO: do we need italic/bolditalic? function rxvt { urxvtc "$@" @@ -27,6 +37,10 @@ function rxvt { fi } +function join_by { + local IFS="$1"; shift; echo "$*"; +} + function usage { echo "Usage: $(basename "${0}") [options]" echo @@ -36,7 +50,8 @@ function usage { echo " default tilda.png" echo " -t activate tabbedalt extension" echo " -s size set font size, default 14" - echo " -f use fixed misc font instead of DejaVu" + echo " -f use fixed misc font as a main font instead of" + echo " DejaVu" echo " -e pass exec to the urxvt" echo " -n no perl extensions" echo " -h this help" @@ -56,6 +71,7 @@ while getopts ":i:hfs:te:n" option; do ;; s) SIZE=${OPTARG} + FIXED_SIZE=${OPTARG} ;; f) XFT=false @@ -73,18 +89,63 @@ while getopts ":i:hfs:te:n" option; do esac done -args=("-pe" "${PERLEXT}" "-icon" "${ICON_PATH}/${ICON}") if ${XFT}; then - args+=("-fn" "xft:${FONT_NAME}:${FONT_NORMAL}:pixelsize=${SIZE}" - "-fb" "xft:${FONT_NAME}:${FONT_BOLD}:pixelsize=${SIZE}" - "-fbi" "xft:${FONT_NAME}:${FONT_BOLDITALIC}:pixelsize=${SIZE}" - "-fi" "xft:${FONT_NAME}:${FONT_ITALIC}:pixelsize=${SIZE}") + FONTS="${DEJAVU/_FONT_STYLE_/style=Book}" + FONTS="${FONTS/_SIZE_/$SIZE}" + FONTS="${FONTS},${SYMBOLA/_FONT_STYLE_/style=Regular}" + FONTS="${FONTS/_SIZE_/$SIZE}" + FONTS="${FONTS},${UNIFONT/_FONT_STYLE_/style=Medium}" + FONTS="${FONTS/_SIZE_/$SIZE},${FIXED/_FONT_STYLE_/style=Regular}" + FONTS="${FONTS/_FIXEDSIZE_/$FIXED_SIZE}" + + FONTSB="${DEJAVU/_FONT_STYLE_/style=Bold}" + FONTSB="${FONTSB/_SIZE_/$SIZE}" + FONTSB="${FONTSB},${SYMBOLA/_FONT_STYLE_/style=Bold}" + FONTSB="${FONTSB/_SIZE_/$SIZE}" + FONTSB="${FONTSB},${UNIFONT/_FONT_STYLE_/style=Bold}" + FONTSB="${FONTSB/_SIZE_/$SIZE},${FIXED/_FONT_STYLE_/style=Bold}" + FONTSB="${FONTSB/_FIXEDSIZE_/$FIXED_SIZE}" else - args+=("-fn" "${FIXED_NORMAL}" - "-fb" "${FIXED_BOLD}" - "-fi" "${FIXED_ITALIC}") + FONTS="${FIXED/_FONT_STYLE_/style=Regular}" + FONTS="${FONTS/_FIXEDSIZE_/$FIXED_SIZE}" + FONTS="${FONTS},${DEJAVU/_FONT_STYLE_/style=Book}" + FONTS="${FONTS/_SIZE_/$SIZE}" + FONTS="${FONTS},${SYMBOLA/_FONT_STYLE_/style=Regular}" + FONTS="${FONTS/_SIZE_/$SIZE}" + FONTS="${FONTS},${UNIFONT/_FONT_STYLE_/style=Medium}" + FONTS="${FONTS/_SIZE_/$SIZE}" + + FONTSB="${FIXED/_FONT_STYLE_/style=Bold}" + FONTSB="${FONTSB/_FIXEDSIZE_/$FIXED_SIZE}" + FONTSB="${FONTSB},${DEJAVU/_FONT_STYLE_/style=Bold}" + FONTSB="${FONTSB/_SIZE_/$SIZE}" + FONTSB="${FONTSB},${SYMBOLA/_FONT_STYLE_/style=Bold}" + FONTSB="${FONTSB/_SIZE_/$SIZE}" + FONTSB="${FONTSB},${UNIFONT/_FONT_STYLE_/style=Bold}" + FONTSB="${FONTSB/_SIZE_/$SIZE}" fi +# DEJAVU="xft:DejaVuSansMono Nerd Font Mono:${FONT_BOOK}:${SIZE},"` + # `"xft:Symbola:${FONT_REGULAR}:${SIZE},"` + # `"xft:Unifont Upper:${FONT_MEDIUM}:${SIZE},"` + # `"xft:Misc Fixed:${FONT_REGULAR}:${FIXED_SIZE}:antialias=false" + +# DEJAVU_BOLD="xft:DejaVuSansMono Nerd Font Mono:${FONT_BOLD}:${SIZE},"` + # `"xft:Symbola:${FONT_BOLD}:${SIZE},"` + # `"xft:Unifont Upper:${FONT_BOLD}:${SIZE},"` + # `"xft:Misc Fixed:${FONT_BOLD}:${FIXED_SIZE}:antialias=false" + +# FIXED="xft:Misc Fixed:${FONT_REGULAR}:${FIXED_SIZE}:antialias=false,"` + # `"xft:DejaVuSansMono Nerd Font Mono:${FONT_BOOK}:${SIZE},"` + # `"xft:Symbola:${FONT_REGULAR}:${SIZE},"` + # `"xft:Unifont Upper:${FONT_MEDIUM}:${SIZE}" + +# FIXED_BOLD="xft:Misc Fixed:${FONT_BOLD}:${FIXED_SIZE}:antialias=false,"` + # `"xft:DejaVuSansMono Nerd Font Mono:${FONT_BOLD}:${SIZE},"` + +args=("-pe" "${PERLEXT}" "-icon" "${ICON_PATH}/${ICON}") +args+=("-fn" "${FONTS}" "-fb" "${FONTSB}" ) + if [ -n "${EXEC}" ]; then args+=("-e" "${EXEC}") fi