dms-shell: 0.6.2 -> 1.0.2, add danklinux team (#470576)
This commit is contained in:
@@ -251,6 +251,15 @@ with lib.maintainers;
|
||||
shortName = "Cyberus Technology employees";
|
||||
};
|
||||
|
||||
danklinux = {
|
||||
members = [
|
||||
luckshiba
|
||||
marcusramberg
|
||||
];
|
||||
scope = "Maintain DankMaterialShell and related packages and modules from Dank Linux.";
|
||||
shortName = "Dank Linux";
|
||||
};
|
||||
|
||||
darwin = {
|
||||
github = "darwin-core";
|
||||
enableFeatureFreezePing = true;
|
||||
|
||||
@@ -20,6 +20,12 @@
|
||||
|
||||
- [LibreChat](https://www.librechat.ai/), open-source self-hostable ChatGPT clone with Agents and RAG APIs. Available as [services.librechat](#opt-services.librechat.enable).
|
||||
|
||||
- [DankMaterialShell](https://danklinux.com), a complete desktop shell for Wayland compositors built with Quickshell. Available as [programs.dms-shell](#opt-programs.dms-shell.enable).
|
||||
|
||||
- [dms-greeter](https://danklinux.com), a modern display manager greeter for DankMaterialShell that works with greetd and supports multiple Wayland compositors. Available as [services.displayManager.dms-greeter](#opt-services.displayManager.dms-greeter.enable).
|
||||
|
||||
- [dsearch](https://github.com/AvengeMedia/danksearch), a fast filesystem search service with fuzzy matching. Available as [programs.dsearch](#opt-programs.dsearch.enable).
|
||||
|
||||
- [udp-over-tcp](https://github.com/mullvad/udp-over-tcp), a tunnel for proxying UDP traffic over a TCP stream. Available as `services.udp-over-tcp`.
|
||||
|
||||
- [Komodo Periphery](https://github.com/moghtech/komodo), a multi-server Docker and Git deployment agent by Komodo. Available as [services.komodo-periphery](#opt-services.komodo-periphery.enable).
|
||||
|
||||
@@ -49,5 +49,5 @@ in
|
||||
systemd.user.services.dsearch.wantedBy = mkIf cfg.systemd.enable [ cfg.systemd.target ];
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ luckshiba ];
|
||||
meta.maintainers = lib.teams.danklinux.maintainers;
|
||||
}
|
||||
|
||||
@@ -14,10 +14,20 @@ let
|
||||
types
|
||||
optional
|
||||
optionals
|
||||
mapAttrs
|
||||
mapAttrs'
|
||||
filterAttrs
|
||||
;
|
||||
|
||||
cfg = config.programs.dms-shell;
|
||||
|
||||
path = [
|
||||
"programs"
|
||||
"dms-shell"
|
||||
];
|
||||
|
||||
builtInRemovedMsg = "This is now built-in in DMS and doesn't need additional dependencies.";
|
||||
|
||||
optionalPackages =
|
||||
optionals cfg.enableSystemMonitoring [ pkgs.dgop ]
|
||||
++ optionals cfg.enableClipboard [
|
||||
@@ -28,20 +38,33 @@ let
|
||||
pkgs.glib
|
||||
pkgs.networkmanager
|
||||
]
|
||||
++ optional cfg.enableBrightnessControl pkgs.brightnessctl
|
||||
++ optional cfg.enableColorPicker pkgs.hyprpicker
|
||||
++ optional cfg.enableDynamicTheming pkgs.matugen
|
||||
++ optional cfg.enableAudioWavelength pkgs.cava
|
||||
++ optional cfg.enableCalendarEvents pkgs.khal
|
||||
++ optional cfg.enableSystemSound pkgs.kdePackages.qtmultimedia;
|
||||
++ optional cfg.enableCalendarEvents pkgs.khal;
|
||||
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.dms-shell = {
|
||||
enable = mkEnableOption "DankMaterialShell, a complete desktop shell for Wayland compositors";
|
||||
|
||||
package = mkPackageOption pkgs "dms-shell" { };
|
||||
|
||||
systemd = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to enable DankMaterialShell systemd startup service.
|
||||
'';
|
||||
};
|
||||
|
||||
target = mkOption {
|
||||
type = types.str;
|
||||
default = "graphical-session.target";
|
||||
@@ -98,28 +121,6 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
enableBrightnessControl = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to install dependencies required for brightness and backlight control.
|
||||
This enables screen brightness adjustment widgets.
|
||||
|
||||
Requires: brightnessctl
|
||||
'';
|
||||
};
|
||||
|
||||
enableColorPicker = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to install dependencies required for color picking functionality.
|
||||
This enables on-screen color picker tools.
|
||||
|
||||
Requires: hyprpicker
|
||||
'';
|
||||
};
|
||||
|
||||
enableDynamicTheming = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
@@ -153,50 +154,79 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
enableSystemSound = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to install dependencies required for system sound support.
|
||||
This enables audio playback for system notifications and events.
|
||||
|
||||
Requires: qtmultimedia
|
||||
'';
|
||||
};
|
||||
|
||||
quickshell = {
|
||||
package = mkPackageOption pkgs "quickshell" { };
|
||||
};
|
||||
|
||||
plugins = mkOption {
|
||||
type = types.attrsOf (
|
||||
types.submodule {
|
||||
options = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Whether to enable this plugin";
|
||||
};
|
||||
src = 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;
|
||||
};
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.etc."xdg/quickshell/dms".source = "${cfg.package}/share/quickshell/dms";
|
||||
systemd.packages = lib.mkIf cfg.systemd.enable [ cfg.package ];
|
||||
|
||||
systemd.packages = [ cfg.package ];
|
||||
|
||||
systemd.user.services.dms = {
|
||||
systemd.user.services.dms = lib.mkIf cfg.systemd.enable {
|
||||
wantedBy = [ cfg.systemd.target ];
|
||||
restartTriggers = optional cfg.systemd.restartIfChanged "${cfg.package}/share/quickshell/dms";
|
||||
restartIfChanged = cfg.systemd.restartIfChanged;
|
||||
path = lib.mkForce [ ];
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
cfg.package
|
||||
cfg.quickshell.package
|
||||
pkgs.ddcutil
|
||||
pkgs.libsForQt5.qt5ct
|
||||
pkgs.kdePackages.qt6ct
|
||||
]
|
||||
++ optionalPackages;
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
fira-code
|
||||
inter
|
||||
material-symbols
|
||||
];
|
||||
environment.etc =
|
||||
mapAttrs'
|
||||
(name: value: {
|
||||
name = "xdg/quickshell/dms-plugins/${name}";
|
||||
inherit value;
|
||||
})
|
||||
(
|
||||
mapAttrs (name: plugin: {
|
||||
source = plugin.src;
|
||||
}) (filterAttrs (n: v: v.enable) cfg.plugins)
|
||||
);
|
||||
|
||||
services.power-profiles-daemon.enable = lib.mkDefault true;
|
||||
services.accounts-daemon.enable = lib.mkDefault true;
|
||||
hardware.i2c.enable = lib.mkDefault true;
|
||||
hardware.graphics.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ luckshiba ];
|
||||
meta.maintainers = lib.teams.danklinux.maintainers;
|
||||
}
|
||||
|
||||
@@ -13,16 +13,19 @@ let
|
||||
mkIf
|
||||
mkDefault
|
||||
mkPackageOption
|
||||
mkRemovedOptionModule
|
||||
literalExpression
|
||||
getExe
|
||||
makeBinPath
|
||||
optionalString
|
||||
concatMapStringsSep
|
||||
escapeShellArgs
|
||||
;
|
||||
|
||||
cfg = config.services.displayManager.dms-greeter;
|
||||
cfgAutoLogin = config.services.displayManager.autoLogin;
|
||||
|
||||
cacheDir = "/var/lib/dms-greeter";
|
||||
|
||||
greeterScript = pkgs.writeShellScriptBin "dms-greeter-start" ''
|
||||
export PATH=$PATH:${
|
||||
makeBinPath [
|
||||
@@ -30,18 +33,28 @@ let
|
||||
config.programs.${cfg.compositor.name}.package
|
||||
]
|
||||
}
|
||||
exec ${cfg.package}/share/quickshell/dms/Modules/Greetd/assets/dms-greeter \
|
||||
--command ${cfg.compositor.name} \
|
||||
-p ${cfg.package}/share/quickshell/dms \
|
||||
--cache-dir /var/lib/dms-greeter \
|
||||
${
|
||||
optionalString (
|
||||
cfg.compositor.customConfig != ""
|
||||
) "-C ${pkgs.writeText "dms-greeter-compositor-config" cfg.compositor.customConfig}"
|
||||
} \
|
||||
${optionalString cfg.logs.save ">> ${cfg.logs.path} 2>&1"}
|
||||
${
|
||||
escapeShellArgs (
|
||||
[
|
||||
"sh"
|
||||
"${cfg.package}/share/quickshell/dms/Modules/Greetd/assets/dms-greeter"
|
||||
"--cache-dir"
|
||||
cacheDir
|
||||
"--command"
|
||||
cfg.compositor.name
|
||||
"-p"
|
||||
"${cfg.package}/share/quickshell/dms"
|
||||
]
|
||||
++ lib.optionals (cfg.compositor.customConfig != "") [
|
||||
"-C"
|
||||
"${pkgs.writeText "dmsgreeter-compositor-config" cfg.compositor.customConfig}"
|
||||
]
|
||||
)
|
||||
} ${optionalString cfg.logs.save "> ${cfg.logs.path} 2>&1"}
|
||||
'';
|
||||
|
||||
jq = getExe pkgs.jq;
|
||||
|
||||
configFilesFromHome =
|
||||
if cfg.configHome != null then
|
||||
[
|
||||
@@ -180,7 +193,7 @@ in
|
||||
];
|
||||
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
enable = mkDefault true;
|
||||
settings = {
|
||||
default_session = {
|
||||
user = "dms-greeter";
|
||||
@@ -200,7 +213,7 @@ in
|
||||
material-symbols
|
||||
];
|
||||
|
||||
systemd.tmpfiles.settings."10-dms-greeter"."/var/lib/dms-greeter".d = {
|
||||
systemd.tmpfiles.settings."10-dms-greeter".${cacheDir}.d = {
|
||||
user = "dms-greeter";
|
||||
group = "dms-greeter";
|
||||
mode = "0750";
|
||||
@@ -211,40 +224,64 @@ in
|
||||
allConfigFiles = cfg.configFiles ++ configFilesFromHome;
|
||||
in
|
||||
''
|
||||
set -euo pipefail
|
||||
|
||||
cd /var/lib/dms-greeter || exit 1
|
||||
|
||||
${concatMapStringsSep "\n" (f: ''
|
||||
if [[ -f "${f}" ]]; then
|
||||
cp "${f}" . || true
|
||||
fi
|
||||
'') allConfigFiles}
|
||||
|
||||
# Handle session.json wallpaper path
|
||||
if [[ -f session.json ]]; then
|
||||
if wallpaper=$(${getExe pkgs.jq} -r '.wallpaperPath' session.json 2>/dev/null); then
|
||||
if [[ -f "$wallpaper" ]]; then
|
||||
cp "$wallpaper" wallpaper.jpg || true
|
||||
mv session.json session.orig.json
|
||||
${getExe pkgs.jq} '.wallpaperPath = "/var/lib/dms-greeter/wallpaper.jpg"' \
|
||||
session.orig.json > session.json || true
|
||||
cd ${cacheDir}
|
||||
${lib.concatStringsSep "\n" (
|
||||
lib.map (f: ''
|
||||
if [ -f "${f}" ]; then
|
||||
cp "${f}" .
|
||||
fi
|
||||
fi
|
||||
'') allConfigFiles
|
||||
)}
|
||||
|
||||
if [ -f session.json ]; then
|
||||
copy_wallpaper() {
|
||||
local path=$(${jq} -r ".$1 // empty" session.json)
|
||||
if [ -f "$path" ]; then
|
||||
cp "$path" "$2"
|
||||
${jq} ".$1 = \"${cacheDir}/$2\"" session.json > session.tmp
|
||||
mv session.tmp session.json
|
||||
fi
|
||||
}
|
||||
|
||||
copy_monitor_wallpapers() {
|
||||
${jq} -r ".$1 // {} | to_entries[] | .key + \":\" + .value" session.json 2>/dev/null | while IFS=: read monitor path; do
|
||||
local dest="$2-$(echo "$monitor" | tr -c '[:alnum:]' '-')"
|
||||
if [ -f "$path" ]; then
|
||||
cp "$path" "$dest"
|
||||
${jq} --arg m "$monitor" --arg p "${cacheDir}/$dest" ".$1[\$m] = \$p" session.json > session.tmp
|
||||
mv session.tmp session.json
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
copy_wallpaper "wallpaperPath" "wallpaper"
|
||||
copy_wallpaper "wallpaperPathLight" "wallpaper-light"
|
||||
copy_wallpaper "wallpaperPathDark" "wallpaper-dark"
|
||||
copy_monitor_wallpapers "monitorWallpapers" "wallpaper-monitor"
|
||||
copy_monitor_wallpapers "monitorWallpapersLight" "wallpaper-monitor-light"
|
||||
copy_monitor_wallpapers "monitorWallpapersDark" "wallpaper-monitor-dark"
|
||||
fi
|
||||
|
||||
# Rename colors file if it exists
|
||||
[[ -f dms-colors.json ]] && mv dms-colors.json colors.json || true
|
||||
if [ -f settings.json ]; then
|
||||
if cp "$(${jq} -r '.customThemeFile' settings.json)" custom-theme.json; then
|
||||
mv settings.json settings.orig.json
|
||||
${jq} '.customThemeFile = "${cacheDir}/custom-theme.json"' settings.orig.json > settings.json
|
||||
fi
|
||||
fi
|
||||
|
||||
# Fix ownership of all files
|
||||
chown -R "dms-greeter:dms-greeter" . || true
|
||||
mv dms-colors.json colors.json || :
|
||||
chown dms-greeter:dms-greeter * || :
|
||||
'';
|
||||
|
||||
services.displayManager.dms-greeter.configFiles = lib.mkIf (
|
||||
cfg.configHome != null
|
||||
) configFilesFromHome;
|
||||
|
||||
users.groups.dms-greeter = { };
|
||||
users.users.dms-greeter = {
|
||||
description = "DankMaterialShell greeter user";
|
||||
isSystemUser = true;
|
||||
home = "/var/lib/dms-greeter";
|
||||
home = cacheDir;
|
||||
homeMode = "0750";
|
||||
createHome = true;
|
||||
group = "dms-greeter";
|
||||
@@ -257,5 +294,5 @@ in
|
||||
services.libinput.enable = mkDefault true;
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ luckshiba ];
|
||||
meta.maintainers = lib.teams.danklinux.maintainers;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ buildGoModule (finalAttrs: {
|
||||
homepage = "https://github.com/AvengeMedia/dgop";
|
||||
changelog = "https://github.com/AvengeMedia/dgop/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ luckshiba ];
|
||||
teams = [ lib.teams.danklinux ];
|
||||
mainProgram = "dgop";
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
|
||||
@@ -7,68 +7,96 @@
|
||||
procps,
|
||||
nix-update-script,
|
||||
bashNonInteractive,
|
||||
fprintd,
|
||||
kdePackages,
|
||||
qt6,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "dms-shell";
|
||||
version = "0.6.2";
|
||||
buildGoModule (
|
||||
finalAttrs:
|
||||
let
|
||||
qmlPkgs = with kdePackages; [
|
||||
kirigami.unwrapped
|
||||
sonnet
|
||||
qtmultimedia
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AvengeMedia";
|
||||
repo = "DankMaterialShell";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-dLbiTWsKoF0if/Wqet/+L90ILdAaBqp+REGOou8uH3k=";
|
||||
};
|
||||
qmlImportPath = lib.concatStringsSep ":" (map (o: "${o}/${qt6.qtbase.qtQmlPrefix}") qmlPkgs);
|
||||
qtPluginPath = lib.concatStringsSep ":" (map (o: "${o}/${qt6.qtbase.qtPluginPrefix}") qmlPkgs);
|
||||
in
|
||||
{
|
||||
pname = "dms-shell";
|
||||
version = "1.0.2";
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/core";
|
||||
src = fetchFromGitHub {
|
||||
owner = "AvengeMedia";
|
||||
repo = "DankMaterialShell";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-rWjWYu5rs3ZOJ4YJpvIscBZSYu74thJHc0VYyYKJTUc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-nc4CvEPfJ6l16/zmhnXr1jqpi6BeSXd3g/51djbEfpQ=";
|
||||
sourceRoot = "${finalAttrs.src.name}/core";
|
||||
|
||||
ldflags = [
|
||||
"-w"
|
||||
"-s"
|
||||
"-X main.Version=${finalAttrs.version}"
|
||||
];
|
||||
vendorHash = "sha256-2PCqiW4frxME8IlmwWH5ktznhd/G1bah5Ae4dp0HPTQ=";
|
||||
|
||||
subPackages = [ "cmd/dms" ];
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X main.Version=${finalAttrs.version}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
makeWrapper
|
||||
];
|
||||
subPackages = [ "cmd/dms" ];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/quickshell
|
||||
cp -r ${finalAttrs.src}/quickshell $out/share/quickshell/dms
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
wrapProgram $out/bin/dms --add-flags "-c $out/share/quickshell/dms"
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/quickshell/dms
|
||||
cp -r ${finalAttrs.src}/quickshell/. $out/share/quickshell/dms/
|
||||
|
||||
install -Dm644 ${finalAttrs.src}/quickshell/assets/systemd/dms.service \
|
||||
$out/lib/systemd/user/dms.service
|
||||
substituteInPlace $out/lib/systemd/user/dms.service \
|
||||
--replace-fail /usr/bin/dms $out/bin/dms \
|
||||
--replace-fail /usr/bin/pkill ${procps}/bin/pkill
|
||||
install -D ${finalAttrs.src}/assets/dms-open.desktop \
|
||||
$out/share/applications/dms-open.desktop
|
||||
install -D ${finalAttrs.src}/core/assets/danklogo.svg \
|
||||
$out/share/hicolor/scalable/apps/danklogo.svg
|
||||
|
||||
substituteInPlace $out/share/quickshell/dms/Modules/Greetd/assets/dms-greeter \
|
||||
--replace-fail /bin/bash ${bashNonInteractive}/bin/bash
|
||||
wrapProgram $out/bin/dms \
|
||||
--add-flags "-c $out/share/quickshell/dms" \
|
||||
--prefix "NIXPKGS_QT6_QML_IMPORT_PATH" ":" "${qmlImportPath}" \
|
||||
--prefix "QT_PLUGIN_PATH" ":" "${qtPluginPath}"
|
||||
|
||||
installShellCompletion --cmd dms \
|
||||
--bash <($out/bin/dms completion bash) \
|
||||
--fish <($out/bin/dms completion fish) \
|
||||
--zsh <($out/bin/dms completion zsh)
|
||||
'';
|
||||
install -Dm644 ${finalAttrs.src}/assets/systemd/dms.service \
|
||||
$out/lib/systemd/user/dms.service
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
substituteInPlace $out/lib/systemd/user/dms.service \
|
||||
--replace-fail /usr/bin/dms $out/bin/dms \
|
||||
--replace-fail /usr/bin/pkill ${procps}/bin/pkill
|
||||
|
||||
meta = {
|
||||
description = "Desktop shell for wayland compositors built with Quickshell & GO";
|
||||
homepage = "https://danklinux.com";
|
||||
changelog = "https://github.com/AvengeMedia/DankMaterialShell/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ luckshiba ];
|
||||
mainProgram = "dms";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
substituteInPlace $out/share/quickshell/dms/Modules/Greetd/assets/dms-greeter \
|
||||
--replace-fail /bin/bash ${bashNonInteractive}/bin/bash
|
||||
|
||||
substituteInPlace $out/share/quickshell/dms/assets/pam/fprint \
|
||||
--replace-fail pam_fprintd.so ${fprintd}/lib/security/pam_fprintd.so
|
||||
|
||||
installShellCompletion --cmd dms \
|
||||
--bash <($out/bin/dms completion bash) \
|
||||
--fish <($out/bin/dms completion fish) \
|
||||
--zsh <($out/bin/dms completion zsh)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "DankMaterialShell - Desktop shell for wayland compositors built with Quickshell & GO";
|
||||
homepage = "https://danklinux.com";
|
||||
changelog = "https://github.com/AvengeMedia/DankMaterialShell/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
teams = [ lib.teams.danklinux ];
|
||||
mainProgram = "dms";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
)
|
||||
|
||||
@@ -47,7 +47,7 @@ buildGoModule (finalAttrs: {
|
||||
homepage = "https://github.com/AvengeMedia/danksearch";
|
||||
changelog = "https://github.com/AvengeMedia/danksearch/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ luckshiba ];
|
||||
teams = [ lib.teams.danklinux ];
|
||||
mainProgram = "dsearch";
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user