Commit graph

516 commits

Author SHA1 Message Date
Ottatop
dc70a8a3e7 Fix builtin config and metaconfig xwayland 2024-05-07 19:39:26 -05:00
Ottatop
7b006596af Uncouple config, backends, and xwayland
wow i love the single responsibility principle
2024-05-07 19:39:26 -05:00
Ottatop
176f559360 Set keyboard focus on open only if on active tag 2024-05-07 19:39:06 -05:00
Ottatop
4291fa47ab Fix tests
Turn off xwayland in tests and if turned on, wait for it to start
2024-05-04 16:16:54 -05:00
Ottatop
9771f4c645 Remove backend/wlcs.rs
The tests don't work yay
2024-05-04 15:31:11 -05:00
Ottatop
b654de8284 Add --no-xwayland option 2024-05-04 15:24:59 -05:00
Ottatop
c0f8328f08 Don't send configure immediately
trust me guys i know what i'm doing haha
2024-05-04 13:25:59 -05:00
Ottatop
404377a1ed Fix out-of-bounds panic 2024-05-03 22:43:59 -05:00
Ottatop
c55a4991c4 Simplify window removal 2024-05-03 00:00:38 -05:00
Ottatop
feeb139b05 Don't focus windows on inactive tags 2024-05-02 23:34:21 -05:00
Ottatop
5afd58fb74 Keep track of modes for API 2024-05-02 23:16:11 -05:00
Ottatop
45ed01dd91 Update xwayland stacking in more places 2024-05-02 22:55:41 -05:00
Ottatop
f48c10c8ef Add ALL the manufacturer names 2024-05-02 22:39:04 -05:00
Ottatop
009dd19dc8 Fix security context restriction being reversed 2024-05-02 16:05:39 -05:00
Leon Vack
80a926f719 Add security-context-v1 2024-05-02 15:21:07 -05:00
Ottatop
a6f98603d5 Fix clippy for CI 2024-05-02 14:48:16 -05:00
Ottatop
5679a295d8 Warp to cursor hint on constraint unlock
Not the greatest implementation performance-wise but an implementation nonetheless
2024-05-01 22:14:48 -05:00
Ottatop
55a0379697 Finalize pointer constraints
While this initial implementation is done and I'm pretty happy with it, there are still 2 problems:
1. The cursor is not warped to the hinted position when a locked pointer constraint is removed. This may require an update to Smithay to expose a `PointerConstraintsHandler::constraint_removed` method.
2. The cursor may jump between two close constraint regions if it's moved fast enough. This can be fixed by possibly doing a ray cast or something.
2024-05-01 19:18:31 -05:00
Ottatop
9382601444 Fix pointer clamping
The previous clamp logic allowed very small pointer motions to break free of pointer constraints at the right and bottom edges
2024-05-01 18:16:11 -05:00
Ottatop
98b4e0aea2 Simplify confined pointer region logic 2024-05-01 14:47:57 -05:00
Ottatop
4b3839e380 Fix pointer clamping regression and also update Smithay 2024-04-27 21:26:54 -05:00
Ottatop
058350db43 Make confined region work
Currently does not work with confines with no region. Also there *might* be a regression that prevents the mouse from moving between outputs, need to test that
2024-04-27 19:13:53 -05:00
Ottatop
1543b64fb8 Add pointer constraints
Needs more work and testing
2024-04-27 17:02:19 -05:00
Ottatop
4eb29c49dc Close layer surfaces on output removal
Fixes mako not making new notifications if one is sent during sleep
2024-04-27 12:51:03 -05:00
Ottatop
8c0bce7191 Separate stuff that took in State
I love me some non-overlapping borrows
2024-04-26 20:25:40 -05:00
Ottatop
b99cc8ffce Move impls to Pinnacle 2024-04-26 19:58:02 -05:00
Ottatop
8aaec59452 Split off backend and rest of State
Currently doesn't clean up anything, still need to change `impl State`s to `impl Pinnacle`s
2024-04-26 18:43:18 -05:00
Ottatop
c9012cf483 Improve logging
Use better env filters, log panics, and make logging to files not use color escapes
2024-04-26 14:56:12 -05:00
Leon Vack
13df2d161b Fix lua tests hanging 2024-04-25 11:07:32 +02:00
Leon Vack
194da9e557 Float all windows for tests and improve window positioning 2024-04-25 10:48:37 +02:00
Leon Vack
0b353c45f2 Use an embedded config for tests 2024-04-25 10:48:37 +02:00
Leon Vack
c0fe55003b Fix xwayland and cleanup 2024-04-25 10:48:37 +02:00
Leon Vack
abb21d9924 Perform wlcs interactions using an InputBackend 2024-04-25 10:48:37 +02:00
Leon Vack
e8b8a33bfc Make wlcs run some actual tests 2024-04-25 10:48:36 +02:00
Leon Vack
7adcb1d729 Make wlcs start 2024-04-25 10:47:48 +02:00
Ottatop
7e80a6a64f Update test infrastructure
Extracts the dummy output name into a const. Unfortunately I still need a way to interpolate that into Lua strings. Also fixes possible hangs when Lua crashes
2024-04-24 21:37:17 -05:00
Ottatop
e2232fb56c Don't add modes with add_mode
Doing so adds non-current modes to the output (which are deprecated) and causes smithay to send them to `wl_output` consumers. Caused swww to open at the wrong size
2024-04-24 20:47:47 -05:00
Ottatop
36a82245a7 Fix tests
Unwrap in tests to check error

