feat: add different rustdesks for configs

This commit is contained in:
2025-06-05 19:29:00 +02:00
parent a18a0e913d
commit 30e75d0ad5
5 changed files with 90 additions and 4 deletions

View File

@@ -10,6 +10,8 @@ in {
./signal-work.nix
./thunderbird.nix
./bitwarden.nix
./rustdesk.nix
./rustdesk-epicenter.nix
];
environment.systemPackages = with pkgs; [
@@ -65,8 +67,6 @@ in {
pinentry
rbw
rofi-rbw
# unstable.rustdesk
rustdesk-flutter
thunderbird
vlc
wl-clipboard

View File

@@ -0,0 +1,38 @@
{ config, pkgs, lib, ... }:
let
wrapperScript = pkgs.writeShellScriptBin "rustdesk-wrapper" ''
CONFIG_FILE="$HOME/.config/rustdesk/RustDesk2.toml"
CONFIG_DIR="$(dirname "$CONFIG_FILE")"
if [ ! -f "$CONFIG_FILE" ]; then
${pkgs.rustdesk-flutter}/bin/rustdesk &
RUSTDESK_PID=$!
sleep 3
kill $RUSTDESK_PID 2>/dev/null || true
sleep 1
fi
if [ -f "$CONFIG_FILE" ]; then
sed -i "s|^rendezvous_server = .*|rendezvous_server = 'tools.epicenter.works:21116'|" "$CONFIG_FILE"
sed -i "s|^custom-rendezvous-server = .*|custom-rendezvous-server = 'tools.epicenter.works'|" "$CONFIG_FILE"
sed -i "/^key\s*=.*/d" "$CONFIG_FILE"
fi
# Launch RustDesk
exec ${pkgs.rustdesk-flutter}/bin/rustdesk "$@"
'';
rustdeskEpicenterDesktopItem = pkgs.makeDesktopItem {
name = "rustdesk-epicenter";
desktopName = "RustDesk Epicenter";
exec = "${wrapperScript}/bin/rustdesk-wrapper";
icon = "rustdesk"; # Using the standard rustdesk icon
categories = [ "Network" "RemoteAccess" ];
comment = "Remote desktop software configured for Epicenter";
};
in {
environment.systemPackages = [
rustdeskEpicenterDesktopItem
];
}

View File

@@ -0,0 +1,46 @@
{ config, pkgs, lib, ... }:
let
wrapperScript = pkgs.writeShellScriptBin "rustdesk-wrapper" ''
CONFIG_FILE="$HOME/.config/rustdesk/RustDesk2.toml"
CONFIG_DIR="$(dirname "$CONFIG_FILE")"
KEY_VALUE="$(sed -e 's/[[:space:]]*$//' "${config.sops.secrets.rustdesk-cloonar-key.path}")"
if [ ! -f "$CONFIG_FILE" ]; then
${pkgs.rustdesk-flutter}/bin/rustdesk &
RUSTDESK_PID=$!
sleep 3
kill $RUSTDESK_PID 2>/dev/null || true
sleep 1
fi
# Update server configuration
if [ -f "$CONFIG_FILE" ]; then
sed -i "s|^rendezvous_server = .*|rendezvous_server = 'rustdesk.cloonar.com:21116'|" "$CONFIG_FILE"
sed -i "s|^custom-rendezvous-server = .*|custom-rendezvous-server = 'rustdesk.cloonar.com'|" "$CONFIG_FILE"
if grep -qE '^key\s*=' "$CONFIG_FILE"; then
sed -i "s|^key\s*=.*|key = '$KEY_VALUE'|" "$CONFIG_FILE"
else
printf "\nkey = '%s'\n" "$KEY_VALUE" >> "$CONFIG_FILE"
fi
fi
# Launch RustDesk
exec ${pkgs.rustdesk-flutter}/bin/rustdesk "$@"
'';
rustdeskDesktopItem = pkgs.makeDesktopItem {
name = "rustdesk-cloonar";
desktopName = "RustDesk Cloonar";
exec = "${wrapperScript}/bin/rustdesk-wrapper";
icon = "rustdesk";
categories = [ "Network" "RemoteAccess" ];
comment = "Remote desktop software configured for Cloonar";
};
in {
sops.secrets.rustdesk-cloonar-key.owner = "dominik";
environment.systemPackages = [
rustdeskDesktopItem
];
}