x11vnc is a relatively smooth experience, but there are quite a few common use cases that would have been automated away if it’s a Windows program, namely have it start as a service on boot (before logging in)
It’s from babelmonk’s solution on StackExchange. Paraphrased here to make it easier to understand:
After installation, create the password file with -storepasswd switch AND specify the where you want the password saved as an optional argument, and I prefer /etc/x11vnc.pass:
sudo x11vnc -storepasswd {your password goes here} /etc/x11vnc.pass
which will be read by -rfbauth
switch for the x11vnc program.
Build your own (systemctl) service by creating /etc/systemd/system/x11vnc.service
:
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service
[Service]
ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
Restart-sec=2
[Install]
WantedBy=multi-user.target
Then, start with:
sudo systemctl daemon-reload
sudo systemctl start x11vnc
Enable the service (if not already done by previous commands) so it will start on boot
sudo systemctl enable x11vnc