From c66613608483ac56851fb6005fdf91da9ff54b8a Mon Sep 17 00:00:00 2001 From: Henro Veijer Date: Thu, 26 Feb 2026 14:42:05 +0100 Subject: [PATCH] Added two scripts for hyprscrolling --- henrovnix_ok/README.org | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/henrovnix_ok/README.org b/henrovnix_ok/README.org index 299633e20..21344a288 100755 --- a/henrovnix_ok/README.org +++ b/henrovnix_ok/README.org @@ -1770,31 +1770,45 @@ in This Nix module integrates the hyprscrolling plugin into a Home-Manager managed Hyprland setup in a declarative and reproducible way. It ensures the plugin is installed, optionally switches Hyprland to the scrolling layout, and renders user-defined plugin settings directly into the Hyprland configuration. The goal is to manage the scrolling workspace behavior entirely from Nix instead of maintaining manual edits inside hyprland.conf. #+begin_src nix :tangle home/desktop/hyprscrolling.nix :noweb tangle :mkdirp yes { config, lib, pkgs, flakeRoot, ... }: - let - repoConf = - flakeRoot + "/assets/conf/desktop/hypr/hyprscrolling.conf"; - + # Hyprscrolling drop-in config (repo -> ~/.config) + repoConf = flakeRoot + "/assets/conf/desktop/hypr/hyprscrolling.conf"; targetRel = "hypr/conf.d/90-hyprscrolling.conf"; + + # Overflow indicator script (repo -> ~/.config) + repoOverflowScript = + flakeRoot + "/assets/conf/desktop/hypr/scripts/hyprscroll-overflow.sh"; + targetOverflowRel = "hypr/scripts/hyprscroll-overflow.sh"; + repoPerMonitorScript = + flakeRoot + "/assets/conf/desktop/hypr/scripts/hyprscrolling-per-monitor.sh.sh"; + targetPerMonitor = "hypr/scripts/hyprscrolling-per-monitor.sh"; in { - # Make sure Hyprland is managed by Home-Manager + # Ensure deps for the script exist at runtime + # (hyprctl comes with Hyprland; jq is often not installed by default) + home.packages = with pkgs; [ + jq + ]; wayland.windowManager.hyprland = { enable = true; - - # Load the plugin plugins = [ pkgs.hyprlandPlugins.hyprscrolling ]; - - # Source the drop-in config extraConfig = '' source = ~/.config/${targetRel} ''; }; - - # Copy your repo config into ~/.config + # Copy repo configs/scripts into ~/.config xdg.configFile."${targetRel}".source = repoConf; + + xdg.configFile."${targetOverflowRel}" = { + source = repoOverflowScript; + executable = true; # makes it chmod +x + }; + xdg.configFile."${targetPerMonitor}" = { + source = repoPerMonitorScript; + executable = true; # makes it chmod +x + }; } #+end_src