En-En
e0d1dad25a
server: clean unneeded deref_mut calls
2025-08-06 22:32:00 -04:00
En-En
cbabd591a3
server: impl Deref(Mut) for ServerState to Inner coercion
2025-08-06 22:32:00 -04:00
En-En
fe28bcb880
fix(test): stabilize integration tests
2025-08-06 22:32:00 -04:00
En-En
be9d573fd6
server: make state's client and connection mandatory
...
The goal of the previous commits being to remove these unwraps. The `unwrap_or_skip_bad_window` changes needed to make a singular debug conditional
2025-08-06 22:32:00 -04:00
En-En
4280639df8
server: give uninitialized and initialized xstate with unique types
2025-08-06 22:32:00 -04:00
En-En
56d5cce2d0
server: split XConnection from rest of State refactor
2025-08-06 22:32:00 -04:00
Shawn Wallace
ecbe57e7be
Document -listenfd support
2025-08-05 00:12:22 -04:00
Johannes Horner
ba78881a68
nix: Set mainProgram attribute
2025-07-12 12:33:20 -04:00
Shawn Wallace
e4bb8c3f9d
cargo clippy everywhere
2025-07-12 12:32:20 -04:00
Shawn Wallace
07847e11d7
server: unscale locked pointer cursor hint
...
Fix #199 , fix #202 , fix #204
2025-07-12 12:20:21 -04:00
Shawn Wallace
557ebeb616
xstate/settings: Clamp scale to >=1
...
Avoids crashing, and GTK apps also seem to generally dislike
when the reported DPI is less than the default.
Fixes #181
2025-06-29 16:24:45 -04:00
skyrelia
ef24bce5d9
Recognize drag and drop window type
...
Fixes #166
2025-06-29 16:15:20 -04:00
Shawn Wallace
0b2a139f98
server: verify window still exists when processing surface serial
...
Should fix #191
2025-06-29 16:02:02 -04:00
Shawn Wallace
91d463851e
server: fix selection cancellation
...
oopsie
2025-06-29 01:49:11 -04:00
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
En-En
117af56a83
Refactor double let else blocks to use as_mut
2025-06-23 09:54:29 -04:00
En-En
8dc4538662
Removed additional dubious unwraps
...
The wl_keyboard Enter event, wl_keyboard Leave event, the wl_touch
Self::Down event and the ServerState::reconfigure_window function had
similar uses of `unwrap` which appear to not consider the distinct
query preparation and query execution stages.
2025-06-23 09:54:29 -04:00
En-En
da3b2838d2
Fixed stale surface check unwrapping
...
Regression from 799027d1 . Unwraps on a None value when doing the stale surface generation technique in Chatterino7 as described in #74 , very consistent
2025-06-23 09:54:29 -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
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