Commit Graph

106 Commits

Author SHA1 Message Date
e575485f0d deps: upgrade to latest zig-wayland 2024-12-23 14:14:35 -06:00
4fba7505f3 deps: update to latest zig-wayland 2024-12-17 17:35:16 -06:00
fbb9cc0f76 build: load tablet-v2 protocol from its new location 2024-09-04 10:57:16 +00:00
066baa5753 tearing-control-v1: implement
Implement the wp-tearing-control-v1 protocol allowing window to hint
the compositor that they prefer async "tearing" page flips.

Add tearing/no-tearing rules to allow the user to manually
enabled/disable tearing for a window.

Use async "tearing" page flips when a window that should be allowed to
tear is fullscreen.

This still requires several kernel patches to work with the wlroots
atomic DRM backend. For now, either set WLR_DRM_NO_ATOMIC=1 or use a
custom kernel that includes the unmerged patches (such as CachyOS).

Closes: https://codeberg.org/river/river/issues/1094
2024-08-15 11:45:53 +02:00
99ef96a389 build: update to wlroots 0.18.0 2024-07-16 14:34:40 +02:00
8da69699e9 build: update to Zig 0.13.0 2024-06-07 14:01:30 +02:00
958f8798b6 build: switch to the Zig package manager
No more git submodules!
2024-05-20 11:44:08 +02:00
045ee7bd25 build: add -Dno-llvm build option 2024-05-20 11:35:36 +02:00
033cad47bf build: update to Zig 0.12 2024-05-20 11:35:36 +02:00
6b86af4f85 build: bump version to 0.4.0-dev 2024-04-17 14:39:55 +02:00
d3178ae13f build: bump version to 0.3.0 2024-04-16 14:03:17 +02:00
ed99d7bc14 docs: migrate to codeberg
wiki and release migration are TODO
2024-03-22 16:49:28 +01:00
49a779b24d tablet-v2: implement tablet tool support
There is not any pointer emulation for tablet tool input. This means
that only clients implementing the tablet-v2 protocol will be able to
process tablet tool input.

Tablet pad support is TODO
2024-03-11 15:05:42 +01:00
50d4f25eee build: enable frame pointers in release safe
These are by default only enabled for debug builds but give a higher
chance of getting a usable stack trace out of bug reports as Zig's
builtin stack trace dumping code doesn't handle their absence well in
all cases yet. The cost should be negligible as river is not CPU-bound.
2024-03-07 16:46:42 +01:00
9ce4525f08 river: Implement cursor_shape_v1 2024-01-04 14:14:00 -06:00
093b85d234 build: fix comment on scanner.generate() versions 2023-12-05 11:37:15 +01:00
2e586c7061 build: update to Zig 0.11.0 2023-10-16 16:27:03 +02: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
05eac54b07 xdg-decoration: clean up implementation
We now send some protocol errors that wlroots 0.16 is missing [1].
This also allows us to access the xdg decoration from a view, which will
be necessary for some future changes.

