1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-29 07:52:50 -05:00

Merge branch 'master' of github.com:bbedward/DankMaterialShell

This commit is contained in:
bbedward
2025-10-09 13:37:46 -04:00

View File

@@ -6,6 +6,7 @@
... ...
}: let }: let
cfg = config.programs.dankMaterialShell; cfg = config.programs.dankMaterialShell;
jsonFormat = pkgs.formats.json { };
in { in {
options.programs.dankMaterialShell = with lib.types; { options.programs.dankMaterialShell = with lib.types; {
enable = lib.mkEnableOption "DankMaterialShell"; enable = lib.mkEnableOption "DankMaterialShell";
@@ -54,6 +55,20 @@ in {
quickshell = { quickshell = {
package = lib.mkPackageOption pkgs "quickshell" {}; package = lib.mkPackageOption pkgs "quickshell" {};
}; };
default = {
settings = lib.mkOption {
type = jsonFormat.type;
default = { };
description = "The default settings are only read if the settings.json file don't exist";
};
session = lib.mkOption {
type = jsonFormat.type;
default = { };
description = "The default session are only read if the session.json file don't exist";
};
};
plugins = lib.mkOption { plugins = lib.mkOption {
type = attrsOf (types.submodule ({ config, ... }: { type = attrsOf (types.submodule ({ config, ... }: {
options = { options = {
@@ -82,12 +97,29 @@ in {
configs.dms = "${ configs.dms = "${
dmsPkgs.dankMaterialShell dmsPkgs.dankMaterialShell
}/etc/xdg/quickshell/DankMaterialShell"; }/etc/xdg/quickshell/DankMaterialShell";
activeConfig = lib.mkIf cfg.enableSystemd "dms"; };
systemd = lib.mkIf cfg.enableSystemd { systemd.user.services.dms = lib.mkIf cfg.enableSystemd {
enable = true; Unit = {
target = "graphical-session.target"; Description = "DankMaterialShell";
PartOf = [ config.wayland.systemd.target ];
After = [ config.wayland.systemd.target ];
}; };
Service = {
ExecStart = lib.getExe dmsPkgs.dmsCli + " run";
Restart = "on-failure";
};
Install.WantedBy = [ config.wayland.systemd.target ];
};
xdg.configFile."DankMaterialShell/default-settings.json" = lib.mkIf (cfg.default.settings != { }) {
source = jsonFormat.generate "default-settings.json" cfg.default.settings;
};
xdg.stateFile."DankMaterialShell/default-session.json" = lib.mkIf (cfg.default.session != { }) {
source = jsonFormat.generate "default-session.json" cfg.default.session;
}; };
xdg.configFile = lib.mapAttrs' (name: plugin: { xdg.configFile = lib.mapAttrs' (name: plugin: {