nix-dotfiles/custom/keyboard-switch/default.nix

35 lines
955 B
Nix

{ writeShellScriptBin
, lib
, xorg
, libnotify
, coreutils
, keyboard_name ? "AT Translated Set 2 keyboard"
}:
writeShellScriptBin "keyboard-switch" ''
config_folder=''${XDG_DATA_HOME:-~/.local/share}
fconfig="$config_folder/keyboard-switch.state"
PATH=$PATH:"${lib.makeBinPath [ coreutils xorg.xinput libnotify ]}"
if [ ! -f $fconfig ]; then
echo "Creating config file"
mkdir -p $config_folder
echo "enabled" > $fconfig
var="enabled"
else
read -r var< $fconfig
echo "keyboard is : ${keyboard_name}"
fi
if [ "$var" = "disabled" ]; then
notify-send "Enabling keyboard..." \ "ON - Keyboard connected !";
echo "enable keyboard..."
xinput enable "${keyboard_name}"
echo "enabled" > $fconfig
elif [ "$var" = "enabled" ]; then
notify-send "Disabling Keyboard" \ "OFF - Keyboard disconnected";
echo "disable keyboard"
xinput disable "${keyboard_name}"
echo 'disabled' > $fconfig
fi
''