dotfiles/X/.config/xresources/xinitrc
Marty Oehme 3d0446de05
sxhkd: Change chain mode exiting
Changed the way to exit sxhkd chain modes. Instead of using `esc` to get
out of them, now pressing the mode key chain again will also exit out of
the mode (e.g. `alt + m` to get into `media` mode, then `alt + m` once
more to exit it).

This is done since using escape will interfere with many normal-use
scenarios while in a chain-mode, especially if those modes are intended
to be used over somewhat longer periods of time (somewhat like vim-modes
or emacs layers). The key to exit modes has now been moved to `copyright`,
so in the rather improbable case that your keyboard contains a
`copyright` key, be careful of accidentally hitting it when in an sxhkd
chain mode.

Fixed passing arguments to the sxhkd-piped script. It will pass along
any commandline arguments passed now (even `-s`, though then the script
will cease to do anything).

Improved version output of sxhkd-chain-labels a little, invoking
`sxhkd-chain-labels -v` will now show the correct configuration file and
FIFO pipe being used, as well as whether they exist on the file system.
Fixed the versioning of the script to display the correct version.
2021-07-10 18:03:50 +02:00

75 lines
2.6 KiB
Bash

#!/bin/sh
userresources=$XDG_CONFIG_HOME/xresources/Xresources
usermodmap=$XDG_CONFIG_HOME/xresources/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
if [ -d /etc/X11/xinit/xinitrc.d ]; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh; do
# shellcheck disable=1090
[ -x "$f" ] && . "$f"
done
unset f
fi
# unclutter is a program to hide your mouse cursor when it is not moved
type unclutter >/dev/null 2>&1 && unclutter &
# picom is the maintained version of desktop compositor compton
type picom >/dev/null 2>&1 && picom &
# if sxhkd - the key-binding daemon is installed, start it up
# set it to start up a custom fifo-creating version
# and set the chain-mode exiting key to a non existing one (default would be escape)
type sxhkd >/dev/null 2>&1 && sxhkd-piped -a "copyright" &
# if nextcloud-client exists, start it up
type nextcloud >/dev/null 2>&1 && nextcloud --background &
# load nm-applet, to allow easy vpn setting/switching from x interface
# TODO this should over time be replaced with a custom polybar interface
type nm-applet >/dev/null 2>&1 && nm-applet &
# additional config options for Touchpad devices ONLY
if [ "$(journalctl --dmesg -o short-monotonic --no-hostname --no-pager | grep -c "Touchpad")" -gt 0 ]; then
# enable touch tapping for XPS13 touchpad - for different devices get the touchpad name with xinput list-prop <TAB>
xinput set-prop "DLL075B:01 06CB:76AF Touchpad" "libinput Tapping Enabled" 1
# sets default to EURkey layout, with possibility to switch to german
# sets german layout to be default for the only pc I have with a german keyboard
# allows switching layouts with alt+space
setxkbmap -layout eu,de
else
setxkbmap -layout de,eu
fi
# Remaps Capslock key to control.
# (only works for x environment - I haven't needed it for non-x yet)
setxkbmap -option ctrl:nocaps
setxkbmap -option grp:alt_shift_toggle
# 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
# set a timeout of 500ms, if pressed longer it will ignore esc
type xcape >/dev/null 2>&1 && xcape -e 'Control_L=Escape' -t 500
type i3 >/dev/null 2>&1 && exec i3