Commit Graph

222 Commits

Author SHA1 Message Date
Vaxry 2e111c8cf9 xdg: rewrite entire popup implementation 2024-02-29 14:26:02 +00:00
Vaxry b39dcfa497 refactor: move a few things to desktop/ 2024-02-29 13:03:38 +00:00
Vaxry b1c0f1cc01
subsurface: Rewrite the subsurface tree (#4877) 2024-02-29 00:03:28 +00:00
github-usr-name f9cfec8abb
compositor: allow source monitor to be provided to `getMonitorInDirection` (#4837)
Co-authored-by: github-user-name <spam-here@github.com>
2024-02-25 14:03:00 +00:00
Alessio Molinari 7e8bcd675d
monitors: fix outputmgr nullptr crash (#4738) 2024-02-18 02:24:01 +00:00
Vaxry f085ed4454 screencopy/toplevelexport: sanitize pointers in ::copyFrame
oopsie~~ >///<
2024-02-07 00:18:47 +00:00
MightyPlaza cbadf3e3f3
input: focus window on mouse down on decoration (#4514)
Also unifies vectorToWindow funcs
2024-02-04 15:40:20 +00:00
Vaxry 5eeec8860e core: improve cleanup logic 2024-01-19 16:20:30 +01:00
virchau13 3c964a9fdc
keybinds: Add dispatcher for xmonad/qtile-style workspace switching (#4439)
* feat: implement xmonad/qtile-style workspace switching

Implements the focusWorkspaceOnCurrentMonitor dispatcher and function,
which implements XMonad/Qtile-style workspace switching.

When called, focusWorkspaceOnCurrentMonitor will:
1. Send the requested workspace to the current monitor,
2. If the workspace was previously active on a different monitor,
   replace it with the workspace that was previously active on the
   current monitor,
3. Focus the workspace on the current monitor.

* fix: address PR comments
2024-01-15 16:30:46 +01:00
dranull 34b0ce66b3
dwindle: Use window->middle() when cursor is on reserved area (#4253) 2023-12-26 17:24:31 +01:00
Vaxry 5aab4a96e3 dispatchers: add tiled/floating to cyclenext 2023-12-24 15:08:48 +01:00
Vaxry d5811283d2 xdgshell: bump to 6, send suspended states 2023-12-23 22:30:56 +01:00
Vaxry 4eb42fab7b windowrules: add onworkspace
cool
2023-12-20 23:52:18 +01:00
François Conzelmann 4a42344e97
style/ci: apply clang-format and verify it in ci (#4039)
* style: apply clang-format

* ci: add new clang-format job to CI
2023-12-06 22:54:56 +00:00
Junxuan Liao 929c44e361
input: pass mouse input to IME popups (#3922) 2023-11-25 14:27:57 +00:00
Vaxry 2ebfd0c745
renderer: Move to a full Hyprland GL rendering pipeline (#3920)
Also updates wlroots
2023-11-24 10:54:21 +00:00
MightyPlaza add23a9ba2
group: fix dragging into floating groups (#3719)
* allow dragging into floating groups

modified:   src/Compositor.cpp
modified:   src/Compositor.hpp
modified:   src/layout/IHyprLayout.cpp
modified:   src/render/decorations/CHyprGroupBarDecoration.cpp

* floating-only
modified:   src/layout/IHyprLayout.cpp
2023-11-19 12:29:01 +00:00
Vaxry 84bc0a73f6 compositor: drop unused vectorToWindow func 2023-11-17 15:30:04 +00:00
Vaxry 21e9313c10
Core: various unsafe state improvements (#3713)
Fixes #3637
2023-11-01 18:53:36 +00:00
Vaxry df00727310 deps: update wlroots 2023-10-25 00:27:16 +01:00
Vaxry 59f27e7f57 compositor: send preferred scale and transform events to surfaces
fixes #3635
2023-10-22 16:58:06 +01:00
vaxerski 9cc614d096 internal: add a watchdog
a watchdog will abort processing a signal if a timeout specified via debug:watchdog_timeout is reached.
2023-09-29 16:38:13 +01:00
Vaxry 88b63a00b6
renderer: Tearing implementation (#3441) 2023-09-28 21:48:33 +01:00
Vaxry 46d66f4bcc
internal: Further unsafe state improvements (#3404)
Instead of allowing Hyprland to sit in a state where there are no monitors, which various parts of the code don't like, we create a fake headless output on all monitor disconnect, and then remove it when a monitor appears
2023-09-24 18:04:38 +01:00
vaxerski fb80cbe415 input: properly track mouse focus on drag operations 2023-09-23 01:28:45 +01:00
alaricljs e4ddfcfa0c
keybinds: implement pushactivetobottom dispacher (#3217)
Co-authored-by: Leeman <lstrout@enlj.com>
2023-09-21 22:18:26 +01:00
vaxerski bb0933437f wlr-ext-workspace: remove protocol impl
Various reasons: 1st, memory issues. 2nd, MR got closed (see https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/merge_requests/35) 3rd, not needed anymore (waybar has its own hyprland/workspaces module)
2023-09-01 17:10:03 +02:00
vaxerski b4f123d1f2 compositor: remove wlr_scene refs
super old leftovers
2023-08-30 17:22:55 +02:00
memchr cb59763d32
fix: improved focus behaviour on workspace switching for follow_mouse!=1 (#3041)
* fix: improved focus behaviour on workspace switching for follow_mouse!=1

When the 'input:follow_mouse' is not set to 1 and the target workspace
for switching does not currently have the previously focused window,
Hyprland will prioritize focusing on the top-left-most window.

* fix: #2451 call simulateMouseMovement.

* unify logic

* multimon fix

---------

Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
2023-08-21 20:54:02 +02:00
Vaxry 13886a264f internal: add a new monitor auto system 2023-08-14 14:22:10 +02:00
Vaxry c748f36939 internal: add lock files and hyprctl instances 2023-08-08 16:16:40 +02:00
vaxerski f5913135c6 input: add support for cursor-shape-v1 2023-07-24 18:50:17 +02:00
Vaxry 8370a7fcc4
internal: Protocol C++ Wraps + XDGOutput impl (#2733)
move to our own xdgoutput impl instead of wlr's
2023-07-18 15:30:28 +02:00
Tuur Vanhoutte d2eb4fee76
Avoid connected monitor reusing unavailable ID (#2731) 2023-07-18 12:12:05 +02:00
vaxerski f8def68e7e idle: implement new protocol 2023-07-13 18:05:34 +02:00
MightyPlaza d9f7f039e1
monitor desc support (#2670)
* monitor desc

* monitor desc
2023-07-09 23:10:35 +02:00
Tuur Vanhoutte b99ac063ea
Reuse same ID when reconnecting monitor, otherwise use minimum available ID (#2666)
Fixes #2601
2023-07-09 23:08:40 +02:00
vaxerski 18f9fb5e0f rules: add stayfocused 2023-07-04 12:05:25 +02:00
Vaxry 01f85a09a9 xwayland: send zero scaling to xwayland if enabled 2023-06-23 21:42:44 +02:00
vaxerski fbabb105c3 gamma: use wlr's new gamma manager event 2023-06-14 13:26:47 +02:00
vaxerski 086f724951 wlr_ext_workspaces: honor activate from client + format 2023-05-22 19:36:47 +02:00
vaxerski cc4ccfdbfd internal: use i64 for workspaces in outofbounds 2023-05-09 14:08:05 +01:00
vaxerski 247ff4e60d internal: improve fullscreen fade 2023-04-24 23:21:51 +01:00
vaxerski 97b0368765 xwayland: crude fix for qt dnds 2023-04-22 22:20:48 +01:00
vaxerski 287e6c4ede internal: workspace manip handling rework 2023-04-14 15:03:53 +01:00
Vaxry 471ac474a1 core: remove old redundant shutdown stuff 2023-03-23 03:07:57 +00:00
vaxerski 71a95a581f feat: add pretty notifications 2023-03-20 15:03:09 +00:00
vaxerski dc7d783d14 Initialize priority managers before server init 2023-03-05 13:37:21 +00:00
Vaxry 86acdcf8b6 nuke unmanagedx11 vector 2023-03-01 13:15:51 +00:00
Vaxry 8b81f41e52
Plugin System (#1590)
---------

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-02-27 12:32:38 +00:00
Vaxry 1b56cc4e99
Added an Event Hook System (#1578)
* added an eventHookSystem

* Add all socket2 events to hooks
2023-02-19 20:54:53 +00:00
vaxerski 129e99a6f6 Implement ext-session-lock-v1 2023-02-03 11:58:55 +00:00
vaxerski 61c9e50bcd warp cursor on login to center 2023-01-28 12:26:38 +00:00
Cyril Levis fcbfd19393
feat: add focus to urgent or last window (#1402)
* feat: add focus to urgent or last window

* Rename dispatcher

Co-authored-by: Maxim Baz <git@maximbaz.com>
2023-01-21 11:18:55 +01:00
Vaxry fb2679d5ef add a focus history vec 2023-01-20 19:15:15 +01:00
Maxim Baz 668d90c700
Implement urgency hint for workspaces (#1379)
When there are any unfocused windows that request activation, mark the workspace as urgent.
2023-01-14 20:31:11 +01:00
Cyril Levis 3173fbdc4a
feat: dispatcher, add workspace renaming (#1336)
* feat: dispatcher, add workspace renaming

Co-authored-by: vaxerski <vaxry@vaxry.net>
2023-01-08 14:19:18 +01:00
Vaxry 98a4fa2b0d
Added clang format (#1239)
* clang-format stuff and format files
2022-12-16 17:17:31 +00:00
Vaxry 111d209bff
Added toplevel handle sharing Rev2 (#1203)
* Added toplevel handle sharing

* nix: fix build

* update hyprland-protocols

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2022-12-12 14:56:42 +00:00
vaxerski 9fb24ac1e9 avoid using wayland-0 as a socket name 2022-12-05 17:21:09 +00:00
Vaxry 66fb083003
Implement window sharing with the hl toplevel export proto (#1179)
* implement window sharing

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2022-12-05 17:05:15 +00:00
vaxerski 0a302901d2 Added handling more special workspaces 2022-11-27 22:42:22 +00:00
vaxerski e427d9f622 unify setting of the active monitor 2022-11-19 16:41:41 +00:00
vaxerski 5a750b485a Added creating / destroying outputs on a multi-backend + headless backend
See `hyprctl output`.
2022-11-05 18:04:44 +00:00
vaxerski f50c786640 Added direct scanout 2022-11-05 12:50:47 +00:00
vaxerski 69f1d7b360 Rework workspace rules 2022-10-24 18:36:31 +01:00
vaxerski c04563734e Rework candidate finding on close window 2022-10-24 12:25:36 +01:00
vaxerski 2c714eace5 handle activate requests 2022-10-22 16:43:47 +01:00
vaxerski 9f9129e536 focusable checks in nextWindow calls 2022-09-29 16:53:31 +01:00
Felix Dick bf3f519eb7 Remove trailing whitespace. 2022-09-25 20:07:48 +02:00
vaxerski 82aa78916d hyprctl-nopoll 2022-09-10 21:21:28 +02:00
vaxerski f4add0ac6d refocus on reserved area 2022-09-03 15:35:53 +02:00
vaxerski cfa6c01df0 remove double drm and dmabuf creation 2022-08-28 12:32:26 +02:00
vaxerski d413388761 Multiple improvements to the shutdown procedure 2022-08-28 11:19:08 +02:00
Alec LeFors 59d7cfcd02 implemented DRM leasing for VR headsets 2022-08-27 17:10:13 -04:00
vaxerski 0d1a9e4ba9 modify exit behaviour a bit 2022-08-25 21:35:47 +02:00
vaxerski e327b0a835 added a swapactiveworkspaces dispatcher 2022-08-25 21:25:28 +02:00
vaxerski d0ec2b72ae report sizes to all windows on fullscreen 2022-08-22 14:22:21 +02:00
vaxerski 5569e1f69c remove unused func 2022-08-21 17:09:35 +02:00
Vaxry b0b3a5af10 added resizewindowpixel and movewindowpixel 2022-08-15 15:59:07 +02:00
Vaxry d47bfe6af1 remove unused fixXWaylandWindowsOnWorkspace 2022-08-15 00:34:39 +02:00
Vaxry 58ff04fdf3 added experimental monitor saving 2022-08-10 21:54:09 +02:00
Vaxry 9eb750c00b added misc:layers_hog_keyboard_focus 2022-08-10 17:46:01 +02:00
Vaxry 69b8568ccf better foreign toplevel protocol obedience 2022-08-06 20:57:38 +02:00
vaxerski e0ada97a24 support zwp_input_method_v2 popups 2022-08-05 17:07:01 +02:00
vaxerski 1c4d0e8c18 added IME protocol support 2022-08-05 13:03:37 +02:00
vaxerski 1edd66618f added general:no_cursor_warps 2022-08-01 18:50:16 +02:00
vaxerski a1d1ec4c46 added misc:mouse_move_enables_dpms 2022-07-31 15:46:42 +02:00
vaxerski edac94bed1 tick hyprctl separately 2022-07-31 00:27:32 +02:00
vaxerski f96b611651 support wlr-output-power-management 2022-07-30 22:41:24 +02:00
vaxerski 31a079b347 added DPMS 2022-07-27 12:32:00 +02:00
vaxerski 6f2368f809 Add a pass dispatcher 2022-07-26 17:30:30 +02:00
vaxerski c998e946aa Wrap adding to fading out
needed to avoid memory safety issues, because sometimes there would be duplicates.
2022-07-25 21:08:54 +02:00
vaxerski 1626707b7f make layerSurfaces into RAII 2022-07-23 15:48:08 +02:00
Mihai Fufezan 01fc3d6068
add config flag
you can now specify a config with -c <path>
2022-07-14 23:55:24 +03:00
Vaxry 6708f3b133
Fixed TTY switching (#364) 2022-07-13 18:18:23 +02:00
vaxerski bf762f566f Fix VRAM memory leak when releasing snapshots 2022-07-12 23:11:34 +02:00
vaxerski a4f82491b7 active opacity is now animated 2022-07-12 13:40:55 +02:00
vaxerski 4b334594dc Added splashes 2022-07-10 15:41:26 +02:00
vaxerski c44cafda97 added cyclenext param previous 2022-07-09 18:39:41 +02:00