Skip to main content

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


Download files

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

Source Distribution

screenman-0.1.1.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

screenman-0.1.1-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

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

Hashes for screenman-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3eafc3a0367e5ddb96c3c515834eb7e344d09a4e45f59ae83ac9c8a07bffa84f
MD5 34cfdce74a1f092ea75756a7387f3240
BLAKE2b-256 248f5d192e301730b5a210d69a7d3018eb94761ecbe151b86e09c2fff1ddc1d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for screenman-0.1.1.tar.gz:

Publisher: GitHub
  • Repository: Jimmy2027/screenman
  • Workflow: release.yaml
Attestations:
  • 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:

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

Hashes for screenman-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 97925f7039179aae6578174417992d07aa5dc3323b587956ce2b82c0117cde2b
MD5 d80423bc02f4d4bbf5da75909887cd94
BLAKE2b-256 dbb2a9eaf0e4be956eb6f23dccda3e33caee2bb273baa2d3d3cceb96293a762f

See more details on using hashes here.

Provenance

The following attestation bundles were made for screenman-0.1.1-py3-none-any.whl:

Publisher: GitHub
  • Repository: Jimmy2027/screenman
  • Workflow: release.yaml
Attestations:
  • 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:

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