A Python tool to manage and configure multi-monitor setups using EDID information, allowing users to apply predefined screen layouts with ease.
Project description
screenman
A Python tool to manage and configure multi-monitor setups using EDID information, allowing users to apply predefined screen layouts with ease.
Setup
$ screenman --help
Usage: screenman [OPTIONS]
Console script for screenman.
Options:
--log-level TEXT Set the logging level (e.g., DEBUG, INFO, WARNING, ERROR,
CRITICAL)
--log-file TEXT Set the log file path.
--print-info Print the connected screens and the corresponding
layout.If no layout is defined, the default layout 'auto'
is used.
--help Show this message and exit.
When wanting to setup a new screen layout, you can use the --print-info
flag to get the connected screens information. This information can be used to create a new screen layout.
$ screenman --print-info
<HDMI-2, UID: DL51145435704, primary: True, modes: 13, conn: True, rot: normal, enabled: True, res: (1920, 1080)>
Layout: auto
From that we can create our toml configuration file with the following content:
# the hierarchy of the configuration file is as follows:
# layouts.<layout_name>.<screen_uid>
[layouts.single_baetylus.DL51145435704]
primary = true
mode = [1920, 1080]
position = [0, 0]
rotation = "normal"
A more advanced screenman.toml configuration file can be found in the examples directory.
Usage
I have screenman --log-file ~/.local/logs/screenman.log --log-level DEBUG
mapped to a keybinding.
If you can't install screenman
with your package manager, you can also run it with uv
:
uv tool run screenman
Installation
pip release version
pip install screenman
pip live version
pip install git+https://github.com/Jimmy2027/screenman.git
portage
screenman
is available via Jimmy's overlay.
Either enable the repo or copy the ebuild to your local overlay.
Then run:
emerge -av screenman
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file screenman-0.1.1.tar.gz
.
File metadata
- Download URL: screenman-0.1.1.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3eafc3a0367e5ddb96c3c515834eb7e344d09a4e45f59ae83ac9c8a07bffa84f |
|
MD5 | 34cfdce74a1f092ea75756a7387f3240 |
|
BLAKE2b-256 | 248f5d192e301730b5a210d69a7d3018eb94761ecbe151b86e09c2fff1ddc1d7 |
Provenance
The following attestation bundles were made for screenman-0.1.1.tar.gz
:
- Repository: Jimmy2027/screenman
- Workflow: release.yaml
-
Statement type: https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
screenman-0.1.1.tar.gz
- Subject digest:
3eafc3a0367e5ddb96c3c515834eb7e344d09a4e45f59ae83ac9c8a07bffa84f
- Transparency log index: 147800143
- Transparency log integration time:
- Predicate type:
File details
Details for the file screenman-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: screenman-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97925f7039179aae6578174417992d07aa5dc3323b587956ce2b82c0117cde2b |
|
MD5 | d80423bc02f4d4bbf5da75909887cd94 |
|
BLAKE2b-256 | dbb2a9eaf0e4be956eb6f23dccda3e33caee2bb273baa2d3d3cceb96293a762f |
Provenance
The following attestation bundles were made for screenman-0.1.1-py3-none-any.whl
:
- Repository: Jimmy2027/screenman
- Workflow: release.yaml
-
Statement type: https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
screenman-0.1.1-py3-none-any.whl
- Subject digest:
97925f7039179aae6578174417992d07aa5dc3323b587956ce2b82c0117cde2b
- Transparency log index: 147800144
- Transparency log integration time:
- Predicate type: