39 lines
1.2 KiB
Nix
39 lines
1.2 KiB
Nix
{ 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
|
|
];
|
|
}
|