dotfiles
My PC Dotfiles & Websitegit clone https://github.com/maydayv7/dotfiles
commit 4934f656757b87cd8d4bb04b5096914a4efd9f25 parent c0f517c3dd7c4d9043ad62ff47deda173d1e585c Author: maydayv7 <maydayv7@gmail.com> Date: Mon, 22 Jan 2024 16:00:20 +0530 feat: XFCE+Picom
Diffstat:
| M | files/xfce/settings/xfwm4.xml | | | 12 | ++++++------ |
| M | modules/gui/desktop/xfce.nix | | | 24 | ++++++++++++++++++++++++ |
| A | packages/overlays/picom.nix | | | 13 | +++++++++++++ |
3 files changed, 43 insertions(+), 6 deletions(-)
diff --git a/files/xfce/settings/xfwm4.xml b/files/xfce/settings/xfwm4.xml @@ -4,14 +4,14 @@ <property name="general" type="empty"> <property name="activate_action" type="string" value="bring"/> <property name="borderless_maximize" type="bool" value="true"/> - <property name="box_move" type="bool" value="true"/> + <property name="box_move" type="bool" value="@compositor"/> <property name="box_resize" type="bool" value="false"/> <property name="button_layout" type="string" value="OS|HMC"/> <property name="button_offset" type="int" value="0"/> <property name="button_spacing" type="int" value="0"/> <property name="click_to_focus" type="bool" value="true"/> <property name="cycle_apps_only" type="bool" value="false"/> - <property name="cycle_draw_frame" type="bool" value="true"/> + <property name="cycle_draw_frame" type="bool" value="@compositor"/> <property name="cycle_raise" type="bool" value="false"/> <property name="cycle_hidden" type="bool" value="true"/> <property name="cycle_minimum" type="bool" value="true"/> @@ -30,7 +30,7 @@ <property name="frame_border_top" type="int" value="0"/> <property name="full_width_title" type="bool" value="true"/> <property name="horiz_scroll_opacity" type="bool" value="false"/> - <property name="inactive_opacity" type="int" value="100"/> + <property name="inactive_opacity" type="int" value="90"/> <property name="maximized_offset" type="int" value="0"/> <property name="mousewheel_rollup" type="bool" value="true"/> <property name="move_opacity" type="int" value="100"/> @@ -59,7 +59,7 @@ <property name="snap_to_windows" type="bool" value="false"/> <property name="snap_width" type="int" value="10"/> <property name="vblank_mode" type="string" value="auto"/> - <property name="theme" type="string" value="Arc-Dark"/> + <property name="theme" type="string" value="@theme"/> <property name="tile_on_move" type="bool" value="true"/> <property name="title_alignment" type="string" value="center"/> <property name="title_font" type="string" value="@font Medium, Medium 11"/> @@ -72,12 +72,12 @@ <property name="toggle_workspaces" type="bool" value="false"/> <property name="unredirect_overlays" type="bool" value="true"/> <property name="urgent_blink" type="bool" value="false"/> - <property name="use_compositing" type="bool" value="true"/> + <property name="use_compositing" type="bool" value="@compositor"/> <property name="workspace_count" type="int" value="4"/> <property name="wrap_cycle" type="bool" value="true"/> <property name="wrap_layout" type="bool" value="true"/> <property name="wrap_resistance" type="int" value="10"/> - <property name="wrap_windows" type="bool" value="true"/> + <property name="wrap_windows" type="bool" value="@compositor"/> <property name="wrap_workspaces" type="bool" value="false"/> <property name="zoom_desktop" type="bool" value="true"/> <property name="zoom_pointer" type="bool" value="true"/> diff --git a/modules/gui/desktop/xfce.nix b/modules/gui/desktop/xfce.nix @@ -16,6 +16,9 @@ with files; let name = "Arc-Dark"; package = pkgs.arc-theme; }; + + # Window Composition + compositor = config.hardware.cpu.mode != "powersave"; in { ## XFCE Desktop Configuration ## config = mkIf (desktop == "xfce" || desktop == "xfce-minimal") (mkMerge [ @@ -67,6 +70,21 @@ 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 = { @@ -189,6 +207,7 @@ in { "@cursor" "@font" "@monospace" + "@compositor" ]; values = [ path.system @@ -198,6 +217,11 @@ in { config.stylix.cursor.name config.stylix.fonts.sansSerif.name config.stylix.fonts.monospace.name + ( + if compositor + then "false" + else "true" + ) ]; }; } diff --git a/packages/overlays/picom.nix b/packages/overlays/picom.nix @@ -0,0 +1,13 @@ +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="; + }; + }); +}