From 70d60e5ee6d1092f765807b8483c9c16d2afa678 Mon Sep 17 00:00:00 2001 From: Quentin Aristote Date: Wed, 22 Feb 2023 22:39:56 +0100 Subject: add home-manager modules --- modules/home-manager/personal/gui/x/i3/default.nix | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 modules/home-manager/personal/gui/x/i3/default.nix (limited to 'modules/home-manager/personal/gui/x/i3/default.nix') 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 .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; + }; +} -- cgit v1.2.3