-
-
Save x43x61x69/9a5a231a25426e8a2cc0f7c24cfdaed9 to your computer and use it in GitHub Desktop.
#!/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 (muzzol@gmail.com) | |
# | |
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 "" |
I have occasionally encountered the issue that the DisplayID was not "0". To resolve this issue, I modified the 'vnc_startup.sh' script. Now, it always retrieves and uses the current ID.
- vnc_startup.sh
#!/bin/bash
display_id=$(who | grep "pts/0" | sed -n 's/.*(\(:[0-9]\)).*/\1/p' | tr -d ':')
x11vnc -noxdamage -usepw -display :$display_id -no6 -forever -bg
@ch4d1 Nice
Outside of the script I had to run
sudo steamos-readonly disable
sudo pacman-key --populate holo
sudo steamos-readonly enable
And then ran the script again. I also ran this, but am not sure if it helped or not
sudo rm -rf /etc/pacman.d/gnupg
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?
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!
Thanks @edasque I was facing the same error and
sudo pacman-key --populate holo
resolved it for me 👍