Shawn Wallace
03cbb2ee3a
server: scale tablet_tool motion events
...
Also add missing Distance event handler.
Closes #179 , closes #123
2025-06-19 23:05:15 -04:00
Shawn Wallace
70f15d5085
server: scale wl_touch events
...
Fixes #172
2025-06-19 21:06:51 -04:00
Shawn Wallace
b98fa84524
Use fractional scaling when setting scale through xsettings
...
Fixes #168
2025-06-19 17:02:42 -04:00
Shawn Wallace
799027d1ae
server: refactor to use ECS
...
This should simplify how some of the code reads, as well as allowing for future
feature additions to be accomplished in a less restrictive manner. The slotmap +
Object enum pattern was kind of like a really bad ecs in a way anyway. Also I
was looking for an excuse to use an ecs.
2025-06-19 00:55:08 -04:00
Ivan Molodetskikh
da2ecb5be8
Add --test-listenfd-support flag
...
Just exits with 0. Useful to test whether xwayland-satellite supports -listenfd
before setting up the X11 sockets and stuff on the compositor side. Versions
before this commit panic and exit with nonzero code.
2025-06-07 12:59:01 -04:00
Ivan Molodetskikh
9e48795087
Accept -listenfd and pass on to Xwayland
2025-06-07 12:59:01 -04:00
Ivan Molodetskikh
ac391db415
xstate: Set WM_S0 atom at startup
...
Xwayland waits for this before starting to listen on the -listenfd descriptors
if either -wm or -initfd is set.
- https://gitlab.freedesktop.org/xorg/xserver/-/blob/xwayland-24.1.6/hw/xwayland/xwayland.c?ref_type=tags#L463-472
- https://gitlab.freedesktop.org/xorg/xserver/-/blob/xwayland-24.1.6/hw/xwayland/xwayland.c?ref_type=tags#L300-317
2025-06-07 12:59:01 -04:00
Shawn Wallace
3ba30b149f
Bump version
2025-05-28 23:14:15 -04:00
Shawn Wallace
de6790934b
Add git revision to log
2025-05-28 23:10:53 -04:00
Shawn Wallace
ae1759077e
Don't pass invalid positioner size on popup reconfigure
...
Mentioned in #144
2025-05-28 22:24:54 -04:00
Shawn Wallace
76ace3c656
ok move it for real this time
2025-05-27 21:47:20 -04:00
Shawn Wallace
9910807205
Move config.yml to the right place
2025-05-27 21:46:53 -04:00
Shawn Wallace
2d3afaa0ec
Mention GitHub Discussions in readme and issue opener thingy
2025-05-27 21:44:16 -04:00
Shawn Wallace
5d9ac0ed5c
Update dependencies
2025-05-27 21:28:41 -04:00
Shawn Wallace
d7bc38e6e7
xstate: mark _NET_WM_WINDOW_TYPE_MENU/TOOLTIP as popups
...
Fixes #161
2025-05-27 20:01:12 -04:00
Shawn Wallace
9261c278af
server: only update outputs for current mode events
...
Fixes #164
2025-05-27 19:43:37 -04:00
Shawn Wallace
5c0351ff33
Properly handle rotated outputs
...
Fixes #160
2025-05-27 19:35:10 -04:00
Shawn Wallace
572fa4a2bf
Add Xsettings support, for setting scaling related settings
...
This allows for most GTK and Qt apps to be scaled properly.
In the case of mixed DPI, it will default to using the smallest monitor scale.
2025-05-23 23:25:33 -04:00
Shawn Wallace
ec9ff64c1e
Mark WM_TRANSIENT_FOR windows as toplevel parents
2025-05-13 00:46:02 -04:00
Shawn Wallace
4671f27282
Use _MOTIF_WM_HINTS to determine if window should be popup
...
Surely this won't go horribly wrong...
Fixes #155
2025-05-12 23:25:17 -04:00
Shawn Wallace
51300780f8
Allow toplevels to reconfigure themselves
2025-05-11 11:46:29 -04:00
Shawn Wallace
378421d356
xstate: add _NET_WM_STATE{_FULLSCREEN} to _NET_SUPPORTED
...
Fixes #157
2025-05-11 11:30:54 -04:00
Shawn Wallace
56a681bfec
Mark windows with _NET_WM_STATE_SKIP_TASKBAR as popups
...
Also includes some light refactoring of the popup flow in general
and trimming down some unused code.
I suspect this may cause some windows to unexpectedly become popups when they
otherwise shouldn't, but that's a bridge we'll cross when we get there.
Fixes #110 and #112 .
2025-04-27 01:10:55 -04:00
Shawn Wallace
d1639eca87
server: don't try to activate a window on creation
2025-04-26 22:26:29 -04:00
Shawn Wallace
c31679aa41
Avoid parenting popups to other popups
...
Fixes #36
2025-04-22 21:39:20 -04:00
Shawn Wallace
2b5288b4b9
Rename satellite socket name
...
Satellite is not a standard Wayland compositor, so there's no need
to name the socket as such.
2025-04-16 23:33:59 -04:00
Shawn Wallace
caf7d50167
Add ARCHITECTURE.md
2025-04-16 23:32:18 -04:00
Shawn Wallace
45185b7f14
Mention scaling in readme
2025-04-14 22:47:02 -04:00
Shawn Wallace
0cd5059c42
Don't set viewport for 1x1 windows with scaling
2025-04-13 23:50:13 -04:00
Shawn Wallace
555f9492ad
Properly scale surfaces with fractional scale
2025-04-11 14:09:13 -04:00
Shawn Wallace
ef4ffc9fd2
Update readme
2025-04-09 00:36:01 -04:00
Shawn Wallace
8188df0e70
Force buffers to be unscaled
...
Satellite will now force Xwayland to always render with the native
display resolution, and just scale surface sizes accordingly. As a result,
applications won't really respect DPI, but this can be adjusted through
the same means as with normal X11.
Part of #28 .
2025-04-09 00:32:20 -04:00
bbb651
45c0556964
Destroy zxdg_toplevel_decoration_v1 object with toplevel
...
This is a protocol violation and crashes dwl.
On niri it causes the toplevel to "leak".
2025-03-30 11:03:13 -04:00
bbb651
0559ace758
Support xdg decorations
2025-03-29 23:09:32 -04:00
bbb651
b2613aec05
Fix panic on empty WM_CLASS
2025-03-23 19:40:35 -04:00
bbb651
0fa13c6fb4
input_focus test: verify WmState::Normal on focus
2025-03-22 15:25:48 -04:00
bbb651
9d751ec063
Fix black screen on minimize
...
Thanks @UjinT34 for the hint
Fixes #54 .
2025-03-22 15:25:48 -04:00
bbb651
467f3014fb
Fix surface data unwrap crash in pending activations handling
...
Fixes #127 .
2025-03-22 13:54:03 -04:00
bbb651
1d98ee089c
Fix typos
2025-03-20 09:05:24 -04:00
bbb651
180efb0ba9
Support XDG Activation
...
Test XDG Activation
2025-03-20 09:05:24 -04:00
bbb651
b34b08f004
Reorganize clientside to a single directory
2025-03-20 09:05:24 -04:00
En-En
cca74a5f6b
Remove paste dependency
...
https://rustsec.org/advisories/RUSTSEC-2024-0436.html
2025-03-17 18:03:50 -04:00
Shawn Wallace
beb7c3ebe0
Offset output positions to always have positive coordinates
...
Honestly, this is something that should probably be fixed in Xwayland itself,
but they don't seem interested in fixing it:
https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/395#note_555613
Fixes #15
2025-03-16 16:00:10 -04:00
En-En
f9ec97b007
Make Fixture::drop send a valid exit code ptr to the stream
...
Found a good way to avoid both an extra function to RunData and make calling `xwayland_exit_code` in other RunData types *less* prone to memory violations. Having a function with a non-empty default implementation being overridden by an empty implementation felt too awkward.
2025-03-15 20:09:40 -04:00
En-En
5bbc4c507a
Use and_then over unwrap for rest of surface.data() use
...
Continues on the #113 fix by eliminating the remaining places the unwrap could occur on
2025-03-15 20:09:40 -04:00
En-En
d4dcee4e8d
Add error message if Xwayland dies out of tests & Refactors
2025-03-15 20:09:40 -04:00
Shawn Wallace
0325cb1f48
Add CI
2025-03-13 20:00:13 -04:00
En-En
eab4adc991
Fix most Broken Pipe IO aborts
...
Makes sure the xwayland_satellite main thread ends so that the file descriptors don't continue to be used after Fixture drops them
2025-03-13 20:00:13 -04:00
Shawn Wallace
f459c604f5
Make integration tests less flaky
...
- Send sigterm to Xwayland after the test has completed
- Before polling for a new event, try to just grab one from xcb
Fixes #118
2025-03-13 20:00:13 -04:00
Shawn Wallace
caf88fcb45
Force clippy for the whole workspace
2025-03-13 20:00:13 -04:00