monitors
First, simpler version of the plugin is still available under the name
monitors_v0
Allows relative placement of monitors depending on the model ("description" returned by hyprctl monitors
). Useful if you have multiple monitors connected to a video signal switch or using a laptop and plugging monitors having different relative positions.
Syntax:
[monitors.placement]
"description match".placement = "other description match"
Example to set a Sony monitor on top of a BenQ monitor
[monitors.placement]
Sony.topOf = "BenQ"
## Character case is ignored, "_" can be added
Sony.Top_Of = ["BenQ"]
## Thanks to TOML format, complex configurations can use separate "sections" for clarity, eg:
[monitors.placement."My monitor brand"]
## You can also use "port" names such as *HDMI-A-1*, *DP-1*, etc...
leftOf = "eDP-1"
## lists are possible on the right part of the assignment:
rightOf = ["Sony", "BenQ"]
## > 2.3.2: you can also set scale, transform & rate for a given monitor
[monitors.placement.Microstep]
rate = 100
Try to keep the rules as simple as possible, but relatively complex scenarios are supported.
NOTE
Check wlr layout UI which is a nice complement to configure your monitor settings.
Command
relayout
Apply the configuration and update the layout
Configuration
placement
(REQUIRED)
Supported placements are:
- leftOf
- topOf
- rightOf
- bottomOf
- <one of the above>(center|middle|end)Of
IMPORTANT
If you don't like the screen to align on the start of the given border, you can use center
(or middle
) to center it or end
to stick it to the opposite border. Eg: "topCenterOf", "leftEndOf", etc...
You can separate the terms with "_" to improve the readability, as in "top_center_of".
monitor settings
Not only can you place monitors relatively to each other, but you can also set specific settings for a given monitor.
The following settings are supported:
- scale
- transform
- rate
- resolution
[monitors.placement."My monitor brand"]
rate = 60
scale = 1.5
transform = 1 # 0: normal, 1: 90°, 2: 180°, 3: 270°, 4: flipped, 5: flipped 90°, 6: flipped 180°, 7: flipped 270°
resolution = "1920x1080" # can also be expressed as [1920, 1080]
startup_relayout
Default to ŧrue
.
When set to false
, do not initialize the monitor layout on startup or when configuration is reloaded.
new_monitor_delay
By default, the layout computation happens one second after the event is received to let time for things to settle.
You can change this value using this option.
hotplug_command
None by default, allows to run a command when any monitor is plugged.
[monitors]
hotplug_commands = "wlrlui -m"
hotplug_commands
None by default, allows to run a command when a given monitor is plugged.
Example to load a specific profile using wlr layout ui:
[monitors.hotplug_commands]
"DELL P2417H CJFH277Q3HCB" = "wlrlui rotated"
unknown
None by default, allows to run a command when no monitor layout has been changed (no rule applied).
[monitors]
unknown = "wlrlui"
trim_offset
true
by default,
Prevents having arbitrary window offsets or negative values.