commit 52b7ba3

wf  ·  2026-07-08 13:38:04 +0000 UTC
parent 90e1c42
Re-typeset manpages

The manpages are no longer generated by ronn, which means that I can finally purge it off of my system. Plus mandoc is simply nicer to look at and write.
4 files changed,  +241, -536
+27, -23
 1@@ -1,23 +1,27 @@
 2-.\" generated with Ronn-NG/v0.10.1
 3-.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
 4-.TH "HOWL" "1" "May 2026" ""
 5-.SH "NAME"
 6-\fBhowl\fR \- small Wayland compositor
 7-.SH "SYNOPSIS"
 8-\fBhowl\fR [\-hv] [\-c \fIpath\fR]
 9-.SH "DESCRIPTION"
10-\fBhowl\fR is a small Wayland compositor that is controlled externally by its client program howlc(1)\.
11-.SH "OPTIONS"
12-.TP
13-\fB\-h\fR
14-Print a help message describing the usage\.
15-.TP
16-\fB\-v\fR
17-Print the program version\.
18-.TP
19-\fB\-c\fR \fIpath\fR
20-Specify the path from which the config file will be loaded\.
21-.SH "COPYRIGHT"
22-\fBhowl\fR and \fBhowlc\fR are (C) wf 2026 \fIhttps://sr\.ht/~wf\fR\.
23-.SH "SEE ALSO"
24-README\.md, howlc(1)
25+.Dd $Mdocdate$
26+.Dt HOWL 1
27+.Sh NAME
28+.Nm howl
29+.Nd small and extensible Wayland compositor
30+.Sh SYNOPSIS
31+.Nm
32+.Op Fl hv
33+.Op Fl c Ar path
34+.Sh DESCRIPTION
35+.Nm howl
36+is a small Wayland compositor that is controlled externally by its client program
37+.Xr howlc 1 . The options are as follows:
38+.Bl -tag -width Ds
39+.It Fl h
40+Print a help message describing the usage of the program.
41+.It Fl v
42+Print the program version.
43+.It Fl c Ar path
44+Specify the path from which the autostart file will be executed.
45+.Sh SEE ALSO
46+.Xr howlc 1
47+.Sh AUTHORS
48+.An wf Aq Mt smite@netc.fr
49+
50+howl and howlc are maintained at
51+.Lk https://git.sr.ht/~wf/howl .
+0, -29
 1@@ -1,29 +0,0 @@
 2-howl(1) -- small Wayland compositor
 3-===================================
 4-
 5-## SYNOPSIS
 6-
 7-`howl` [-hv] [-c <path>]
 8-
 9-## DESCRIPTION
