[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;
let
shared_config = {
cfg = config.home.i3_sway;
shared_config = recursiveUpdate {
modifier = "Mod4";
terminal = "kitty";
defaultWorkspace = "workspace number 1";
};
} cfg.extraSharedConfig;
in {
xsession.windowManager.i3 = {
enable = true;
config = shared_config;
options.home.i3_sway = {
extraSharedConfig = mkOption {};
extraI3Config = mkOption {};
extraSwayConfig = mkOption {};
};
wayland.windowManager.sway = {
config = {
xsession.windowManager.i3 = let
base_i3_config = recursiveUpdate shared_config {};
in {
enable = true;
config = recursiveUpdate shared_config {
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;
};
};
}