48 lines
979 B
Nix
48 lines
979 B
Nix
{ config, lib, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
cfg = config.home.i3_sway;
|
|
|
|
shared_config = recursiveUpdate {
|
|
modifier = "Mod4";
|
|
terminal = "kitty";
|
|
defaultWorkspace = "workspace number 1";
|
|
} cfg.extraSharedConfig;
|
|
in {
|
|
options.home.i3_sway = {
|
|
extraSharedConfig = mkOption {
|
|
default = {};
|
|
};
|
|
extraI3Config = mkOption {
|
|
default = {};
|
|
};
|
|
extraSwayConfig = mkOption {
|
|
default = {};
|
|
};
|
|
};
|
|
|
|
config = {
|
|
xsession.windowManager.i3 = let
|
|
base_i3_config = recursiveUpdate shared_config {};
|
|
in {
|
|
enable = true;
|
|
config = recursiveUpdate base_i3_config cfg.extraI3Config;
|
|
};
|
|
|
|
wayland.windowManager.sway = let
|
|
base_sway_config = recursiveUpdate shared_config {
|
|
input = {
|
|
"type:keyboard" = {
|
|
xkb_options = "caps:escape";
|
|
};
|
|
};
|
|
};
|
|
in {
|
|
enable = true;
|
|
config = recursiveUpdate base_sway_config cfg.extraSwayConfig;
|
|
};
|
|
};
|
|
}
|