10-
11-**howl** is a small Wayland compositor that is controlled externally by its client program howlc(1).
12-
13-## OPTIONS
14-
15- * `-h`:
16-   Print a help message describing the usage.
17-
18- * `-v`:
19-   Print the program version.
20-
21- * `-c` <path>:
22-   Specify the path from which the config file will be loaded.
23-
24-## COPYRIGHT
25-
26-`howl` and `howlc` are (C) wf 2026 <https://sr.ht/~wf>.
27-
28-## SEE ALSO
29-
30-README.md, howlc(1)
+214, -240
  1@@ -1,240 +1,214 @@
  2-.\" generated with Ronn-NG/v0.10.1
  3-.\" http://github.com/apjanke/ronn-ng/tree/0.10.1
  4-.TH "HOWLC" "1" "July 2026" ""
  5-.SH "NAME"
  6-\fBhowlc\fR \- client to control the howl compositor
  7-.SH "SYNOPSIS"
  8-\fBhowlc\fR \fIcmd\fR [\fIargs\fR\|\.\|\.\|\.]
  9-.SH "DESCRIPTION"
 10-\fBhowlc\fR is a client that controls the howl(1) compositor\.
 11-.SH "COMMANDS"
 12-Most of the following (can be deduced logically) can take an optional window ID argument, e\.g\.: \fBmove 20 20 4\fR, where the first 2 arguments given to \fBmove\fR are the coordinates and the third one is the window ID\. If no window ID is given, then the currently focused window will be targeted (if it exists)\.
 13-.TP
 14-\fBmove\fR, \fBmove_absolute\fR
 15-Will move the window relative to either its current position or to the top left corner of the screen\. Arguments are in the form of pairs of x and y integer coordinates\.
 16-.IP
 17-Example:
 18-.IP
 19-$ howlc move 20 \-40
 20-.IP
 21-$ howlc move_absolute 300 300
 22-.TP
 23-\fBresize\fR, \fBresize_absolute\fR
 24-Will resize the window relative to either its current position or the top left corner of the screen\. Arguments are in the form of pairs of w and h integers\.
 25-.IP
 26-Example:
 27-.IP
 28-$ howlc resize 20 \-40
 29-.IP
 30-$ howlc resize_absolute 300 300
 31-.TP
 32-\fBteleport\fR
 33-Will "teleport" (move and resize) the window to the coordinates specified, in the format of x, y, w and h\.
 34-.IP
 35-Example:
 36-.IP
 37-$ howlc teleport 50 25 200 250
 38-.TP
 39-\fBcenter\fR
 40-Will position the window in the center of the screen\.
 41-.IP
 42-Example:
 43-.IP
 44-$ howlc center
 45-.TP
 46-\fBfullscreen\fR
 47-Will resize the window to the screen size\.
 48-.IP
 49-Example:
 50-.IP
 51-$ howlc fullscreen
 52-.TP
 53-\fBhide\fR, \fBshow\fR
 54-Hide/show the window\.
 55-.IP
 56-Example:
 57-.IP
 58-$ howlc hide
 59-.IP
 60-$ howlc show
 61-.TP
 62-\fBfocus_prev\fR, \fBfocus_next\fR
 63-Focus the previous/next window\.
 64-.IP
 65-Example:
 66-.IP
 67-$ howlc focus_prev
 68-.IP
 69-$ howlc focus_next
 70-.TP
 71-\fBlower\fR, \fBraise\fR
 72-Lower/raise the window's stack order\.
 73-.IP
 74-Example:
 75-.IP
 76-$ howlc lower
 77-.IP
 78-$ howlc raise
 79-.TP
 80-\fBunfocus\fR
 81-Unfocuces the currently focused window (if any)\.
 82-.TP
 83-\fBclose\fR
 84-Closes the window\.
 85-.IP
 86-Example:
 87-.IP
 88-$ howlc close
 89-.TP
 90-\fBworkspace\fR, \fBmove_workspace\fR
 91-Switch, or move the window, to the specified workspace\. Argument is a single integer representing the workspace number\.
 92-.IP
 93-Example:
 94-.IP
 95-$ howlc workspace 3
 96-.IP
 97-$ howlc move_workspace 6
 98-.TP
 99-\fBget_geometry\fR, \fBget_pid\fR, \fBget_title\fR, \fBget_app_id\fR
