{ pkgs, config, lib, ... }: let vars = import ./variables.nix {inherit ...; }; in { packages = with pkgs; [ feh # Wallpaper ]; programs = { i3 = { enable = true; config = { modifier = "Mod4"; keybindings = lib.mkOptionDefault { "${mod}+Enter" = "exec ${pkgs.alacritty}/bin/alacritty"; # Lanuch alacritty as a terminal "${mod}+m" = "exec ${pkgs.dmenu}/bin/dmenu"; # Launch dmenu (app launcher) "${mod}+q" = "kill"; # Close an app (kill the process) "${mod}+Alt+l" = "exec sh -c '${pkgs.lock-screen}/bin/lock-screen' ${wallpaper}"; # === FOCUS === # # Vim bindings "${mod}+h" = "focus left"; "${mod}+j" = "focus down"; "${mod}+k" = "focus up"; "${mod}+l" = "focus right"; # Arrow keys "${mod}+Left" = "focus left"; "${mod}+Down" = "focus down"; "${mod}+Up" = "focus up"; "${mod}+Right" = "focus right"; # === MOVE === # # Vim bindings "${mod}+Shift+h" = "move left"; "${mod}+Shift+j" = "move down"; "${mod}+Shift+k" = "move up"; "${mod}+Shift+l" = "move right"; # Arrow keys "${mod}+Shift+Left" = "focus left"; "${mod}+Shift+Down" = "focus down"; "${mod}+Shift+Up" = "focus up"; "${mod}+Shift+Right" = "focus right"; }; }; extraPackages = with pkgs; [ dmenu # App launcher i3-lock # Lock screen imagemagick # Handle wallpaper resizing for i3-lock polybar # Status bar alacritty # Terminal Emulator ]; } } }