[i3+sway] Add optionality to configs

This commit is contained in:
2024-09-10 11:09:37 -07:00
parent 5289d8847b
commit 5e029720ef

View File

@@ -1,27 +1,41 @@
{ config, lib, pkgs, ... }: { config, lib, ... }:
with lib; with lib;
let let
shared_config = { cfg = config.home.i3_sway;
shared_config = recursiveUpdate {
modifier = "Mod4"; modifier = "Mod4";
terminal = "kitty"; terminal = "kitty";
defaultWorkspace = "workspace number 1"; defaultWorkspace = "workspace number 1";
}; } cfg.extraSharedConfig;
in { in {
xsession.windowManager.i3 = { options.home.i3_sway = {
enable = true; extraSharedConfig = mkOption {};
config = shared_config; extraI3Config = mkOption {};
extraSwayConfig = mkOption {};
}; };
wayland.windowManager.sway = { config = {
enable = true; xsession.windowManager.i3 = let
config = recursiveUpdate shared_config { base_i3_config = recursiveUpdate shared_config {};
input = { in {
"type:keyboard" = { enable = true;
xkb_options = "caps:escape"; 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;
}; };
}; };
} }