Commit graph

494 commits

Author SHA1 Message Date
Ottatop
f4a5328c2c Move all mods into lib
For future testing
2024-03-05 23:25:04 -06:00
Ottatop
ecd08f6023 Add minor winit improvements 2024-03-05 23:14:33 -06:00
Ottatop
8bbb36f512 Rename and move stuff around 2024-03-04 20:38:20 -06:00
Ottatop
d02c138414 Fix focused_window not returning None if no window is focused 2024-03-04 19:34:00 -06:00
Ottatop
9b5b242aea Fix pointer not moving on udev
oops
2024-03-04 19:17:21 -06:00
Ottatop
c96b01f733 Clean up stuff 2024-03-04 19:16:10 -06:00
Ottatop
2a25ab2319 Remove state.pointer_location 2024-03-04 16:43:54 -06:00
Ottatop
d9116da20d Unify event loop running 2024-03-04 15:54:30 -06:00
Ottatop
f9ca886ed9 Change minor things 2024-03-04 14:44:33 -06:00
Ottatop
a6820ce00e Add default dir for config gen, fix test 2024-03-03 03:38:45 -06:00
Ottatop
24696595af Finish better CLI 2024-03-03 02:25:19 -06:00
Ottatop
63c0ef1e85 Start on a better CLI 2024-03-02 01:23:31 -06:00
Ottatop
8c429f4077 Split FocusTarget into keyboard and pointer variants 2024-03-01 00:07:01 -06:00
Ottatop
48cd3d0df9 Remove space_elements!
so uh when you impl SpaceElement you gotta actually remember to impl the geometry fn, which is why Alacritty was 44 pixels off in the other attempt at this
2024-02-29 20:10:23 -06:00
Ottatop
16fff3f7e3 Update Smithay 2024-02-29 16:28:25 -06:00
Ottatop
e734a716c0 Set window focused only if it's on the focused output 2024-02-24 14:58:58 -06:00
Ottatop
1f909ac81b Remove unused import
QUICK BEFORE THE CI FAILS
2024-02-24 14:42:43 -06:00
Ottatop
14a36b9738 Rework focus and add Window.set_focused
This has to be one of the most unreviewable commits I think I've created yet
2024-02-24 14:41:52 -06:00
Ottatop
2e0a8b940a ong I don't remember 2024-02-23 16:24:43 -06:00
Ottatop
d76777a633 Add window pointer enter and leave signals 2024-02-21 23:56:19 -06:00
Ottatop
6b2b7066ac Make connect_for_all use signals 2024-02-21 23:30:28 -06:00
Ottatop
7d94fc4362 Add output connect signal
untested
2024-02-21 22:48:09 -06:00
Ottatop
1539f73e45 Get a signal to work 2024-02-21 19:40:11 -06:00
Ottatop
563bf7d92a Scaffold signals 2024-02-21 18:08:23 -06:00
Ottatop
e52af7a841 Change default stdout log level to INFO, file level to DEBUG 2024-02-19 00:17:26 -06:00
Ottatop
fc3d15178d Dedup API handling 2024-02-18 23:05:37 -06:00
Ottatop
832165b838 Fix doc paths
Also some other random cleanup
2024-02-17 23:57:02 -06:00
Ottatop
cea9d9048a Add some config unit tests 2024-02-17 00:00:25 -06:00
Ottatop
8a2a6a3185 Remove CalloopData
This was a remnant of Anvil
2024-02-16 22:37:53 -06:00
Ottatop
f20c3cd847 Update dependencies 2024-02-07 19:38:15 -06:00
Ottatop
08436f3e12 Get rid of blockers
omg I hate these things, they're so dang finicky and I'm not big brain enough to make them not finicky
2024-02-05 21:30:00 -06:00
Ottatop
32b8c0dd30 Set sysinfo's open files limit to 0 2024-01-29 20:46:18 -06:00
Ottatop
e2a8f8ebfe Load default config on config crash 2024-01-29 20:38:46 -06:00
Ottatop
e6bdb01757 Actually return the data control state
I can feel my IQ dropping as we speak
2024-01-24 15:43:10 -06:00
Ottatop
d8b2544eca Impl wlr_data_control 2024-01-24 14:54:30 -06:00
Ottatop
7012b86a2d Return when mousebind is triggered 2024-01-22 21:49:20 -06:00
Ottatop
22e708b77b Remove commented code 2024-01-22 21:40:50 -06:00
Ottatop
66c59db410 Unconditionally set floating size 2024-01-22 21:40:24 -06:00
Ottatop
dae790f54c Update Smithay, add MPL licenses to API libs 2024-01-22 21:04:08 -06:00
Ottatop
0b88ad298b Completely rip out the old msgpack stuff
Did this break anything? ¯\_(ツ)_/¯
2024-01-21 23:42:48 -06:00
Ottatop
2dd170cf10 Rename all lua_grpc to lua 2024-01-16 14:23:18 -06:00
Ottatop
c444ae9585 Remove old Lua API 2024-01-15 23:37:17 -06:00
Ottatop
e18b2a12d3 Add rockspec, remove graceful shutdown stuff 2024-01-15 20:30:59 -06:00
Ottatop
5b116c68be Toggle tags on windows correctly 2024-01-15 18:01:02 -06:00
Ottatop
b67867c066 Move grpc socket to XDG_RUNTIME_DIR 2024-01-15 17:46:08 -06:00
Ottatop
7841ea3422 Add libinput to new API
I forgor 💀
2024-01-14 23:38:05 -06:00
Ottatop
3f87784248 Debug stuff 2024-01-14 22:28:02 -06:00
Ottatop
f7068a1146 Get mousebinds to work 2024-01-14 20:25:57 -06:00
Ottatop
a8239f171e Add docs to new Lua API
1000% sure I'm gonna have to rewrite my LDoc generation tool to actually work
2024-01-14 18:01:41 -06:00
Ottatop
7fe56ed949 Gracefully shutdown after ctrl-c 2024-01-14 13:34:00 -06:00
Ottatop
3ff1f4e737 Filter threads from process count
Found like 85 sockets in /run/user/1000 that weren't getting cleaned up
2024-01-14 12:01:11 -06:00
Ottatop
1cdc6fe42d No clue
I'm sick and my brain is fried rn no clue what's in this commit
2024-01-13 23:15:14 -06:00
Ottatop
efa846d40b Remove re-exports 2024-01-13 15:42:15 -06:00
Ottatop
0c4fc3ad1d Start on new example config
TODO: write the docs, fix input keysym reading, make a luarocks module
2024-01-12 21:48:07 -06:00
Ottatop
f10bd933ca Write rest of new Lua API 2024-01-12 20:15:58 -06:00
Ottatop
b1109b57a7 Fix compile errors
Something something "build before you push" blah blah
2024-01-11 13:46:58 -06:00
Ottatop
3236f455b9 Impl remaining services 2024-01-11 13:40:17 -06:00
Ottatop
31d3ffc10d Impl services for input, tag, and process 2024-01-10 20:21:59 -06:00
Ottatop
46ba7d9ad0 Extract proto into crate, start impl'ing services 2024-01-09 19:25:51 -06:00
Ottatop
3d05338c82 Add tonic-reflection 2024-01-08 20:11:02 -06:00
Ottatop
48da903a0f Create proto files 2024-01-08 18:55:59 -06:00
Ottatop
b08b979fe9 Migrate all async to tokio 2024-01-08 13:43:38 -06:00
Ottatop
23f80be22a Begin moving configuration to gRPC 2024-01-08 12:51:04 -06:00
Ottatop
186d435923 Update dependencies 2024-01-08 12:42:29 -06:00
Ottatop
bfcfe99ccb Move spawn_once logic into compositor, add spawn_once to Rust API, bump tracing 2023-12-25 21:02:50 -06:00
Ottatop
e4df0f9488 Remove commented out code 2023-12-25 19:52:17 -06:00
Ottatop
f9e81d4c1d Use space_elements to remove boilerplate
Unsure if this helped or not because I had to add `_ => unreachable!()` everywhere I matched on `WindowElement`
2023-12-23 22:17:35 -06:00
Ottatop
31172c5a4e Fix multi-monitor fullscreen rendering and pointer input 2023-12-23 22:03:20 -06:00
Ottatop
f8d1e59c06 Correctly offset render elements 2023-12-21 21:15:21 -06:00
Ottatop
5ac7157f61 Scedule render on SetLayout 2023-12-21 19:00:21 -06:00
Ottatop
e8702f9c0c Remove unused import 2023-12-21 18:50:28 -06:00
Ottatop
ef4b1d3d51 Update workflow action
Evidently I was using a version from 2020 for some reason
2023-12-20 19:54:34 -06:00
Ottatop
24034e7051 Make blocker work on udev
Also apparently stylua updated or something cuz I formatted the example_config and it's different now. Also need to fix the slight flickering when closing windows
2023-12-20 19:48:49 -06:00
Ottatop
b1a97e81ed Fix clippy stuff 2023-12-19 15:32:33 -06:00
Ottatop
4dbf1a313b Fix compiler errors 2023-12-19 12:05:36 -06:00
Ottatop
59c33075cd Use a Blocker implementation 2023-12-19 12:05:36 -06:00
Vladislav Nepogodin
96930eb7e5
apply rustfmt 2023-12-19 15:09:36 +04:00
Vladislav Nepogodin
3fb0a744a2
update dependencies and adjust for smithay changes 2023-12-19 15:08:52 +04:00
Ottatop
e0f7e85b83 Clean up stuff and add more docs 2023-12-16 21:20:29 -06:00
Ottatop
3427fe5d7c Do other misc stuff
These are some horrible commit messages
2023-12-14 22:00:04 -06:00
Ottatop
93f601ca5c Fix prev commit not removing xwayland windows properly 2023-12-14 16:43:04 -06:00
Ottatop
b2ebda85f0 Simplify render elements
FIXME: evidently I no longer remove windows correctly from the main window vec because layouting takes into account a nonexistent window
2023-12-14 16:38:07 -06:00
Ottatop
76ef7580c2 Tidy up stuff 2023-12-14 15:23:37 -06:00
Ottatop
0acffbf79d Extract tagging new windows 2023-12-14 14:42:55 -06:00
Ottatop
79221d3c06 Extract libinput stuff 2023-12-13 20:33:16 -06:00
Ottatop
d7b783877f Merge override redirect windows into main window vec
I previously stuck all X11 override redirect windows in their own stack which is really lazy. Still need to make it so child OR windows will render above their parents, even when fullscreen.
2023-12-13 20:07:19 -06:00
Ottatop
4569c21a5f Move stuff to window/rules.rs 2023-12-09 21:11:29 -06:00
Ottatop
8b0d7f1427 Make output API functions non-nil 2023-10-18 20:31:37 -05:00
Ottatop
474da43280 Make tag API functions non-nil 2023-10-18 20:16:26 -05:00
Ottatop
17ca00f6be Make window API functions non-nil
This does not apply to functions that return an array; you'll have to do a for loop or check for nil on index in that case.
2023-10-18 20:08:55 -05:00
Ottatop
e7ebc40fc7 Run disconnect and reconnect on connectors when switching tty back 2023-10-17 23:34:14 -05:00
Ottatop
ec0e892bf3 Clear overlay planes on tty switch 2023-10-17 23:20:35 -05:00
Ottatop
06a96849e7 Move a render schedule
As you can see I don't pay attention to the compiler yelling at me
2023-10-17 23:00:19 -05:00
Ottatop
97616ef0c1 Remove a render schedule 2023-10-17 22:59:07 -05:00
Ottatop
a475c0c4ac Schedule render in some more places 2023-10-17 22:57:28 -05:00
Ottatop
27692997ed Schedule render on tag change, update window stack on udev 2023-10-17 22:29:59 -05:00
Ottatop
7572523cfc Fix winit rendering 2023-10-15 03:13:21 -05:00
Ottatop
7fbacbd52f Remove old mod 2023-10-15 02:35:03 -05:00
Ottatop
26ce7309de Add render scheduling 2023-10-15 02:27:41 -05:00
Ottatop
698d13bfda Change renders to take outputs 2023-10-12 22:26:58 -05:00
Ottatop
ebe745d091 Add doc comments 2023-10-12 22:14:56 -05:00
Ottatop
3f05b2b608 Add udev fn 2023-10-12 22:08:45 -05:00
Ottatop
93e139e746 Send pointer frame on pointer events 2023-10-12 19:15:47 -05:00
Ottatop
cd31059ef8 Update dependencies 2023-10-12 17:10:23 -05:00
Ottatop
e8401e3b57 Add docs, clean up stuff 2023-10-02 19:37:14 -05:00
Ottatop
3fe11a4b75 Remove delay on render schedule
Also refresh time calculations that may or may not do something useful
2023-10-02 18:58:59 -05:00
Ottatop
8e8f3efa97 Change unwraps to expects 2023-10-02 15:39:10 -05:00
Ottatop
da69b5130a Use high precision event loop 2023-10-02 15:19:13 -05:00
Ottatop
b5892d195d Remove no vulkan flag 2023-10-02 15:03:28 -05:00
Ottatop
37537d1b3b Remove SurfaceComposition
This was behind an env in Anvil that I'm pretty sure not many people will use.
2023-10-02 14:50:56 -05:00
Ottatop
acd846f5bc Move Backend definition 2023-10-02 14:06:39 -05:00
Ottatop
8eeca5cc76 Revert nonexistent env interpolation ignoring whole env 2023-09-30 04:55:13 -05:00
Ottatop
0e5a4f0621 Save output state on disconnect 2023-09-29 04:38:32 -05:00
Ottatop
b7f096dd66 Update keyboard leds 2023-09-28 19:10:36 -05:00
Ottatop
d26b9b968c Add libinput to API 2023-09-28 18:46:08 -05:00
Ottatop
2a13e736e4 Add xkbconfig to API 2023-09-28 10:17:28 -05:00
Ottatop
7dddfff7ff Add minor tweaks 2023-09-27 03:29:30 -05:00
Ottatop
fb8c08663d Apply flicker mitigations to udev 2023-09-25 04:18:01 -05:00
Ottatop
16787092a7 Crop windows, also pause rendering on a pending size
This is a series of attempts at preventing flickering. We wrap every window render element in a CropRenderElement so that windows don't render at the incorrect size for a frame. Additionally, we also pause rendering also when the window has a pending size different from the current. Fun fact: Firefox (and by extension Librewolf) renders content to child subsurfaces, so the root surface doesn't get most commits.
2023-09-25 03:15:13 -05:00
Ottatop
307813b062 Fix config reloading 2023-09-21 19:48:52 -05:00
Ottatop
cce7ca8314 Fallback to default config on metaconfig parse fail 2023-09-21 18:07:56 -05:00
Ottatop
799517bfb5 Load default config on config crash 2023-09-21 17:12:16 -05:00
Ottatop
9a415f6f07 Separate override redirect windows from main vec 2023-09-20 18:31:10 -05:00
Ottatop
019e606584 Add some docs, make socket_dir update on reload 2023-09-20 17:55:21 -05:00
Ottatop
a2a46596f4 Move config stuff into one struct 2023-09-20 17:40:36 -05:00
Ottatop
c06cb5b776 Remove WalkDir 2023-09-20 17:20:48 -05:00
Ottatop
4cffb28e25 Move take_presentation_feedback 2023-09-20 16:54:39 -05:00
Ottatop
c83f136cf7 Move config handling out of state.rs 2023-09-20 16:43:50 -05:00
Ottatop
5c88ceac83 Move pointer_grab_start_data into grab 2023-09-20 15:30:40 -05:00
Ottatop
ea913e898c Move api stuff into single mod 2023-09-20 15:27:51 -05:00
Ottatop
a0a6efe45a Move tag render elements 2023-09-20 15:18:26 -05:00
Ottatop
ce96d1d636 Simplify refcell usage 2023-09-20 15:13:03 -05:00
Ottatop
ade1a0609b Run cargo fmt with new let-else capability 2023-09-20 03:36:50 -05:00
Ottatop
bd0c88ba0a Clean up comments 2023-09-20 02:19:04 -05:00
Ottatop
3183bae6a5 Add and rename stuff 2023-09-15 02:50:42 -05:00
Ottatop
cd689fd7a6 Depend on tracing git 2023-09-14 01:34:20 -05:00
Ottatop
3ebb0cd133 Constrain popups on the y axis 2023-09-13 23:11:07 -05:00
Ottatop
f8b269d7c8 Constrain nested popups on the x axis 2023-09-13 02:41:56 -05:00
Ottatop
c3e6509a21 Constrain popups on the x axis
Currently doesn't work on the y axis or on sub-popups
2023-09-12 23:31:38 -05:00
Ottatop
5f2a660061 Update keyboard focus on tag change 2023-09-12 09:38:34 -05:00
Ottatop
7bf411a426 Add more logging 2023-09-12 09:29:21 -05:00
Ottatop
98796dde69 Remove unused import 2023-09-11 04:02:36 -05:00
Ottatop
4b66c6bd62 Give each Pinnacle instance its own socket 2023-09-11 03:58:43 -05:00
Ottatop
50716a9168 Use $XDG_RUNTIME_DIR for socket 2023-09-11 03:22:51 -05:00
Ottatop
4f00a3c414 Change max log count 2023-09-11 03:05:45 -05:00
Ottatop
7fb3d798b9 Add file logging 2023-09-11 02:48:33 -05:00
Ottatop
b2b23a88c9 Use BaseDirectories for config dir 2023-09-10 23:40:22 -05:00
Ottatop
dd5992ed98 Remove itertools 2023-09-10 22:53:24 -05:00
Ottatop
1c1898f0b1 Add mousebinds to API 2023-09-10 21:54:58 -05:00
Ottatop
7f5d9e431c Reverse scroll direction on winit 2023-09-10 05:02:29 -05:00
Ottatop
aaf2921363 Add env setting to API 2023-09-10 04:49:31 -05:00
Ottatop
f8fcfcd8ce Update focus on xwayland window destroy 2023-09-10 02:04:36 -05:00
Ottatop
f811771fbe Add tags to override-redirect windows 2023-09-09 23:43:29 -05:00
Ottatop
0f42e403ae Make focus tag-specific 2023-09-09 22:47:59 -05:00
Ottatop
465e66067d Update keybind handling and API docs 2023-09-09 20:41:21 -05:00
Ottatop
89fc2919f3 Simplify input API 2023-09-09 19:27:05 -05:00
Ottatop
8fd0469b82 Apply rendering fixes to udev 2023-09-09 16:58:07 -05:00
Ottatop
3b65ba5c1d Send frame callbacks when not rendering 2023-09-09 16:28:58 -05:00
Ottatop
866f9eec5d Fix window render order 2023-09-09 04:34:17 -05:00
Ottatop
a18b9856bb Simplify layout cycling, fix wins not updating on maximize 2023-09-09 04:01:55 -05:00
Ottatop
5844665cb2 Fix windows on multiple tags not rendering 2023-09-08 22:43:55 -05:00
Ottatop
bbc2b4574f Clean up stuff again 2023-09-08 22:27:00 -05:00
Ottatop
29c48bdfcd Clean up stuff 2023-09-08 22:26:43 -05:00
Ottatop
430fb76fc8 Re-add stuff I removed 2023-09-08 22:16:17 -05:00
Ottatop
8f2ce70586 Fix black screen on discord on wayland 2023-09-08 22:16:15 -05:00
Ottatop
861bd68839 Fix reversed order of window rendering 2023-09-08 22:15:20 -05:00
Ottatop
03b1a4e3c1 Clean up stuff 2023-09-08 22:13:42 -05:00
Ottatop
b452b2f634 Render layer surfaces properly 2023-09-08 22:13:42 -05:00
Ottatop
ce7afef4d8 Ignore non-rendered windows for input 2023-09-08 22:13:42 -05:00
Ottatop
7b98b93d6e Stop rendering instead of unmapping windows (regression)
Layer shell surfaces currently don't render anymore. I may need to manually render them instead of getting them through Space::space_render_elements.
2023-09-08 22:13:16 -05:00
Ottatop
bef6d92176 Prepare for cherry-pick 2023-09-08 22:08:56 -05:00
Ottatop
7dabc4d22c Remove obsolete function 2023-09-08 21:04:09 -05:00
Ottatop
01ce9cf0aa Bump dependencies 2023-09-08 20:46:01 -05:00
Ottatop
4d1085a720 Fix clap attributes 2023-09-08 20:20:00 -05:00
Ottatop
73c473e2d6 Pause rendering until windows are idle 2023-09-08 19:56:40 -05:00
Ottatop
4be1c0aae8 Use clap for cli 2023-09-08 00:21:09 -05:00
Ottatop
d76cb13a1f Simplify window rules API 2023-09-07 20:36:49 -05:00
Ottatop
2eb69326cd Remove old MPL header 2023-09-07 18:06:07 -05:00
Ottatop
5ba9a09ea2 Remove redundant xwayland window raise 2023-09-07 18:04:00 -05:00
Ottatop
5a9f15a4d4 Apply window rules to xwayland windows 2023-09-07 18:00:58 -05:00
Ottatop
178ee9464b Add output to window rule 2023-09-07 17:42:03 -05:00
Ottatop
946f732502 Add tag constructors to window rules 2023-09-05 23:18:44 -05:00
Ottatop
ec651e24b3 Add client side window rules API 2023-09-05 22:13:43 -05:00
Ottatop
4f8d662dd3 Add server side window rules API 2023-09-05 20:45:29 -05:00
Ottatop
d9ce324606 Begin work on window rules 2023-09-04 22:14:18 -05:00
Ottatop
8a75769ca3 Map window if pending state isn't different 2023-09-04 02:12:42 -05:00
Ottatop
088a1f7fac Map window in new_toplevel 2023-09-04 02:01:56 -05:00
Ottatop
5740295817 Revert "Stop rendering instead of unmapping windows (regression)"
This reverts commit 15e03b6c17.
2023-09-04 02:00:12 -05:00
Ottatop
92e2886d45 Re-add stuff I removed 2023-09-04 01:54:10 -05:00
Ottatop
44d87d4725 Fix black screen on discord on wayland 2023-09-02 21:45:03 -05:00
Ottatop
87a8f29298 Fix reversed order of window rendering 2023-09-02 20:26:11 -05:00
Ottatop
ce5ed0db69 Clean up stuff 2023-09-02 18:35:35 -05:00
Ottatop
9152145bba Render layer surfaces properly 2023-09-02 17:49:57 -05:00
Ottatop
41ea5e5230 Ignore non-rendered windows for input 2023-09-02 16:51:39 -05:00
Ottatop
15e03b6c17 Stop rendering instead of unmapping windows (regression)
Layer shell surfaces currently don't render anymore. I may need to manually render them instead of getting them through Space::space_render_elements.
2023-09-02 02:46:26 -05:00
Ottatop
5744654cb1 Respect initial configure 2023-08-31 20:42:58 -05:00
Ottatop
39d5454a7f Move schedule to impl 2023-08-31 20:35:54 -05:00
Ottatop
afed3bd91f Remove generics from state 2023-08-28 22:53:24 -05:00
Ottatop
12fc8ad2fc Fix floating windows not reappearing 2023-08-21 17:56:18 -05:00
Ottatop
992daaea98 Use anyhow 2023-08-16 11:28:35 -05:00