diff --git a/henrovnix_ok/home/desktop/hyprscrolling.nix b/henrovnix_ok/home/desktop/hyprscrolling.nix index 436f50f7d..373939a48 100644 --- a/henrovnix_ok/home/desktop/hyprscrolling.nix +++ b/henrovnix_ok/home/desktop/hyprscrolling.nix @@ -1,59 +1,27 @@ -# -------------------------------------------------- -# 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 -# -------------------------------------------------- +{ config, lib, pkgs, flakeRoot, ... }: -# Make scrolling the active layout in Hyprland -general { - layout = scrolling +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; } - -# 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 -# --------------------------------------------------