Commit Graph

123 Commits

Author SHA1 Message Date
b35d779122 river: focus-view and swap by spatial direction 2023-07-09 23:20:06 +02:00
0b142bd16b river: add tags rule 2023-06-28 15:38:32 +02:00
a98de941d0 river: change order of colums in list-rules command
This will make it easier to extend the command later for new rules
2023-06-27 10:47:44 +02:00
b369815070 command/send-to-output: add -current-tags flag 2023-03-25 14:32:31 +01:00
0355b654af doc: fix typo in riverctl man page 2023-03-13 10:04:46 +01:00
fe3c3b5246 docs: fix typo in riverctl man page 2023-03-12 17:14:57 +01:00
b2b2c9ed13 river: add rules system
This is a breaking change and replaces the previous
csd-filter-add/remove and float-filter-add/remove commands.

See the riverctl(1) man page for documentation on the new system.
2023-03-12 16:44:19 +01:00
345d6b737a docs: fix typos in riverctl man page 2023-02-03 18:18:21 +01:00
c479525ab8 rivertile: fix code to disallow 0 main count
Also document this limit
2023-01-06 17:47:54 +01:00
39104ae9e3 command/spawn-tagmask: apply globally
Currently the spawn-tagmask applies to the currently focused output.
This however means that it is lost if the monitor is unplugged and makes
it hard to set for all outputs.

Change this to make the command apply to all outputs.

This is a breaking change.
2023-01-02 00:58:25 +01:00
eed7d94557 docs: improve keyboard layout documentation
- Remove recommendation of XKB_* environment variables in river(1) as we
  now have a dedicated riverctl keyboard-layout command.

- Give an example of how to use and switch between multiple layouts in
  the riverctl(1) man page.
2022-12-28 20:43:54 +01:00
0cb6b3f81d command/keyboard-layout: use flags.zig, cleanup 2022-12-28 20:21:23 +01:00
ad1dbb1180 river: add keyboard-layout command
This allows switching river's keyboard layout at runtime.
2022-12-28 20:20:36 +01:00
8036ae2bd1 Cursor: add on-focus-change option
Warp the cursor to the center of the focused view if the cursor is not
in the bounding box of that view already. This helps the user to keep
track of their cursor when they mostly use the keyboard and the cursor
becomes hidden most of the time, also helps trackpad/trackpoint users.
2022-12-01 14:23:02 +01:00
cacc986166 map-pointer: allow running arbitrary commands 2022-11-25 14:05:36 +01:00
33187e0b09 ext-session-lock: implement protocol 2022-11-13 16:45:18 +01:00
78a46c316a input-inhibit: remove support for protocol
The only valid use-case for this as far as I'm concerned is lockscreens,
which will now be supported through ext-session-lock-v1.
2022-11-13 16:45:18 +01:00
e35c147cd5 river: refactor keyboard groups implementation
This reduces the impact of keyboard groups on the Keyboard.zig
implementation and otherwise improves consistency with patterns used
elsewhere in rivers code.

There are also two small changes to the riverctl interface:

- keyboard-group-add-keyboard is renamed to keyboard-group-add
- keyboard-group-remove is added to support removing keyboards from a
group.
2022-09-18 15:53:45 +02:00
01f49bbbc1 river: add keyboard groups 2022-09-12 04:12:21 +02:00
b58bd829c2 docs: better connect 'index' to -layout in riverctl(1) 2022-07-02 21:46:12 +02:00
50c9e3d81b Cursor: revive 'always' focus-follows-cursor mode
This was removed a while back because it was buggy and I didn't know
of anyone using it. Since refactoring it is now trivial to implement
and I know of at least one person using it, so I don't mind reviving it.
2022-06-03 12:03:08 +02:00
44aaee3a51 command/map: layout-pinned mappings
e.g. `riverctl map -layout 0 normal Super Y spawn foot`

When this mapping is checked against a pressed key, layout 0 will be used to translate the pressed key instead of the currently active layout.

The number denotes to an index of the layouts set with
`XKB_DEFAULT_LAYOUT`.
2022-04-27 18:31:08 +02:00
0b8758a422 Cursor: Add a hide-cursor command
From the riverctl.1 man page:

*hide-cursor* *timeout* _timeout_
    Hide the cursor if it wasn't moved in the last _timeout_
    milliseconds until it is moved again.
    The default value is 0, which disables automatically hiding the
    cursor. Show the cursor again on any movement.

*hide-cursor* *when-typing* *enabled*|*disabled*
    Hide the cursor when pressing any non-modifier key. Show the cursor
    again on any movement.
