feat: add different rustdesks for configs
This commit is contained in:
46
hosts/nb/modules/desktop/rustdesk.nix
Normal file
46
hosts/nb/modules/desktop/rustdesk.nix
Normal 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
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user