Still finding the proper config for hyprscrolling
This commit is contained in:
@@ -1761,7 +1761,6 @@ in
|
|||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
** hyprscrolling
|
** hyprscrolling
|
||||||
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.
|
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
|
#+begin_src nix :tangle home/desktop/hyprscrolling.nix :noweb tangle :mkdirp yes
|
||||||
|
|||||||
@@ -17,6 +17,15 @@ general {
|
|||||||
|
|
||||||
plugin:hyprscrolling {
|
plugin:hyprscrolling {
|
||||||
|
|
||||||
|
# Behavior
|
||||||
|
column_width = 0.5
|
||||||
|
fullscreen_on_one_column = true
|
||||||
|
focus_fit_method = 1
|
||||||
|
follow_focus = true
|
||||||
|
follow_min_visible = 0.4
|
||||||
|
# explicit_column_widths = 0.333, 0.5, 0.667, 1.0
|
||||||
|
direction = right
|
||||||
|
|
||||||
# --- Core behaviour ---
|
# --- Core behaviour ---
|
||||||
enable = true
|
enable = true
|
||||||
focus_follows_mouse = true
|
focus_follows_mouse = true
|
||||||
@@ -31,10 +40,10 @@ plugin:hyprscrolling {
|
|||||||
indicators = true
|
indicators = true
|
||||||
|
|
||||||
# Style of indicators (examples: line, dots, bar)
|
# Style of indicators (examples: line, dots, bar)
|
||||||
indicator_style = bar
|
indicator_style = dots
|
||||||
|
|
||||||
# Thickness / size
|
# Thickness / size
|
||||||
indicator_thickness = 4
|
indicator_thickness = 10
|
||||||
|
|
||||||
# Spacing between indicators
|
# Spacing between indicators
|
||||||
indicator_spacing = 6
|
indicator_spacing = 6
|
||||||
|
|||||||
@@ -1,30 +1,62 @@
|
|||||||
{
|
# --------------------------------------------------
|
||||||
config,
|
# Hyprscrolling – scrolling layout with indicators
|
||||||
lib,
|
# Managed in repo: assets/conf/desktop/hypr/hyprscrolling.conf
|
||||||
pkgs,
|
# --------------------------------------------------
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
plugins = [
|
|
||||||
pkgs.hyprlandPlugins.hyprscrolling
|
|
||||||
];
|
|
||||||
|
|
||||||
extraConfig = lib.mkAfter ''
|
# Load plugin (.so is symlinked by Nix module)
|
||||||
############################
|
plugin = /etc/hypr/plugins/libhyprscrolling.so
|
||||||
# Hyprscrolling (scrolling layout)
|
|
||||||
############################
|
|
||||||
|
|
||||||
general {
|
# Make scrolling the default layout
|
||||||
layout = scrolling
|
general {
|
||||||
}
|
layout = scrolling
|
||||||
|
|
||||||
# hyprscrolling uses plugin:hyprscrolling
|
|
||||||
plugin:hyprscrolling {
|
|
||||||
# examples; tune to taste
|
|
||||||
# column_width = 0.70
|
|
||||||
# fullscreen_on_one_column = 1
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# --------------------------------------------------
|
||||||
|
# Plugin configuration
|
||||||
|
# --------------------------------------------------
|
||||||
|
|
||||||
|
plugin:hyprscrolling {
|
||||||
|
|
||||||
|
# --- Core behaviour ---
|
||||||
|
enable = true
|
||||||
|
focus_follows_mouse = true
|
||||||
|
smooth_scrolling = true
|
||||||
|
|
||||||
|
# --- Gaps & spacing ---
|
||||||
|
gaps_in = 6
|
||||||
|
gaps_out = 16
|
||||||
|
|
||||||
|
# --- Indicators ---
|
||||||
|
# Show visual indicators for stacked windows
|
||||||
|
indicators = true
|
||||||
|
|
||||||
|
# Style of indicators (examples: line, dots, bar)
|
||||||
|
indicator_style = bar
|
||||||
|
|
||||||
|
# Thickness / size
|
||||||
|
indicator_thickness = 4
|
||||||
|
|
||||||
|
# Spacing between indicators
|
||||||
|
indicator_spacing = 6
|
||||||
|
|
||||||
|
# Offset from window edge
|
||||||
|
indicator_offset = 8
|
||||||
|
|
||||||
|
# Colors (RGBA)
|
||||||
|
indicator_color_active = rgba(137, 180, 250, 0.9) # blue-ish (Catppuccin style)
|
||||||
|
indicator_color_inactive = rgba(88, 91, 112, 0.6)
|
||||||
|
|
||||||
|
# Position (top, bottom, left, right)
|
||||||
|
indicator_position = bottom
|
||||||
|
}
|
||||||
|
|
||||||
|
# --------------------------------------------------
|
||||||
|
# Optional keybinds
|
||||||
|
# --------------------------------------------------
|
||||||
|
|
||||||
|
# Scroll through stack
|
||||||
|
bind = SUPER, mouse_down, layoutmsg, scroll +1
|
||||||
|
bind = SUPER, mouse_up, layoutmsg, scroll -1
|
||||||
|
|
||||||
|
# Toggle layout manually
|
||||||
|
bind = SUPER, S, layoutmsg, togglesplit
|
||||||
|
|||||||
Reference in New Issue
Block a user