summaryrefslogtreecommitdiff
path: root/home/config/i3/keybindings.nix
diff options
context:
space:
mode:
Diffstat (limited to 'home/config/i3/keybindings.nix')
-rw-r--r--home/config/i3/keybindings.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/home/config/i3/keybindings.nix b/home/config/i3/keybindings.nix
new file mode 100644
index 0000000..b35f666
--- /dev/null
+++ b/home/config/i3/keybindings.nix
@@ -0,0 +1,49 @@
+{ config, lib, pkgs, ... }:
+
+let
+ backgroundImage = config.home.wallpaper;
+ lockscreen = pkgs.personal.lockscreen.override { inherit backgroundImage; };
+in {
+ xsession.windowManager.i3.config = rec {
+ modifier = "Mod4";
+
+ keybindings = lib.mkOptionDefault (let
+ brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
+ brightnessctlKbd = "${brightnessctl} --device dell:kbd_backlight";
+ pactl = "${pkgs.pulseaudio}/bin/pactl";
+ rofi = "${pkgs.rofi}/bin/rofi";
+ in {
+ "${modifier}+Shift+Return" = "exec firefox";
+ "${modifier}+Control+Return" = "exec $EDITOR";
+ "${modifier}+Shift+e" = "exec i3-msg exit";
+ "XF86MonBrightnessUp" = "exec ${brightnessctl} set 5%+";
+ "XF86MonBrightnessDown" = "exec ${brightnessctl} set 5%-";
+ "XF86AudioRaiseVolume" =
+ "exec ${pactl} set-sink-volume @DEFAULT_SINK@ +5%";
+ "XF86AudioLowerVolume" =
+ "exec ${pactl} set-sink-volume @DEFAULT_SINK@ -5%";
+ "XF86AudioMute" = "exec ${pactl} set-sink-mute @DEFAULT_SINK@ toggle";
+ "Shift+XF86AudioRaiseVolume" =
+ "exec ${pactl} set-source-volume @DEFAULT_SOURCE@ +5%";
+ "Shift+XF86AudioLowerVolume" =
+ "exec ${pactl} set-source-volume @DEFAULT_SOURCE@ -5%";
+ "XF86AudioMicMute" =
+ "exec ${pactl} set-source-mute @DEFAULT_SOURCE@ toggle";
+ "XF86KbdBrightnessUp" = ''
+ exec ${brightnessctlKbd} set \
+ $(( $(${brightnessctlKbd} max) - $(${brightnessctlKbd} get) ))
+ '';
+ "Print" = "exec xfce4-screenshooter";
+ } // (if backgroundImage != null then {
+ "${modifier}+l" = "exec ${lockscreen}/bin/lockscreen.sh";
+ } else
+ { }) // (if config.programs.alacritty.enable then {
+ "${modifier}+Return" = "exec ${pkgs.alacritty}/bin/alacritty";
+ } else
+ { }) // (if config.programs.rofi.enable then {
+ "${modifier}+d" = ''exec "${rofi} -modi drun,run,window -show drun"'';
+ "${modifier}+Shift+d" = "exec ${rofi} -show window";
+ } else
+ { }));
+ };
+}