summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/home-manager/personal/gui/x/default.nix7
-rw-r--r--modules/home-manager/personal/gui/x/i3/default.nix9
-rw-r--r--modules/home-manager/personal/gui/x/picom.nix15
3 files changed, 28 insertions, 3 deletions
diff --git a/modules/home-manager/personal/gui/x/default.nix b/modules/home-manager/personal/gui/x/default.nix
index 0de1552..066c557 100644
--- a/modules/home-manager/personal/gui/x/default.nix
+++ b/modules/home-manager/personal/gui/x/default.nix
@@ -2,7 +2,7 @@
let cfg = config.personal.x;
in {
- imports = [ ./i3 ./idlehook.nix ];
+ imports = [ ./i3 ./idlehook.nix ./picom.nix ];
options.personal.x = {
enable = lib.mkEnableOption "X" // {
@@ -10,5 +10,8 @@ in {
};
};
- config.xsession.enable = lib.mkDefault cfg.enable;
+ config = lib.mkIf (cfg.enable && config.personal.gui.enable) {
+ xsession.enable = true;
+ services.picom.enable = lib.mkDefault true;
+ };
}
diff --git a/modules/home-manager/personal/gui/x/i3/default.nix b/modules/home-manager/personal/gui/x/i3/default.nix
index beae770..715ed44 100644
--- a/modules/home-manager/personal/gui/x/i3/default.nix
+++ b/modules/home-manager/personal/gui/x/i3/default.nix
@@ -44,7 +44,14 @@ in {
titlebar = lib.mkDefault false;
border = lib.mkDefault 0;
};
- floating.titlebar = lib.mkDefault false;
+ floating = {
+ titlebar = lib.mkDefault false;
+ border = lib.mkDefault (if config.services.picom.enable
+ && config.services.picom.shadow then
+ 0
+ else
+ lib.mkOptionDefault);
+ };
gaps = {
inner = lib.mkDefault 15;
outer = lib.mkDefault 5;
diff --git a/modules/home-manager/personal/gui/x/picom.nix b/modules/home-manager/personal/gui/x/picom.nix
new file mode 100644
index 0000000..0ae695a
--- /dev/null
+++ b/modules/home-manager/personal/gui/x/picom.nix
@@ -0,0 +1,15 @@
+{ lib, ... }:
+
+{
+ services.picom = {
+ fade = lib.mkDefault true;
+ fadeDelta = lib.mkDefault 4;
+ activeOpacity = lib.mkDefault 1.0;
+ inactiveOpacity = lib.mkDefault 0.9;
+ menuOpacity = lib.mkDefault 0.8;
+ shadow = lib.mkDefault true;
+ settings.blur.method = lib.mkDefault "gaussian";
+ vSync = true; # not default because false seems to be buggy
+ backend = "glx";
+ };
+}