X-Git-Url: https://git.madduck.net/etc/xsession.git/blobdiff_plain/f4d2eb9133ba668130669df725540b8314159491..99cb4ddbf70afb196ad36f16ea3d3243bb7f66d9:/.xsession.d/01-xkb?ds=sidebyside diff --git a/.xsession.d/01-xkb b/.xsession.d/01-xkb index 1569982..1427ef9 100644 --- a/.xsession.d/01-xkb +++ b/.xsession.d/01-xkb @@ -1,41 +1,12 @@ # load the keyboard definitions -LAYOUT=us -OPTS=(madduck:group2_intl madduck:caps_mod4) +XKBDIR="$HOME/.xkb" +#XKBMAPFILE="$XKBDIR/keymap/${(%):-%M}" +XKBMAPFILE="$XKBDIR/keymap/$(hostname --fqdn)" +[ -r "$XKBMAPFILE" ] || XKBMAPFILE="${XKBMAPFILE%/*}/default" -is_thinkpad() { - case "${(%):-%m}" in - lapse) return 0;; - *) return 1;; - esac -} +xkbcomp -w3 -I"$XKBDIR" "$XKBMAPFILE" "${DISPLAY%%.*}" -load_keymap() { - local xkbdir; xkbdir=$HOME/.xkb - local model; model="$1"; shift - local layout; layout="$1"; shift - - local args; args="-I -I$xkbdir -model $model -layout $layout -option" - args="$args -option ${(j: -option :)@}" - - info "running setxkbmap with args: $args" - local tmpfile; tmpfile="$(tempfile -p kbmap)" - trap "rm -f $tmpfile" EXIT - eval setxkbmap $args -print >| "$tmpfile" - info keymap setting follows: - cat "$tmpfile" >&2 - xkbcomp -I$HOME/.xkb "$tmpfile" ${DISPLAY%%.*} -} - -if is_thinkpad; then - info "loading keymap for thinkpad…" - load_keymap thinkpad us ${(z)OPTS} -else - info "loading pc104 keymap…" - load_keymap pc104 us ${(z)OPTS} -fi - -unset OPTS -unset LAYOUT +unset XKBDIR XKBMAPFILE # vim:ft=zsh