summaryrefslogtreecommitdiff
path: root/modules/home-manager/personal/gui/x/i3/default.nix
diff options
context:
space:
mode:
authorQuentin Aristote <quentin@aristote.fr>2023-02-22 22:39:56 +0100
committerQuentin Aristote <quentin@aristote.fr>2023-02-28 17:47:49 +0100
commit70d60e5ee6d1092f765807b8483c9c16d2afa678 (patch)
treeedeb7a91de348d6fc5dd0e43b9ca7bef794b322c /modules/home-manager/personal/gui/x/i3/default.nix
parentbbb2f5e7cefb970b3e4994ee51bb2c3a18a073c2 (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.nix56
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;
+ };
+}