WS-KCNHUB/machines/kcnhub/services/vnc-startup.nix

53 lines
1.4 KiB
Nix
Executable File

{ pkgs, ... }: {
# Create VNC startup scripts for different desktop environments
environment.etc."vnc/xstartup-plasma".source = pkgs.writeScript "xstartup-plasma" ''
#!/usr/bin/env bash
# Set up environment
export XDG_CURRENT_DESKTOP=KDE
export KDE_SESSION_VERSION=5
export QT_QPA_PLATFORM=xcb
# Start D-Bus if not running
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
eval $(dbus-launch --sh-syntax --exit-with-session)
fi
# Start Plasma desktop session
exec startplasma-x11
'';
environment.etc."vnc/xstartup-xfce".source = pkgs.writeScript "xstartup-xfce" ''
#!/usr/bin/env bash
# Set up environment
export XDG_CURRENT_DESKTOP=XFCE
export XDG_SESSION_DESKTOP=xfce
# Start D-Bus if not running
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
eval $(dbus-launch --sh-syntax --exit-with-session)
fi
# Start XFCE session
exec startxfce4
'';
environment.etc."vnc/xstartup-minimal".source = pkgs.writeScript "xstartup-minimal" ''
#!/usr/bin/env bash
# Minimal desktop with window manager only
xrdb $HOME/.Xresources
xsetroot -solid grey
# Start a simple window manager and terminal
icewm &
exec konsole
'';
# Make scripts executable
system.activationScripts.vnc-scripts = ''
chmod +x /etc/vnc/xstartup-*
'';
}