Skip to main content

A simple screen sharing server for modern GNU/LINUX desktops!

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

servem-0.1.0.tar.gz (47.5 kB view details)

Uploaded Source

Built Distribution

serveM-0.1.0-py3-none-any.whl (35.7 kB view details)

Uploaded Python 3

File details

Details for the file servem-0.1.0.tar.gz.

File metadata

  • Download URL: servem-0.1.0.tar.gz
  • Upload date:
  • Size: 47.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for servem-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c8670056aa1c3d98214472e17cf5ece6a1438e10f204f0f1a67325c4007dba82
MD5 59725bdcff36d4aa350125156149c94b
BLAKE2b-256 f763c7664768ae70d3b27e9112d6a856d913c1b0469acf045da44d63055ee312

See more details on using hashes here.

File details

Details for the file serveM-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: serveM-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 35.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for serveM-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b4dc1a250d072afa16c47de04502c5be0e6e2e796574c245257750d08e2f3d7e
MD5 1b5a557a5f93513d4fe52277167b252f
BLAKE2b-256 5c0c87ef53d0f09b0a719fefaf9656d8b74ac25b05459df631b0965b0b57927b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page