Commit graph

494 commits

Author SHA1 Message Date
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
Ottatop
39bf58b41c Keep track of a pending window swap
Prevents windows from getting swapped a bunch of times in one motion causing them not to actually swap
2024-03-21 20:55:02 -05:00
Ottatop
005c787f39 Set keyboard focus to layer surfaces with keyboard exclusivity 2024-03-21 20:18:14 -05:00
Ottatop
0ae090bba5 Add window raising to api 2024-03-21 18:39:27 -05:00
Ottatop
000e3eb2ca Update pointer focus without motion if different 2024-03-21 18:13:16 -05:00
Ottatop
107f4a7ff9 Layout on client unfullscreen request 2024-03-21 17:08:13 -05:00
Ottatop
d41a11347d Fix metaconfig keybinds not working
They were being cleared directly after getting set due to a previous reordering. Oops
2024-03-21 16:43:58 -05:00
Ottatop
5fd8c60f21 Fix minor bugs and do minor cleanup 2024-03-21 16:40:08 -05:00
Ottatop
2880792d9f Schedule render on layout application 2024-03-19 23:40:06 -05:00
Ottatop
86f72c10d5 Partially Revert "Add minor winit improvements"
This partially reverts commit ecd08f6023.
2024-03-19 23:38:22 -05:00
Ottatop
17d0760e43 Add deep copy to copy Lua layouts
This is probably not going to be in the final iteration; I think I might convert all Lua layouts to classes instead of having users deep copy them to change settings
2024-03-16 16:40:47 -05:00
Ottatop
79291d1cd9 Add rust layout docs, adhere to nonexclusive zone 2024-03-15 22:09:27 -05:00
Ottatop
75852551e2 Remove old layout system completely 2024-03-15 21:12:16 -05:00
Ottatop
ab2b3ee13b Add fair layout 2024-03-15 14:02:28 -05:00
Ottatop
e86f242330 Impl Layout.request_layout 2024-03-14 19:42:08 -05:00
Ottatop
e1f2706428 Add layout cycling, dwindle, remove old layout stuff 2024-03-14 19:21:51 -05:00
Ottatop
b3ba9f9393 Add new master stack layout
Currently only this layout for the Lua client works, and there's no cycling layouts yet
2024-03-14 17:31:32 -05:00
Ottatop
13ea0a683b Change TagId back to struct 2024-03-12 19:18:27 -05:00
Ottatop
9f187aba65 Extract window api impls 2024-03-12 19:09:54 -05:00
Ottatop
e3830e9c26 Fix compile errors 2024-03-12 18:40:12 -05:00
Ottatop
9cdb662bbb Don't handle resizes when not resizing 2024-03-11 21:38:24 -05:00
Ottatop
140b0200aa Add some tests
First ever squash no clue what I'm doing
2024-03-11 19:39:41 -05:00
Ottatop
6d83e34868 Setup Lua API integration tests 2024-03-06 18:50:45 -06:00