handheld-daemon-ui: init at 3.2.3 (#305027)

Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Co-authored-by: Arne Keller <2012gdwu+github@posteo.de>
This commit is contained in:
Toast 2024-11-19 11:17:59 +01:00 committed by GitHub
parent 026f90fd3a
commit d5808aee19
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 56 additions and 1 deletions

View File

@ -11,6 +11,11 @@ in
enable = mkEnableOption "Handheld Daemon"; enable = mkEnableOption "Handheld Daemon";
package = mkPackageOption pkgs "handheld-daemon" { }; package = mkPackageOption pkgs "handheld-daemon" { };
ui = {
enable = mkEnableOption "Handheld Daemon UI";
package = mkPackageOption pkgs "handheld-daemon-ui" { };
};
user = mkOption { user = mkOption {
type = types.str; type = types.str;
description = '' description = ''
@ -20,7 +25,10 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ]; services.handheld-daemon.ui.enable = mkDefault true;
environment.systemPackages = [
cfg.package
] ++ lib.optional cfg.ui.enable cfg.ui.package;
services.udev.packages = [ cfg.package ]; services.udev.packages = [ cfg.package ];
systemd.packages = [ cfg.package ]; systemd.packages = [ cfg.package ];
@ -31,6 +39,11 @@ in
restartIfChanged = true; restartIfChanged = true;
path = mkIf cfg.ui.enable [
cfg.ui.package
pkgs.lsof
];
serviceConfig = { serviceConfig = {
ExecStart = "${ lib.getExe cfg.package } --user ${ cfg.user }"; ExecStart = "${ lib.getExe cfg.package } --user ${ cfg.user }";
Nice = "-12"; Nice = "-12";

View File

@ -0,0 +1,42 @@
{
lib,
appimageTools,
fetchurl,
}:
let
pname = "handheld-daemon-ui";
version = "3.2.3";
src = fetchurl {
url = "https://github.com/hhd-dev/hhd-ui/releases/download/v${version}/hhd-ui.Appimage";
hash = "sha256-VhJrOvE+BebJIAeQlwOOsPfqSrvBnJQavGT7glTrG2o=";
};
extractedFiles = appimageTools.extractType2 { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
# Handheld-daemon expects the UI binary to be called hhd-ui
mv $out/bin/${pname}* $out/bin/hhd-ui
mkdir -p $out/share/applications
substitute ${extractedFiles}/hhd-ui.desktop \
$out/share/applications/hhd-ui.desktop \
--replace-fail "Exec=AppRun" "Exec=hhd-ui" \
--replace-fail "Categories=game;" "Categories=Game;"
iconDir=$out/share/icons/hicolor/512x512/apps
mkdir -p $iconDir
cp ${extractedFiles}/hhd-ui.png $iconDir
'';
meta = {
description = "UI for the Handheld Daemon";
homepage = "https://github.com/hhd-dev/hhd-ui";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ toast ];
mainProgram = "hhd-ui";
platforms = [ "x86_64-linux" ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
}