diff options
| author | Quentin Aristote <quentin@aristote.fr> | 2023-02-22 22:39:56 +0100 |
|---|---|---|
| committer | Quentin Aristote <quentin@aristote.fr> | 2023-02-28 17:47:49 +0100 |
| commit | 70d60e5ee6d1092f765807b8483c9c16d2afa678 (patch) | |
| tree | edeb7a91de348d6fc5dd0e43b9ca7bef794b322c /modules/home-manager/personal/gui/x/i3/default.nix | |
| parent | bbb2f5e7cefb970b3e4994ee51bb2c3a18a073c2 (diff) | |
add home-manager modules
Diffstat (limited to 'modules/home-manager/personal/gui/x/i3/default.nix')
| -rw-r--r-- | modules/home-manager/personal/gui/x/i3/default.nix | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/modules/home-manager/personal/gui/x/i3/default.nix b/modules/home-manager/personal/gui/x/i3/default.nix new file mode 100644 index 0000000..beae770 --- /dev/null +++ b/modules/home-manager/personal/gui/x/i3/default.nix @@ -0,0 +1,56 @@ +{ config, lib, pkgs, ... }@extraArgs: + +let cfg = config.personal.x.i3; +in { + imports = [ ./bar ./keybindings.nix ./startup.nix ]; + + options.personal.x.i3 = { + enable = lib.mkEnableOption "i3" // { + default = + extraArgs.osConfig.services.xserver.windowManager.i3.enable or false; + }; + }; + + config = lib.mkIf cfg.enable { + xsession.windowManager.i3 = { + enable = cfg.enable; + package = lib.mkDefault pkgs.i3-gaps; + + config = { + assigns = lib.optionalAttrs (config.personal.profiles.multimedia + && (extraArgs.osConfig.programs.steam.enable or true)) { + "8: multimedia" = [ + { class = "^Steam$"; } + { class = "Netflix"; } + { class = "MUBI"; } + { class = "Deezer"; } + ]; + } // lib.optionalAttrs config.personal.profiles.social { + "9: social" = [ + { class = "^Mail$"; } + { class = "^thunderbird$"; } + { class = "^Signal$"; } + ]; + } // { + "10: passwords" = [{ + # matches <some db>.kbdx [Locked] - KeePassXC + title = ".*\\.kbdx \\[Locked\\] - KeePassXC$"; + }]; + }; + + workspaceAutoBackAndForth = lib.mkDefault true; + + window = { + titlebar = lib.mkDefault false; + border = lib.mkDefault 0; + }; + floating.titlebar = lib.mkDefault false; + gaps = { + inner = lib.mkDefault 15; + outer = lib.mkDefault 5; + }; + }; + }; + programs.rofi.enable = lib.mkDefault true; + }; +} |
