diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-07-17 16:29:54 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-07-17 16:29:54 +0200 |
| commit | e67e01d538c2caefeba8f117149e74bd6ff14889 (patch) | |
| tree | 732f4432cd740f081cff4424f374445310a2fad2 | |
| parent | c510a3b0b194d51bc2e7fe291f8e3f1fffa83e12 (diff) | |
| download | nix-infra-e67e01d538c2caefeba8f117149e74bd6ff14889.tar.gz nix-infra-e67e01d538c2caefeba8f117149e74bd6ff14889.tar.bz2 nix-infra-e67e01d538c2caefeba8f117149e74bd6ff14889.zip | |
snapshot: Do 17. Jul 16:29:54 CEST 2025
| -rwxr-xr-x | pkgs/choose-sway-keyboard/choose-kbd.sh | 20 | ||||
| -rw-r--r-- | pkgs/choose-sway-keyboard/default.nix | 26 | ||||
| -rw-r--r-- | pkgs/default.nix | 1 | ||||
| -rw-r--r-- | srv/hadante/configuration.nix | 1 |
4 files changed, 48 insertions, 0 deletions
diff --git a/pkgs/choose-sway-keyboard/choose-kbd.sh b/pkgs/choose-sway-keyboard/choose-kbd.sh new file mode 100755 index 0000000..3b3d251 --- /dev/null +++ b/pkgs/choose-sway-keyboard/choose-kbd.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +declare -a t_label t_layout t_variant +variant() { + t_label+=("$1") + t_layout+=("$2") + t_variant+=("$3") +} +variant Deutsch de "" +variant QWERTY us "" +variant Colemak us "colemak" +choice=$(for idx in "${!t_label[@]}" ; do + echo "${t_label[$idx]} (${t_layout[$idx]}:${t_variant[$idx]})" +done | fuzzel -d --index) +echo Choosing ${t_label[$choice]} +choose() { + swaymsg 'input "type:keyboard" xkb_layout "'"${t_layout[$choice]}"'"; input "type:keyboard" xkb_variant "'"${t_variant[$choice]}"'"' +} +# Execute the layout change twice since sometimes it needs to be layout -> variant and sometimes it needs to be variant -> layout +choose +choose
\ No newline at end of file diff --git a/pkgs/choose-sway-keyboard/default.nix b/pkgs/choose-sway-keyboard/default.nix new file mode 100644 index 0000000..9a82058 --- /dev/null +++ b/pkgs/choose-sway-keyboard/default.nix @@ -0,0 +1,26 @@ +{ + symlinkJoin, + slurp, + sway, + makeWrapper, + jq, + fuzzel, + coreutils, + pkgs, +}: +let + script-name = "choose-sway-keyboard"; + script = (pkgs.writeScriptBin script-name (builtins.readFile ./choose-kbd)).overrideAttrs (old: { + buildCommand = "${old.buildCommand}\n patchShebangs $out"; + }); +in +symlinkJoin { + name = script-name; + paths = [ + script + sway + fuzzel + ]; + buildInputs = [ makeWrapper ]; + postBuild = "wrapProgram $out/bin/${script-name} --prefix PATH : $out/bin"; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index aa1aecb..fbf1e54 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,4 +1,5 @@ final: prev: { swaykill = final.callPackage ./swaykill { }; swayprop = final.callPackage ./swayprop { }; + choose-sway-keyboard = final.callPackage ./choose-sway-keyboard { }; } diff --git a/srv/hadante/configuration.nix b/srv/hadante/configuration.nix index d8685c4..075f4b4 100644 --- a/srv/hadante/configuration.nix +++ b/srv/hadante/configuration.nix @@ -351,6 +351,7 @@ in foot ente-auth + choose-sway-keyboard ] ); system.stateVersion = "25.05"; |
