X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=README.md;h=b4740afd23cedb4b5d0c45ca8e3454148cedae20;hb=c78ca22a22eef1f77fc47a8dc3ed5dc2929d1ccc;hp=265979f989af50a56914af78d304ee6aaf7f5dfc;hpb=d0080eea9306d675dfdf8db86fe535123d5069c7;p=deb_pkgs%2Fautorandr.git diff --git a/README.md b/README.md index 265979f..b4740af 100644 --- a/README.md +++ b/README.md @@ -38,8 +38,10 @@ Contributors to this version of autorandr are: * Adrián López * andersonjacob * Alexander Wirt +* Brice Waegeneire * Chris Dunder * Christoph Gysin +* Christophe-Marie Duquesne * Daniel Hahler * Maciej Sitarz * Mathias Svensson @@ -55,6 +57,7 @@ Contributors to this version of autorandr are: * Timo Kaufmann * Tomasz Bogdal * Victor Häggqvist +* Jan-Oliver Kaiser ## Installation/removal @@ -62,20 +65,25 @@ You can use the `autorandr.py` script as a stand-alone binary. If you'd like to install it as a system-wide application, there is a Makefile included that also places some configuration files in appropriate directories such that autorandr is invoked automatically when a monitor is connected or removed, the system -wakes up from suspend, or a user logs into an X11 session. - -For Debian-based distributions (including Ubuntu) it is recommended to call -`make deb` to obtain a package that can be installed and removed with `dpkg`. - -On Arch Linux, there is [an aur package -available](https://aur.archlinux.org/packages/autorandr-git/). - -autorandr is also packaged in the [nix package manager](https://nixos.org/nix/) -repositories. - -On other distributions you can install autorandr by calling `make install` and -remove it by calling `make uninstall`. Run `make` without arguments to obtain a -list of what exactly will be installed. +wakes up from suspend, or a user logs into an X11 session. Run `make install` +as root to install it. + +If you prefer to have a system wide install managed by your package manager, +you can + +* Use the [official Arch package](https://www.archlinux.org/packages/community/any/autorandr/). +* Use the [official Debian package](https://packages.debian.org/sid/x11/autorandr) on sid +* Use the [ebuild from zugaina](https://gpo.zugaina.org/x11-misc/autorandr) on Gentoo. +* Use the + [nix package](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/misc/autorandr.nix) + on NixOS. +* Use the [SlackBuild](https://slackbuilds.org/repository/14.2/desktop/autorandr/) on Slackware. +* Use the automated nightlies generated by the + [openSUSE build service](https://build.opensuse.org/package/show/home:phillipberndt/autorandr) + for various distributions (RPM and DEB based). +* Use the [X binary package system](https://wiki.voidlinux.eu/XBPS)' on Void Linux +* Build a .deb-file from the source tree using `make deb`. +* Build a .rpm-file from the source tree using `make rpm`. We appreciate packaging scripts for other distributions, please file a pull request if you write one. @@ -90,9 +98,6 @@ or simply if you prefer to use a stable version. -Automatically generated packages versions are available from the -[openSUSE build service](https://build.opensuse.org/package/show/home:phillipberndt/autorandr). - ## How to use Save your current display configuration and setup with: @@ -142,13 +147,26 @@ names in your configuration directory to have autorandr use any of them as the default configuration without you having to change the system-wide configuration. -You can store default values for any option in an INI-file in -`~/.config/autorandr/settings.ini` in a section `config`. The most useful -candidate for doing that is `skip-options`, if you need it. +You can store default values for any option in an INI-file located at +`~/.config/autorandr/settings.ini`. In a `config` section, you may place any +default values in the form `option-name=option-argument`. -## Hook scripts +A common and effective use of this is to specify default `skip-options`, for +instance skipping the `gamma` setting if using +[`redshift`](https://github.com/jonls/redshift) as a daemon. To implement +the equivalent of `--skip-options gamma`, your `settings.ini` file should look +like this: -Three more scripts can be placed in the configuration directory (as +``` +[config] +skip-options=gamma +``` + +## Advanced usage + +### Hook scripts + +Three more scripts can be placed in the configuration directory (as defined by the [XDG spec](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html), usually `~/.config/autorandr` or `~/.autorandr` if you have an old installation for user configuration and `/etc/xdg/autorandr` for system wide configuration): @@ -185,18 +203,116 @@ configuration takes precedence, and it has a unique name. If you switch back from `docked` to `mobile`, `~/.config/autorandr/postswitch` -is executed instead of the `mobile` specific `postswitch`. - -In these scripts, some of autorandr's state is exposed as environment variables -prefixed with `AUTORANDR_`. The most useful one is `$AUTORANDR_CURRENT_PROFILE`. +is executed instead of the `docked` specific `postswitch`. If you experience issues with xrandr being executed too early after connecting a new monitor, then you can use a `predetect` script to delay the execution. Write e.g. `sleep 1` into that file to make autorandr wait a second before running `xrandr`. +#### Variables + +Some of autorandr's state is exposed as environment variables +prefixed with `AUTORANDR_`, such as: +- `AUTORANDR_CURRENT_PROFILE` +- `AUTORANDR_CURRENT_PROFILES` +- `AUTORANDR_PROFILE_FOLDER` +- `AUTORANDR_MONITORS` + +with the intention that they can be used within the hook scripts. + +For instance, you might display which profile has just been activated by +including the following in a `postswitch` script: +```sh +notify-send -i display "Display profile" "$AUTORANDR_CURRENT_PROFILE" +``` + +The one kink is that during `preswitch`, `AUTORANDR_CURRENT_PROFILE` is +reporting the *upcoming* profile rather than the *current* one. + +### Wildcard EDID matching + +The EDID strings in the `~/.config/autorandr/*/setup` files may contain an +asterisk to enable wildcard matching: Such EDIDs are matched against connected +monitors using the usual file name globbing rules. This can be used to create +profiles matching multiple (or any) monitors. + +### udev triggers with NVidia cards + +In order for `udev` to detect `drm` events from the native NVidia driver, the +kernel parameter `nvidia-drm.modeset` must be set to 1. For example, add a file +`/etc/modprobe.d/nvidia-drm-modeset.conf`: + +``` +options nvidia_drm modeset=1 +``` + ## Changelog +**autorandr 1.12** +* *2021-12-16* Switch default interpreter to Python 3 + +**autorandr 1.11** +* *2020-05-23* Handle empty sys.executable +* *2020-06-08* Fix Python 2 compatibility +* *2020-10-06* Set group membership of users in batch mode + +**autorandr 1.10.1** +* *2020-05-04* Revert making the launcher the default (fixes #195) + +**autorandr 1.10** +* *2020-04-23* Fix hook script execution order to match description from readme +* *2020-04-11* Handle negative gamma values (fixes #188) +* *2020-04-11* Sort approximate matches in detected profiles by quality of match +* *2020-01-31* Handle non-ASCII environment variables (fixes #180) +* *2019-12-31* Fix output positioning if the top-left output is not the first +* *2019-12-31* Accept negative gamma values (and interpret them as 0) +* *2019-12-31* Prefer the X11 launcher over systemd/udev configuration + +**autorandr 1.9** + +* *2019-11-10* Count closed lids as disconnected outputs +* *2019-10-05* Do not overwrite existing configurations without `--force` +* *2019-08-16* Accept modes that don't match the WWWxHHH pattern +* *2019-03-22* Improve bash autocompletion +* *2019-03-21* Store CRTC values in configurations +* *2019-03-24* Fix handling of recently disconnected outputs (See #128 and #143) + +**autorandr 1.8.1** + +* *2019-03-18* Removed mandb call from Makefile + +**autorandr 1.8** + +* *2019-02-17* Add an X11 daemon that runs autorandr when a display connects (by @rliou92, #127) +* *2019-02-17* Replace width=0 check with disconnected to detect disconnected monitors (by @joseph-jones, #139) +* *2019-02-17* Fix handling of empty padding (by @jschwab, #138) +* *2019-02-17* Add a man page (by @somers-all-the-time, #133) + +**autorandr 1.7** + +* *2018-09-25* Fix FB size computation with rotated screens (by @Janno, #117) + +**autorandr 1.6** + +* *2018-04-19* Bugfix: Do not load default profile unless --change is set +* *2018-04-30* Added a `AUTORANDR_MONITORS` variable to hooks (by @bricewge, #106) +* *2018-06-29* Fix detection of current configuration if extra monitors are active +* *2018-07-11* Bugfix in the latest change: Correctly handle "off" minitors when comparing +* *2018-07-19* Do not kill spawned user processes from systemd unit +* *2018-07-20* Correctly handle "off" monitors when comparing -- fixup for another bug. + +**autorandr 1.5** + +* *2018-01-03* Add --version +* *2018-01-04* Fixed vertical/horizontal/clone-largest virtual profiles +* *2018-03-07* Output all non-error messages to stdout instead of stderr +* *2018-03-25* Add --detected and --current to filter the profile list output +* *2018-03-25* Allow wildcard matching in EDIDs + +**autorandr 1.4** + +* *2017-12-22* Fixed broken virtual profile support * *2017-12-14* Added support for a settings file * *2017-12-14* Added a virtual profile `off`, which disables all screens