Added hyprscrolling just like hyprexpo
This commit is contained in:
@@ -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
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user