Commit Graph

33 Commits

Author SHA1 Message Date
Hugo Machet
f6cc4de884
example/init: Replace light with brightnessctl
Change screen backlight brightness command to brightnessctl(1) as
light(1) repo has been deleted.
2024-03-05 12:05:55 +01:00
tiosgz
d73ef51c89 riverctl: rule-{add,del}: reorder parameters
Previous order was (action, conditions, action argument), current is
(conditions, action, action argument). The old one was an expansion of
(action, conditions), which itself most likely came from the separate
<action>-filter-add commands. On the other hand, the new order keeps
action and its argument together and is in line with the logical flow
(check conditions, apply action).

On shell completions: only bash absolutely needed to be updated. fish
and zsh slightly misbehave regardless of the order.
2023-10-16 17:04:40 +00:00
Isaac Freund
e4e8eae0df
example/init: update for rules system 2023-03-12 17:26:44 +01:00
Isaac Freund
0752b6b9ba
example/init: Fix confusing comments
River does not currently recognize Ctrl as a modifier, only Control.
2023-03-09 23:35:06 +01:00
Alexander Courtis
cacc986166
map-pointer: allow running arbitrary commands 2022-11-25 14:05:36 +01:00
Isaac Freund
e2a27b3a4e
example/init: run rivertile in background
There have been multiple "bug reports" from users that have added more
configuration using riverctl after this line starting rivertile and were
confused why that configuration has no effect.

It's not our job to explain how POSIX shell works, but we can make the
example a bit more foolproof for those who do not yet have experience
with it
2022-11-25 12:40:11 +01:00
Isaac Freund
78d96d19e4
example/init: don't use exec
This causes far too much unnecessary confusion for people new to shell
scripting and is fairly pointless anyways.
2022-06-17 19:29:28 +02:00
Jan Evers
0dd5ad032c
example/init: fix typos 2022-05-24 23:23:45 +02:00
Isaac Freund
f6b1632af2
example/init: Use Alt/Super aliases 2022-01-17 13:15:15 +01:00
Isaac Freund
4cee1fb881
docs: assorted fixes/cleanups 2021-11-01 00:29:06 +01:00
Ben Fiedler
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
Isaac Freund
119d733bdf
docs: update example init for float fitler changes 2021-09-06 14:46:34 +02:00
Isaac Freund
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
Isaac Freund
b49ea34f15
build: remove example river-status client
This is out of date and currently doesn't compile. It also doesn't
really belong in the repository IMO, except maybe in the contrib
folder.
2021-07-25 19:15:33 +02:00
Isaac Freund
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
Isaac Freund
1d000e5666
rivertile: simplify commands
Instead of having separate commands for modifying/setting a value, use
the presence of a +/- sign to indicate modification.
2021-07-21 14:01:51 +02:00
Isaac Freund
2635f3299a
river-layout: update to v3
- Remove advertise_view and advertise_done events. Using the information
provided by these for any purpose would make the layout far less
predictable. Futhermore, in the months this has been available for use,
to my knowledge nobody has actually used it for anything useful.

- Replace the set/mod layout value events with a single user_command
event. This simplifies the protocol and is more flexible for clients.

- Add a layout_name argument to the commit request. This name is an
arbitrary, user-facing string that might, for example, be displayed by a
status bar. This was present in early drafts of the protocol, but was
removed in favor of river-options. Since river-options itself has since
been removed and this feature is nice to have, re-add it.

- Rename main factor to main ratio in rivertile. The "factor" name was
just legacy from dwm, "ratio" is much more accurate.
2021-07-20 10:48:11 +02:00
Isaac Freund
96e1082156 river: remove opacity command
This code is complex and increases maintenance burden but doesn't
add any functionality, only eye-candy.

Futhermore, neither I nor any of the core contributors use it.

There may be a place in river for such eye-candy down the line, in which
case this code could be revived. Currently river is early enough in its
development that our focus should be on core functionality instead.
2021-07-20 08:47:02 +00:00
Isaac Freund
3390f223a8
example/init: use Mod+Shift E for exit
I keep hitting Mod+E when testing because of colemak.
2021-05-24 00:33:53 +02:00
Callum R. Renwick
bcd35e5746 example/init: fix typo in introductory comment 2021-05-03 12:02:29 +02:00
Callum R. Renwick
be79ad9042 example/init: Fix typo for main view size change 2021-05-03 12:02:29 +02:00
Isaac Freund
ec2c50b33f
deps: update to latest zig-wayland 2021-04-27 12:24:30 +02:00
Isaac Freund
1b6e6de99e
example/init: use riverctl layout value commands 2021-04-27 11:43:45 +02:00
Isaac Freund
871fc7c8de river-options: remove protocol
This protocol involves far too much accidental complexity. The original
motivating use-case was to provide a convenient way to send arbitrary
data to layout clients at runtime in order to avoid layout clients
needing to implement their own IPC and do this over a side-channel.
Instead of implementing a quite complex but still rigid options protocol
and storing this state in the compositor, instead we will simply add
events to the layout protocol to support this use case.

Consider the status quo event sequence:

1. send get_option_handle request (riverctl)
2. roundtrip waiting for first event (riverctl)
3. send set_foo_value request (riverctl)
4. receive set_foo_value request (river)
5. send foo_value event to all current handles (river)
6. receive foo_value event (rivertile)
7. send parameters_changed request (rivertile)
8. receive parameters_changed request (river)
9. send layout_demand (river)

And compare with the event sequence after the proposed change:

1. send set_foo_value request (riverctl)
2. receive set_foo_value request (river)
3. send set_foo_value event (river)
4. send layout_demand (river)

This requires *much* less back and forth between the server and clients
and is clearly much simpler.
2021-04-27 00:10:20 +02:00
Isaac Freund
d08032d685 river-options: rework, bump to v2
Options are now all global but may be overridden per-output. If an
output local value is requested but none has been set, the global value
is provided instead. This makes for much better ergonomics when
configuring layout related options in particular.
2021-04-20 18:27:03 +02:00
Leon Henrik Plickat
f72656b72e river-layout: create and implement protocol
Replace the current layout mechanism based on passing args to a child
process and parsing it's stdout with a new wayland protocol. This much
more robust and allows for more featureful layout generators.

Co-authored-by: Isaac Freund <ifreund@ifreund.xyz>
2021-04-20 18:27:03 +02:00
Isaac Freund
8cbccbfb6e river-options: implement 2021-01-16 23:51:15 +01:00
Isaac Freund
faca330bd0
docs: fix typo in example init script 2021-01-07 11:33:40 +01:00
Isaac Freund
c7bc47d6d4
build: install example config to /etc/river/init 2020-12-30 20:29:28 +01:00
Isaac Freund
20d804cdb5 code: switch to custom wlroots/libwayland bindings
This is a big step up over @cImport() for ergonomics and type safety.
Nearly all void pointer casts have been eliminated!
2020-12-13 22:53:33 +01:00
Isaac Freund
f80992e329
meta: make copyright headers more maintainable
- list all files as copyright "The River Developers"
- add an AUTHORS file to acknowledge contributors
2020-11-11 20:33:43 +01:00
Isaac Freund
e48cf8eab6
river-status: simplify example client 2020-06-06 15:07:07 +02:00
Isaac Freund
83d2a8be5f
river-status: implement example client 2020-06-05 00:24:46 +02:00