mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-24 13:32:50 -05:00
107 lines
3.1 KiB
Nix
107 lines
3.1 KiB
Nix
{
|
|
lib,
|
|
dmsPkgs,
|
|
...
|
|
}:
|
|
let
|
|
inherit (lib) types;
|
|
path = [
|
|
"programs"
|
|
"dankMaterialShell"
|
|
];
|
|
|
|
builtInRemovedMsg = "This is now built-in in DMS and doesn't need additional dependencies.";
|
|
in
|
|
{
|
|
imports = [
|
|
(lib.mkRemovedOptionModule (path ++ [ "enableBrightnessControl" ]) builtInRemovedMsg)
|
|
(lib.mkRemovedOptionModule (path ++ [ "enableColorPicker" ]) builtInRemovedMsg)
|
|
(lib.mkRemovedOptionModule (
|
|
path ++ [ "enableSystemSound" ]
|
|
) "qtmultimedia is now included on dms-shell package.")
|
|
];
|
|
|
|
options.programs.dankMaterialShell = {
|
|
enable = lib.mkEnableOption "DankMaterialShell";
|
|
systemd = {
|
|
enable = lib.mkEnableOption "DankMaterialShell systemd startup";
|
|
restartIfChanged = lib.mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = "Auto-restart dms.service when dankMaterialShell changes";
|
|
};
|
|
};
|
|
enableSystemMonitoring = lib.mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = "Add needed dependencies to use system monitoring widgets";
|
|
};
|
|
enableClipboard = lib.mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = "Add needed dependencies to use the clipboard widget";
|
|
};
|
|
enableVPN = lib.mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = "Add needed dependencies to use the VPN widget";
|
|
};
|
|
enableDynamicTheming = lib.mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = "Add needed dependencies to have dynamic theming support";
|
|
};
|
|
enableAudioWavelength = lib.mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = "Add needed dependencies to have audio wavelength support";
|
|
};
|
|
enableCalendarEvents = lib.mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = "Add calendar events support via khal";
|
|
};
|
|
quickshell = {
|
|
package = lib.mkPackageOption dmsPkgs "quickshell" {
|
|
extraDescription = "The quickshell package to use (defaults to be built from source, in the commit 26531f due to unreleased features used by DMS).";
|
|
};
|
|
};
|
|
|
|
plugins = lib.mkOption {
|
|
type = types.attrsOf (
|
|
types.submodule {
|
|
options = {
|
|
enable = lib.mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = "Whether to enable this plugin";
|
|
};
|
|
src = lib.mkOption {
|
|
type = types.either types.package types.path;
|
|
description = "Source of the plugin package or path";
|
|
};
|
|
};
|
|
}
|
|
);
|
|
default = { };
|
|
description = "DMS Plugins to install and enable";
|
|
example = lib.literalExpression ''
|
|
{
|
|
DockerManager = {
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "LuckShiba";
|
|
repo = "DmsDockerManager";
|
|
rev = "v1.2.0";
|
|
sha256 = "sha256-VoJCaygWnKpv0s0pqTOmzZnPM922qPDMHk4EPcgVnaU=";
|
|
};
|
|
};
|
|
AnotherPlugin = {
|
|
enable = true;
|
|
src = pkgs.another-plugin;
|
|
};
|
|
}
|
|
'';
|
|
};
|
|
};
|
|
}
|