detached 1c259ae

docs(config): document output transforms

commit
1c259aed711854c084199593ec006ed3deef2f2d
author
brice · · 2026-10-03 18:47 UTC
parent
5343c40
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
1 file · +4 -0
M docs/config.md +4 -0
@@ -55,6 +55,7 @@ NeferWL reads `$XDG_CONFIG_HOME/neferwl/config` (or `~/.config/neferwl/config`).
5555 | `workspace.<name>.column.<N>` | none | Slot: `<width>, <command>` |
5656 | `output.<name>` | preferred | `WxH`, `WxH@Hz`, `preferred` or `off` |
5757 | `output.<name>.scale` | `1` | 1 to 4, e.g. `1.5` or `4/3` |
58+| `output.<name>.transform` | `normal` | `normal`, `90`, `180`, `270`, `flipped`, `flipped-90`, `flipped-180`, `flipped-270`; 90/270 swap the output's width and height |
5859 | `output.<name>.primary` | `off` | Gets focus and pointer at startup |
5960 | `output.<name>.right-of` / `.left-of` / `.above` / `.below` | automatic | Connector to place the output against, e.g. `DP-1` |
6061 | `output.<name>.offset` | `0` | Logical px along the shared edge, −65536 to 65536; see [Output placement](#output-placement) |
@@ -74,6 +75,7 @@ Without relations, outputs sit left to right in config order, top-aligned. A rel
7475 ```ini
7576 output.DP-2.right-of = DP-1
7677 output.DP-2.offset = 360 # DP-2 starts 360 px lower than DP-1's top
78+# output.DP-2.transform = 90 # DP-2 is rotated: 1080 wide, 1920 tall
7779 ```
7880
7981 ```
@@ -85,6 +87,8 @@ output.DP-2.offset = 360 # DP-2 starts 360 px lower than DP-1's top
8587 └────────────┘
8688 ```
8789
90+Placement, offsets and monitor navigation use the rotated size: a 2560x1440 output with `transform = 90` is 1440 wide and 2560 tall at scale 1. Rotated outputs always compose, with no direct scanout or overlay planes.
91+
8892 Rules:
8993
9094 - `offset` moves down for `right-of`/`left-of` and right for `above`/`below`; negative moves the other way.
@@ -55,6 +55,7 @@ NeferWL reads `$XDG_CONFIG_HOME/neferwl/config` (or `~/.config/neferwl/config`).
55 | `workspace.<name>.column.<N>` | none | Slot: `<width>, <command>` |55 | `workspace.<name>.column.<N>` | none | Slot: `<width>, <command>` |
56 | `output.<name>` | preferred | `WxH`, `WxH@Hz`, `preferred` or `off` |56 | `output.<name>` | preferred | `WxH`, `WxH@Hz`, `preferred` or `off` |
57 | `output.<name>.scale` | `1` | 1 to 4, e.g. `1.5` or `4/3` |57 | `output.<name>.scale` | `1` | 1 to 4, e.g. `1.5` or `4/3` |
58+| `output.<name>.transform` | `normal` | `normal`, `90`, `180`, `270`, `flipped`, `flipped-90`, `flipped-180`, `flipped-270`; 90/270 swap the output's width and height |
58 | `output.<name>.primary` | `off` | Gets focus and pointer at startup |59 | `output.<name>.primary` | `off` | Gets focus and pointer at startup |
59 | `output.<name>.right-of` / `.left-of` / `.above` / `.below` | automatic | Connector to place the output against, e.g. `DP-1` |60 | `output.<name>.right-of` / `.left-of` / `.above` / `.below` | automatic | Connector to place the output against, e.g. `DP-1` |
60 | `output.<name>.offset` | `0` | Logical px along the shared edge, −65536 to 65536; see [Output placement](#output-placement) |61 | `output.<name>.offset` | `0` | Logical px along the shared edge, −65536 to 65536; see [Output placement](#output-placement) |
@@ -74,6 +75,7 @@ Without relations, outputs sit left to right in config order, top-aligned. A rel
74 ```ini75 ```ini
75 output.DP-2.right-of = DP-176 output.DP-2.right-of = DP-1
76 output.DP-2.offset = 360 # DP-2 starts 360 px lower than DP-1's top77 output.DP-2.offset = 360 # DP-2 starts 360 px lower than DP-1's top
78+# output.DP-2.transform = 90 # DP-2 is rotated: 1080 wide, 1920 tall
77 ```79 ```
78 80
79 ```81 ```
@@ -85,6 +87,8 @@ output.DP-2.offset = 360 # DP-2 starts 360 px lower than DP-1's top
85 └────────────┘87 └────────────┘
86 ```88 ```
87 89
90+Placement, offsets and monitor navigation use the rotated size: a 2560x1440 output with `transform = 90` is 1440 wide and 2560 tall at scale 1. Rotated outputs always compose, with no direct scanout or overlay planes.
91+
88 Rules:92 Rules:
89 93
90 - `offset` moves down for `right-of`/`left-of` and right for `above`/`below`; negative moves the other way.94 - `offset` moves down for `right-of`/`left-of` and right for `above`/`below`; negative moves the other way.

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 23

Tags 10

↑↓ moveenter openesc close