Sereen is a professional-grade Linux application designed to discover and control Epson projectors over a network. It bridges the gap between proprietary Epson protocols and open-source Linux desktop environments.
- Automatic Discovery: Fast, parallel TCP scanning and protocol identification.
- Dual-Protocol Support:
- ESC/VP.net: Support for Epson's proprietary control protocol.
- PJLink: Support for the industry-standard projector control protocol.
- Modern GUI: A sleek GTK4/LibAdwaita interface for effortless control.
- Remote Control: Manage Power, Input Sources, and Volume from your desktop.
- Screen Casting: Integrated GStreamer/PipeWire pipeline for wireless desktop mirroring.
To run the full GUI application, you will need the following system dependencies:
# Ubuntu/Debian
sudo apt update
sudo apt install -y python3-gi python3-gi-cairo gir1.2-gtk-4.0 gir1.2-adw-1 \
gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad-
Clone the repository:
git clone https://github.com/your-username/sereen.git cd sereen -
Install the Python package:
pip install .
To launch the GUI:
export PYTHONPATH=$PYTHONPATH:$(pwd)/src
python3 -m sereenTo use the CLI (works on Windows/Linux):
# Scan for projectors
python3 -m sereen.cli scan
# Turn on a projector
python3 -m sereen.cli power <IP_ADDRESS> onSereen is built with a driver-based architecture to ensure maximum compatibility:
- Discovery Layer: Probes the network for open ports (4352, 3620, 3621).
- Session Factory: Automatically instantiates the correct protocol driver.
- Protocol Layer: Standardizes commands across different Epson model families.
We welcome contributions! Please see CONTRIBUTING.md for details on how to get started.
Distributed under the MIT License. See LICENSE for more information.