[i3+sway] Add optionality to configs
This commit is contained in:
@@ -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 = {
|
||||
enable = true;
|
||||
config = recursiveUpdate shared_config {
|
||||
input = {
|
||||
"type:keyboard" = {
|
||||
xkb_options = "caps:escape";
|
||||
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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user