2013-05-12 12:33:46 +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-02 10:34:30 +00:00
|
|
|
The original [wertarbyte/autorandr](https://github.com/wertarbyte/autorandr)
|
2015-01-16 07:24:04 +00:00
|
|
|
tree is unmaintained, with lots of open pull requests and issues. I forked
|
2015-01-02 10:34:30 +00:00
|
|
|
it and merged what I thought were the most important changes. I will maintain
|
|
|
|
this branch until @wertarbyte finds the time to maintain his branch again.
|
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
|
|
|
|
* Maciej Sitarz
|
|
|
|
* Matthew R Johnson
|
|
|
|
* Phillip Berndt
|
2015-01-16 07:24:04 +00:00
|
|
|
* Stefan Tomanek
|
2015-01-02 10:34:30 +00:00
|
|
|
* Timo Bingmann
|
|
|
|
* Tomasz Bogdal
|
|
|
|
* stormc
|
|
|
|
* tachylatus
|
2013-11-29 06:51:28 +00:00
|
|
|
|
2015-01-16 07:51:01 +00:00
|
|
|
## autorandr vs. autorandr.py
|
|
|
|
|
|
|
|
The two files `autorandr` and `autorandr.py` are two independent versions of
|
|
|
|
autorandr. For now, both are here, but I might move one of both versions into
|
|
|
|
its own branch or repository someday. See [bug #7](https://github.com/phillipberndt/autorandr/issues/7)
|
|
|
|
for details on why there are two versions around.
|
|
|
|
|
|
|
|
The two versions are compatible with respect to the profile format and command
|
|
|
|
line parameters, but
|
|
|
|
|
|
|
|
* the *Python version* does not support auto-disper
|
|
|
|
* the *bash version* does not support changes in available adapters and slightly esoteric configurations (like transformations and reflections)
|
|
|
|
|
|
|
|
Active development in this repository is likely to occur preferably in the
|
|
|
|
Python version.
|
|
|
|
|
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
|
|
|
|
`~/.autorandr` as well as in all profile directories: The scripts are executed
|
2012-06-28 20:30:49 +00:00
|
|
|
after a mode switch has taken place and can notify window managers or other
|
|
|
|
applications about it.
|
|
|
|
|
2013-05-12 12:33:46 +00:00
|
|
|
While the script uses xrandr by default, calling it by the name `autodisper`
|
|
|
|
or `auto-disper` forces it to use the [disper](http://willem.engen.nl/projects/disper/)
|
|
|
|
utility, which is useful for controlling nvidia chipsets. The formats for
|
|
|
|
fingerprinting the current setup and saving/loading the current configuration
|
|
|
|
are adjusted accordingly.
|
2012-06-28 20:30:49 +00:00
|
|
|
|
2013-11-29 06:58:56 +00:00
|
|
|
To install autorandr call `make install`, define your setup and then call
|
|
|
|
`make hotplug` to install hotplug scripts.
|
2013-04-24 14:41:16 +00:00
|
|
|
|
|
|
|
For Debian using auto-disper:
|
|
|
|
To make the screen auto-configure when your computer wakes up,
|
|
|
|
* Copy auto-disper into /usr/local/bin/
|
|
|
|
* Copy pm-utils/40auto-disper into /etc/pm/sleep.d/
|
|
|
|
* (Assuming gnome) Run gnome-keybinding-properties and ADD a shortcut,
|
|
|
|
I called it "Run auto-disper", I set it to CTRL-F7, and the command is:
|
2013-12-02 09:42:23 +00:00
|
|
|
`auto-disper -c --default default`
|
2013-04-24 14:41:16 +00:00
|
|
|
* Create a default disper setting... eg for laptop: unplug all monitors,
|
|
|
|
set up the screen nicely on the laptop display.
|
2013-12-02 09:42:23 +00:00
|
|
|
Then run `auto-disper --save laptop`
|