Files
niri/docs/wiki/Configuration:-Gestures.md
T
Kai Koehler 08f5c6fecb Make hot corners configurable, including per-output (#2108)
* Add corner selection in config

* Add hot corner docs

* Working per-monitor hot corners

Handle defaults

* run cargo fmt --all

* Fix hot corners in is_sticky_obscured_under

* Change default to fall back to gesture hot corners if output hot corners are unset

* Add hot corner output config docs

* Support fractional scaling

* Trigger hot corners over widgets

* Improve float handling
Fixed YaLTeR/niri/pull/2108

* Refactor

* Bug Fixes

* Amend docs

Fix styling

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>

* Integrate code review

Move is_inside_hot_corner

* fixes

---------

Co-authored-by: Aadniz <8147434+Aadniz@users.noreply.github.com>
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-09-16 15:10:01 +00:00

3.1 KiB

Overview

Since: 25.02

The gestures config section contains gesture settings. For an overview of all niri gestures, see the Gestures wiki page.

Here's a quick glance at the available settings along with their default values.

gestures {
    dnd-edge-view-scroll {
        trigger-width 30
        delay-ms 100
        max-speed 1500
    }

    dnd-edge-workspace-switch {
        trigger-height 50
        delay-ms 100
        max-speed 1500
    }

    hot-corners {
        // off
        top-left
        // top-right
        // bottom-left
        // bottom-right
    }
}

dnd-edge-view-scroll

Scroll the tiling view when moving the mouse cursor against a monitor edge during drag-and-drop (DnD). Also works on a touchscreen.

This will work for regular drag-and-drop (e.g. dragging a file from a file manager), and for window interactive move when targeting the tiling layout.

The options are:

  • trigger-width: size of the area near the monitor edge that will trigger the scrolling, in logical pixels.
  • delay-ms: delay in milliseconds before the scrolling starts. Avoids unwanted scrolling when dragging things across monitors.
  • max-speed: maximum scrolling speed in logical pixels per second. The scrolling speed increases linearly as you move your mouse cursor from trigger-width to the very edge of the monitor.
gestures {
    // Increase the trigger area and maximum speed.
    dnd-edge-view-scroll {
        trigger-width 100
        max-speed 3000
    }
}

dnd-edge-workspace-switch

Since: 25.05

Scroll the workspaces up/down when moving the mouse cursor against a monitor edge during drag-and-drop (DnD) while in the overview. Also works on a touchscreen.

The options are:

  • trigger-height: size of the area near the monitor edge that will trigger the scrolling, in logical pixels.
  • delay-ms: delay in milliseconds before the scrolling starts. Avoids unwanted scrolling when dragging things across monitors.
  • max-speed: maximum scrolling speed; 1500 corresponds to one screen height per second. The scrolling speed increases linearly as you move your mouse cursor from trigger-width to the very edge of the monitor.
gestures {
    // Increase the trigger area and maximum speed.
    dnd-edge-workspace-switch {
        trigger-height 100
        max-speed 3000
    }
}

hot-corners

Since: 25.05

Put your mouse at the very top-left corner of a monitor to toggle the overview. Also works during drag-and-dropping something.

off disables the hot corners.

// Disable the hot corners.
gestures {
    hot-corners {
        off
    }
}

Since: next release You can choose specific hot corners by name: top-left, top-right, bottom-left, bottom-right. If no corners are explicitly set, the top-left corner will be active by default.

// Enable the top-right and bottom-right hot corners.
gestures {
    hot-corners {
        top-right
        bottom-right
    }
}

You can also customize hot corners per-output in the output config.