35 lines
944 B
Nix
35 lines
944 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..." \ "Keyboard connected !";
|
|
echo "enable keyboard..."
|
|
xinput enable "${keyboard_name}"
|
|
echo "enabled" > $fconfig
|
|
elif [ "$var" = "enabled" ]; then
|
|
notify-send "Disabling Keyboard" \ "Keyboard disconnected";
|
|
echo "disable keyboard"
|
|
xinput disable "${keyboard_name}"
|
|
echo 'disabled' > $fconfig
|
|
fi
|
|
''
|
|
|
|
|