Add backtrace to debug tests

Add dbg

i hate this

debugging github actions is a pain

aaaa

aaaaaaaaa

needs to be rebased
2024-04-24 18:33:44 -05:00
Ottatop
ce22883125 Return instead of asserting 2024-04-23 19:41:26 -05:00
Ottatop
45bf9b698c Move state clearing on config start to front 2024-04-22 21:17:51 -05:00
Ottatop
1b09fe94ee Remove luarock from build.rs 2024-04-22 20:45:42 -05:00
Ottatop
ac15e2d566 Fix Rust API not exiting correctly
My goodness was that not fun to debug
2024-04-22 20:34:06 -05:00
Ottatop
43891a2a48 Ignore layout stream errors 2024-04-22 14:14:22 -05:00
Ottatop
f54516bbe3 Embed default rust config
Need to clean up how the Rust API handles shutdown signals
2024-04-21 23:45:03 -05:00
Ottatop
6f6b91f4f8 Use tokio tasks instead of threads
why is the github runner blocking on tests, it doesn't on my machine
2024-04-20 21:25:53 -05:00
Ottatop
314ee5ab6e Commit resize state even if tiled 2024-04-20 12:54:48 -05:00
Ottatop
591c5c1cd0 Update Smithay and don't map resized windows if tiled 2024-04-20 12:54:09 -05:00
Ottatop
a1021638c5 Implement relative pointer protocol 2024-04-19 15:23:56 -05:00
Ottatop
8df5682328 Update internal xwm window layering 2024-04-19 15:02:16 -05:00
Ottatop
e0af7743a4
Merge branch 'main' into api_enhancements 2024-04-18 16:49:23 -05:00
Ottatop
457f0d3d56 Add reload config API call 2024-04-18 16:30:10 -05:00
Ottatop
1c2f639a56 Add tag active signal 2024-04-18 14:42:49 -05:00
Ottatop
d2445afe10 Allo wmatching outputs by EDID serial
Note that EDID serials are not totally unique across all monitors. Also some monitors don't have an EDID serial number. Also this hasn't been tested yet
2024-04-18 11:04:15 -05:00
Ottatop
0284a70c10 Add serial to ouptut properties 2024-04-17 23:01:56 -05:00
Ottatop
5634cbbfe7 Improve Rust output setup API 2024-04-17 18:56:01 -05:00
Ottatop
6c8b643577 Add OutputHandle::set_transform 2024-04-16 21:30:59 -05:00
Ottatop
ce8b56eee8 Add Output::setup
Still needs polishing and more importantly testing, also the Lua impl isn't finished yet
2024-04-15 15:50:09 -05:00
Ottatop
52d05b66b7 Send frames on layout
very hacky no good.
2024-04-13 14:17:49 -05:00
Ottatop
023ebe8a2d Add output resize and move signals 2024-04-12 11:46:52 -05:00
Ottatop
6d78436d18 Add TagHandle::windows 2024-04-12 07:57:22 -05:00
Ottatop
1ba636f39f Bump dependencies 2024-04-12 07:24:37 -05:00
Ottatop
0b70040f62 Position popup on reposition request 2024-04-11 18:17:41 -05:00
Ottatop
8915ef3865 Finish simplifying popup logic 2024-04-11 18:11:43 -05:00
Ottatop
97efdb854c Start simplifying popup logic
So uh when did Smithay have all these popup helpers, did I just not read the docs hard enough
2024-04-11 14:49:30 -05:00
Ottatop
bb01cd9563 Schedule render on popup destroy and x11 window map 2024-04-11 11:12:23 -05:00
Ottatop
a4e1a63efd Remove CropRenderElement from window render elements 2024-04-10 14:02:48 -05:00
Ottatop
4a1a01a5a4 Render overlay layers above fullscreen windows 2024-04-10 13:32:33 -05:00
Ottatop
7ee97f2589 Fail gamma control on output removal 2024-04-10 09:39:33 -05:00
Ottatop
c4d811fd97 Comment useless code for later 2024-04-10 07:44:41 -05:00
Ottatop
9933d64ed2 Fix hang when layer shell nested popup appears
And also some minor changes, also there is a possibility that switching back to the tty Pinnacle is in will lead to a black screen, really need to find a way to reproduce
2024-04-10 07:13:16 -05:00
Ottatop
589b0b135f Update tty switching and apply pending/previous gammas
Bunch more stuff yoinked from Niri
2024-04-10 06:32:52 -05:00
Ottatop
24ac349922 Implement wlr-gamma-control
Buncha stuff yoinked from Niri
2024-04-10 01:55:45 -05:00
Ottatop
76fc825b51 Render everything when there's a fullscreen window
And properly handle input and layering this time
2024-04-07 01:56:36 -05:00
Ottatop
485dba69d6 Revert "Render everything when there's a fullscreen window"
This reverts commit a0aa30fec1.

