1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-03 20:32:07 -04:00

nix: add package option for dms-shell (#1864)

... to make it configurable.
This commit is contained in:
İlkecan Bozdoğan
2026-02-28 07:07:01 +03:00
committed by bbedward
parent 1f64bb8031
commit 6921442aab
5 changed files with 24 additions and 10 deletions

View File

@@ -2,7 +2,6 @@
config,
lib,
pkgs,
dmsPkgs,
...
}:
let
@@ -10,7 +9,7 @@ let
in
{
packages = [
dmsPkgs.dms-shell
cfg.package
]
++ lib.optional cfg.enableSystemMonitoring cfg.dgop.package
++ lib.optionals cfg.enableVPN [

View File

@@ -8,6 +8,7 @@
let
inherit (lib) types;
cfg = config.programs.dank-material-shell.greeter;
cfgDms = config.programs.dank-material-shell;
inherit (config.services.greetd.settings.default_session) user;
@@ -30,13 +31,13 @@ let
lib.escapeShellArgs (
[
"sh"
"${../../quickshell/Modules/Greetd/assets/dms-greeter}"
"${cfg.package}/share/quickshell/dms/Modules/Greetd/assets/dms-greeter"
"--cache-dir"
cacheDir
"--command"
cfg.compositor.name
"-p"
"${dmsPkgs.dms-shell}/share/quickshell/dms"
"${cfg.package}/share/quickshell/dms"
]
++ lib.optionals (cfg.compositor.customConfig != "") [
"-C"
@@ -66,6 +67,21 @@ in
options.programs.dank-material-shell.greeter = {
enable = lib.mkEnableOption "DankMaterialShell greeter";
package = lib.mkOption {
type = types.package;
default = if cfgDms.enable or false then cfgDms.package else dmsPkgs.dms-shell;
defaultText = lib.literalExpression ''
if config.programs.dank-material-shell.enable
then config.programs.dank-material-shell.package
else built from source;
'';
description = ''
The DankMaterialShell package to use for the greeter.
Defaults to the package from `programs.dank-material-shell` if it is enabled,
otherwise defaults to building from source.
'';
};
compositor.name = lib.mkOption {
type = types.enum [
"niri"

View File

@@ -2,7 +2,6 @@
config,
pkgs,
lib,
dmsPkgs,
...
}@args:
let
@@ -13,7 +12,6 @@ let
config
pkgs
lib
dmsPkgs
;
};
hasPluginSettings = lib.any (plugin: plugin.settings != { }) (
@@ -96,7 +94,7 @@ in
};
Service = {
ExecStart = lib.getExe dmsPkgs.dms-shell + " run --session";
ExecStart = lib.getExe cfg.package + " run --session";
Restart = "on-failure";
};

View File

@@ -2,7 +2,6 @@
config,
pkgs,
lib,
dmsPkgs,
...
}@args:
let
@@ -12,7 +11,6 @@ let
config
pkgs
lib
dmsPkgs
;
};
in
@@ -36,7 +34,7 @@ in
restartIfChanged = cfg.systemd.restartIfChanged;
serviceConfig = {
ExecStart = lib.getExe dmsPkgs.dms-shell + " run --session";
ExecStart = lib.getExe cfg.package + " run --session";
Restart = "on-failure";
};
};

View File

@@ -26,6 +26,9 @@ in
options.programs.dank-material-shell = {
enable = lib.mkEnableOption "DankMaterialShell";
package = lib.mkPackageOption dmsPkgs "dms-shell" {
extraDescription = "The DankMaterialShell package to use (defaults to be built from source)";
};
systemd = {
enable = lib.mkEnableOption "DankMaterialShell systemd startup";