/** A base configuration template for i3 * * This set of configuration values is meant to work on _all_ * systems. No device specifics are included. This set must be * merged with device specific options before being applied */ { config, pkgs, ... } @ args: let cfg = config.libkookie.ui.i3; xtraPkgs = pkgs // (import ./tools args); in rec { # This is not configurable by design modifier = "Mod4"; inherit (cfg) fonts; keybindings = (import ./keys.nix { inherit cfg modifier; pkgs = xtraPkgs; }); modes = { # Explicitly handle the resize mode resize = { "h" = "resize shrink width 5 px or 5 ppt"; "j" = "resize grow height 5 px or 5 ppt"; "k" = "resize shrink height 5 px or 5 ppt"; "l" = "resize grow width 5 px or 5 ppt"; # same bindings, but for the arrow keys "Left" = "resize shrink width 5 px or 5 ppt"; "Down" = "resize grow height 5 px or 5 ppt"; "Up" = "resize shrink height 5 px or 5 ppt"; "Right" = "resize grow width 5 px or 5 ppt"; # back to normal: Enter or Escape or $mod+r "Return" = "mode \"default\""; "Escape" = "mode \"default\""; "${modifier}+r" = "mode \"default\""; } ; }; # The `bars` module does weird stuff so we init it ourselves bars = []; }