From 39ca1b4d5c801af001a01bd18b1115ee6f3f668b Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Wed, 27 Feb 2019 10:02:00 +0100 Subject: [PATCH] Move Capslock Remapping to xinitrc Prevents a new instance of xcape being started with every single shell session (i.e. a lot of sessions with tmux, urxvt, etc.). Instead initializes xcape key replacement once when starting x --- .config/zsh/5-caps-to-control | 11 --------- .xinitrc | 45 +++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 11 deletions(-) delete mode 100644 .config/zsh/5-caps-to-control create mode 100644 .xinitrc diff --git a/.config/zsh/5-caps-to-control b/.config/zsh/5-caps-to-control deleted file mode 100644 index e4d5d6d..0000000 --- a/.config/zsh/5-caps-to-control +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -# Remaps Capslock key to control. -# (only works for x environment - I haven't needed it for non-x yet) -setxkbmap -option ctrl:nocaps - -# Makes Capslock behave as escape - when ONLY capslock is pressed and released -# this only works when we already substitute a ctrl for caps with the lines above, -# otherwise control itself will act as escape. -# Needs xcape package installed. https://github.com/alols/xcape -xcape -e 'Control_L=Escape' diff --git a/.xinitrc b/.xinitrc new file mode 100644 index 0000000..92af545 --- /dev/null +++ b/.xinitrc @@ -0,0 +1,45 @@ +#!/bin/sh + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +sysresources=/etc/X11/xinit/.Xresources +sysmodmap=/etc/X11/xinit/.Xmodmap + +# merge in defaults and keymaps + +if [ -f $sysresources ]; then + xrdb -merge $sysresources +fi + +if [ -f $sysmodmap ]; then + xmodmap $sysmodmap +fi + +if [ -f "$userresources" ]; then + xrdb -merge "$userresources" +fi + +if [ -f "$usermodmap" ]; then + xmodmap "$usermodmap" +fi + +# start some nice programs + +if [ -d /etc/X11/xinit/xinitrc.d ] ; then + for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do + [ -x "$f" ] && . "$f" + done + unset f +fi + +# Remaps Capslock key to control. +# (only works for x environment - I haven't needed it for non-x yet) +setxkbmap -option ctrl:nocaps + +# Makes Capslock behave as escape - when ONLY capslock is pressed and released +# this only works when we already substitute a ctrl for caps with the lines above, +# otherwise control itself will act as escape. +# Needs xcape package installed. https://github.com/alols/xcape +type xcape >/dev/null 2>&1 && xcape -e 'Control_L=Escape' + +type i3 >/dev/null 2>&1 && exec i3