diff --git a/henrovnix_ok/home/desktop/hyprscrolling.nix b/henrovnix_ok/home/desktop/hyprscrolling.nix index 373939a48..436f50f7d 100644 --- a/henrovnix_ok/home/desktop/hyprscrolling.nix +++ b/henrovnix_ok/home/desktop/hyprscrolling.nix @@ -1,27 +1,59 @@ -{ config, lib, pkgs, flakeRoot, ... }: +# -------------------------------------------------- +# Hyprscrolling (hyprland-plugins) – valid config +# Managed in repo: assets/conf/desktop/hypr/hyprscrolling.conf +# +# This file is sourced by Home-Manager via: +# source = ~/.config/hypr/conf.d/90-hyprscrolling.conf +# +# IMPORTANT: +# - Do NOT use "scrolling { ... }" here unless your Hyprland build supports the +# native scrolling layout config category. Your configerrors show it does not. +# - Do NOT use "scrolling:..." keywords here (they will error for the same reason). +# - The plugin is already loaded by HM: pkgs.hyprlandPlugins.hyprscrolling +# -------------------------------------------------- -let - repoConf = - flakeRoot + "/assets/conf/desktop/hypr/hyprscrolling.conf"; - - targetRel = "hypr/conf.d/90-hyprscrolling.conf"; -in -{ - # Make sure Hyprland is managed by Home-Manager - 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 - xdg.configFile."${targetRel}".source = repoConf; +# Make scrolling the active layout in Hyprland +general { + layout = scrolling } + +# hyprscrolling plugin configuration +# (this is the format used by hyprland-plugins) +plugin { + hyprscrolling { + # Default width of a column (0.1 - 1.0 typically) + column_width = 0.5 + + # If only one column exists, make it fullscreen-width + fullscreen_on_one_column = true + + # How focused columns are brought into view (commonly 0=center, 1=fit) + focus_fit_method = 1 + + # Auto-scroll/follow when focus changes + follow_focus = true + + # Keep a minimum part of adjacent columns visible (0.0 - 1.0) + follow_min_visible = 0.4 + + # Optional: widths you can cycle with layoutmsg colresize +conf (if you use it) + # explicit_column_widths = 0.333, 0.5, 0.667, 1.0 + } +} + +# -------------------------------------------------- +# OPTIONAL BINDS +# +# If you want binds here, either: +# - ensure $mainMod is defined BEFORE this file is sourced, OR +# - define it here (uncomment the next line). +# +# $mainMod = SUPER +# +# bind = $mainMod, period, layoutmsg, move +col +# bind = $mainMod, comma, layoutmsg, move -col +# bind = $mainMod, H, layoutmsg, swapcol l +# bind = $mainMod, L, layoutmsg, swapcol r +# bind = $mainMod, P, layoutmsg, promote +# bind = $mainMod, 0, layoutmsg, colresize +conf +# --------------------------------------------------