dotfiles
My PC Dotfiles & Websitegit clone https://github.com/maydayv7/dotfiles
commit 898526ef6e15ba88bc16843438b32dbf5d06da60 parent 4934f656757b87cd8d4bb04b5096914a4efd9f25 Author: maydayv7 <maydayv7@gmail.com> Date: Tue, 23 Jan 2024 21:54:20 +0530 feat: Add `gui.compositor` Also drop overlays
Diffstat:
| M | README.md | | | 1 | + |
| M | flake.lock | | | 6 | +++--- |
| M | modules/README.md | | | 2 | ++ |
| A | modules/gui/compositor.nix | | | 56 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| M | modules/gui/desktop/xfce.nix | | | 16 | +--------------- |
| M | packages/flake.nix | | | 31 | ++++++++++++++----------------- |
| D | packages/overlays/.keep | | | 0 | |
| D | packages/overlays/nixFlakes.nix | | | 4 | ---- |
| D | packages/overlays/picom.nix | | | 13 | ------------- |
9 files changed, 77 insertions(+), 52 deletions(-)
diff --git a/README.md b/README.md @@ -411,6 +411,7 @@ You can navigate to the `README`s present in the various directories to know mor - Refactor GNOME `dconf` - Overhaul XFCE Configuration - Use ULauncher + - Use the Picom Compositor - Add Pantheon Desktop Configuration - Add VS Code Extensions Repository - Fix Android Virtualisation diff --git a/flake.lock b/flake.lock @@ -825,11 +825,11 @@ }, "unstable": { "locked": { - "lastModified": 1705316053, - "narHash": "sha256-J2Ey5mPFT8gdfL2XC0JTZvKaBw/b2pnyudEXFvl+dQM=", + "lastModified": 1705856552, + "narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c3e128f3c0ecc1fb04aef9f72b3dcc2f6cecf370", + "rev": "612f97239e2cc474c13c9dafa0df378058c5ad8d", "type": "github" }, "original": { diff --git a/modules/README.md b/modules/README.md @@ -32,6 +32,8 @@ Configuration [Builder](./configuration.nix) - `enable`: Enable Fonts Configuration - `true / false` - `gtk` - - `enable`: Enable GTK Configuration - `true / false` + - `compositor` - + - `enable`: Enable Window Compositor - `true / false` - `launcher` - - `enable`: Enable Application Launcher - `true / false` - `terminal`: Terminal to be used by Launcher diff --git a/modules/gui/compositor.nix b/modules/gui/compositor.nix @@ -0,0 +1,56 @@ +{ + config, + lib, + pkgs, + ... +}: { + options.gui.compositor.enable = lib.mkEnableOption "Enable Window Compositor"; + + ## Picom Configuration ## + config = lib.mkIf config.gui.compositor.enable { + services.picom = { + enable = true; + + # Driver + backend = "egl"; + vSync = true; + + # Behaviour + fade = true; + settings = + { + inactive-dim = 0.2; + corner-radius = 10.0; + focus-exclude = ["fullscreen"]; + detect-client-opacity = true; + } + // + # Animations + { + animations = true; + animation-for-open-window = "zoom"; + animation-for-unmap-window = "squeeze"; + animation-for-transient-window = "slide-up"; + animation-stiffness-in-tag = 150; + animation-stiffness-tag-change = 90.0; + animation-window-mass = 0.2; + animation-dampening = 15; + animation-clamping = true; + animation-for-prev-tag = "minimize"; + enable-fading-prev-tag = true; + animation-for-next-tag = "slide-in-center"; + enable-fading-next-tag = true; + }; + + package = pkgs.unstable.picom.overrideAttrs (old: { + version = "11a"; + src = pkgs.fetchFromGitHub { + owner = "FT-Labs"; + repo = "picom"; + rev = "fe5b416ed6f43c31418d21dde7a9f20c12d7dfb0"; + sha256 = "sha256-KX+/nO/nJlUjsZwVg2/vQy+byYmtnKbtxuhyiq/tWg8="; + }; + }); + }; + }; +} diff --git a/modules/gui/desktop/xfce.nix b/modules/gui/desktop/xfce.nix @@ -56,6 +56,7 @@ in { gui = { fonts.enable = true; gtk.enable = true; + compositor.enable = compositor; launcher = { enable = true; theme = theme.name; @@ -70,21 +71,6 @@ in { touchegg.enable = true; gnome.gnome-keyring.enable = true; xserver.displayManager.lightdm.greeters.gtk = {inherit theme;}; - - # Compositor - picom = mkIf compositor { - enable = true; - package = pkgs.picom-allusive; - backend = "glx"; - vSync = true; - fade = true; - inactiveOpacity = 0.9; - opacityRules = ["95:class_g = 'Xfce4-terminal' && focused"]; - settings = { - focus-exclude = ["fullscreen"]; - corner-radius = 10.0; - }; - }; }; programs = { diff --git a/packages/flake.nix b/packages/flake.nix @@ -4,7 +4,7 @@ ... }: let inherit (util) map; - inherit (builtins) any attrValues isPath; + inherit (builtins) any isPath; in { ## Package Configuration ## perSystem = { @@ -44,20 +44,20 @@ in { ) { inherit system; config = import ../modules/nix/config.nix; - overlays = - [nur.overlay] - ++ (attrValues self.overlays or {}) - ++ [ - (final: prev: { - custom = self.packages."${system}"; - unstable = import unstable {inherit system;}; + overlays = [ + nur.overlay + (final: prev: { + nixFlakes = prev.nixVersions.nix_2_19; - chaotic = chaotic.packages."${system}"; - code = vscode.extensions."${system}"; - gaming = gaming.packages."${system}"; - wine = windows.packages."${system}"; - }) - ]; + custom = self.packages."${system}"; + unstable = import unstable {inherit system;}; + + chaotic = chaotic.packages."${system}"; + code = vscode.extensions."${system}"; + gaming = gaming.packages."${system}"; + wine = windows.packages."${system}"; + }) + ]; }; # Custom Packages @@ -69,7 +69,4 @@ in { // map.modules ../scripts call.script // inputs'.proprietary.packages; }); - - # Package Overrides - flake.overlays = map.modules ./overlays import; } diff --git a/packages/overlays/.keep b/packages/overlays/.keep diff --git a/packages/overlays/nixFlakes.nix b/packages/overlays/nixFlakes.nix @@ -1,4 +0,0 @@ -final: prev: { - # Update Nix to latest version - nixFlakes = prev.nixVersions.nix_2_19; -} diff --git a/packages/overlays/picom.nix b/packages/overlays/picom.nix @@ -1,13 +0,0 @@ -final: prev: { - # Update the Picom Allusive Fork - picom-allusive = prev.picom-allusive.overrideAttrs (old: rec { - version = "1.5.0"; - buildInputs = [final.pcre2] ++ old.buildInputs; - src = prev.fetchFromGitHub { - owner = "allusive-dev"; - repo = "compfy"; - rev = version; - hash = "sha256-dQ7uxnFEjcgiZbcpm53xvSo8BQjr/omLluZu+uMshYc="; - }; - }); -}