2020-06-15 07:51:23 +00:00
|
|
|
RIVERCTL(1) "github.com/ifreund/river" "General Commands Manual"
|
2020-12-12 23:51:51 +00:00
|
|
|
|
2020-06-15 07:51:23 +00:00
|
|
|
# NAME
|
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
riverctl - command-line interface for controlling river
|
2020-06-15 07:51:23 +00:00
|
|
|
|
|
|
|
# SYNOPSIS
|
|
|
|
|
2020-08-01 07:37:14 +00:00
|
|
|
*riverctl* _command_ [_command specific arguments_]
|
2020-06-15 07:51:23 +00:00
|
|
|
|
|
|
|
# DESCRIPTION
|
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
*riverctl* is a command-line utility used to control and configure river
|
|
|
|
over the Wayland protocol.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
|
|
|
# COMMANDS
|
|
|
|
|
|
|
|
## ACTIONS
|
|
|
|
|
|
|
|
*close*
|
|
|
|
Close the focused view.
|
|
|
|
|
2020-07-16 17:45:45 +00:00
|
|
|
*csd-filter-add* _app-id_
|
2020-12-30 22:14:23 +00:00
|
|
|
Add _app-id_ to the CSD filter list. Views with this _app-id_ are
|
2020-12-30 22:10:41 +00:00
|
|
|
told to use client side decoration instead of the default server
|
2020-12-12 23:51:51 +00:00
|
|
|
side decoration.
|
2020-07-16 17:45:45 +00:00
|
|
|
|
2020-06-15 07:51:23 +00:00
|
|
|
*exit*
|
|
|
|
Exit the compositor, terminating the Wayland session.
|
|
|
|
|
2020-07-16 17:45:45 +00:00
|
|
|
*float-filter-add* _app-id_
|
2020-12-30 22:10:41 +00:00
|
|
|
Add _app-id_ to the float filter list. Views with this _app-id_
|
|
|
|
will start floating.
|
2020-07-16 17:45:45 +00:00
|
|
|
|
2020-06-15 07:51:23 +00:00
|
|
|
*focus-output* *next*|*previous*
|
2020-12-30 22:10:41 +00:00
|
|
|
Focus the next or previous output.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
|
|
|
*focus-view* *next*|*previous*
|
2020-12-30 22:10:41 +00:00
|
|
|
Focus the next or previous view in the stack.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2020-10-07 01:00:57 +00:00
|
|
|
*move* *up*|*down*|*left*|*right* _delta_
|
2020-12-30 22:10:41 +00:00
|
|
|
Move the focused view in the specified direction by _delta_ logical
|
|
|
|
pixels. The view will be set to floating.
|
2020-10-07 01:00:57 +00:00
|
|
|
|
|
|
|
*resize* *horizontal*|*vertical* _delta_
|
2020-12-30 22:10:41 +00:00
|
|
|
Resize the focused view along the given axis by _delta_ logical
|
|
|
|
pixels. The view will be set to floating.
|
2020-10-07 01:00:57 +00:00
|
|
|
|
|
|
|
*snap* *up*|*down*|*left*|*right*
|
2020-12-30 22:10:41 +00:00
|
|
|
Snap the focused view to the specified screen edge. The view will
|
|
|
|
be set to floating.
|
2020-10-07 01:00:57 +00:00
|
|
|
|
2020-06-15 07:51:23 +00:00
|
|
|
*send-to-output* *next*|*previous*
|
|
|
|
Send the focused view to the next or the previous output.
|
|
|
|
|
|
|
|
*spawn* _shell_command_
|
|
|
|
Run _shell_command_ using _/bin/sh -c_. Put single quotes around
|
|
|
|
_shell_command_ if you do not want special characters to get
|
|
|
|
interpreted by your shell before the command gets passed to _/bin/sh_.
|
|
|
|
|
2020-10-25 11:41:19 +00:00
|
|
|
*swap* *next*|*previous*
|
2020-12-30 22:10:41 +00:00
|
|
|
Swap the focused view with the next/previous visible non-floating
|
|
|
|
view. If the first/last view in the stack is focused, wrap.
|
2020-10-25 11:41:19 +00:00
|
|
|
|
2020-06-15 07:51:23 +00:00
|
|
|
*toggle-float*
|
2020-12-30 22:10:41 +00:00
|
|
|
Toggle the floating state of the focused view.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2020-06-28 23:50:26 +00:00
|
|
|
*toggle-fullscreen*
|
|
|
|
Toggle the fullscreen state of the focused view.
|
|
|
|
|
2020-06-15 07:51:23 +00:00
|
|
|
*zoom*
|
2020-12-30 22:10:41 +00:00
|
|
|
Bump the focused view to the top of the layout stack. If the top
|
|
|
|
view in the stack is already focused, bump the second view.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2021-04-26 14:35:26 +00:00
|
|
|
*default-layout* _namespace_
|
|
|
|
Set the layout namespace to be used by all outputs by default.
|
|
|
|
|
|
|
|
*output-layout* _namespace_
|
|
|
|
Set the layout namespace of currently focused output, overriding
|
|
|
|
the value set with *default-layout* if any.
|
|
|
|
|
2021-04-26 19:03:28 +00:00
|
|
|
*set-layout-value* _namespace_ _type_ _name_ _value_
|
|
|
|
Set the value with name _name_ of the layout on the focused output
|
|
|
|
with matching namespace. If there is no matching layout, this command
|
|
|
|
does nothing.
|
|
|
|
|
|
|
|
*mod-layout-value* _namespace_ _type_ _name_ _value_
|
|
|
|
Modify the value with name _name_ of the layout on the focused
|
|
|
|
output with matching namespace. If there is no matching layout,
|
|
|
|
this command does nothing.
|
|
|
|
|
2020-12-30 13:25:37 +00:00
|
|
|
## TAG MANAGEMENT
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2020-12-30 13:25:37 +00:00
|
|
|
Tags are similar to workspaces but more flexible. You can assign views multiple
|
|
|
|
tags and focus multiple tags simultaneously. Bitfields are used to describe
|
|
|
|
sets of tags when interfacing with river. As such, the following commands
|
|
|
|
take a normal base 10 number as their argument but the semantics are best
|
|
|
|
understood in binary. The binary number 000000001 represents a set containing
|
|
|
|
only tag 1 while 100001101 represents a set containing tags 1, 3, 4, and 9.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2021-01-02 08:43:53 +00:00
|
|
|
When a view spawns it is assigned the currently focused tags of the output.
|
|
|
|
|
2020-12-30 13:25:37 +00:00
|
|
|
At least one tag must always be focused and each view must be assigned at
|
|
|
|
least one tag. Operations that would violate either of these requirements
|
|
|
|
are ignored by river.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2020-12-30 13:25:37 +00:00
|
|
|
*set-focused-tags* _tags_
|
|
|
|
Show views with tags corresponding to the set bits of _tags_ on the
|
|
|
|
currently focused output.
|
|
|
|
|
|
|
|
*set-view-tags* _tags_
|
|
|
|
Assign the currently focused view the tags corresponding to the set
|
|
|
|
bits of _tags_.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2020-12-30 13:25:37 +00:00
|
|
|
*toggle-focused-tags* _tags_
|
|
|
|
Toggle visibility of views with tags corresponding to the set bits
|
|
|
|
of _tags_ on the currently focused output.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2020-12-30 13:25:37 +00:00
|
|
|
*toggle-view-tags* _tags_
|
|
|
|
Toggle the tags of the currently focused view corresponding to the
|
|
|
|
set bits of _tags_.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2021-01-02 08:43:53 +00:00
|
|
|
*spawn-tagmask* _tagmask_
|
|
|
|
Set a _tagmask_ to filter the tags assigned to newly spawned views
|
|
|
|
on the focused output. This mask will be applied to the tags of
|
|
|
|
new views with a bitwise and. If, for example, the tags 000011111
|
|
|
|
are focused on an output with a _tagmask_ of 111110001, a new view
|
|
|
|
will be assigned the tags 000010001. If no tags would remain after
|
|
|
|
filtering, the _tagmask_ is ignored.
|
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
## MAPPINGS
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
Mappings are modal in river. Each mapping is associated with a mode and is
|
|
|
|
only active while in that mode. There are two special modes: "default" and
|
|
|
|
"locked". The default mode is the initial mode for every seat. The locked
|
|
|
|
mode is automatically entered while an input inhibitor (such as a lockscreen)
|
|
|
|
is active. It cannot be left or entered manually.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
The following modifiers are available for use in mappings:
|
2020-06-15 07:51:23 +00:00
|
|
|
|
|
|
|
- Shift
|
|
|
|
- Lock (Caps lock)
|
|
|
|
- Control (Ctrl)
|
2020-06-17 08:39:48 +00:00
|
|
|
- Mod1 (Alt)
|
2020-06-15 07:51:23 +00:00
|
|
|
- Mod2
|
|
|
|
- Mod3
|
|
|
|
- Mod4 (Super, Logo, Windows)
|
|
|
|
- Mod5
|
2020-12-30 22:10:41 +00:00
|
|
|
- None (Create a mapping without modifiers)
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
Keys are specified by their XKB keysym name. See
|
|
|
|
_/usr/include/xkbcommon/xkbcommon-keysyms.h_ for the complete list.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
Mouse buttons are specified by linux input event code names. The most commonly
|
|
|
|
used values are:
|
2020-08-24 12:52:47 +00:00
|
|
|
|
|
|
|
- BTN_LEFT - left mouse button
|
|
|
|
- BTN_RIGHT - right mouse button
|
|
|
|
- BTN_MIDDLE - middle mouse button
|
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
A complete list may be found in _/usr/include/linux/input-event-codes.h_
|
2020-08-24 12:52:47 +00:00
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
*declare-mode* _name_
|
|
|
|
Create a new mode called _name_.
|
2020-08-24 12:52:47 +00:00
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
*enter-mode* _name_
|
2021-03-16 15:16:06 +00:00
|
|
|
Switch to given mode if it exists.
|
2020-08-24 12:52:47 +00:00
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
*map* [_-release_] _mode_ _modifiers_ _key_ _command_
|
|
|
|
Run _command_ when _key_ is pressed while _modifiers_ are held down
|
|
|
|
and in the specified _mode_.
|
2020-10-03 20:09:15 +00:00
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
- _-release_: if passed activate on key release instead of key press
|
|
|
|
- _mode_: name of the mode for which to create the mapping
|
|
|
|
- _modifiers_: one or more of the modifiers listed above, separated
|
|
|
|
by a plus sign (+).
|
|
|
|
- _key_: an XKB keysym name as described above
|
|
|
|
- _command_: any command that may be run with riverctl
|
2020-10-03 20:09:15 +00:00
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
*map-pointer* _mode_ _modifiers_ _button_ _action_
|
|
|
|
Move or resize views when _button_ and _modifiers_ are held down
|
|
|
|
while in the specified _mode_.
|
|
|
|
|
|
|
|
- _mode_: name of the mode for which to create the mapping
|
|
|
|
- _modifiers_: one or more of the modifiers listed above, separated
|
|
|
|
by a plus sign (+).
|
|
|
|
- _button_: the name of a linux input event code as described above
|
|
|
|
- _action_: one of the following values:
|
|
|
|
- move-view
|
|
|
|
- resize-view
|
|
|
|
|
|
|
|
*unmap* [_-release_] _mode_ _modifiers_ _key_
|
|
|
|
Remove the mapping defined by the arguments:
|
|
|
|
|
|
|
|
- _-release_: if passed unmap the key release instead of the key press
|
|
|
|
- _mode_: name of the mode for which to remove the mapping
|
|
|
|
- _modifiers_: one or more of the modifiers listed above, separated
|
|
|
|
by a plus sign (+).
|
|
|
|
- _key_: an XKB keysym name as described above
|
|
|
|
|
|
|
|
*unmap-pointer* _mode_ _modifiers_ _button_
|
|
|
|
Remove the pointer mapping defined by the arguments:
|
|
|
|
|
|
|
|
- _mode_: name of the mode for which to remove the mapping
|
|
|
|
- _modifiers_: one or more of the modifiers listed above, separated
|
|
|
|
by a plus sign (+).
|
|
|
|
- _button_: the name of a linux input event code as described above
|
|
|
|
|
|
|
|
## CONFIGURATION
|
|
|
|
|
|
|
|
*attach-mode* *top*|*bottom*
|
|
|
|
Configure where new views should attach to the view stack for the
|
|
|
|
currently focused output.
|
|
|
|
|
|
|
|
*background-color* _#RRGGBB_|_#RRGGBBAA_
|
|
|
|
Set the background color.
|
|
|
|
|
|
|
|
*border-color-focused* _#RRGGBB_|_#RRGGBBAA_
|
|
|
|
Set the border color of focused views.
|
|
|
|
|
|
|
|
*border-color-unfocused* _#RRGGBB_|_#RRGGBBAA_
|
|
|
|
Set the border color of unfocused views.
|
|
|
|
|
|
|
|
*border-width* _pixels_
|
|
|
|
Set the border width to _pixels_.
|
|
|
|
|
|
|
|
*focus-follows-cursor* *disabled*|*normal*|*strict*
|
|
|
|
There are three available modes:
|
|
|
|
|
|
|
|
- _disabled_: Moving the cursor does not affect focus. This is
|
|
|
|
the default
|
|
|
|
- _normal_: Moving the cursor over a view will focus that view.
|
|
|
|
Moving the cursor within a view will not re-focus that view if
|
|
|
|
focus has moved elsewhere.
|
|
|
|
- _strict_: Moving the cursor over a view or within a view will
|
|
|
|
focus that view.
|
|
|
|
|
|
|
|
If the view to be focused is on an output that does not have focus,
|
|
|
|
focus is switched to that output.
|
|
|
|
|
2020-12-30 22:24:57 +00:00
|
|
|
*opacity* _focused_ _unfocused_ _initial_ _step-size_ _delta-t_
|
2020-12-30 22:10:41 +00:00
|
|
|
Configure server-side opacity of views, including transition
|
|
|
|
animations. A value of 0.0 is fully transparent while 1.0 is fully
|
|
|
|
opaque. By default all views are fully opaque and there are no
|
|
|
|
animations.
|
|
|
|
|
|
|
|
- _focused_: opacity of focused views [0.0, 1.0]
|
|
|
|
- _unfocused_: opacity of unfocused views [0.0, 1.0]
|
|
|
|
- _initial_: opacity of views when they are created before immediately
|
|
|
|
transitioning to either _focused_ or _unfocused_ [0.0, 1.0]
|
2020-12-30 22:24:57 +00:00
|
|
|
- _step-size_: opacity change per step [0.05, 1.0]
|
2020-12-30 22:10:41 +00:00
|
|
|
- _delta-t_: step time in milliseconds
|
|
|
|
|
|
|
|
A transition animation may occur when changing between states with
|
|
|
|
different opacity values configured. Instead of setting the view's
|
|
|
|
opacity to the value for the new state immediately, it is changed
|
2020-12-30 22:24:57 +00:00
|
|
|
incrementally in steps of _step-size_ every _delta-t_ milliseconds.
|
|
|
|
Setting _step-size_ to 1.0 disables transitions fully regardless of
|
2020-12-30 22:10:41 +00:00
|
|
|
the value of _delta-t_.
|
2020-10-03 20:09:15 +00:00
|
|
|
|
2020-11-18 14:28:33 +00:00
|
|
|
*set-repeat* _rate_ _delay_
|
|
|
|
Set the keyboard repeat rate to _rate_ key repeats per second and
|
|
|
|
repeat delay to _delay_ milliseconds.
|
|
|
|
|
2020-07-14 15:34:29 +00:00
|
|
|
*xcursor-theme* _theme_name_ [_size_]
|
2020-12-12 23:51:51 +00:00
|
|
|
Set the xcursor theme to _theme_name_ and optionally set the _size_.
|
2020-12-30 22:10:41 +00:00
|
|
|
The theme of the default seat determines the default for Xwayland
|
|
|
|
and is made available through the _XCURSOR_THEME_ and _XCURSOR_SIZE_
|
2020-12-12 23:51:51 +00:00
|
|
|
environment variables.
|
2020-07-14 15:34:29 +00:00
|
|
|
|
2020-06-15 07:51:23 +00:00
|
|
|
# EXAMPLES
|
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
Bind bemenu-run to Super+P in normal mode:
|
2020-06-15 07:51:23 +00:00
|
|
|
|
|
|
|
riverctl map normal Mod4 P spawn bemenu-run
|
|
|
|
|
2020-12-30 22:10:41 +00:00
|
|
|
See also the example init script at /etc/river/init.
|
2020-06-15 07:51:23 +00:00
|
|
|
|
2020-11-11 19:44:41 +00:00
|
|
|
# AUTHORS
|
|
|
|
|
|
|
|
Maintained by Isaac Freund <ifreund@ifreund.xyz> who is assisted by open
|
|
|
|
source contributors. For more information about river's development, see
|
|
|
|
<https://github.com/ifreund/river>.
|
|
|
|
|
2020-06-15 07:51:23 +00:00
|
|
|
# SEE ALSO
|
|
|
|
|
2020-10-02 13:53:08 +00:00
|
|
|
*river*(1), *rivertile*(1)
|