Files
nixos-configs/home/modules/i3+sway/default.nix

42 lines
904 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 {};
extraI3Config = mkOption {};
extraSwayConfig = mkOption {};
};
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;
};
};
}