X-Git-Url: https://git.madduck.net/etc/xsession.git/blobdiff_plain/f4d2eb9133ba668130669df725540b8314159491..f433a87905bb289b15f19244722cbb0e104c6fdf:/.xsession.d/01-xkb diff --git a/.xsession.d/01-xkb b/.xsession.d/01-xkb index 1569982..740395f 100644 --- a/.xsession.d/01-xkb +++ b/.xsession.d/01-xkb @@ -1,41 +1,14 @@ # 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 -} +info "loading keymap from $XKBMAPFILE" -load_keymap() { - local xkbdir; xkbdir=$HOME/.xkb - local model; model="$1"; shift - local layout; layout="$1"; shift +xkbcomp -I"$XKBDIR" "$XKBMAPFILE" "${DISPLAY%%.*}" - 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