Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ashwinvis/xrandr-extend
:computer::arrow_right: Extend a HIDPI screen to a normal DPI external display
https://github.com/ashwinvis/xrandr-extend
autorandr external-monitor hacktoberfest hidpi linux python x11 xrandr
Last synced: 21 days ago
JSON representation
:computer::arrow_right: Extend a HIDPI screen to a normal DPI external display
- Host: GitHub
- URL: https://github.com/ashwinvis/xrandr-extend
- Owner: ashwinvis
- License: other
- Created: 2018-09-21T07:48:34.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2024-01-06T15:52:24.000Z (10 months ago)
- Last Synced: 2024-10-15T20:22:42.759Z (about 1 month ago)
- Topics: autorandr, external-monitor, hacktoberfest, hidpi, linux, python, x11, xrandr
- Language: Python
- Homepage:
- Size: 103 KB
- Stars: 129
- Watchers: 4
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: HISTORY.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
xrandr-extend
=============[![image](https://img.shields.io/pypi/v/xrandr_extend.svg)](https://pypi.python.org/pypi/xrandr_extend)
![python versions](https://img.shields.io/pypi/pyversions/xrandr-extend.svg)Extend a HIDPI screen to a normal DPI external display. This command line tool
implements various solutions described in the [HIDPI Arch Linux wiki
page](https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays).* Free software: GNU General Public License v3
[![asciicast](https://asciinema.org/a/mauTEQ1eHLajl2TiF0ZEH5k3X.svg)](https://asciinema.org/a/mauTEQ1eHLajl2TiF0ZEH5k3X)
## Installation
```sh
pip install xrandr-extend --user
```or alternatively use [pipx](https://pipxproject.github.io/pipx/docs/):
```sh
pipx install xrandr-extend
```## Configuration
If the installation was made using ``pip``, run:
```sh
python -m xrandr_extend.config
```Alternatively, if you did use ```pipx```, run:
```sh
pipx run --spec xrandr-extend python -m xrandr_extend.config
```instead.
For both case, this creates the config file `~/.config/xrandr-extend.cfg` which looks like this:
```ini
[provider:modesetting]
primary = eDP-1
hdmi = HDMI-1
vga = DP-1[provider:intel]
primary = eDP1
hdmi = HDMI1
vga = DP1[resolutions]
primary = 3200, 1800
hdmi = 1920, 1080
vga = 1920, 1200# [scaling]
# primary = 1.0
# hdmi = 2.0
# vga = 2.0# [rotation]
# hdmi = left
# vga = right
```The first few sections have the name in the format `[provider:display_driver]`.
Run `xrandr --listproviders` to find what your system has. The values in this
section should be given as `profile = monitor_name`, as in the output of
`xrandr --listmonitors` command. You may even remove existing sections and
add more sections for your *display driver*.Each line in the `[resolutions]` section signifies a *resolution profile* in
the format `profile = [width_in_pixels, height_in_pixels]`. The *profile*
`primary` should contain the resolution of your built-in display. You may edit
or remove the remaining values `hdmi` and `vga`.The `[scaling]` section contains the scale factors, which if uncommented,
overrides the scale factor computed from the resolutions.The `[rotation]` section specifies the directions to rotate the output contents
similarly to `xrandr --rotate`.## Quick reference
```console
usage: xrandr-extend [-h] [-p PRI_RES PRI_RES] [-e EXT_RES EXT_RES]
[-x EXT_SCALE] [-m] [-n] [-o] [-s] [-d]
profileExtend a HIDPI screen to a normal DPI external display
positional arguments:
profile Use preset external resolution profiles (available:
['hdmi', 'vga']).optional arguments:
-h, --help show this help message and exit
-p PRI_RES PRI_RES, --pri-res PRI_RES PRI_RES
Modify preset resolution of primary display (default: 1920, 1080)
-e EXT_RES EXT_RES, --ext-res EXT_RES EXT_RES
Modify preset resolution of external display (default based on
profile)
-x EXT_SCALE, --ext-scale EXT_SCALE
Sets the scale factor of external display (DPI of primary display /
DPI of external display), overriding scale factor estimation from
resolutions
-r {normal,left,right,inverted,same}, --rotate {normal,left,right,inverted,same}
Rotation can be one of the above strings. This causes the output
contents of external display to be rotated in the specified direction.
For example 'right' specifies a clockwise rotation, 'normal' orients
it horizontally and 'same'preserves the current orientation.
-m, --mirror Mirror the external display
-n, --pan Pan the position of external display
-o, --only Extend and use only external display
-s, --pos Set the position of external display explicitly
-d, --dry-run Preview command without executing itExamples
--------
# Built-in options or user-configured options are used when only the display
# profile is mentioned$ xrandr-extend --dry-run vga
$ xrandr-extend vga
$ xrandr-extend hdmi# Other options to extend the display
$ xrandr-extend --pan hdmi
$ xrandr-extend --only hdmi
$ xrandr-extend -e 1024 768 -n vga # Pan with custom external resolution
$ xrandr-extend -x 2.0 hdmi # Custom scale factor
$ xrandr-extend -r left hdmi # Custom direction to rotate
```# Credits
This package was created with
[Cookiecutter](https://github.com/audreyr/cookiecutter) and the
[ashwinvis/cookiecutter-pypackage](https://github.com/ashwinvis/cookiecutter-pypackage)
project template.