From 7cd692a86be2d6c8a0e1f50a59fbf95c70de1053 Mon Sep 17 00:00:00 2001 From: Filippo Berto Date: Wed, 10 May 2023 14:22:34 +0200 Subject: [PATCH] Keyboard-switch script --- custom/default.nix | 1 + custom/keyboard-switch/default.nix | 35 ++++++++++++++++++++++++++++++ flake.nix | 1 + odin/hm.nix | 2 +- 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 custom/keyboard-switch/default.nix diff --git a/custom/default.nix b/custom/default.nix index 768d8cf..58c8235 100644 --- a/custom/default.nix +++ b/custom/default.nix @@ -8,6 +8,7 @@ let sddm-sugar-dark = pkgs.callPackage ./sddm-sugar-dark { }; update-background = pkgs.callPackage ./update-background { }; vital-synth = pkgs.callPackage ./vital-synth { }; + keyboard-switch = pkgs.callPackage ./keyboard-switch { }; }; in self diff --git a/custom/keyboard-switch/default.nix b/custom/keyboard-switch/default.nix new file mode 100644 index 0000000..5b4c4cf --- /dev/null +++ b/custom/keyboard-switch/default.nix @@ -0,0 +1,35 @@ +{ 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 +'' + + diff --git a/flake.nix b/flake.nix index bbab2c2..dbf68f2 100644 --- a/flake.nix +++ b/flake.nix @@ -40,6 +40,7 @@ update-background = self.callPackage ./custom/update-background { backgrounds_directory = "$HOME/Immagini/Sfondi/1080+/1440+"; }; lockscreen = self.callPackage ./custom/lockscreen { palette = self.rice.colorPalette; font = self.rice.font.normal; }; sddm-theme-clairvoyance = self.callPackage ./custom/sddm-theme-clairvoyance { wallpaper = ./wallpapers/background.jpg; }; + keyboard-switch = self.callPackage ./custom/keyboard-switch { }; sddm-sugar-dark = self.callPackage ./custom/sddm-sugar-dark { }; google-chrome = self.google-chrome.override { commandLineArgs = [ "--password-store=gnome" "--force-dark-mode" ]; }; }) diff --git a/odin/hm.nix b/odin/hm.nix index 68ceeb9..75267bc 100644 --- a/odin/hm.nix +++ b/odin/hm.nix @@ -20,7 +20,7 @@ # slack # wineFull arandr authy bitwarden cava discord dmenu droidcam easyeffects evince - gallery-dl gucharmap handbrake httpie inkscape krita meld openvpn p7zip + gallery-dl gucharmap handbrake httpie inkscape keyboard-switch krita meld openvpn p7zip pavucontrol pentablet-driver postman procps pulseaudio retroarchFull shotwell skypeforlinux spotify tdesktop teams thunderbird transmission-gtk virt-manager virt-viewer wireguard-tools xournalpp zoom-us;