Added hyprscrolling just like hyprexpo
This commit is contained in:
@@ -2,54 +2,29 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
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 = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = lib.mkEnableOption "Hyprscrolling plugin (scrolling layout) for Hyprland";
|
plugins = [
|
||||||
|
pkgs.hyprlandPlugins.hyprscrolling
|
||||||
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}";
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Ensure plugin is installed + loaded (HM will add the needed plugin loading lines)
|
extraConfig = lib.mkAfter ''
|
||||||
wayland.windowManager.hyprland.plugins = [
|
############################
|
||||||
cfg.package
|
# Hyprscrolling (scrolling layout)
|
||||||
];
|
############################
|
||||||
|
|
||||||
# Put your config file into ~/.config/hypr/conf.d/...
|
general {
|
||||||
xdg.configFile."${confTarget}".source = confSrc;
|
layout = scrolling
|
||||||
|
}
|
||||||
|
|
||||||
# Ensure Hyprland reads it (even if your main config doesn't source conf.d)
|
# hyprscrolling uses plugin:hyprscrolling
|
||||||
wayland.windowManager.hyprland.extraConfig = ''
|
plugin:hyprscrolling {
|
||||||
# Loaded by Home-Manager: hyprscrolling
|
# examples; tune to taste
|
||||||
source = ${config.xdg.configHome}/${confTarget}
|
# column_width = 0.70
|
||||||
|
# fullscreen_on_one_column = 1
|
||||||
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user