Last active
July 25, 2025 17:14
-
-
Save x43x61x69/9a5a231a25426e8a2cc0f7c24cfdaed9 to your computer and use it in GitHub Desktop.
Steam Deck VNC Installation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Script for installing x11vnc on Steam Deck. | |
# | |
# Install: | |
# | |
# sh -c "$(curl -fsSL https://gist.githubusercontent.com/x43x61x69/9a5a231a25426e8a2cc0f7c24cfdaed9/raw/vnc_install.sh?$RANDOM)" | |
# | |
# This will modify root filesystem so it will probably get | |
# overwrite on system updates but is totally ok executing | |
# it several times, so if something stops working just | |
# launch it again. | |
# | |
# If you like seeing the terminal window, change | |
# "Terminal=false" to "Terminal=true" for the desktop entries below. | |
# | |
# Original script: àngel "mussol" bosch ([email protected]) | |
# | |
echo -n "Checking root permissions: " | |
if [ "$(id -ru)" == "0" ]; then | |
echo "OK" | |
else | |
echo "user is $(whoami), trying again as root" | |
exec sudo sh -c "$(curl -fsSL https://gist.githubusercontent.com/x43x61x69/9a5a231a25426e8a2cc0f7c24cfdaed9/raw/vnc_install.sh?$RANDOM)" | |
exit 0 | |
fi | |
## system related comands | |
echo "Disabling readonly filesystem" | |
steamos-readonly disable | |
if [ ! -e "/etc/pacman.d/gnupg/trustdb.gpg" ]; then | |
echo "Initalizing pacman keys" | |
pacman-key --init | |
pacman-key --populate archlinux | |
fi | |
echo "Installing package" | |
pacman -Sy --noconfirm x11vnc | |
echo "Re-enabling readonly filesystem" | |
steamos-readonly enable | |
## user related commands | |
DECK_USER=$(grep "^User=" /etc/sddm.conf.d/steamos.conf | cut -d"=" -f2) | |
echo "Creating desktop entries" | |
mkdir -p "/home/${DECK_USER}/Desktop/VNC/" | |
LAUNCHER_TEXT='[Desktop Entry] | |
Name=Start VNC | |
Exec=x11vnc -noxdamage -usepw -display :0 -no6 -forever -bg | |
Icon=/usr/share/app-info/icons/archlinux-arch-community/64x64/x11vnc_computer.png | |
Terminal=false | |
Type=Application | |
StartupNotify=false' | |
echo "$LAUNCHER_TEXT" > "/home/${DECK_USER}/Desktop/VNC/Start VNC.desktop" | |
chown "${DECK_USER}" "/home/${DECK_USER}/Desktop/VNC/Start VNC.desktop" | |
chmod +x "/home/${DECK_USER}/Desktop/VNC/Start VNC.desktop" | |
LAUNCHER_TEXT='[Desktop Entry] | |
Name=Stop VNC | |
Exec=killall x11vnc | |
Icon=/usr/share/app-info/icons/archlinux-arch-community/64x64/x11vnc_computer.png | |
Terminal=false | |
Type=Application | |
StartupNotify=false' | |
echo "$LAUNCHER_TEXT" > "/home/${DECK_USER}/Desktop/VNC/Stop VNC.desktop" | |
chown "${DECK_USER}" "/home/${DECK_USER}/Desktop/VNC/Stop VNC.desktop" | |
chmod +x "/home/${DECK_USER}/Desktop/VNC/Stop VNC.desktop" | |
LAUNCHER_TEXT='[Desktop Entry] | |
Name=Set VNC Password | |
Exec=sudo x11vnc -storepasswd; read -s -n 1 -p "Press any key to continue . . ." | |
Icon=/usr/share/app-info/icons/archlinux-arch-community/64x64/x11vnc_computer.png | |
Terminal=true | |
Type=Application | |
StartupNotify=false' | |
echo "$LAUNCHER_TEXT" > "/home/${DECK_USER}/Desktop/VNC/Set VNC Password.desktop" | |
chown "${DECK_USER}" "/home/${DECK_USER}/Desktop/VNC/Set VNC Password.desktop" | |
chmod +x "/home/${DECK_USER}/Desktop/VNC/Set VNC Password.desktop" | |
LAUNCHER_TEXT='[Desktop Entry] | |
Name=Reinstall VNC | |
Exec=sudo sh -c "$(curl -fsSL https://gist.githubusercontent.com/x43x61x69/9a5a231a25426e8a2cc0f7c24cfdaed9/raw/vnc_install.sh?$RANDOM)" | |
Icon=/usr/share/app-info/icons/archlinux-arch-community/64x64/x11vnc_computer.png | |
Terminal=true | |
Type=Application | |
StartupNotify=false' | |
echo "$LAUNCHER_TEXT" > "/home/${DECK_USER}/Desktop/VNC/Reinstall VNC.desktop" | |
chown "${DECK_USER}" "/home/${DECK_USER}/Desktop/VNC/Reinstall VNC.desktop" | |
chmod +x "/home/${DECK_USER}/Desktop/VNC/Reinstall VNC.desktop" | |
SCRIPT_TEXT='#!/bin/bash | |
x11vnc -noxdamage -usepw -display :0 -no6 -forever -bg' | |
echo "$SCRIPT_TEXT" > "/home/${DECK_USER}/Desktop/VNC/vnc_startup.sh" | |
chown "${DECK_USER}" "/home/${DECK_USER}/Desktop/VNC/vnc_startup.sh" | |
chmod +x "/home/${DECK_USER}/Desktop/VNC/vnc_startup.sh" | |
if [ ! -f "/home/${DECK_USER}/.vnc/passwd" ]; then | |
echo "Creating VNC password" | |
sudo -H -u "${DECK_USER}" bash -c "x11vnc -storepasswd" | |
fi | |
echo "Done!" | |
read -s -n 1 -p "Press any key to continue . . ." | |
echo "" |
Thanks @edasque I was facing the same error and
sudo pacman-key --populate holo
resolved it for me 👍
this was sufficient for me to install VNC today. thank you!
please replace some of the above, from xone_install_or_update.sh(I fixed up some things, though), with...
# Check if the user has sudo privileges
# If not, prompt the user for a password
if ! sudo -n true 2>/dev/null; then
if ! zenity --password --title="Sudo password" | eval sudo -S echo "" "$REDIRECT"; then
zenity --error --text="Sorry, you need to have sudo privileges to run this script." --title="Error"
exit 1
fi
fi
# If output of `sudo steamos-readonly status` is "enabled", disable it
if [[ "$(sudo steamos-readonly status)" = "enabled" ]]; then
sudo steamos-readonly disable
KEEP_READ_ONLY="true"
fi
# If pacman-key is not initialised, initialise it
if ! eval pacman-key --list-keys >/dev/null 2>&1; then
echo -e "\e[1mInitialising pacman...\e[0m"
echo ""
sudo pacman-key --init
fi
echo "Refreshing pacman keys..."
# Always populate archlinux and holo keys, quick enough to do every time
# TODO: Only populate if not already populated
sudo pacman-key --populate archlinux holo >/dev/null 2>&1
# Re enable steamos-readonly if it was enabled before
if [[ $KEEP_READ_ONLY = "true" ]]; then
sudo steamos-readonly enable
fi
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Been trying everything to get x11vnc installed but always end up with
:: Synchronizing package databases...
error: failed to synchronize all databases (unable to lock database)
Re-enabling readonly filesystem
Any fixes for Sept 2024?