mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-24 13:32:50 -05:00
127 lines
3.6 KiB
Nix
127 lines
3.6 KiB
Nix
{
|
|
lib,
|
|
dmsPkgs,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
inherit (lib) types;
|
|
path = [
|
|
"programs"
|
|
"dank-material-shell"
|
|
];
|
|
jsonFormat = pkgs.formats.json { };
|
|
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 ++ [ "enableClipboard" ]) builtInRemovedMsg)
|
|
(lib.mkRemovedOptionModule (
|
|
path ++ [ "enableSystemSound" ]
|
|
) "qtmultimedia is now included on dms-shell package.")
|
|
./dms-rename.nix
|
|
];
|
|
|
|
options.programs.dank-material-shell = {
|
|
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 dank-material-shell changes";
|
|
};
|
|
};
|
|
|
|
dgop = {
|
|
package = lib.mkPackageOption pkgs "dgop" { };
|
|
};
|
|
|
|
enableSystemMonitoring = lib.mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = "Add needed dependencies to use system monitoring widgets";
|
|
};
|
|
|
|
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";
|
|
};
|
|
|
|
enableClipboardPaste = lib.mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
description = "Adds needed dependencies for directly pasting items from the clipboard history.";
|
|
};
|
|
|
|
quickshell = {
|
|
package = lib.mkPackageOption dmsPkgs "quickshell" {
|
|
extraDescription = "The quickshell package to use (defaults to be built from source, 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";
|
|
};
|
|
settings = lib.mkOption {
|
|
type = jsonFormat.type;
|
|
default = { };
|
|
description = "Plugin settings as an attribute set";
|
|
};
|
|
};
|
|
}
|
|
);
|
|
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;
|
|
};
|
|
}
|
|
'';
|
|
};
|
|
};
|
|
}
|