From 496ba5e53fde3b4d2536c346de27e009b05a4627 Mon Sep 17 00:00:00 2001 From: Henro Veijer Date: Wed, 25 Feb 2026 07:03:23 +0100 Subject: [PATCH] Added hyprscrolling just like hyprexpo --- henrovnix_ok/home/desktop/hyprscrolling.nix | 57 ++++++--------------- 1 file changed, 16 insertions(+), 41 deletions(-) diff --git a/henrovnix_ok/home/desktop/hyprscrolling.nix b/henrovnix_ok/home/desktop/hyprscrolling.nix index d094aa317..aac5085ff 100644 --- a/henrovnix_ok/home/desktop/hyprscrolling.nix +++ b/henrovnix_ok/home/desktop/hyprscrolling.nix @@ -2,54 +2,29 @@ config, lib, pkgs, - flakeRoot, ... }: - -let - cfg = config.programs.hyprscrolling; - - # Read configuration from your repo (as requested) - confSrc = flakeRoot + "/assets/conf/desktop/hypr/hyprscrolling.conf"; - - # Where we place the generated/symlinked config inside ~/.config - confTarget = "hypr/conf.d/90-hyprscrolling.conf"; -in { - options.programs.hyprscrolling = { - enable = lib.mkEnableOption "Hyprscrolling plugin (scrolling layout) for Hyprland"; - - package = lib.mkOption { - type = lib.types.package; - default = pkgs.hyprlandPlugins.hyprscrolling; - description = "hyprscrolling plugin package to load via wayland.windowManager.hyprland.plugins."; - }; - }; - - config = lib.mkIf cfg.enable { - assertions = [ - { - assertion = config.wayland.windowManager.hyprland.enable or false; - message = "programs.hyprscrolling.enable requires wayland.windowManager.hyprland.enable = true (Home-Manager Hyprland module)."; - } - { - assertion = builtins.pathExists confSrc; - message = "Missing hyprscrolling.conf at: ${toString confSrc}"; - } + wayland.windowManager.hyprland = { + plugins = [ + pkgs.hyprlandPlugins.hyprscrolling ]; - # Ensure plugin is installed + loaded (HM will add the needed plugin loading lines) - wayland.windowManager.hyprland.plugins = [ - cfg.package - ]; + extraConfig = lib.mkAfter '' + ############################ + # Hyprscrolling (scrolling layout) + ############################ - # Put your config file into ~/.config/hypr/conf.d/... - xdg.configFile."${confTarget}".source = confSrc; + general { + layout = scrolling + } - # Ensure Hyprland reads it (even if your main config doesn't source conf.d) - wayland.windowManager.hyprland.extraConfig = '' - # Loaded by Home-Manager: hyprscrolling - source = ${config.xdg.configHome}/${confTarget} + # hyprscrolling uses plugin:hyprscrolling + plugin:hyprscrolling { + # examples; tune to taste + # column_width = 0.70 + # fullscreen_on_one_column = 1 + } ''; }; }