2022-04-14 13:37:31 +02:00
60fdefc3fd input: add map-switch/unmap-switch commands
This allows running a command on a laptop's lid being opened/closed
or a tablet's button/switch being pressed/toggled.
2022-04-14 12:49:47 +02:00
c4c0bece59 docs: fix typo in river(1) man page 2022-03-05 12:24:38 +01:00
ca47b8a54e command: allow targeting outputs by name
This extends focus-output and send-to-output to allow targeting
outputs by name instead of relative position.
2022-02-06 15:41:40 +01:00
422cd3e01f input: Improve input device name format
The name now includes the type, for the case of a physical device
advertising more than one logical device.
2022-02-05 18:52:46 +01:00
20ca8a2051 docs: fix typo in river(1) man page 2022-01-23 12:09:27 +01:00
f79c784e84 command/map: add Alt/Super as aliases for Mod1/Mod4
I personally made the mistake of using Alt instead of Mod1 when messing
with my config. This change makes things a bit more user
friendly/intuitive.
2022-01-17 12:38:41 +01:00
0cbe2b9fc3 docs: remove reference to /etc/river/init
We used to look in /etc/river/init if no init at ~/.config/river/init
or $XDG_CONFIG_HOME/river/init was found but this feature was
removed. It seems that we forgot to remove this mention of the old
behavior however.
2021-11-11 16:07:19 +01:00
c9de08fa10 docs: update URLs for migration to riverwm github org 2021-11-01 11:28:43 +01:00
f2cf4b9455 common: use -h instead of -help
This doesn't really matter that much as unrecognized options will still
trigger a help message to be printed, but -h is much more standard so
lets make the predictable choice here while sticking to only single '-'
flags.
2021-11-01 00:34:15 +01:00
4cee1fb881 docs: assorted fixes/cleanups 2021-11-01 00:29:06 +01:00
8757644b2a docs: standardize on "layout generator"
This is likely more clear than "layout client" to most users.
2021-10-31 22:32:59 +01:00
102a0b7cf5 docs: change Enter to Return
xkbcommon uses `Return` to indicate this key, `Enter` isn't a valid keysym name.
Co-authored-by: Euro <no>
2021-10-04 11:10:20 +02:00
e0784247b6 doc: update my (Isaac's) email address 2021-10-02 13:01:58 +02:00
81d103d425 river: add send-to-previous-tags command 2021-09-14 22:57:17 +02:00
5f6428bafe river: Allow applying CSD based on window titles
This extends the `csd-filter-add` command to allow matching on window
titles as well, using a `csd-filter-add kind pattern` syntax. The
following kinds are supported:

  * `title`, which matches window titles
  * `app-id`, which matches app ids

Only exact matches are considered.

As an example following configuration applies client-side decorations to
all windows with the title 'asdf with spaces'.

    riverctl csd-filter-add title 'asdf with spaces'
2021-09-07 12:30:53 +00:00
546252aecf river: Allow floating based on window titles
This extends the `float-filter-add` command to allow matching on window
titles as well, using a `float-filter-add kind pattern` syntax. The
following kinds are supported:

  * `title`, which matches window titles
  * `app-id`, which matches app ids

Only exact matches are considered.

As an example following configuration floats all windows with the title
'asdf with spaces'.

    riverctl float-filter-add title 'asdf with spaces'
2021-09-06 12:44:25 +00:00
e59c2a73d7 river: implement xdg-activation-v1
- add a new "urgent" border color
- add a new event to river-status-unstable-v1

Co-authored-by: Isaac Freund <ifreund@ifreund.xyz>
2021-08-19 12:58:52 +00:00
e9bfc5251e docs: default keyboard mapping mode is "normal" 2021-08-18 20:21:50 +00:00
2bdf9e20a5 command: support repeating keyboard mappings
Repeating mappings are created using the -repeat option to the map
command:

    % riverctl map normal $mod+Mod1 K -repeat move up 10

- repeating is only supported for key press (not -release) mappings
- unlike -release, -repeat does not create distinct mappings: mapping a
  key with -repeat will replace an existing bare mapping and vice-versa

Resolves #306
2021-08-15 14:49:11 +02:00
00f51e00b4 cursor: remove strict focus-follows-cursor mode
This is pretty much unusable after recent improvements to the cursor
code, and was totally broken causing a stack overflow as soon as the
cursor was moved over any surface until the previous commit.

Furthermore, none of the core contributors or people active on IRC seem
to use it.
2021-07-29 14:05:17 +02:00
90008cfa53 docs: fix typo in rivertile man page 2021-07-27 01:31:34 +02:00
8a1e96cddc config: change color format to 0xRRGGBBAA
The current format of #RRGGBBAA is problematic as # starts a comment
in POSIX compliant shells, requiring escaping/quoting and increasing
complexity.

This is a breaking change.
2021-07-26 20:36:46 +02:00
ae871c2fee docs: Wayland should always be capitalized
This matches the style used on https://wayland.freedesktop.org/
2021-07-26 12:20:48 +02:00
c26d18647b river: simplify log levels exposed to the user 2021-07-24 20:45:58 +02:00
8eaf7eb9cd docs: fix inconsistent capitalization 2021-07-24 19:45:25 +02:00
aa19a1a964 docs: add -help and -version options to man pages 2021-07-24 19:42:34 +02:00
b7e15a8ef6 river: make spawn command take only one argument
Currently the spawn command takes any number of arguments and naively
joins them together with spaces before passing them as the single
argument of `/bin/sh -c`. This however produces unexpected results as
soon as shell quoting gets involved in the arguments passed to spawn.
For example, running

riverctl spawn foo "bar baz"

will execute `/bin/sh -c "foo bar baz"`, unexpectedly splitting bar and
baz into separate arguments. To avoid this confusion, make the spawn
command take only a single argument, forcing the user to quote properly
to spawn multi-argument commands.
2021-07-21 14:07:49 +02:00