Added hyprscrolling just like hyprexpo

This commit is contained in:
2026-02-25 07:03:23 +01:00
parent 438899b070
commit 496ba5e53f
+16 -41
View File
@@ -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
}
'';
};
}