Commit Graph

104 Commits

Author SHA1 Message Date
tiosgz
fbb9cc0f76 build: load tablet-v2 protocol from its new location 2024-09-04 10:57:16 +00:00
Violet Purcell
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
Isaac Freund
99ef96a389
build: update to wlroots 0.18.0 2024-07-16 14:34:40 +02:00
Isaac Freund
8da69699e9
build: update to Zig 0.13.0 2024-06-07 14:01:30 +02:00
Isaac Freund
958f8798b6
build: switch to the Zig package manager
No more git submodules!
2024-05-20 11:44:08 +02:00
Isaac Freund
045ee7bd25
build: add -Dno-llvm build option 2024-05-20 11:35:36 +02:00
Isaac Freund
033cad47bf
build: update to Zig 0.12 2024-05-20 11:35:36 +02:00
Isaac Freund
6b86af4f85
build: bump version to 0.4.0-dev 2024-04-17 14:39:55 +02:00
Isaac Freund
d3178ae13f
build: bump version to 0.3.0 2024-04-16 14:03:17 +02:00
Isaac Freund
ed99d7bc14
docs: migrate to codeberg
wiki and release migration are TODO
2024-03-22 16:49:28 +01:00
Isaac Freund
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
Isaac Freund
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
MaxVerevkin
9ce4525f08
river: Implement cursor_shape_v1 2024-01-04 14:14:00 -06:00
Isaac Freund
093b85d234
build: fix comment on scanner.generate() versions 2023-12-05 11:37:15 +01:00
Isaac Freund
2e586c7061
build: update to Zig 0.11.0 2023-10-16 16:27:03 +02:00
Isaac Freund
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
Isaac Freund
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
Isaac Freund
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
Isaac Freund
be4330288d
river: rework core data structures & transactions 2023-02-28 18:28:17 +01:00
Isaac Freund
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
Isaac Freund
09f3f141ae
deps: update to Zig 0.10 2023-01-08 16:21:42 +01:00
Isaac Freund
e49db7682c
build: bump version to 0.3.0-dev 2023-01-02 01:55:16 +01:00
Isaac Freund
4d8f816305
build: bump to version 0.2.0 2023-01-02 01:12:11 +01:00
MaxVerevkin
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
Isaac Freund
33187e0b09
ext-session-lock: implement protocol 2022-11-13 16:45:18 +01:00
Leon Henrik Plickat
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
Isaac Freund
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
Isaac Freund
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
Isaac Freund
3cb6428da6
build: add -Dstrip and -Dpie build options 2022-05-22 15:25:38 +02:00
Isaac Freund
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
Isaac Freund
d47be3b592
deps: update to latest zig-wayland 2022-05-11 18:02:32 +02:00
Hugo Machet
da59632cea code: Cleanup use of std library for consistancy 2022-02-08 12:02:05 +01:00
Isaac Freund
c1d985ac29
build: update to zig version 0.9.0 2021-12-24 05:28:14 +00:00
Isaac Freund
18072e00bf
build: bump version to 0.2.0-dev 2021-11-03 00:31:55 +01:00
Isaac Freund
40e6a83ba8
build: bump version to 0.1.0 2021-11-03 00:01:31 +01:00
Isaac Freund
69d1453741
build: fix trailing newline in version string 2021-11-02 23:54:44 +01:00
Isaac Freund
c9de08fa10
docs: update URLs for migration to riverwm github org 2021-11-01 11:28:43 +01:00
novakane
f56c892958 build: Use pkg-config to handle river protocols 2021-07-28 19:30:50 +00:00
Isaac Freund
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
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
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
Isaac Freund
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
Isaac Freund
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
Isaac Freund
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
novakane
32d35cdf91 Add -version flag to river, riverctl and rivertile 2021-07-24 14:14:53 +00: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
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
Leon Henrik Plickat
833248e805 Add basic input configuration 2021-06-13 10:37:36 -07:00
Isaac Freund
c0a2286847
code: update to zig 0.8.0 2021-06-05 17:29:58 +00:00
Isaac Freund
e80b883a47 river-layout: update to v2
This implements the changes to the river-layout protocol proposed
in the previous commit removing river-options.
2021-04-27 00:10:20 +02:00