1
0
mirror of https://github.com/gryf/urxvt-wrapper.git synced 2025-12-17 11:30:21 +01:00
Files
urxvt-wrapper/urxvt.sh

142 lines
4.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# urxvt.sh - simplify urxvt commandline execution.
SIZE=14
FIXED_SIZE=16
ICON_PATH="${HOME}/GNUstep/Library/Icons"
ICON="tilda.png"
FONT_BOOK="style=Book"
FONT_REGULAR="style=Regular"
FONT_MEDIUM="style=Medium"
FONT_BOLD="style=Bold"
# 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_"
DEJAVUSANS="xft:DejaVu Sans:style=_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 "$@"
if [ $? -eq 2 ]; then
urxvtd -q -o -f
urxvtc "$@"
fi
}
function join_by {
local IFS="$1"; shift; echo "$*";
}
function usage {
echo "Usage: $(basename "${0}") [options]"
echo
echo Options:
echo
echo " -i icon select icon file from ${ICON_PATH},"
echo " default tilda.png"
echo " -t activate tabbedalt extension"
echo " -s size set font size, default 14"
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"
}
while getopts ":i:hfs:te:n" option; do
case $option in
h)
usage
exit 0
;;
t)
PERLEXT="tabbedalt,${PERLEXT}"
;;
i)
ICON=${OPTARG}
;;
s)
SIZE=${OPTARG}
FIXED_SIZE=${OPTARG}
;;
f)
XFT=false
;;
e)
EXEC="${OPTARG}"
;;
n)
PERLEXT=''
;;
*)
echo "Bad option"
exit 1
;;
esac
done
if ${XFT}; then
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},${DEJAVUSANS/_FONT_STYLE_/style=Book}"
FONTS="${FONTS/_SIZE_/$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},${DEJAVUSANS/_FONT_STYLE_/style=Bold}"
FONTSB="${FONTSB/_SIZE_/$SIZE}"
else
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}"
FONTS="${FONTS},${DEJAVUSANS/_FONT_STYLE_/style=Book}"
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}"
FONTSB="${FONTSB},${DEJAVUSANS/_FONT_STYLE_/style=Bold}"
FONTSB="${FONTSB/_SIZE_/$SIZE}"
fi
args=("-pe" "${PERLEXT}" "-icon" "${ICON_PATH}/${ICON}")
args+=("-fn" "${FONTS}" "-fb" "${FONTSB}" )
if [ -n "${EXEC}" ]; then
args+=("-e" "${EXEC}")
fi
rxvt "${args[@]}"