---
name: "autorandr"
section: "1"
platform: "linux"
package: "autorandr"
version: "1.15-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/autorandr"
---

# autorandr(1)

automatically select a display configuration based on connected devices

## NAME

autorandr - automatically select a display configuration based on connected devices

## SYNOPSIS

**autorandr** \[*OPTION*\] \[*PROFILE*\]

## DESCRIPTION

This program automatically detects connected display hardware and then loads an appropriate X11 setup using xrandr. It also supports the use of display profiles for different hardware setups.

Autorandr also includes several virtual configurations including **off**, **common**, **clone-largest**, **horizontal**, and **vertical**. See the documentation for explanation of each.

## OPTIONS

- **-h**, **--help**

  Display help text and exit

- **-c**, **--change**

  Automatically load the first detected profile

- **-d**, **--default** *PROFILE*

  Make profile *PROFILE* the default profile. The default profile is used if no suitable profile can be identified. Else, the current configuration is kept.

- **-l**, **--load** *PROFILE*

  Load profile *PROFILE*

- **-s**, **--save** *PROFILE*

  Save the current setup to profile *PROFILE*

- **-r**, **--remove** *PROFILE*

  Remove profile *PROFILE*

- **--batch**

  Run autorandr for all users with active X11 sessions

- **--current**

  List only the current (active) configuration(s)

- **--config**

  Dump the variable values of your current xrandr setup

- **--cycle**

  Cycle through all detected profiles

- **--debug**

  Enable verbose output

- **--detected**

  List only the detected (i.e. available) configuration(s)

- **--dry-run**

  Don't change anything, only print the xrandr commands

- **--fingerprint**

  Fingerprint the current hardware setup

- **--match-edid**

  Match displays based on edid instead of name

- **--ignore-lid**

  By default, closed lids are considered as disconnected if other outputs are detected. This flag disables this behaviour.

- **--force**

  Force loading or reloading of a profile

- **--list**

  List all profiles

- **--skip-options \[***OPTION*\] ...

  Set a comma-separated list of xrandr arguments to skip both in change detection and profile application. See **[xrandr(1)](/xrandr/1.md)** for xrandr arguments.

- **--version**

  Show version information and exit

## FILES

Configuration files are searched for in the *autorandr* directory in the colon separated list of paths in *$XDG\_CONFIG\_DIRS* - or in */etc/xdg* if that var is not set.  They are then looked for in *~/.autorandr* and if that doesn't exist, in *$XDG\_CONFIG\_HOME/autorandr* or in *~/.config/autorandr* if that var is unset.

In each of those directories it looks for directories with *config* and *setup* in them.  It is best to manage these files with the **autorandr** utility.

## DEFAULT OPTIONS

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

Four more scripts can be placed in the configuration directory:

- *postswitch*

  Executed after a mode switch has taken place. This can be used to notify window managers or other applications about the switch.

- *preswitch*

  Executed before a mode switch takes place.

- *postsave*

  Executed after a profile was stored or altered.

- *predetect*

  Executed before autorandr attempts to run xrandr.

These scripts must be executable and can be placed directly in the configuration directory, where they will always be executed, or in the profile subdirectories, where they will only be executed on changes regarding that specific profile.

Instead (or in addition) to these scripts, you can also place as many executable files as you like in subdirectories called script\_name.d (e.g. postswitch.d).

Some of autorandr's state is exposed as environment variables prefixed with *AUTORANDR\_*, such as: *AUTORANDR\_CURRENT\_PROFILE*, *AUTORANDR\_CURRENT\_PROFILES*, *AUTORANDR\_PROFILE\_FOLDER*, and *AUTORANDR\_MONITORS* with the intention that they can be used within the hook scripts.

The one kink is that during *preswitch*, *AUTORANDR\_CURRENT\_PROFILE* is reporting the upcoming profile rather than the current one.

## AUTHOR

Phillip Berndt \<phillip.berndt@googlemail.com\>\
 See https://github.com/phillipberndt/autorandr for a full list of contributors.

## REPORTING BUGS

Report issues upstream on GitHub:  https://github.com/phillipberndt/autorandr/issues\
 Please attach the output of **xrandr --verbose** to your bug report if appropriate.

## SEE ALSO

For examples, advanced usage (including predefined per-profile & global hooks and wildcard EDID matching), and full documentation, see https://github.com/phillipberndt/autorandr.
