mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-24 13:32:50 -05:00
Add NixOS module (#734)
* default.nix: fix "wavelength" typo * Add nixos module typo fix * nix: refactor and fix nix modules * nix: fix NixOS module import * nix: revert quickshell option change * nix: fix nixosModules dmsPkgs definition --------- Co-authored-by: LuckShiba <luckshiba@protonmail.com>
This commit is contained in:
33
distro/nix/common.nix
Normal file
33
distro/nix/common.nix
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
dmsPkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.programs.dankMaterialShell;
|
||||||
|
in {
|
||||||
|
qmlPath = "${dmsPkgs.dankMaterialShell}/etc/xdg/quickshell/dms";
|
||||||
|
|
||||||
|
packages =
|
||||||
|
[
|
||||||
|
pkgs.material-symbols
|
||||||
|
pkgs.inter
|
||||||
|
pkgs.fira-code
|
||||||
|
|
||||||
|
pkgs.ddcutil
|
||||||
|
pkgs.libsForQt5.qt5ct
|
||||||
|
pkgs.kdePackages.qt6ct
|
||||||
|
|
||||||
|
dmsPkgs.dmsCli
|
||||||
|
]
|
||||||
|
++ lib.optional cfg.enableSystemMonitoring dmsPkgs.dgop
|
||||||
|
++ lib.optionals cfg.enableClipboard [pkgs.cliphist pkgs.wl-clipboard]
|
||||||
|
++ lib.optionals cfg.enableVPN [pkgs.glib pkgs.networkmanager]
|
||||||
|
++ lib.optional cfg.enableBrightnessControl pkgs.brightnessctl
|
||||||
|
++ lib.optional cfg.enableColorPicker pkgs.hyprpicker
|
||||||
|
++ lib.optional cfg.enableDynamicTheming pkgs.matugen
|
||||||
|
++ lib.optional cfg.enableAudioWavelength pkgs.cava
|
||||||
|
++ lib.optional cfg.enableCalendarEvents pkgs.khal
|
||||||
|
++ lib.optional cfg.enableSystemSound pkgs.kdePackages.qtmultimedia;
|
||||||
|
}
|
||||||
@@ -1,170 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
dmsPkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.programs.dankMaterialShell;
|
|
||||||
jsonFormat = pkgs.formats.json { };
|
|
||||||
in {
|
|
||||||
imports = [
|
|
||||||
(lib.mkRemovedOptionModule ["programs" "dankMaterialShell" "enableNightMode"] "Night mode is now always available.")
|
|
||||||
(lib.mkRenamedOptionModule ["programs" "dankMaterialShell" "enableSystemd"] ["programs" "dankMaterialShell" "systemd" "enable"])
|
|
||||||
];
|
|
||||||
options.programs.dankMaterialShell = with lib.types; {
|
|
||||||
enable = lib.mkEnableOption "DankMaterialShell";
|
|
||||||
|
|
||||||
systemd = {
|
|
||||||
enable = lib.mkEnableOption "DankMaterialShell systemd startup";
|
|
||||||
restartIfChanged = lib.mkOption {
|
|
||||||
type = bool;
|
|
||||||
default = true;
|
|
||||||
description = "Auto-restart dms.service when dankMaterialShell changes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
enableSystemMonitoring = lib.mkOption {
|
|
||||||
type = bool;
|
|
||||||
default = true;
|
|
||||||
description = "Add needed dependencies to use system monitoring widgets";
|
|
||||||
};
|
|
||||||
enableClipboard = lib.mkOption {
|
|
||||||
type = bool;
|
|
||||||
default = true;
|
|
||||||
description = "Add needed dependencies to use the clipboard widget";
|
|
||||||
};
|
|
||||||
enableVPN = lib.mkOption {
|
|
||||||
type = bool;
|
|
||||||
default = true;
|
|
||||||
description = "Add needed dependencies to use the VPN widget";
|
|
||||||
};
|
|
||||||
enableBrightnessControl = lib.mkOption {
|
|
||||||
type = bool;
|
|
||||||
default = true;
|
|
||||||
description = "Add needed dependencies to have brightness/backlight support";
|
|
||||||
};
|
|
||||||
enableColorPicker = lib.mkOption {
|
|
||||||
type = bool;
|
|
||||||
default = true;
|
|
||||||
description = "Add needed dependencies to have color picking support";
|
|
||||||
};
|
|
||||||
enableDynamicTheming = lib.mkOption {
|
|
||||||
type = bool;
|
|
||||||
default = true;
|
|
||||||
description = "Add needed dependencies to have dynamic theming support";
|
|
||||||
};
|
|
||||||
enableAudioWavelength = lib.mkOption {
|
|
||||||
type = bool;
|
|
||||||
default = true;
|
|
||||||
description = "Add needed dependencies to have audio waveleng support";
|
|
||||||
};
|
|
||||||
enableCalendarEvents = lib.mkOption {
|
|
||||||
type = bool;
|
|
||||||
default = true;
|
|
||||||
description = "Add calendar events support via khal";
|
|
||||||
};
|
|
||||||
enableSystemSound = lib.mkOption {
|
|
||||||
type = bool;
|
|
||||||
default = true;
|
|
||||||
description = "Add needed dependencies to have system sound support";
|
|
||||||
};
|
|
||||||
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 {
|
|
||||||
type = attrsOf (types.submodule ({ config, ... }: {
|
|
||||||
options = {
|
|
||||||
enable = lib.mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "Whether to link this plugin";
|
|
||||||
};
|
|
||||||
src = lib.mkOption {
|
|
||||||
type = types.path;
|
|
||||||
description = "Source to link to DMS plugins directory";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}));
|
|
||||||
default = {};
|
|
||||||
description = "DMS Plugins to install";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable
|
|
||||||
{
|
|
||||||
programs.quickshell = {
|
|
||||||
enable = true;
|
|
||||||
package = cfg.quickshell.package;
|
|
||||||
|
|
||||||
configs.dms = "${dmsPkgs.dankMaterialShell}/etc/xdg/quickshell/dms";
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services.dms = lib.mkIf cfg.systemd.enable {
|
|
||||||
Unit = {
|
|
||||||
Description = "DankMaterialShell";
|
|
||||||
PartOf = [ config.wayland.systemd.target ];
|
|
||||||
After = [ config.wayland.systemd.target ];
|
|
||||||
X-Restart-Triggers = lib.optional cfg.systemd.restartIfChanged config.programs.quickshell.configs.dms;
|
|
||||||
};
|
|
||||||
|
|
||||||
Service = {
|
|
||||||
ExecStart = lib.getExe dmsPkgs.dmsCli + " run --session";
|
|
||||||
Restart = "on-failure";
|
|
||||||
};
|
|
||||||
|
|
||||||
Install.WantedBy = [ config.wayland.systemd.target ];
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.stateFile."DankMaterialShell/default-session.json" = lib.mkIf (cfg.default.session != { }) {
|
|
||||||
source = jsonFormat.generate "default-session.json" cfg.default.session;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile = lib.mkMerge [
|
|
||||||
(lib.mapAttrs' (name: plugin: {
|
|
||||||
name = "DankMaterialShell/plugins/${name}";
|
|
||||||
value.source = plugin.src;
|
|
||||||
}) (lib.filterAttrs (n: v: v.enable) cfg.plugins))
|
|
||||||
{
|
|
||||||
"DankMaterialShell/default-settings.json" = lib.mkIf (cfg.default.settings != { }) {
|
|
||||||
source = jsonFormat.generate "default-settings.json" cfg.default.settings;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages =
|
|
||||||
[
|
|
||||||
pkgs.material-symbols
|
|
||||||
pkgs.inter
|
|
||||||
pkgs.fira-code
|
|
||||||
|
|
||||||
pkgs.ddcutil
|
|
||||||
pkgs.libsForQt5.qt5ct
|
|
||||||
pkgs.kdePackages.qt6ct
|
|
||||||
|
|
||||||
dmsPkgs.dmsCli
|
|
||||||
]
|
|
||||||
++ lib.optional cfg.enableSystemMonitoring dmsPkgs.dgop
|
|
||||||
++ lib.optionals cfg.enableClipboard [pkgs.cliphist pkgs.wl-clipboard]
|
|
||||||
++ lib.optionals cfg.enableVPN [pkgs.glib pkgs.networkmanager]
|
|
||||||
++ lib.optional cfg.enableBrightnessControl pkgs.brightnessctl
|
|
||||||
++ lib.optional cfg.enableColorPicker pkgs.hyprpicker
|
|
||||||
++ lib.optional cfg.enableDynamicTheming pkgs.matugen
|
|
||||||
++ lib.optional cfg.enableAudioWavelength pkgs.cava
|
|
||||||
++ lib.optional cfg.enableCalendarEvents pkgs.khal
|
|
||||||
++ lib.optional cfg.enableSystemSound pkgs.kdePackages.qtmultimedia;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
user = config.services.greetd.settings.default_session.user;
|
user = config.services.greetd.settings.default_session.user;
|
||||||
|
|
||||||
greeterScript = pkgs.writeShellScriptBin "dms-greeter" ''
|
greeterScript = pkgs.writeShellScriptBin "dms-greeter" ''
|
||||||
export PATH=$PATH:${lib.makeBinPath [ cfg.quickshell.package config.programs.${cfg.compositor.name}.package ]}
|
export PATH=$PATH:${lib.makeBinPath [cfg.quickshell.package config.programs.${cfg.compositor.name}.package]}
|
||||||
${lib.escapeShellArgs ([
|
${lib.escapeShellArgs ([
|
||||||
"sh"
|
"sh"
|
||||||
"${../../quickshell/Modules/Greetd/assets/dms-greeter}"
|
"${../../quickshell/Modules/Greetd/assets/dms-greeter}"
|
||||||
@@ -28,11 +28,9 @@
|
|||||||
])} ${lib.optionalString cfg.logs.save "> ${cfg.logs.path} 2>&1"}
|
])} ${lib.optionalString cfg.logs.save "> ${cfg.logs.path} 2>&1"}
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
imports =
|
imports = let
|
||||||
let
|
msg = "The option 'programs.dankMaterialShell.greeter.compositor.extraConfig' is deprecated. Please use 'programs.dankMaterialShell.greeter.compositor.customConfig' instead.";
|
||||||
msg = "The option 'programs.dankMaterialShell.greeter.compositor.extraConfig' is deprecated. Please use 'programs.dankMaterialShell.greeter.compositor.customConfig' instead.";
|
in [(lib.mkRemovedOptionModule ["programs" "dankMaterialShell" "greeter" "compositor" "extraConfig"] msg)];
|
||||||
in
|
|
||||||
[ (lib.mkRemovedOptionModule [ "programs" "dankMaterialShell" "greeter" "compositor" "extraConfig" ] msg) ];
|
|
||||||
|
|
||||||
options.programs.dankMaterialShell.greeter = {
|
options.programs.dankMaterialShell.greeter = {
|
||||||
enable = lib.mkEnableOption "DankMaterialShell greeter";
|
enable = lib.mkEnableOption "DankMaterialShell greeter";
|
||||||
@@ -77,7 +75,7 @@ in {
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = (config.users.users.${user} or { }) != { };
|
assertion = (config.users.users.${user} or {}) != {};
|
||||||
message = ''
|
message = ''
|
||||||
dmsgreeter: user set for greetd default_session ${user} does not exist. Please create it before referencing it.
|
dmsgreeter: user set for greetd default_session ${user} does not exist. Please create it before referencing it.
|
||||||
'';
|
'';
|
||||||
@@ -95,8 +93,10 @@ in {
|
|||||||
systemd.tmpfiles.settings."10-dmsgreeter" = {
|
systemd.tmpfiles.settings."10-dmsgreeter" = {
|
||||||
"/var/lib/dmsgreeter".d = {
|
"/var/lib/dmsgreeter".d = {
|
||||||
user = user;
|
user = user;
|
||||||
group = if config.users.users.${user}.group != ""
|
group =
|
||||||
then config.users.users.${user}.group else "greeter";
|
if config.users.users.${user}.group != ""
|
||||||
|
then config.users.users.${user}.group
|
||||||
|
else "greeter";
|
||||||
mode = "0755";
|
mode = "0755";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -106,7 +106,8 @@ in {
|
|||||||
if [ -f "${f}" ]; then
|
if [ -f "${f}" ]; then
|
||||||
cp "${f}" .
|
cp "${f}" .
|
||||||
fi
|
fi
|
||||||
'') cfg.configFiles)}
|
'')
|
||||||
|
cfg.configFiles)}
|
||||||
|
|
||||||
if [ -f session.json ]; then
|
if [ -f session.json ]; then
|
||||||
if cp "$(${lib.getExe pkgs.jq} -r '.wallpaperPath' session.json)" wallpaper.jpg; then
|
if cp "$(${lib.getExe pkgs.jq} -r '.wallpaperPath' session.json)" wallpaper.jpg; then
|
||||||
|
|||||||
94
distro/nix/home.nix
Normal file
94
distro/nix/home.nix
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
dmsPkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.programs.dankMaterialShell;
|
||||||
|
jsonFormat = pkgs.formats.json {};
|
||||||
|
common = import ./common.nix {inherit config pkgs lib dmsPkgs;};
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
./options.nix
|
||||||
|
(lib.mkRemovedOptionModule ["programs" "dankMaterialShell" "enableNightMode"] "Night mode is now always available.")
|
||||||
|
(lib.mkRenamedOptionModule ["programs" "dankMaterialShell" "enableSystemd"] ["programs" "dankMaterialShell" "systemd" "enable"])
|
||||||
|
];
|
||||||
|
|
||||||
|
options.programs.dankMaterialShell = with lib.types; {
|
||||||
|
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 {
|
||||||
|
type = attrsOf (types.submodule ({config, ...}: {
|
||||||
|
options = {
|
||||||
|
enable = lib.mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Whether to link this plugin";
|
||||||
|
};
|
||||||
|
src = lib.mkOption {
|
||||||
|
type = types.path;
|
||||||
|
description = "Source to link to DMS plugins directory";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
default = {};
|
||||||
|
description = "DMS Plugins to install";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable
|
||||||
|
{
|
||||||
|
programs.quickshell = {
|
||||||
|
enable = true;
|
||||||
|
package = cfg.quickshell.package;
|
||||||
|
|
||||||
|
configs.dms = common.qmlPath;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.services.dms = lib.mkIf cfg.systemd.enable {
|
||||||
|
Unit = {
|
||||||
|
Description = "DankMaterialShell";
|
||||||
|
PartOf = [config.wayland.systemd.target];
|
||||||
|
After = [config.wayland.systemd.target];
|
||||||
|
X-Restart-Triggers = lib.optional cfg.systemd.restartIfChanged common.qmlPath;
|
||||||
|
};
|
||||||
|
|
||||||
|
Service = {
|
||||||
|
ExecStart = lib.getExe dmsPkgs.dmsCli + " run --session";
|
||||||
|
Restart = "on-failure";
|
||||||
|
};
|
||||||
|
|
||||||
|
Install.WantedBy = [config.wayland.systemd.target];
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.stateFile."DankMaterialShell/default-session.json" = lib.mkIf (cfg.default.session != {}) {
|
||||||
|
source = jsonFormat.generate "default-session.json" cfg.default.session;
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile = lib.mkMerge [
|
||||||
|
(lib.mapAttrs' (name: plugin: {
|
||||||
|
name = "DankMaterialShell/plugins/${name}";
|
||||||
|
value.source = plugin.src;
|
||||||
|
}) (lib.filterAttrs (n: v: v.enable) cfg.plugins))
|
||||||
|
{
|
||||||
|
"DankMaterialShell/default-settings.json" = lib.mkIf (cfg.default.settings != {}) {
|
||||||
|
source = jsonFormat.generate "default-settings.json" cfg.default.settings;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = common.packages;
|
||||||
|
};
|
||||||
|
}
|
||||||
36
distro/nix/nixos.nix
Normal file
36
distro/nix/nixos.nix
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
dmsPkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
cfg = config.programs.dankMaterialShell;
|
||||||
|
common = import ./common.nix {inherit config pkgs lib dmsPkgs;};
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
./options.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable
|
||||||
|
{
|
||||||
|
environment.etc."xdg/quickshell/dms".source = "${dmsPkgs.dankMaterialShell}/etc/xdg/quickshell/dms";
|
||||||
|
|
||||||
|
systemd.user.services.dms = lib.mkIf cfg.systemd.enable {
|
||||||
|
description = "DankMaterialShell";
|
||||||
|
path = [cfg.quickshell.package];
|
||||||
|
|
||||||
|
partOf = ["graphical-session.target"];
|
||||||
|
after = ["graphical-session.target"];
|
||||||
|
wantedBy = ["graphical-session.target"];
|
||||||
|
restartTriggers = lib.optional cfg.systemd.restartIfChanged common.qmlPath;
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = lib.getExe dmsPkgs.dmsCli + " run --session";
|
||||||
|
Restart = "on-failure";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [cfg.quickshell.package] ++ common.packages;
|
||||||
|
};
|
||||||
|
}
|
||||||
68
distro/nix/options.nix
Normal file
68
distro/nix/options.nix
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) types;
|
||||||
|
in {
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
enableBrightnessControl = lib.mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Add needed dependencies to have brightness/backlight support";
|
||||||
|
};
|
||||||
|
enableColorPicker = lib.mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Add needed dependencies to have color picking support";
|
||||||
|
};
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
enableSystemSound = lib.mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Add needed dependencies to have system sound support";
|
||||||
|
};
|
||||||
|
quickshell = {
|
||||||
|
package = lib.mkPackageOption pkgs "quickshell" {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
21
flake.nix
21
flake.nix
@@ -24,6 +24,11 @@
|
|||||||
dgop = dgop.packages.${pkgs.stdenv.hostPlatform.system}.dgop;
|
dgop = dgop.packages.${pkgs.stdenv.hostPlatform.system}.dgop;
|
||||||
dankMaterialShell = self.packages.${pkgs.stdenv.hostPlatform.system}.dankMaterialShell;
|
dankMaterialShell = self.packages.${pkgs.stdenv.hostPlatform.system}.dankMaterialShell;
|
||||||
};
|
};
|
||||||
|
mkModuleWithDmsPkgs = path: args @ {pkgs, ...}: {
|
||||||
|
imports = [
|
||||||
|
(import path (args // {dmsPkgs = buildDmsPkgs pkgs;}))
|
||||||
|
];
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
formatter = forEachSystem (_: pkgs: pkgs.alejandra);
|
formatter = forEachSystem (_: pkgs: pkgs.alejandra);
|
||||||
|
|
||||||
@@ -81,20 +86,12 @@
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
homeModules.dankMaterialShell.default = {pkgs, ...}: let
|
homeModules.dankMaterialShell.default = mkModuleWithDmsPkgs ./distro/nix/home.nix;
|
||||||
dmsPkgs = buildDmsPkgs pkgs;
|
|
||||||
in {
|
|
||||||
imports = [./distro/nix/default.nix];
|
|
||||||
_module.args.dmsPkgs = dmsPkgs;
|
|
||||||
};
|
|
||||||
|
|
||||||
homeModules.dankMaterialShell.niri = import ./distro/nix/niri.nix;
|
homeModules.dankMaterialShell.niri = import ./distro/nix/niri.nix;
|
||||||
|
|
||||||
nixosModules.greeter = {pkgs, ...}: let
|
nixosModules.dankMaterialShell = mkModuleWithDmsPkgs ./distro/nix/nixos.nix;
|
||||||
dmsPkgs = buildDmsPkgs pkgs;
|
|
||||||
in {
|
nixosModules.greeter = mkModuleWithDmsPkgs ./distro/nix/greeter.nix;
|
||||||
imports = [./distro/nix/greeter.nix];
|
|
||||||
_module.args.dmsPkgs = dmsPkgs;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user