100-Print the window's geometry (in x, y, w and h), process ID, title or app ID\.
101-.IP
102-Example:
103-.IP
104-$ howlc get_geometry
105-.br
106-327 148 620 620
107-.IP
108-$ howlc get_pid
109-.br
110-12345
111-.IP
112-$ howlc get_title
113-.br
114-Example
115-.IP
116-$ howlc get_app_id
117-.br
118-example
119-.TP
120-\fBget_screen_geometry\fR
121-Print the current screen's width and height\.
122-.IP
123-Example:
124-.IP
125-$ howlc get_screen_geometry
126-.br
127-1920 1080
128-.TP
129-\fBlist_windows\fR
130-Print a list of currently open windows\. By default only mapped windows are listed, but \fB\-u\fR can be specified as an option to list only unmapped windows, and \fB\-a\fR can be specified to list all windows\.
131-.IP
132-Example:
133-.IP
134-$ howlc list_windows \-u
135-.br
136-0
137-.br
138-21
139-.br
140-25
141-.TP
142-\fBbind\fR
143-Create a key binding\. Arguments are in the form of a list of keys and the command to execute, see the \fIBINDINGS\fR section for more info\.
144-.IP
145-Example:
146-.IP
147-# Bind modkey+Shift+g to execute "example_command"
148-.br
149-$ howlc bind mod+shift+g "example_command"
150-.IP
151-# Bind Win+4 to switch to the 4th workspace
152-.br
153-$ howlc bind win+4 "howlc workspace 4"
154-.TP
155-\fBunbind\fR
156-Remove a previously registered key binding\.
157-.IP
158-Example:
159-.IP
160-$ howlc unbind mod+shift+g
161-.TP
162-\fBmodkey\fR
163-Configure the modifier key\. This can be then used as an alias in keybindings, like so: \fBmod+key\fR\. See the \fIBINDINGS\fR section for allowed values\.
164-.IP
165-Example:
166-.IP
167-$ howlc modkey alt
168-.IP
169-$ howlc modkey win+ctrl
170-.TP
171-\fBinner_focus_color\fR, \fBinner_unfocus_color\fR, \fBinner_unfocus_color\fR, \fBouter_unfocus_color\fR
172-Set the inner/outer focused and unfocused colors of the window borders\. Arguments are in the format of #RRGGBB, where the leading pound sign is optional\. Note that in the format of #RRGGBB, the argument needs to be quoted, since the pound sign (#) is a special one in most shells\.
173-.IP
174-Example:
175-.IP
176-$ howlc outer_focus_color "#f03937"
177-.IP
178-$ howlc inner_unfocus_color eeeeee
179-.TP
180-\fBinner_border_width\fR, \fBouter_border_width\fR
181-Set the inner/outer border widths of the window borders\. Argument is a single integer representing the new border width\.
182-.IP
183-Example:
184-.IP
185-$ howlc inner_border_width 4
186-.IP
187-$ howlc outer_border_width 0
188-.TP
189-\fBtitle_format\fR
190-Set the format for the text displayed in window titlebars\. Currently accepted specifiers are:
191-.IP
192-\fB%t\fR \- window title
193-.br
194-\fB%a\fR \- window app ID
195-.br
196-\fB%p\fR \- window PID
197-.IP
198-Example:
199-.IP
200-$ howlc title_format '%t %p'
201-.TP
202-\fBset_decor\fR
203-Set the current window decoration theme\. Argument is a path (absolute or relative) to the directory containing the theme\. See decor\.c on the format of themes\.
204-.IP
205-Example:
206-.IP
207-$ howlc set_decor ~/etc/decorations/theme
208-.TP
209-\fBquit\fR
210-Quit the compositor\.
211-.IP
212-Example:
213-.IP
214-$ howlc quit
215-.SH "BINDINGS"
216-The format for keybindings is the following:
217-.P
218-Each key/modifier in the binding string is separated by a plus (+) sign\. There can be multiple modifiers, but only one key\. The accepted modifiers are:
219-.IP "\(bu" 4
220-\fBmod\fR: Corresponds to the modifier key
221-.IP "\(bu" 4
222-\fBalt\fR: The Alt key
223-.IP "\(bu" 4
224-\fBwin\fR: The Win key, sometimes the logo
225-.IP "\(bu" 4
226-\fBctrl\fR: The Ctrl key
227-.IP "\(bu" 4
228-\fBshift\fR: The Shift key
229-.IP "\(bu" 4
230-\fBany\fR: Any, (and) no modifiers
231-.IP "" 0
232-.P
233-The accepted key strings are as specified in \fB<xkbcommon/xkbcommon\-keysyms\.h>\fR\.
234-.SH "BUGS"
235-The manual does not specify the names for modifiers on other platforms\.
236-.P
237-Please report any other ones, which there are probably many of\.
238-.SH "COPYRIGHT"
239-\fBhowl\fR and \fBhowlc\fR are (C) wf 2026 \fIhttps://sr\.ht/~wf\fR\.
240-.SH "SEE ALSO"
241-README\.md, howl(1)
242+.Dd $Mdocdate$
243+.Dt HOWLC 1
244+.Sh NAME
245+.Nm howlc
246+.Nd client to control the
247+.Xr howl 1 compositor
248+.Sh SYNOPSIS
249+.Nm howlc
250+.Ar cmd
251+.Op Ar args No ...
252+.Sh COMMANDS
253+Aside from the configuration commands (bind, borders, etc.), all of the following commands take a window ID argument. Command arguments will always take order priority over the window IDs.
254+.Bl -tag
255+.It Xo
256+.Cm move , Cm move_absolute
257+.Ar x y
258+.Xc
259+Move the window relative to its current position by
260+.Ar x
261+and
262+.Ar y
263+pixels, or to the absolute position on the screen specified by
264+.Ar x
265+and
266+.Ar y .
267+.El
268+.Bl -tag
269+.It Xo
270+.Cm resize , Cm resize_absolute
271+.Ar w h
272+.Xc
273+Resize the window relative to its current size by
274+.Ar w
275+and
276+.Ar h
277+pixels, or to the absolute size specified by
278+.Ar w
279+and
280+.Ar h .
281+.El
282+.Bl -tag
283+.It Xo
284+.Cm teleport
285+.Ar x y w h
286+.Xc
287+Move and resize the window to the absolute geometry specified by
288+.Ar x ,
289+.Ar y ,
290+.Ar w and
291+.Ar h .
292+.El
293+.Bl -tag
294+.It Xo
295+.Cm center
296+.Xc
297+Move the window to the center of its current screen.
298+.El
299+.Bl -tag
300+.It Ic fullscreen
301+Fullscreen the window on its current screen.
302+.El
303+.Bl -tag
304+.It Ic show , Ic hide
305+Map / unmap the window.
306+.El
307+.Bl -tag
308+.It Ic raise , Ic lower
309+Raise / lower the window in the stack.
310+.El
311+.Bl -tag
312+.It Ic focus_next , Ic focus_prev
313+Focus the next / previous window on the current workspace.
314+.El
315+.Bl -tag
316+.It Ic unfocus
317+Unfocus the current window.
318+.El
319+.Bl -tag
320+.It Ic close
321+Close the window.
322+.El
323+.Bl -tag
324+.It Xo
325+.Cm workspace , Cm move_workspace
326+.Ar num
327+.Xc
328+Switch to, or move the window to the workspace specified by
329+.Ar num .
330+.El
331+.Bl -tag
332+.It Ic get_geometry , Ic get_screen_geometry
333+Print the window's geometry in the format of x, y, width and height, or the main screen's geometry in the format of width and height.
334+.It Ic get_pid
335+Print the window's controlling process' PID, or 0 if unknown.
336+.It Ic get_title , Ic get_app_id
337+Print the window's title or app ID.
338+.It Ic get_focus
339+Print the currently focused window's ID. If no window is focused, the commands exits with a nonzero status.
340+.It Ic get_workspace
341+Print the currently active workspace.
342+.It Ic get_cursor_position
343+Print the cursor's position in the format of x and y.
344+.El
345+.Bl -tag
346+.It Xo
347+.Cm list_windows
348+.Op Fl mua
349+.Xc
350+Print a list of (by default) mapped windows. Alternatively, passing the
351+.Fl u
352+option will make it print a list of unmapped windows, and passing the
353+.Fl a
354+option will make it print a list of both mapped and unmapped windows.
355+.El
356+.Bl -tag
357+.It Xo
358+.Cm bind
359+.Ar keys cmd
360+.Xc
361+Bind a combination of
362+.Ar keys
363+to execute
364+.Ar cmd . Ar keys
365+is a string in the format of
366+.Em mods No +
367+.Em keys ,
368+where mods can be either
369+.Em mod ,
370+.Em alt ,
371+.Em logo ,
372+.Em ctrl ,
373+.Em shift
374+or
375+.Em any ,
376+and keys can be any valid keysym string as validated by
377+.Fn xkb_keysym_from_name .
378+.El
379+.Bl -tag
380+.It Xo
381+.Cm unbind
382+.Ar keys
383+.Xc
384+Unbind the key combination specified by
385+.Ar keys ,
386+or, if not bound, exit with a nonzero status.
387+.El
388+.Bl -tag
389+.It Xo
390+.Cm modkey
391+.Ar keys
392+.Xc
393+Change the modifier key combination as specified by
394+.Ar keys .
395+The combination is in the same format as mentioned above, see
396+.Sy bind .
397+.El
398+.Bl -tag
399+.It Xo
400+.Cm inner_unfocus_color , Cm inner_unfocus_color , Cm outer_focus_color , Cm outer_unfocus_color
401+.Ar color
402+.Xc
403+Change the inner / outer border's focused / unfocused color to
404+.Ar color .
405+.El
406+.Bl -tag
407+.It Xo
408+.Cm inner_border_width , Cm outer_border_width
409+.Ar width
410+.Xc
411+Change the inner / outer border's width to
412+.Ar width .
413+.El
414+.Bl -tag
415+.It Xo
416+.Cm title_format
417+.Ar fmt
418+.Xc
419+Change the format of the window title as displayed in the titlebar to
420+.Ar fmt .
421+Accepted format strings are:
422+.Bl -tag -width Ds
423+.It Ql %t
424+window title
425+.It Ql %a
426+window app ID
427+.It Ql %p
428+window's controlling process' PID
429+.El
430+.El
431+.Bl -tag
432+.It Xo
433+.Cm set_decor
434+.Ar path
435+.Xc
436+Load the decoration folder at
437+.Ar path .
438+.El
439+.Bl -tag
440+.It Ic quit
441+Exits the compositor.
442+.El
443+.Sh EXIT STATUS
444+.Ex -std
445+.Sh SEE ALSO
446+.Xr howl 1
447+.Sh AUTHORS
448+.An wf Aq Mt smite@netc.fr
449+
450+howl and howlc are maintained at
451+.Lk https://git.sr.ht/~wf/howl .
452+.Sh BUGS
453+The manual has no information about the format of decoration folders; however, the src/decor.c file in the source does describe it somewhat extensively.
454+
455+Many, many more.
+0, -244
  1@@ -1,244 +0,0 @@
  2-howlc(1) -- client to control the howl compositor
  3-=================================================
  4-
  5-## SYNOPSIS
  6-
  7-`howlc` <cmd> [<args>...]
  8-
  9-## DESCRIPTION
 10-
 11-**howlc** is a client that controls the howl(1) compositor.
 12-
 13-## COMMANDS
 14-
 15-Most of the following (can be deduced logically) can take an optional window ID argument, e.g.: `move 20 20 4`, where the first 2 arguments given to `move` are the coordinates and the third one is the window ID. If no window ID is given, then the currently focused window will be targeted (if it exists).
 16-
 17-  * `move`, `move_absolute`:
 18-    Will move the window relative to either its current position or to the top
 19-    left corner of the screen. Arguments are in the form of pairs of x and y
 20-    integer coordinates.
 21-    
 22-    Example:
 23-
 24-    $ howlc move 20 -40
 25-
 26-    $ howlc move_absolute 300 300
 27-
 28-  * `resize`, `resize_absolute`:
 29-    Will resize the window relative to either its current position or the top
 30-    left corner of the screen. Arguments are in the form of pairs of w and h
 31-    integers.
 32-
 33-    Example:
 34-
 35-    $ howlc resize 20 -40
 36-
 37-    $ howlc resize_absolute 300 300
 38-
 39-  * `teleport`:
 40-    Will "teleport" (move and resize) the window to the coordinates specified, in
 41-    the format of x, y, w and h.
 42-
 43-    Example:
 44-
 45-    $ howlc teleport 50 25 200 250
 46-
 47-  * `center`:
 48-    Will position the window in the center of the screen.
 49-
 50-    Example:
 51-
 52-    $ howlc center
 53-
 54-  * `fullscreen`:
 55-    Will resize the window to the screen size.
 56-
 57-    Example:
 58-
 59-    $ howlc fullscreen
 60-
 61-  * `hide`, `show`:
 62-    Hide/show the window.
 63-
 64-    Example:
 65-
 66-    $ howlc hide
 67-
 68-    $ howlc show
 69-
 70-  * `focus_prev`, `focus_next`:
 71-    Focus the previous/next window.
 72-
 73-    Example:
 74-
 75-    $ howlc focus_prev
 76- 
 77-    $ howlc focus_next
 78-
 79-  * `lower`, `raise`:
 80-    Lower/raise the window's stack order.
 81-
 82-    Example:
 83-
 84-    $ howlc lower
 85-
 86-    $ howlc raise
 87-
 88-  * `unfocus`:
 89-    Unfocuces the currently focused window (if any).
 90-
 91-  * `close`:
 92-    Closes the window.
 93-
 94-    Example:
 95-
 96-    $ howlc close
 97-
 98-  * `workspace`, `move_workspace`:
 99-    Switch, or move the window, to the specified workspace. Argument is a single
