From 5e029720ef2226fbc733ffbe3e6cea31ef929f13 Mon Sep 17 00:00:00 2001 From: John Ogle Date: Tue, 10 Sep 2024 11:09:37 -0700 Subject: [PATCH] [i3+sway] Add optionality to configs --- home/modules/i3+sway/default.nix | 38 ++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/home/modules/i3+sway/default.nix b/home/modules/i3+sway/default.nix index c2f3ad4..c172a41 100644 --- a/home/modules/i3+sway/default.nix +++ b/home/modules/i3+sway/default.nix @@ -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; }; }; }