ServeM
A simple screen sharing server for modern GNU/LINUX desktops!
Installation
Dependencies
- A GNU/Linux desktop with GLib availability and the python 'gi' (GObject Introspection) (usually almost all popular distros came with it)
- Gstreamer and jpeg encoders installed. If not available execute the following commands
# for debian based distros
sudo apt-get install python3-gi gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good
# for fedora / ..
sudo dnf install python3-gi gstreamer1 gstreamer1-plugins-base gstreamer1-plugins-good
# arch linux
sudo pacman -S python-gobject gstreamer
- Pyhon dbus package.
pip install dbus-python
# prefer to install using system package manager
Lastly, the service is packaged as a Python CLI that can be installed with,
pip3 install servem
Usage
The tool is meant to be used as a command line utility. After installation of the package one can follow the bellow mentioned commands to get started
# to get usage details
servem --help
# spinning a simple server (with cursor position)
servem --cursor
The Story & The Name
BTW, this repo was not originally intended to be a Python one... (poor me, lacking time and expertise in GLib conventions). Anyway, hopefully, it's here and it's working.
Initially, I set out to create a C-based HTTP server purely for educational purposes :) So I named it Cerve (substituting the s in serve with c—pure brilliance!).
During development, I happened to watch this video
by a friend, Subin. It was a nice one, and the thing was, he was using Jitsi Meet to share his screen with his peer's computer and from there to a presentation screen using an HDMI port (as his MacBook running Asahi doesn't have an HDMI port).
And, as usual, due to some network issues, his Jitsi Meet session got disconnected midway. (Anyway, the presentation went well.)
So I thought, what about creating an HTTP server that shares my computer screen with my local peers, so that they can access it in a more reliable and low-latency fashion in such scenarios? One could even use it to share their desktop with others when no screen-sharing facility is available. I decided to build something like that in C and changed the project's initial name from Cerve to CerveM (this one sounds like the word 'sarvam' in Malayalam, meaning 'everything'). But after dealing with a bunch of Wayland issues, Linux display portals, and some convention-related matters, and due to my limited time (as I was on a tight schedule), I decided to drop the project and stick with a simple HTTP server instead.
Anyway, the feature I was thinking about seemed good. So I built this Python script that does the job during my train journey back to Ernakulam. And that's what it is—a simple script for a simple hack.
Metadata
Release files for serveM 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| servem-0.1.0.tar.gz | 47.5 kB | Without provenance | Details for servem-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| serveM-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for serveM-0.1.0-py3-none-any.whl |
Total release size: 83.2 kB
Release files / servem-0.1.0.tar.gz
| Download URL | servem-0.1.0.tar.gz |
|---|---|
| Size | 47.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c8670056aa1c3d98214472e17cf5ece6a1438e10f204f0f1a67325c4007dba82
|
|
BLAKE2b-256 checksum How to use checksums |
f763c7664768ae70d3b27e9112d6a856d913c1b0469acf045da44d63055ee312
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.9
|
Release files / serveM-0.1.0-py3-none-any.whl
| Download URL | serveM-0.1.0-py3-none-any.whl |
|---|---|
| Size | 35.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b4dc1a250d072afa16c47de04502c5be0e6e2e796574c245257750d08e2f3d7e
|
|
BLAKE2b-256 checksum How to use checksums |
5c0c87ef53d0f09b0a719fefaf9656d8b74ac25b05459df631b0965b0b57927b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.9
|
Security for serveM 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.