main wf/howl / doc / howlc.1.ronn
  1howlc(1) -- client to control the howl compositor
  2=================================================
  3
  4## SYNOPSIS
  5
  6`howlc` <cmd> [<args>...]
  7
  8## DESCRIPTION
  9
 10**howlc** is a client that controls the howl(1) compositor.
 11
 12## COMMANDS
 13
 14Most 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).
 15
 16  * `move`, `move_absolute`:
 17    Will move the window relative to either its current position or to the top
 18    left corner of the screen. Arguments are in the form of pairs of x and y
 19    integer coordinates.
 20    
 21    Example:
 22
 23    $ howlc move 20 -40
 24
 25    $ howlc move_absolute 300 300
 26
 27  * `resize`, `resize_absolute`:
 28    Will resize the window relative to either its current position or the top
 29    left corner of the screen. Arguments are in the form of pairs of w and h
 30    integers.
 31
 32    Example:
 33
 34    $ howlc resize 20 -40
 35
 36    $ howlc resize_absolute 300 300
 37
 38  * `teleport`:
 39    Will "teleport" (move and resize) the window to the coordinates specified, in
 40    the format of x, y, w and h.
 41
 42    Example:
 43
 44    $ howlc teleport 50 25 200 250
 45
 46  * `center`:
 47    Will position the window in the center of the screen.
 48
 49    Example:
 50
 51    $ howlc center
 52
 53  * `fullscreen`:
 54    Will resize the window to the screen size.
 55
 56    Example:
 57
 58    $ howlc fullscreen
 59
 60  * `hide`, `show`:
 61    Hide/show the window.
 62
 63    Example:
 64
 65    $ howlc hide
 66
 67    $ howlc show
 68
 69  * `focus_prev`, `focus_next`:
 70    Focus the previous/next window.
 71
 72    Example:
 73
 74    $ howlc focus_prev
 75 
 76    $ howlc focus_next
 77
 78  * `lower`, `raise`:
 79    Lower/raise the window's stack order.
 80
 81    Example:
 82
 83    $ howlc lower
 84
 85    $ howlc raise
 86
 87  * `close`:
 88    Closes the window.
 89
 90    Example:
 91
 92    $ howlc close
 93
 94  * `workspace`, `move_workspace`:
 95    Switch, or move the window, to the specified workspace. Argument is a single
 96    integer representing the workspace number.
 97
 98    Example:
 99
100    $ howlc workspace 3
101
102    $ howlc move_workspace 6
103
104  * `get_geometry`, `get_pid`, `get_title`, `get_app_id`:
105    Print the window's geometry (in x, y, w and h), process ID, title or app ID.
106
107    Example:
108
109    $ howlc get_geometry<br>
110    327 148 620 620
111
112    $ howlc get_pid<br>
113    12345
114
115    $ howlc get_title<br>
116    Example
117
118    $ howlc get_app_id<br>
119    example
120
121  * `get_screen_geometry`:
122    Print the current screen's width and height.
123
124    Example:
125
126    $ howlc get_screen_geometry<br>
127    1920 1080
128
129  * `list_windows`:
130    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.
131
132    Example:
133
134    $ howlc list_windows -u<br>
135    0<br>
136    21<br>
137    25
138
139  * `bind`:
140    Create a key binding. Arguments are in the form of a list of keys and the command to execute,
141    see the [BINDINGS][] section for more info.
142
143    Example:
144
145    \# Bind modkey+Shift+g to execute "example_command"<br>
146    $ howlc bind mod+shift+g "example_command"
147
148    \# Bind Win+4 to switch to the 4th workspace<br>
149    $ howlc bind win+4 "howlc workspace 4"
150
151  * `unbind`:
152    Remove a previously registered key binding.
153
154    Example:
155
156    $ howlc unbind mod+shift+g
157
158  * `modkey`:
159    Configure the modifier key. This can be then used as an alias in keybindings, like so: `mod+key`.
160    See the [BINDINGS][] section for allowed values.
161
162    Example:
163
164    $ howlc modkey alt
165
166    $ howlc modkey win+ctrl
167
168  * `inner_focus_color`, `inner_unfocus_color`, `inner_unfocus_color`, `outer_unfocus_color`:
169    Set the inner/outer focused and unfocused colors of the window borders. Arguments are in the format of #RRGGBB,
170    where the leading pound sign is optional. Note that in the format of #RRGGBB, the argument needs to
171    be quoted, since the pound sign (#) is a special one in most shells.
172
173    Example:
174
175    $ howlc outer_focus_color "#f03937"
176
177    $ howlc inner_unfocus_color eeeeee
178
179  * `inner_border_width`, `outer_border_width`:
180    Set the inner/outer border widths of the window borders. Argument is a single integer representing the new border width.
181
182    Example:
183
184    $ howlc inner_border_width 4
185
186    $ howlc outer_border_width 0
187
188  * `title_format`:
189    Set the format for the text displayed in window titlebars. Currently accepted specifiers are:
190
191    `%t` - window title<br>
192    `%a` - window app ID<br>
193    `%p` - window PID
194
195    Example:
196
197    $ howlc title_format '%t %p'
198
199  * `set_decor`:
200    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.
201
202    Example:
203
204    $ howlc set_decor ~/etc/decorations/theme
205
206  * `quit`:
207    Quit the compositor.
208
209    Example:
210
211    $ howlc quit
212
213## BINDINGS
214
215The format for keybindings is the following:
216
217Each key/modifier in the binding string is separated by a plus (+) sign. There can be multiple modifiers,
218but only one key. The accepted modifiers are:
219
220 * `mod`: Corresponds to the modifier key
221 * `alt`: The Alt key
222 * `win`: The Win key, sometimes the logo
223 * `ctrl`: The Ctrl key
224 * `shift`: The Shift key
225 * `any`: Any, (and) no modifiers
226
227The accepted key strings are as specified in `<xkbcommon/xkbcommon-keysyms.h>`.
228
229## BUGS
230
231The manual does not specify the names for modifiers on other platforms.
232
233Please report any other ones, which there are probably many of.
234
235## COPYRIGHT
236
237`howl` and `howlc` are (C) wf 2026 <https://sr.ht/~wf>.
238
239## SEE ALSO
240
241README.md, howl(1)