100-    integer representing the workspace number.
101-
102-    Example:
103-
104-    $ howlc workspace 3
105-
106-    $ howlc move_workspace 6
107-
108-  * `get_geometry`, `get_pid`, `get_title`, `get_app_id`:
109-    Print the window's geometry (in x, y, w and h), process ID, title or app ID.
110-
111-    Example:
112-
113-    $ howlc get_geometry<br>
114-    327 148 620 620
115-
116-    $ howlc get_pid<br>
117-    12345
118-
119-    $ howlc get_title<br>
120-    Example
121-
122-    $ howlc get_app_id<br>
123-    example
124-
125-  * `get_screen_geometry`:
126-    Print the current screen's width and height.
127-
128-    Example:
129-
130-    $ howlc get_screen_geometry<br>
131-    1920 1080
132-
133-  * `list_windows`:
134-    Print a list of currently open windows. By default only mapped windows are listed, but `-u` can be specified as an option to list only unmapped windows, and `-a` can be specified to list all windows.
135-
136-    Example:
137-
138-    $ howlc list_windows -u<br>
139-    0<br>
140-    21<br>
141-    25
142-
143-  * `bind`:
144-    Create a key binding. Arguments are in the form of a list of keys and the command to execute,
145-    see the [BINDINGS][] section for more info.
146-
147-    Example:
148-
149-    \# Bind modkey+Shift+g to execute "example_command"<br>
150-    $ howlc bind mod+shift+g "example_command"
151-
152-    \# Bind Win+4 to switch to the 4th workspace<br>
153-    $ howlc bind win+4 "howlc workspace 4"
154-
155-  * `unbind`:
156-    Remove a previously registered key binding.
157-
158-    Example:
159-
160-    $ howlc unbind mod+shift+g
161-
162-  * `modkey`:
163-    Configure the modifier key. This can be then used as an alias in keybindings, like so: `mod+key`.
164-    See the [BINDINGS][] section for allowed values.
165-
166-    Example:
167-
168-    $ howlc modkey alt
169-
170-    $ howlc modkey win+ctrl
171-
172-  * `inner_focus_color`, `inner_unfocus_color`, `inner_unfocus_color`, `outer_unfocus_color`:
173-    Set the inner/outer focused and unfocused colors of the window borders. Arguments are in the format of #RRGGBB,
174-    where the leading pound sign is optional. Note that in the format of #RRGGBB, the argument needs to
175-    be quoted, since the pound sign (#) is a special one in most shells.
176-
177-    Example:
178-
179-    $ howlc outer_focus_color "#f03937"
180-
181-    $ howlc inner_unfocus_color eeeeee
182-
183-  * `inner_border_width`, `outer_border_width`:
184-    Set the inner/outer border widths of the window borders. Argument is a single integer representing the new border width.
185-
186-    Example:
187-
188-    $ howlc inner_border_width 4
189-
190-    $ howlc outer_border_width 0
191-
192-  * `title_format`:
193-    Set the format for the text displayed in window titlebars. Currently accepted specifiers are:
194-
195-    `%t` - window title<br>
196-    `%a` - window app ID<br>
197-    `%p` - window PID
198-
199-    Example:
200-
201-    $ howlc title_format '%t %p'
202-
203-  * `set_decor`:
204-    Set the current window decoration theme. Argument is a path (absolute or relative) to the directory containing the theme. See decor.c on the format of themes.
205-
206-    Example:
207-
208-    $ howlc set_decor ~/etc/decorations/theme
209-
210-  * `quit`:
211-    Quit the compositor.
212-
213-    Example:
214-
215-    $ howlc quit
216-
217-## BINDINGS
218-
219-The format for keybindings is the following:
220-
221-Each key/modifier in the binding string is separated by a plus (+) sign. There can be multiple modifiers,
222-but only one key. The accepted modifiers are:
223-
224- * `mod`: Corresponds to the modifier key
225- * `alt`: The Alt key
226- * `win`: The Win key, sometimes the logo
227- * `ctrl`: The Ctrl key
228- * `shift`: The Shift key
229- * `any`: Any, (and) no modifiers
230-
231-The accepted key strings are as specified in `<xkbcommon/xkbcommon-keysyms.h>`.
232-
233-## BUGS
234-
235-The manual does not specify the names for modifiers on other platforms.
236-
237-Please report any other ones, which there are probably many of.
238-
239-## COPYRIGHT
240-
241-`howl` and `howlc` are (C) wf 2026 <https://sr.ht/~wf>.
242-
243-## SEE ALSO
244-
245-README.md, howl(1)