summaryrefslogtreecommitdiff
path: root/modules/home-manager/personal/gui/x/i3/keybindings.nix
diff options
context:
space:
mode:
authorQuentin Aristote <quentin@aristote.fr>2023-02-22 22:39:56 +0100
committerQuentin Aristote <quentin@aristote.fr>2023-02-28 17:47:49 +0100
commit70d60e5ee6d1092f765807b8483c9c16d2afa678 (patch)
treeedeb7a91de348d6fc5dd0e43b9ca7bef794b322c /modules/home-manager/personal/gui/x/i3/keybindings.nix
parentbbb2f5e7cefb970b3e4994ee51bb2c3a18a073c2 (diff)
add home-manager modules
Diffstat (limited to 'modules/home-manager/personal/gui/x/i3/keybindings.nix')
-rw-r--r--modules/home-manager/personal/gui/x/i3/keybindings.nix47
1 files changed, 47 insertions, 0 deletions
diff --git a/modules/home-manager/personal/gui/x/i3/keybindings.nix b/modules/home-manager/personal/gui/x/i3/keybindings.nix
new file mode 100644
index 0000000..3781867
--- /dev/null
+++ b/modules/home-manager/personal/gui/x/i3/keybindings.nix
@@ -0,0 +1,47 @@
+{ config, lib, pkgs, ... }:
+
+let
+ brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
+ brightnessctlKbd = "${brightnessctl} --device dell:kbd_backlight";
+ volumectl = "${pkgs.pulseaudio}/bin/pactl";
+ screenshot = "${pkgs.shutter}/bin/shutter";
+
+ modifier = "Mod4";
+in {
+ xsession.windowManager.i3.config = {
+ inherit modifier;
+
+ keybindings = lib.mkOptionDefault {
+ # launching apps
+ "${modifier}+Control+Return" = ''exec "$EDITOR"'';
+ "${modifier}+Shift+Return" = ''exec "$BROWSER"'';
+ "${modifier}+d" = lib.mkIf config.programs.rofi.enable
+ ''exec "rofi -modi drun,filebrowser,run,window -show drun"'';
+
+ # exiting
+ "${modifier}+Shift+e" = "exec i3-msg exit";
+ "${modifier}+l" =
+ "exec ${config.personal.home.lockscreen}/bin/lockscreen.sh";
+
+ # media keys
+ "XF86MonBrightnessUp" = "exec ${brightnessctl} set 5%+";
+ "XF86MonBrightnessDown" = "exec ${brightnessctl} set 5%-";
+ "XF86AudioRaiseVolume" =
+ "exec ${volumectl} set-sink-volume @DEFAULT_SINK@ +5%";
+ "XF86AudioLowerVolume" =
+ "exec ${volumectl} set-sink-volume @DEFAULT_SINK@ -5%";
+ "XF86AudioMute" = "exec ${volumectl} set-sink-mute @DEFAULT_SINK@ toggle";
+ "Shift+XF86AudioRaiseVolume" =
+ "exec ${volumectl} set-source-volume @DEFAULT_SOURCE@ +5%";
+ "Shift+XF86AudioLowerVolume" =
+ "exec ${volumectl} set-source-volume @DEFAULT_SOURCE@ -5%";
+ "XF86AudioMicMute" =
+ "exec ${volumectl} set-source-mute @DEFAULT_SOURCE@ toggle";
+ "XF86KbdBrightnessUp" = ''
+ exec ${brightnessctlKbd} set \
+ $(( $(${brightnessctlKbd} max) - $(${brightnessctlKbd} get) ))
+ '';
+ "Print" = "exec ${screenshot}";
+ };
+ };
+}