[1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4051
2023-03-10 18:49:30 +01:00
b7b371cb4f pointer-constraints: implement protocol
Now with 50% less pointer warping!

The new implementation requires the user to move the cursor into the
constraint region before the constraint is activated in order to keep
behavior more predictable.
2023-03-05 23:11:54 +01:00
be4330288d river: rework core data structures & transactions 2023-02-28 18:28:17 +01:00
b7ac5becfb pointer-constraints: remove protocol
This implementation as it stands is incomplete/buggy and will make
updating to wlr_scene more complex.

It will be reimplemented after updating to wlr_scene is complete.
2023-02-28 14:55:58 +01:00
09f3f141ae deps: update to Zig 0.10 2023-01-08 16:21:42 +01:00
e49db7682c build: bump version to 0.3.0-dev 2023-01-02 01:55:16 +01:00
4d8f816305 build: bump to version 0.2.0 2023-01-02 01:12:11 +01:00
e603c5460a river-status: correctly advertise version 4
This should have been a compile error but slipped through due to a bug
in zig-wayland. This bug has now been fixed and the submodule updated.
2022-12-02 15:19:13 +01:00
33187e0b09 ext-session-lock: implement protocol 2022-11-13 16:45:18 +01:00
844ffce037 river-layout: add user_command_tags event
It is not guaranteed that the next layout_demand event after a user_command
event has the same active tags (for example when there are no views visible).
As an example, a user could trigger a user_command while no views are visible,
then switch to a different tag set which has active views. The active tags of
the previous layout_demand may also be different.

Therefore it is impossible to correctly implement a layout generator which has
user commands apply only to the currently active tag set, which is solved by
this patch.
2022-08-16 13:40:07 +02:00
a413790158 build: don't scan xdg-output
This was used for the river-options protocol implementation in riverctl
and is no longer needed since the river options protocol got removed.
2022-06-03 23:31:07 +02:00
d657dc791b river-status: add mode event to seat status
This allows clients such as a status bar to display the currently active
mode.
2022-06-01 00:15:09 +02:00
3cb6428da6 build: add -Dstrip and -Dpie build options 2022-05-22 15:25:38 +02:00
7c440b834e build: follow semantic versioning for -dev versions
The new version format is 0.2.0-dev.76+d1cf95b which is compliant to the
semantic versioning 2.0.0 spec and sorts better than the old format.
2022-05-16 22:34:43 +02:00
d47be3b592 deps: update to latest zig-wayland 2022-05-11 18:02:32 +02:00
da59632cea code: Cleanup use of std library for consistancy 2022-02-08 12:02:05 +01:00
c1d985ac29 build: update to zig version 0.9.0 2021-12-24 05:28:14 +00:00
18072e00bf build: bump version to 0.2.0-dev 2021-11-03 00:31:55 +01:00
40e6a83ba8 build: bump version to 0.1.0 2021-11-03 00:01:31 +01:00
69d1453741 build: fix trailing newline in version string 2021-11-02 23:54:44 +01:00
c9de08fa10 docs: update URLs for migration to riverwm github org 2021-11-01 11:28:43 +01:00
f56c892958 build: Use pkg-config to handle river protocols 2021-07-28 19:30:50 +00:00
a07e5de945 build: install river-layout-v3 to $PREFIX/share/river
This makes it easier for other projects (i.e. everyone's layout
generators) to depend on the protocol xml without needing to vendor it.

The river-layout-v3 protocol should remain stable for the
forseeable future, hopefully forever. On the other hand, the current
river-control-unstable-v1 and river-status-unstable-v1 protocols
will be replaced as soon as we have time to implement better
versions. Therefore, let's not encourage usage of the protocols we
intend to remove.
2021-07-25 19:31:38 +02:00
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
734521560b river: add custom wlroots log handler
This makes river's log output more consistent and will allow
filtering by the wlroots scope in the future.
2021-07-25 01:22:36 +02:00
23088b800c common: standardize on -help option
Also:

- Check for -help option *before* unknown options
- Use common flags parsing code for riverctl
- Add usage text to riverctl
2021-07-24 19:31:04 +02:00
a5a505ecba common: remove support for positional arguments
This is currently unused and I don't like the approach anymore
regardless. If/when we need positional arguments (probably when
implementing the upcoming river-control protocol in rivertile)
they should be handled separately from flags.

This commit also improves the CLI error reporting to always print the
usage string if invalid arguments were passed.
2021-07-24 18:29:48 +02:00
f6fa3425de river: use common CLI arg parsing code
This makes river's main() function quite a bit cleaner.
2021-07-24 16:44:11 +02:00
32d35cdf91 Add -version flag to river, riverctl and rivertile 2021-07-24 14:14:53 +00:00
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
0063c722e5 river: remove system /etc dir from init search paths
A true "default" config doesn't make sense for river. Everyone who uses
river seriously will customize their init script. Futhermore, the
current behavior of embedding the install path of the default system
config in the river binary is complex and prone to breaking.
2021-07-17 16:04:51 +02:00
833248e805 Add basic input configuration 2021-06-13 10:37:36 -07:00