Files
feresaria/docs/shortcuts.md
T
Samuel Onoja ad00e55fe4 Add mouse window controls and finer display scaling (#63)
Add configurable mouse and wheel bindings, window move and resize, tab drops, cross-output dragging, and device settings. Adjust display scaling in 0.05 increments.

Preserve opposite-edge positioning during scrolling resizes and show rows for edge drops into tabbed columns.
2026-10-25 14:14:35 +01:00

201 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Shortcuts and gestures
`Super` is usually the Windows key. These are the built-in defaults. Open
**Settings → Keyboard & mouse → Shortcuts** to change bindings and gestures or disable the login
guide. Your saved bindings can override these defaults.
The [example config](../packaging/config.kdl) adds the app, media and arrow-key
shortcuts listed below.
## Launcher
**Super + Space** opens the launcher. Type to search, press **Tab** to accept
completion, or **Enter** to open the selected match. **Down** shows alternatives.
The **Apps**, **Files** and **Windows** tiles browse each source separately.
**Escape** clears the query, returns from a browse view, then closes the launcher,
one step per press. In Windows, **Alt + Enter** moves the selected window to the
current workspace. Power off, restart and logout also require **Alt + Enter**.
Run `feresectl launcher toggle` to open or close it from a script.
## Move and resize with the mouse
| Action | Result |
| --- | --- |
| Super + left-button drag | Move a floating or tiled window |
| Super + right-button drag | Resize the edge or corner selected by the starting 3×3 region |
| Right-click while moving | Switch the drop between floating and tiled |
| Escape during a drag | Cancel the move or resize |
| Hold Shift during a move or resize | Bypass edge snapping |
| Super + Shift + Space | Switch the focused window between tiled and floating |
You can drag from inside the window; a title bar or resize border is not required.
Drop a tiled window beside another window to reorder it, or in its center to
join a tab group. Drag across monitors to move to the workspace shown there.
Scroll or hold at a horizontal screen edge to reach more scrolling columns.
The central resize region selects the nearest corner. Floating windows snap to
nearby edges; continuing to drag beyond 20 logical pixels releases the snap.
## Focus, move, and resize
`H`, `J`, `K`, and `L` mean left, down, up, and right.
| Shortcut | Action |
| --- | --- |
| Super + H / J / K / L | Focus in that direction |
| Super + Backspace | Return to the last focused window, including on another workspace or monitor |
| Alt + Tab | Preview recent windows in focus order |
| Alt + Shift + Tab | Preview recent windows in reverse focus order |
| Super + Shift + H / J / K / L | Move the focused window in that direction |
| Super + Ctrl + H / J / K / L | Resize in that direction |
| Super + Q | Close the focused window |
| Super + F | Maximize or restore the window |
| Super + Shift + F | Enter or leave fullscreen |
Maximize fills the available workspace. Fullscreen also hides the bar and window
decorations.
Keep Alt held to cycle through recent windows. Release Alt to select the previewed
window, or press Escape to cancel. Repeating Super + Backspace toggles between the
two most recently focused windows.
## Columns and layouts
| Shortcut | Action |
| --- | --- |
| Super + R | Cycle column width |
| Super + C | Center the focused column |
| Super + [ | Join a neighbouring column or tree tab group |
| Super + ] | Leave the column or tree tab group |
| Super + Ctrl + [ / ] | Previous / next tab in a group |
| Super + Shift + T | Toggle a scrolling column between stacked rows and tabs |
| Super + M | Switch scrolling / tree layout |
| Super + Tab | Open or close overview |
In scrolling mode, **Super + [** uses the left neighbour when available, otherwise
the right. Try it with two terminals to place them vertically in one column.
**Super + ]** separates the focused window again. **Super + Shift + T** changes
the column to tabs or restores its stacked rows. In tabbed columns, **Super + J/K**
switches tabs; the usual left/right focus keys still switch columns.
In tree mode, **Super + [** joins the focused window to a neighbouring window
as a tab. Click a title in the tab bar or use **Super + Ctrl + [ / ]** to switch
tabs. **Super + ]** splits the focused tab out beside the group. For a specific
neighbour, bind `join-tab` with a direction; see [Tabbed windows](tabbed-windows.md).
In overview, select a workspace to see its windows, then click the window you
want. Directional focus keys move selection; Enter activates it and Escape closes
overview.
## Workspaces
| Shortcut | Action |
| --- | --- |
| Super + 1–9 | Switch to that workspace |
| Super + Shift + 1–9 | Move the window to that workspace |
| Super + Escape | Toggle between the last two visited workspaces on this monitor |
Workspaces are created as needed and numbered separately on each monitor.
Workspace shortcuts select a workspace on the focused monitor.
To make pressing the current workspace's shortcut toggle back too, enable
**Settings → Windows → Toggle back with the same workspace shortcut**. It is off
by default. The action can also be bound as `workspace-back-and-forth` or run with
`feresectl workspace-back-and-forth`.
## Desktop actions
| Shortcut | Action |
| --- | --- |
| Super + Enter | Open the configured terminal (`foot` by default) |
| Print Screen | Capture the active monitor and open Satty |
| Super + Shift + S | Select a screenshot area and open Satty |
| Super + Shift + E | Ask to log out |
| Super + F1 | Open or close the shortcut hint |
| Display Fn key (`XF86Display`) | Open or close the display-mode chooser |
Super + F1 works even when the guide at login is disabled. It opens on the
focused monitor. Bind `toggle-keybinding-guide` to change the shortcut, or run
`feresectl toggle-keybinding-guide`.
The display icon appears in the bar when an external monitor is connected,
including when that monitor is disabled or mirrored. Click it to choose Internal
only, External only, Extend or Mirror. Arrow keys or 1–4 select a mode; Enter
applies it. Tab moves between controls and Escape cancels. After applying, choose
Keep before the confirmation timeout or Revert to restore the last confirmed
configuration. Bind `toggle-display-mode` if your keyboard uses another key.
In Satty, Enter saves the edited screenshot and copies it to the clipboard;
Escape discards it. See [Configuration](configuration/bindings.md#commands-and-bindings)
for dependencies and custom screenshot commands.
## Touchpad gestures
| Three-finger swipe | Action on release |
| --- | --- |
| Up / down | Drag to the next / previous workspace on this monitor; release to settle |
| Left / right | Drag the window row; release to focus the window to the right / left |
Short or cancelled navigation swipes slide back. Diagonal swipes do not navigate.
Gestures can use the same actions
as keyboard bindings, including overview or moving a window. Four- and five-finger
bindings are supported too.
## Reserved and context controls
These controls are handled by the compositor rather than configurable bindings.
| Control | Action |
| --- | --- |
| Enter in overview | Activate the selected window |
| Escape in overview | Close overview |
| Escape during Alt + Tab | Cancel the preview without changing focus |
| Release Alt during Alt + Tab | Focus the previewed window |
| Ctrl + Alt + Escape | Release an active shortcut inhibitor or input-capture session |
| Ctrl + Alt + F1–F12 | Switch virtual terminals in a direct session |
Virtual-terminal switching is unavailable in nested previews.
## Example-config shortcuts
The [example config](../packaging/config.kdl) adds these to the built-in defaults.
App and hardware controls require their configured programs to be installed.
| Shortcut | Action |
| --- | --- |
| Super + B | Open Firefox |
| Super + Z | Open Zed |
| Super + Alt + L | Lock with `ferese-lock` |
| Super + Left / Down / Up / Right | Focus in that direction |
| Super + Ctrl + Left / Down / Up / Right | Move the focused window in that direction |
| Super + Alt + Left / Down / Up / Right | Resize in that direction |
| Brightness up / down | Adjust brightness with `brightnessctl` |
| Volume up / down | Adjust volume with `wpctl` |
| Audio mute | Toggle output mute with `wpctl` |
| Microphone mute | Toggle microphone mute with `wpctl` |
## Add a shortcut
For example, bind a lock command and use a swipe to open overview:
```kdl
commands {
lock "ferese-lock"
}
binding "Super+Alt+L" "spawn" "lock"
binding "Swipe3Up" "toggle-overview"
```
These are examples, not defaults. To disable a built-in binding:
```kdl
binding "Super+Q" disabled=#true
```
See [Commands and bindings](configuration/bindings.md#commands-and-bindings) for action
names, arguments, and physical-key matching.
In scrolling columns, hover over the left-edge tab indicator for window titles.
Click a segment or title to switch tabs. Keyboard tab switching briefly shows the
selected tab number and title without opening the list.