2015-01-27 07:25:04 +00:00
# autorandr
2012-06-28 20:30:49 +00:00
Automatically select a display configuration based on connected devices
2013-11-29 06:58:56 +00:00
## Branch information
2013-11-29 06:51:28 +00:00
2015-01-27 07:25:04 +00:00
This is a compatible Python rewrite of
[wertarbyte/autorandr ](https://github.com/wertarbyte/autorandr ).
2015-01-02 10:34:30 +00:00
The original [wertarbyte/autorandr ](https://github.com/wertarbyte/autorandr )
2015-01-27 07:25:04 +00:00
tree is unmaintained, with lots of open pull requests and issues. I forked it
and merged what I thought were the most important changes. If you are searching
for that version, see the [`legacy` branch ](https://github.com/phillipberndt/autorandr/tree/legacy ).
Note that the Python version is better suited for non-standard configurations,
like if you use `--transform` or `--reflect` . If you use `auto-disper` , you
have to use the bash version, as there is no disper support in the Python
version (yet). Both versions use a compatible configuration file format, so
you can, to some extent, switch between them. I will maintain the `legacy`
branch until @wertarbyte finds the time to maintain his branch again.
If you are interested in why there are two versions around, see
[#7 ](https://github.com/phillipberndt/autorandr/issues/7 ),
[#8 ](https://github.com/phillipberndt/autorandr/issues/8 ) and
especially
[#12 ](https://github.com/phillipberndt/autorandr/issues/12 )
if you are unhappy with this version and would like to contibute to the bash
version.
2013-11-29 06:51:28 +00:00
2015-01-02 09:53:31 +00:00
## License information and authors
2015-01-16 07:24:04 +00:00
autorandr is available under the terms of the GNU General Public License
(version 3).
2015-01-02 10:34:30 +00:00
Contributors to this version of autorandr are:
* Alexander Wirt
* Chris Dunder
2015-05-17 08:12:07 +00:00
* Daniel Hahler
2015-01-02 10:34:30 +00:00
* Maciej Sitarz
2016-02-10 14:07:10 +00:00
* Mathias Svensson
2015-01-02 10:34:30 +00:00
* Matthew R Johnson
2016-10-02 19:19:18 +00:00
* Nazar Mokrynskyi
2015-01-02 10:34:30 +00:00
* Phillip Berndt
2015-01-22 13:28:27 +00:00
* Rasmus Wriedt Larsen
2015-01-16 07:24:04 +00:00
* Stefan Tomanek
2015-01-02 10:34:30 +00:00
* Timo Bingmann
* Tomasz Bogdal
2015-03-26 15:13:54 +00:00
* Victor Häggqvist
2015-01-02 10:34:30 +00:00
* stormc
* tachylatus
2015-03-26 15:13:54 +00:00
* andersonjacob
2016-03-28 11:13:03 +00:00
* Simon Wydooghe
2013-11-29 06:51:28 +00:00
2016-10-03 02:51:44 +00:00
## Installation/removal
2016-10-03 16:03:55 +00:00
For Debian-based distributives (including Ubuntu) it is recommended to call `make deb` to obtain a package that can be installed and removed with `dpkg` .
2016-10-03 02:51:44 +00:00
2016-10-03 16:03:55 +00:00
On other distributives you can install autorandr by calling `make install` and remove it by calling `make uninstall` .
2016-10-03 02:51:44 +00:00
If you can contribute packaging script for other distributives, we will appreciate it.
2013-05-12 12:33:46 +00:00
## How to use
2012-06-28 20:30:49 +00:00
Save your current display configuration and setup with:
2013-05-12 12:33:46 +00:00
```
autorandr --save mobile
```
2012-06-28 20:30:49 +00:00
Connect an additional display, configure your setup and save it:
2013-05-12 12:33:46 +00:00
```
autorandr --save docked
```
2012-06-28 20:30:49 +00:00
Now autorandr can detect which hardware setup is active:
2013-05-12 12:29:18 +00:00
```
2012-06-28 20:30:49 +00:00
$ autorandr
mobile
docked (detected)
2013-05-12 12:29:18 +00:00
```
2012-06-28 20:30:49 +00:00
2013-05-12 12:29:18 +00:00
To automatically reload your setup, just append `--change` to the command line
2012-06-28 20:30:49 +00:00
2013-05-12 12:29:18 +00:00
To manually load a profile, you can use the `--load <profile>` option.
2012-06-28 20:30:49 +00:00
autorandr tries to avoid reloading an identical configuration. To force the
2013-05-12 12:29:18 +00:00
(re)configuration, apply `--force` .
2012-06-28 20:30:49 +00:00
2013-05-12 12:29:18 +00:00
To prevent a profile from being loaded, place a script call _block_ in its
2012-06-28 20:30:49 +00:00
directory. The script is evaluated before the screen setup is inspected, and
in case of it returning a value of 0 the profile is skipped. This can be used
to query the status of a docking station you are about to leave.
If no suitable profile can be identified, the current configuration is kept.
To change this behaviour and switch to a fallback configuration, specify
2013-05-12 12:29:18 +00:00
`--default <profile>` .
2012-06-28 20:30:49 +00:00
2013-05-12 12:29:18 +00:00
Another script called `postswitch` can be placed in the directory
2016-05-31 08:32:21 +00:00
`~/.config/autorandr` (or `~/.autorandr` if you have an old installation) as
well as in all profile directories: The scripts are executed after a mode
switch has taken place and can notify window managers or other applications
about it. The same holds for `preswitch` , which is executed before the switch
takes place, and `postsave` , which is executed after a profile was
stored/altered.
2012-06-28 20:30:49 +00:00
2016-01-07 14:02:51 +00:00
All scripts can also be placed in any of the `$XDG_CONFIG_DIRS` . In addition to
the script names themselves, any executables in subdirectories named
`script_name.d` (e.g. `postswitch.d` ) are executed as well. In scripts, some of
autorandr's state is exposed as environment variables prefixed with `AUTORANDR_` .
The most useful one is `$AUTORANDR_CURRENT_PROFILE` .
2016-10-03 02:51:44 +00:00
## Apply configuration on login
2016-10-03 16:03:55 +00:00
With recent versions of autorandr you typically do not need to add autorandr to `~/.xprofile` , since an autostart configuration file will be installed at `/etc/xdg/autostart/autorandr.desktop` by the makefile. It will select an appropriate profile automatically.
2016-10-03 02:51:44 +00:00
2016-10-03 16:03:55 +00:00
If you need to customize this behaviour, you can always disable or modify it by placing an alternative desktop file with the same name in `~/.config/autostart` or by using a GUI configuration tool for autostart like `gnome-session-properties` .