1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-11-30 15:09:46 +01:00

pyperland: added pyprland module to home-manager

pyperland is a hyperland plugin manager.
This commit is contained in:
knoff 2024-04-12 20:42:39 +02:00
parent 31357486b0
commit d63ef9f125
2 changed files with 62 additions and 0 deletions

View file

@ -518,4 +518,10 @@
github = "zorrobert";
githubId = 118135271;
};
knoc-off = {
name = "Niko Selby";
email = "selby@niko.ink";
github = "knoc-off";
githubId = 36494048;
};
}

View file

@ -0,0 +1,56 @@
{ options, config, lib, pkgs, ... }:
let
cfg = config.services.pyprland;
settingsFormat = pkgs.formats.toml { };
in with lib; {
meta.maintainers = [ maintainers.knoc-off ];
options.services.pyprland = {
enable = mkEnableOption "pyperland";
package = mkOption {
default = pkgs.pyprland;
type = types.package;
description = "The pyprland package to use";
};
extraPlugins = mkOption {
default = [ ];
type = with types; listOf str;
description = "Additional plugins to enable";
};
settings = mkOption {
type = types.submodule {
freeformType = settingsFormat.type;
options.scratchpads = mkOption {
default = { };
type = with types; attrsOf attrs;
description = "Scratchpad configurations";
};
};
default = { };
description = ''
Configuration for pyprland, see
<link xlink:href="https://github.com/hyprland-community/pyprland/wiki/Getting-started#configuring"/>
for supported values.
'';
};
};
config = mkIf cfg.enable {
home.packages = [ cfg.package ];
services.pyprland.settings = {
pyprland = {
plugins = cfg.extraPlugins
++ (optional (cfg.settings.scratchpads != { }) "scratchpads");
};
};
home.file.".config/hypr/pyprland.toml".source =
settingsFormat.generate "pyprland-config.toml" cfg.settings;
};
}