gj me you failed to realize that now layer surfaces render above
fullscreen windows
2024-04-06 21:21:49 -05:00
Ottatop
a0aa30fec1 Render everything when there's a fullscreen window 2024-04-06 21:06:40 -05:00
Ottatop
bf4e270bfc Bump dependencies 2024-04-06 16:14:45 -05:00
Ottatop
ea932e48ea Only allow floating x11 windows to resize themselves 2024-04-06 16:09:28 -05:00
Ottatop
4ff49385f5 Warn for unwrap in lib 2024-04-04 00:25:17 -05:00
Ottatop
97511b001a Finish winit screencopy 2024-04-04 00:22:46 -05:00
Ottatop
d18d3e4b17 Make dmabuf udev screencopy actually work
Well that wasn't fun. TODO: finish winit screencopy, test all with output transforms
2024-04-03 22:28:29 -05:00
Ottatop
4c41fe1f65 Merge branch 'main' into screencopy 2024-04-01 22:37:07 -05:00
Jörg Sommer
9ff28fc9cd Improve config errors
Co-authored-by: Ottatop <120758733+Ottatop@users.noreply.github.com>
2024-04-01 22:26:51 -05:00
Ottatop
2dbc13d55d Fix screencopy transparency on udev
Using a hack to set the cursor to the primary plane. Also the code is still doodoo
2024-04-01 22:01:46 -05:00
Ottatop
ed2135e8f5 Add almost working screencopy
WARNING: contains digusting and repeated code. Also any screencopy with the cursor included on udev leads to a hole under the cursor
2024-03-31 21:59:45 -05:00
Ottatop
cb4c056cf7 Extract pointer render element creation 2024-03-31 01:01:42 -05:00
Ottatop
7cd7e31397 Scaffold wlr-screencopy
Currently panics if you try to use it. Need to refactor the rendering first
2024-03-30 21:23:01 -05:00
Ottatop
7e1189017b Start config after xwayland starts 2024-03-30 17:50:53 -05:00
Ottatop
15d033d335 Keep track of scale in connector_disconnected 2024-03-29 13:07:48 -05:00
Ottatop
d52192a2ba Default back to linear scaling and add config options to set 2024-03-29 11:57:35 -05:00
Ottatop
7496ebd697 Default to nearest-neighbor upscaling 2024-03-23 18:36:58 -05:00
Ottatop
6a990d45d2 Add logical size to output props, use in set_loc_adj_to 2024-03-23 17:42:05 -05:00
Ottatop
5fbb3e51e9 Add scale to output properties 2024-03-23 16:55:06 -05:00
Ottatop
1907381d99 Add scale setting to Rust API 2024-03-23 16:08:51 -05:00
Ottatop
dfc7a1351e Add scale setting to API, fix fractional scaling 2024-03-23 15:23:00 -05:00
Ottatop
5da0f84350 Set drm mode when resizing output 2024-03-22 21:19:16 -05:00
Ottatop
6adb560e81 Add set mode 2024-03-22 18:58:31 -05:00
Ottatop
2fd98301e6 Add output modes to API 2024-03-22 18:37:27 -05:00
Ottatop
869a2223f5 Add keepalive pings to clients
This should clients to die if the compositor was killed but they weren't dropped
2024-03-22 16:40:06 -05:00
Ottatop
698cd1d973 Correctly parse EDID info
Should fix output make always being Unknown and some cases of the monitor name not being parsed because of a faulty detailed timings parse
2024-03-22 14:27:18 -05:00
Ottatop
13335e9cdd Don't focus popups
Ya know there used to be a commented bit telling me to not set keyboard focus on a popup, and that mysteriously went away and I missed this check
2024-03-22 01:22:37 -05:00