Hot corners for Wayland. Create anchors in the corners of your monitors and execute a command of your choice.
Note: Currently only tested on swaywm. Though it should work on any Wayland compositor that supports the xdg-output protocol.
swaylock-example.mp4
If you would like waycorner to be available on your distro's package manager, feel free to make an issue if you have some time to help.
paru -S waycorner
cargo install waycorner --locked
The waycorner
package is available via Nixpkgs. See installation instructions.
Note
The Waycorner package in Nixpkgs is not updated automatically by the project, and is instead maintained by @NotAShelf. Please contact @NotAShelf or create an out-of-date package report on NixOS/nixpkgs in case the version is out-of-date.
git clone git@github.com:AndreasBackx/waycorner.git
cd waycorner
cargo install --path . --locked
Default configuration location is ~/.config/waycorner/config.toml
, this needs to be created manually. You can also specify a different location using --config
. Preview your configuration with the --preview
flag.
[left]
# Shell commands to execute when hotcorner is triggered,
# at least one is required.
# Command to run when cursor enters hotcorner.
# `command` is an alias for `enter_command`.
enter_command = [ "notify-send", "enter" ]
# Command to run when cursor exits hotcorner.
exit_command = [ "notify-send", "exit" ]
# Locations of the hot corners.
# Options:
# - for corners: top_left, top_right, bottom_right, and bottom_left;
# - for edges: top, bottom, right, left.
locations = ["bottom_right", "bottom_left"] # default
# Size of the hot corners in pixels, for edges the size means the width
# for vertical edges, and height for horizontal edges. The other dimension
# will be the width/height of your display - the set margin.
size = 10 # default
# Margin on the sides of the hot edges, only applicable to edge locations.
# See the comment with sizes attribute above.
margin = 20 # default
# Timeout in milliseconds before command is triggered.
timeout_ms = 250 # default
# Hex color of the corner when previewed, supports transparency. (#AARRGGBB or #RRGGBB)
# (Useful for debugging purposes when setting up several hot corners.)
color = "#FFFF0000" # default
# Optional output config to specify what output to use.
[left.output]
# Regex to match output descriptions on.
# Regex engine is similar to RE2: https://github.com/rust-lang/regex
#
# Use `swaymsg -t get_outputs` to get a list of outputs in the format:
# Output ${NAME} '${DESCRIPTION}'
description = "" # default, empty means all outputs
Then add exec waycorner
to your swaywm config.
Pass RUST_LOG
with either trace
, debug
, info
, warn
, or error
. To set the logging level, default is error
. See env_logger documentation.