Commit graph

40 commits

Author SHA1 Message Date
Shawn Wallace
cf1fae1eae server: verify selection offer is still valid when handling clipboard
Should fix #170, fix #183
2025-06-29 01:37:24 -04:00
Shawn Wallace
2e7c318ac2 server: check if connected to x server when output offset updates
Caused by the compositor reporting negative output coordinates to start.

Fixes #187
2025-06-24 23:21:20 -04:00
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
ae1759077e Don't pass invalid positioner size on popup reconfigure
Mentioned in #144
2025-05-28 22:24:54 -04:00
Shawn Wallace
ec9ff64c1e Mark WM_TRANSIENT_FOR windows as toplevel parents 2025-05-13 00:46:02 -04:00
Shawn Wallace
51300780f8 Allow toplevels to reconfigure themselves 2025-05-11 11:46:29 -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
c31679aa41 Avoid parenting popups to other popups
Fixes #36
2025-04-22 21:39:20 -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
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
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
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
Shawn Wallace
a33372f61d cargo clippy 2025-03-12 00:58:32 -04:00
Shawn Wallace
7df3daba70 Remove ExtraData type from XConnection trait
This was being used to pass the X11 atoms all over the place, but I
realize this is no longer necessary - we can just pass them directly to
our RealConnection when creating it.
2025-03-12 00:55:39 -04:00
Shawn Wallace
54a7ad9e13 server: Unmap popup on popup_done event
Seems some applications don't expect their popups to be unmapped without
their consent, so they make act strangely, but at least it doesn't
crash.
Fixes #117
2025-03-12 00:47:26 -04:00
Shawn Wallace
653391c7c9 server: auto-fullscreen windows that match an output's dimensions
Fixes #93
2025-02-10 23:08:39 -05:00
Shawn Wallace
ba9c1a6a3e cargo fmt + cargo clippy 2025-01-09 00:08:07 -05:00
Shawn Wallace
47e7357eab xstate: refactor clipboard selections
Before, every time the clipboard selection changed, satellite would copy
everything on it and force itself to be the clipboard owner, regardless
of X11 or Wayland. Now, satellite is only the owner when the clipboard
owner comes from Wayland, and uses the XFixes extension to watch for
changes in clipboard ownership X11 side. Satellite also now avoids
copying all of the clipboard contents into memory every time, instead
copying directly on request. This is a pretty big change, but should
hopefully help make the clipboard more stable.

Also added some misc test cleanup/using helper functions where possible.
Using the XFixes extension may also end up being necessary for
implementing drag and drop, so it's good the infrastructure is there
now.
2025-01-08 23:57:22 -05:00
Shawn Wallace
03a53b6ad7 Set primary output when window focused
Closes #80
2024-12-18 01:49:55 -05:00
Shawn Wallace
c77b66cc93 Add tablet support
Closes #47
2024-10-25 01:21:58 -04:00
Shawn Wallace
b988762955 cargo fmt 2024-10-23 02:29:45 -04:00
Shawn Wallace
dc1f8a753d Use wl_keyboard instead of toplevel state for focus
Rare TODO comment actually done.
Fixes #64
2024-10-23 02:27:46 -04:00
Shawn Wallace
95afa163a6 Removed lingering "exwayland" references 2024-08-08 01:34:48 -04:00
Shawn Wallace
cf439000a5 Prioritize xdg_output for updating window positions
Fixes #46
2024-08-08 01:32:18 -04:00
Shawn Wallace
3140b7c83e Replace references to "exwayland" with "satellite"
Exwayland was the original working name for the project, but satellite
is way cooler.
2024-07-07 17:07:39 -04:00
Shawn Wallace
5150791e76 Cargo format 2024-07-07 16:50:28 -04:00
Shawn Wallace
98a81c2668 Support repositioning mapped popups
Requires xdg_wm_base version 3+. Helps make some Steam popups act more
consistently.
2024-07-04 16:02:35 -04:00
Shawn Wallace
ece5d1bd10 Actually properly offset popups on offset outputs
Also update window positions when output positon changes.
2024-07-04 14:57:07 -04:00
Shawn Wallace
3794c4b945 Properly offset popups on offset outputs 2024-07-02 00:16:01 -04:00
Shawn Wallace
d8a9c28fa7 Fix hover when focus is different from hover window
Fixes #14
2024-06-30 02:45:31 -04:00
Shawn Wallace
d3a46b7c8a Fix mouse input on outputs not located at 0,0
Possibly addresses #21.
2024-06-30 01:20:02 -04:00
Shawn Wallace
5e7f2df05e Sync clipboard between X11 and Wayland
You would not believe how much work this was.
Closes #23
2024-06-06 22:41:19 -04:00
Shawn Wallace
3b2698f1de Switch to using xwayland shell protocol over WL_SURFACE_ID
Seems to fix #13. This means a hard requirement on Xwayland 23.1.
2024-05-20 18:51:28 -04:00
Shawn Wallace
da82e6907c Add pointer constraints support (zwp_pointer_constraints_v1)
Part of #8
2024-05-20 02:14:18 -04:00
Shawn Wallace
c1fc38c3d2 Reorganize file layout
Moves satellite to be the root package, also allowing it to be built
by default.
2024-05-17 23:01:57 -04:00
Renamed from satellite/src/server/tests.rs (Browse further)