Julian Orth
9812a02f87
io: use io_uring for all io
...
There should no longer be any
- read
- write
- connect
- sendmsg
- recvmsg
- accept
calls in the codebase. Previously we were using a mix of io_uring and
these calls which had some negative effects: Since we were using the old
system calls, we had to set the file descriptors to non-blocking. But
our io_uring code did not handle EAGAIN. This lead to programs sometimes
being killed when the wayland IO was actually blocking.
Now all file descriptors are set to blocking, but io_uring makes it
non-blocking from our perspective. The one exception are evdev files
because they are read via libinput and libinput uses the old system
calls.
2022-12-31 17:56:58 +01:00
Julian Orth
ae991b9038
all: address clippy lints
2022-08-13 17:46:23 +02:00
Julian Orth
a162055f1d
portal: add a desktop portal
2022-07-31 11:25:57 +02:00
Julian Orth
2568b7b1f5
pipewire: add pipewire client
2022-07-31 11:25:57 +02:00
Julian Orth
5a4e48e54a
wayland: add jay_screencast
2022-07-30 12:08:18 +02:00
Julian Orth
38d1267ec9
tree: implement pointer constraints
2022-07-21 20:16:22 +02:00
Julian Orth
2a9c746781
all: replace standard sync types by parking_lot
...
Mostly because we'll start using egui which already has a dependency on
parking_lot.
2022-06-05 13:44:12 +02:00
Julian Orth
e52a60b3b6
wayland: implement scaling
...
This involves many subsystems:
- config:
- allow setting the connector scale
- allow setting the cursor size
- cursors:
- load server cursors for all requested sizes and scales
- wl_surface:
- track the output the surface belongs to
- send wl_surface.enter/leave
- wl_output:
- implement wl_output.scale
- text:
- pre-render texts for all used scales
- renderer:
- properly align scale textures and rectangles
- wp_fractional_scale:
- new interface for fractional scaling
2022-05-30 17:00:25 +02:00
Julian Orth
20f0fba553
input: rename axix_smooth to axis_px
2022-05-27 17:02:44 +02:00
Julian Orth
64416d417b
all: fix new compiler warnings
2022-05-27 16:03:30 +02:00
Julian Orth
50c87d6da7
wayland: implement wl_seat v8
2022-05-27 15:39:48 +02:00
Julian Orth
858e777f5a
tree: activate workspace on click
2022-05-17 18:58:30 +02:00
Julian Orth
4780315f50
io-uring: ensure that timeouts are encoded in the same submission
2022-05-13 22:31:56 +02:00
Julian Orth
7cc6c945d3
io-uring: add recvmsg
2022-05-13 21:17:28 +02:00
Julian Orth
f50964d110
utils: use UnsafeCell in AsyncQueue
2022-05-13 20:15:31 +02:00
Julian Orth
837b5592bc
io-uring: fix timeout detection
2022-05-13 18:05:34 +02:00
Julian Orth
e4f97287bc
io-uring: add sendmsg
2022-05-13 17:37:20 +02:00
Julian Orth
9416efeabe
runtime: replace epoll by io-uring
2022-05-12 22:50:33 +02:00
Julian Orth
4d8a340cd0
async: move timer out of async engine
2022-05-12 20:48:29 +02:00
Julian Orth
dcdd91c0b0
io-uring: add readable/writable
2022-05-12 20:33:58 +02:00
Julian Orth
3875c63172
async: rebase wheel on top of async engine
2022-05-12 17:23:17 +02:00
Julian Orth
285724b4f1
xwayland: use io_uring to prevent lockups
...
See https://gitlab.freedesktop.org/wayland/wayland/-/issues/296
2022-05-11 21:45:44 +02:00
Julian Orth
a310329c42
tree: move container scroll logic to separate util
2022-05-07 18:11:31 +02:00
Julian Orth
c827a93dbb
it: test window gains kb focus when mapped
2022-05-04 14:36:18 +02:00
Julian Orth
fa8d079c72
it: run tests in parallel
2022-05-03 12:45:20 +02:00
Julian Orth
9904717c71
all: fix memory leaks
2022-05-02 22:11:59 +02:00
Julian Orth
7b40b42990
config: implement config reloading
2022-05-02 16:20:25 +02:00
Julian Orth
04580c4aeb
autocommit 2022-05-01 21:44:09 CEST
2022-05-01 21:44:09 +02:00
Julian Orth
e1d5bf0e5d
autocommit 2022-05-01 17:23:55 CEST
2022-05-01 17:23:55 +02:00
Julian Orth
1242a6c1e1
autocommit 2022-04-28 19:49:51 CEST
2022-04-28 19:49:51 +02:00
Julian Orth
324eb835bb
autocommit 2022-04-27 20:37:49 CEST
2022-04-27 20:37:49 +02:00
Julian Orth
57899b3f35
autocommit 2022-04-27 18:04:02 CEST
2022-04-27 18:04:02 +02:00
Julian Orth
fa1ec0b36c
autocommit 2022-04-20 14:58:34 CEST
2022-04-20 14:58:34 +02:00
Julian Orth
54cf01f745
autocommit 2022-04-18 14:14:25 CEST
2022-04-18 14:14:25 +02:00
Julian Orth
affab05b94
autocommit 2022-04-17 18:45:01 CEST
2022-04-17 18:45:01 +02:00
Julian Orth
5f13954dbc
autocommit 2022-04-14 19:52:11 CEST
2022-04-14 19:52:11 +02:00
Julian Orth
916e3644c3
autocommit 2022-04-13 21:01:32 CEST
2022-04-13 21:01:32 +02:00
Julian Orth
21e2216ce5
autocommit 2022-04-08 23:02:38 CEST
2022-04-08 23:02:38 +02:00
Julian Orth
26f8c1aeb6
autocommit 2022-04-07 23:21:31 CEST
2022-04-07 23:21:32 +02:00
Julian Orth
be32036824
autocommit 2022-04-07 17:31:31 CEST
2022-04-07 17:31:31 +02:00
Julian Orth
1d33088dba
autocommit 2022-04-05 21:08:07 CEST
2022-04-05 21:08:07 +02:00
Julian Orth
a3e9f21fc5
autocommit 2022-04-05 18:28:42 CEST
2022-04-05 18:28:42 +02:00
Julian Orth
5f79aab15f
autocommit 2022-04-04 23:09:39 CEST
2022-04-04 23:09:39 +02:00
Julian Orth
e897d271af
autocommit 2022-04-04 14:29:04 CEST
2022-04-04 14:29:04 +02:00
Julian Orth
1f71290dab
autocommit 2022-04-04 00:28:58 CEST
2022-04-04 00:28:58 +02:00
Julian Orth
2dd433aa04
autocommit 2022-04-01 01:44:10 CEST
2022-04-01 01:44:10 +02:00
Julian Orth
28c9b46400
autocommit 2022-03-30 03:00:46 CEST
2022-03-30 03:00:46 +02:00
Julian Orth
9842264fad
autocommit 2022-03-29 15:40:59 CEST
2022-03-29 15:40:59 +02:00
Julian Orth
6ebf731aea
autocommit 2022-03-29 14:11:25 CEST
2022-03-29 14:11:25 +02:00
Julian Orth
707ff6066c
autocommit 2022-03-26 22:58:30 CET
2022-03-26 22:58:30 +01:00