screenman


Namescreenman JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryA Python tool to manage and configure multi-monitor setups using EDID information, allowing users to apply predefined screen layouts with ease.
upload_time2024-11-09 15:18:38
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT license
keywords screenman
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # screenman

A Python tool to manage and configure multi-monitor setups using EDID information, allowing users to apply predefined screen layouts with ease.

## Setup

```terminal
$ 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.

```terminal
$ 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:

```toml
# 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](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`:
    
```bash
uv tool run screenman
```

## Installation

### pip release version

```bash
pip install screenman
```

### pip live version

```bash
pip install git+https://github.com/Jimmy2027/screenman.git
```

### portage

`screenman` is available via [Jimmy's overlay](https://github.com/Jimmy2027/overlay/blob/main/dev-python/screenman/screenman-9999.ebuild).
Either enable the repo or copy the ebuild to your local overlay.

Then run:

```bash
emerge -av screenman
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "screenman",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "screenman",
    "author": null,
    "author_email": "Hendrik Klug <hendrik.klug@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/24/8f/5d192e301730b5a210d69a7d3018eb94761ecbe151b86e09c2fff1ddc1d7/screenman-0.1.1.tar.gz",
    "platform": null,
    "description": "# screenman\n\nA Python tool to manage and configure multi-monitor setups using EDID information, allowing users to apply predefined screen layouts with ease.\n\n## Setup\n\n```terminal\n$ screenman --help\nUsage: screenman [OPTIONS]\n\n  Console script for screenman.\n\nOptions:\n  --log-level TEXT  Set the logging level (e.g., DEBUG, INFO, WARNING, ERROR,\n                    CRITICAL)\n  --log-file TEXT   Set the log file path.\n  --print-info      Print the connected screens and the corresponding\n                    layout.If no layout is defined, the default layout 'auto'\n                    is used.\n  --help            Show this message and exit.\n\n```\n\nWhen 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.\n\n```terminal\n$ screenman --print-info\n<HDMI-2, UID: DL51145435704, primary: True, modes: 13, conn: True, rot: normal, enabled: True, res: (1920, 1080)>\nLayout: auto\n```\n\nFrom that we can create our toml configuration file with the following content:\n\n```toml\n# the hierarchy of the configuration file is as follows:\n# layouts.<layout_name>.<screen_uid>\n[layouts.single_baetylus.DL51145435704]\nprimary = true\nmode = [1920, 1080]\nposition = [0, 0]\nrotation = \"normal\"\n```\n\nA more advanced screenman.toml configuration file can be found in the [examples](examples) directory.\n\n## Usage\nI have `screenman --log-file ~/.local/logs/screenman.log --log-level DEBUG` mapped to a keybinding.\n\nIf you can't install `screenman` with your package manager, you can also run it with `uv`:\n    \n```bash\nuv tool run screenman\n```\n\n## Installation\n\n### pip release version\n\n```bash\npip install screenman\n```\n\n### pip live version\n\n```bash\npip install git+https://github.com/Jimmy2027/screenman.git\n```\n\n### portage\n\n`screenman` is available via [Jimmy's overlay](https://github.com/Jimmy2027/overlay/blob/main/dev-python/screenman/screenman-9999.ebuild).\nEither enable the repo or copy the ebuild to your local overlay.\n\nThen run:\n\n```bash\nemerge -av screenman\n```\n",
    "bugtrack_url": null,
    "license": "MIT license",
    "summary": "A Python tool to manage and configure multi-monitor setups using EDID information, allowing users to apply predefined screen layouts with ease.",
    "version": "0.1.1",
    "project_urls": {
        "Homepage": "https://github.com/Jimmy2027/screenman"
    },
    "split_keywords": [
        "screenman"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dbb2a9eaf0e4be956eb6f23dccda3e33caee2bb273baa2d3d3cceb96293a762f",
                "md5": "d80423bc02f4d4bbf5da75909887cd94",
                "sha256": "97925f7039179aae6578174417992d07aa5dc3323b587956ce2b82c0117cde2b"
            },
            "downloads": -1,
            "filename": "screenman-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d80423bc02f4d4bbf5da75909887cd94",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 10864,
            "upload_time": "2024-11-09T15:18:37",
            "upload_time_iso_8601": "2024-11-09T15:18:37.001203Z",
            "url": "https://files.pythonhosted.org/packages/db/b2/a9eaf0e4be956eb6f23dccda3e33caee2bb273baa2d3d3cceb96293a762f/screenman-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "248f5d192e301730b5a210d69a7d3018eb94761ecbe151b86e09c2fff1ddc1d7",
                "md5": "34cfdce74a1f092ea75756a7387f3240",
                "sha256": "3eafc3a0367e5ddb96c3c515834eb7e344d09a4e45f59ae83ac9c8a07bffa84f"
            },
            "downloads": -1,
            "filename": "screenman-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "34cfdce74a1f092ea75756a7387f3240",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 15969,
            "upload_time": "2024-11-09T15:18:38",
            "upload_time_iso_8601": "2024-11-09T15:18:38.315724Z",
            "url": "https://files.pythonhosted.org/packages/24/8f/5d192e301730b5a210d69a7d3018eb94761ecbe151b86e09c2fff1ddc1d7/screenman-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-09 15:18:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Jimmy2027",
    "github_project": "screenman",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "screenman"
}
        
Elapsed time: 0.32158s