{ 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-* ''; }