All computers in the same local network only need local network connections for screen sharing. Now, I have zero Internet access concerns while I share my screen to all other computers in my network.
In short, the computer to share screen runs this Python script that captures screenshots periodically and hosts screenshots as a streaming web service. Other computers then browse the screenshots with any web browser.
This tool can run on Linux, Windows and MAC.
-
Python 2.x or 3.x
-
Know issue: In Linux, this tool does not work with Wayland because of a security reason. You must use Xorg (by selecting Xorg on login).
-
pip install -r requirements.txt
-
In a directory, run "git clone https://github.com/yilmazchef/lightweight-screen-share.git". You will have a new directory "screenshare" with code inside.
-
To start the screen sharing service, run "python screenshare.py [-p port] [-w password]".
The default service port is 18331. Example commands are below.
# host screenshots on port 18331 and no password
python screenshare.py
# host screenshots on port 80 and password "abcdef"
python screenshare.py -p 80 -w abcdef
python screenshare.py --port 80 --password abcdef
-
On other computers, open a web browser and browse "http://serverip:port".
For example, if the server ip is 192.168.0.101 and the service port is 18331, then the URL to browse is "http://192.168.0.101:18331".
-
(Optional) Create a self-signed certificate and a private key. Or, obtain a signed certificate and private key.
# openssl req -x509 -newkey rsa:2048 -nodes -out cert.pem -keyout key.pem -days 9999
-
To start the screen sharing service with https, run "python screenshare.py -s [-p port] [-w password] [-c cert.pem -k key.pem]".
The default service port is 18331. Example commands are below.
# host screenshots on port 18331 and no password, https with default built-in certificate and private key
python screenshare.py -s
# host screenshots on port 443 and password "abcdef", https with default built-in certificate and private key
python screenshare.py -s -p 443 -w abcdef
python screenshare.py -s --port 443 --password abcdef
# host screenshots on port 18331 and no password, https with a certificate file and a private key file
python screenshare.py -s -c cert.pem -k key.pem
-
On other computers, open a web browser and browse "https://serverip:port".
For example, if the server ip is 192.168.0.101 and the service port is 18331, then the URL to browse is "https://192.168.0.101:18331".
You will see a warning about the self-signed certificate in the web browser. Accept the warning and continue.
In Linux, press CTRL \ (Control Backslash, not CTRL C)
In Windows, press CTRL Break