Commit graph

3608 commits

Author SHA1 Message Date
dafc9ed4eb pluginsystem: fix unhooking on exit 2024-04-22 15:57:03 +01:00
e91513a5e8 pluginapi: unregister callbacks on lost ptrs 2024-04-22 15:50:23 +01:00
450343b7b8 pluginsystem: unload entire plugin before calling dlclose()
fixes #5689
2024-04-22 15:46:43 +01:00
Matteo Quadrino
e1644e91ea
config: polish default config file (#5672)
* polish default config file

polish default config, making it prettier by separating it in sections, and adding links to the wiki for each section.
No configuration was altered, I only made it prettier and more beginner friendly.
I propose this should also be used as the autogenerated config file at installation.

* update default config according to suggestions

* Update defaultConfig.hpp to match example

* remove some whitespace

* match default config

* restored string terminator
2024-04-22 10:31:29 +01:00
8afdb8403b style: fix clang-format 2024-04-21 21:29:37 +01:00
Tom Englund
f041d763ae
relative-pointer: fix missing header for g_pCompositor (#5681) 2024-04-21 21:24:07 +01:00
f587c3e0ba alpha-modifier: add support for protocol 2024-04-21 21:21:22 +01:00
87173bd09d protocols: fix for hyprwayland-scanner update 2024-04-21 21:20:48 +01:00
ed69502ff6 xdg-decoration: move to new impl 2024-04-21 20:04:58 +01:00
4954dcbbb3 relative-pointer: move to new impl 2024-04-21 19:30:23 +01:00
55f1f3fedf protocols: minor style improvements to new impls 2024-04-21 19:29:45 +01:00
d9fe1d0f58 idle-inhibit: move to new impl 2024-04-21 16:54:52 +01:00
e823b5d693 Window: add destroy signal 2024-04-21 16:54:50 +01:00
SoSeDiK
e69bc5b870
config: Expand on window matching (#5518)
* Expand on window matching

* Requested changes
2024-04-21 15:19:59 +01:00
93e5d7ca5a input: check for focused_client being null before reading its client
ref #5673
2024-04-21 15:17:12 +01:00
4dc07c4378 keybinds: clear repeat source on mouse inputs
fixes #5671
2024-04-21 12:50:37 +01:00
thejch
7c3bd4c19f
workspace: Add fullscreen workspace selector (#5640)
* add fullscreen selector

* use stoi
2024-04-21 01:50:08 +01:00
30e4b404f2 cursor-shape: move to new impl 2024-04-21 01:49:23 +01:00
a141bbbea5 helpers: Add new C++ Signal and Listener classes
A memory-safe alternative to wl_signal
2024-04-21 01:47:45 +01:00
4ad739ec63 HookSystem: improve callback safety 2024-04-20 20:16:42 +01:00
1055e6bee6 wayland-protocol: remove unused CWaylandResource 2024-04-20 19:40:01 +01:00
84ee839ca6 XDG-Output: move to hyprwayland-scanner 2024-04-20 19:39:59 +01:00
Yaroslav
a945346064
core: remove libsystemd dependency (#5660)
* remove libsystemd dependency

as per Lennart Poettering's advice:
https://github.com/systemd/systemd/issues/32028#issuecomment-2031366922

* fix naming for systemd helper functions

* rename vars according to code style

* Nix: update meson patch

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2024-04-20 18:50:07 +01:00
ea47e8c92a Fractional-scale: move to new impl 2024-04-20 14:19:16 +01:00
Vaxry
ea95449402
core: Move tearing to hyprwayland-scanner (#5657)
Adds a new dependency: hyprwayland-scanner https://github.com/hyprwm/hyprwayland-scanner

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2024-04-20 13:25:29 +01:00
Gabriel Ford
5c97b96278
config: Allow more sensible input options for enabling animations. (#5659)
* Add check for on/off and true/false.

* Cleanup feature and comment it out.

* Use already created helper function for this.

* Fix comparing int to char* ptr
2024-04-20 12:26:48 +01:00
thejch
10caa03ce5
config: merge all rules set for the same workspace selection (#5656) 2024-04-20 02:20:16 +01:00
1ebc32f5f4 tearing-control: search through all valid windows
ref #5655
2024-04-20 00:08:49 +01:00
Vaxry
b52a49b4c4
tearing-control: hyprland impl (#5655)
* tearing: hl impl

* format
2024-04-19 22:16:35 +01:00
Sungyoon Cho
dd39cd7e42
windows: recalculate monitor after updating windows (#5647)
Recalculate monitor after updating windows, so layout render doesn't get
overridden.
2024-04-19 18:46:16 +01:00
zakk4223
4d0a635237
workspace: Add 'v' flag for workspace selector that counts only visible windows (#5628)
* Add 'v' flag for workspace selector: counts only visible windows

* extra commit because I'm dumb

* guard
2024-04-19 02:44:51 +01:00
Epikastema
82222342f1
shaders: Use sin-less hash for noise (#5607) 2024-04-17 19:01:50 +01:00
Thomas Lindae
78b04c3a76
hyprctl: fix activewindow request not showing workspace name (#5623) 2024-04-17 17:44:46 +01:00
Maarten de Vries
e57a2d7ec8
keybindmgr: add optional silent suffix to movewindow. (#5597)
With the `silent` suffix, the focus remains on the current position in
the layout or the current monitor, instead of following the moved
window. When combined with `movewindow mon:X`, this this allows you to
get the same behavior as xmonad's `windowToScreen` command.
2024-04-17 12:04:16 +01:00
32555e98dd window: remove input ref on unmap
ref #5605
2024-04-16 15:17:54 +01:00
FUFSoB
c99803af15
notifications: fix notifications on manually rotated monitor (#5599) 2024-04-15 21:47:39 +01:00
ccbdce7c85 input: send an empty relative event after constraint motion events
ref #4015
2024-04-15 17:22:25 +01:00
3dbf8e936e cursor: add hyprcursor loggers 2024-04-15 16:45:08 +01:00
Jan Beich
2ea367839b
build: Unbreak build on FreeBSD by adjusting dependencies (#5595)
* deps: add epoll-shim for some BSDs after 863c7b6072

ld: error: undefined symbol: timerfd_create
>>> referenced by EventLoopManager.cpp
>>>               src/Hyprland.p/managers_eventLoop_EventLoopManager.cpp.o:(CEventLoopManager::CEventLoopManager())

ld: error: undefined symbol: timerfd_settime
>>> referenced by EventLoopManager.cpp
>>>               src/Hyprland.p/managers_eventLoop_EventLoopManager.cpp.o:(CEventLoopManager::nudgeTimers())

See also
https://github.com/freebsd/freebsd-src/commit/af93fea71038
https://github.com/netbsd/src/commit/75f1bc6655cf

* deps: drop unused xcb-image after 45945a3e7d

$ pkg install <hyprland dependencies>
$ pkg install meson jq `pkg rquery %dn wlroots` hwdata
$ gmake all
[...]
-- Checking for modules 'xcb;xwayland;xcb-util;xcb-render;xcb-image;xcb-xfixes;xcb-icccm;xcb-composite;xcb-res;xcb-ewmh'
--   Package 'xcb-image' not found
CMake Error at /usr/local/share/cmake/Modules/FindPkgConfig.cmake:619 (message):
  The following required packages were not found:

   - xcb-image

Call Stack (most recent call first):
  /usr/local/share/cmake/Modules/FindPkgConfig.cmake:841 (_pkg_check_modules_internal)
  CMakeLists.txt:177 (pkg_check_modules)

See also
https://github.com/swaywm/wlroots/commit/ae7c3f3d1c56
2024-04-15 14:42:17 +01:00
LivingCodeX
fd7ea4f27c
constraint: Fix xwl cursor locking for scaled monitors (#5587)
* Fix xwl cursor locking for scaled monitors

* Add null check for window

* Replace m_fLastScale with m_fX11SurfaceScaledBy

* Improve code style

* Improve code style via clang-format
2024-04-14 21:31:50 +01:00
go0d1uck
83ab0f2d66
keybindmgr: fix workspace_back_and_forth (#5585) 2024-04-14 14:54:00 +01:00
MightyPlaza
0634aaeac6
renderer: remove border on fullscreen (#5577)
modified:   src/render/Renderer.cpp
2024-04-14 00:16:26 +01:00
Yaroslav
9e4b2efe7e
cmake: Some small cmake cleanups (#5572)
* remove unnecessary include

* cmake: use pkg_get_variable

We can find wayland-scanner executable and wayland-protocols dir by
taking advantage of this function, so no need to use find_program or
manually call pkgconf executable.

* cmake: remove explicit rdynamic option

CMAKE_ENABLE_EXPORTS=ON already implies rdynamic so it's redundant to
set the latter explicitly.

Also, CMAKE_ENABLE_EXPORTS is superseded by
CMAKE_EXECUTABLE_ENABLE_EXPORTS in cmake 3.27.

* cmake: make xcb-errors dep optional

xcb-errors is being used in wlroots, where it's optional. So make it
optional in hyprland as well
2024-04-13 14:40:28 +01:00
thejch
d96501442f
core: Fix double special workspace (#5574)
* fix double special name

* fix special on another monitor

* remove extra stuff
2024-04-13 14:39:20 +01:00
thejch
582d6233c8
workspace: fix workspace name selector returning true early (#5571) 2024-04-13 01:55:17 +01:00
thejch
34396f55a2
master: change the mfact dispatcher to use splitratio (#4766)
* master layout: change the mfact dispatcher to use splitratio

* add space for concat
2024-04-13 01:54:18 +01:00
dd6fdf49d9 window: always unref workspace on unmap
fixes #5563
2024-04-12 19:52:01 +01:00
b1a9430289 inhibitor: always destroy on window unmap
ref #5555
2024-04-12 00:18:58 +01:00
Jan-Peter Dhallé
e0a7cf5c30
master: fix full height when all windows master (#5549) 2024-04-12 00:05:30 +01:00
185a3b4881 swipe: nuke numbered
fixes #5424

use_r instead
2024-04-11 12:46:19 +01:00
TheOnlyMrCat
47e5b41fea
renderer: Add dimaround layer rule (#4643) 2024-04-11 12:41:18 +01:00
ac0f3411c1 macros: fix no pch warning 2024-04-11 02:13:05 +01:00
abc131ec7b configmgr: fix header priority 2024-04-11 02:12:29 +01:00
SoSeDiK
0b2f7a1b2f
cursor: Fallback to xcursor if failed to render hyprcursor (#5534) 2024-04-10 17:29:17 +01:00
Sungyoon Cho
c35fa9bacc
workspace: update windows when selector match could change (#5533)
* workspace: update windows when group updates

* workspace: update windows when floating toggle

* workspace: update windows when stop dragging window by mouse
2024-04-10 17:26:11 +01:00
b573c20125 monitor: add workspace null check to visible flag
ref #5524
2024-04-10 17:21:45 +01:00
JManch
303b9956b2
hyprctl: print monitor disabled status (#5525) 2024-04-10 09:50:00 +01:00
SoSeDiK
1343aa865d
config: Don't override fullscreen opacity if only two opacities are provided (#5512) 2024-04-09 16:22:44 +01:00
SoSeDiK
f2addfb404
props: Parse border color props as gradient (#5513) 2024-04-09 16:14:53 +01:00
Sungyoon Cho
fcac25bcc2
workspace: Add count group flag in windowCount workspace selector prop (#5499)
* Add groupCount workspace selector prop

* Intergrate groupCount with windowCount
2024-04-09 12:08:38 +01:00
dranull
a06272ae55
input: Option for handling off-window axis events (#4177) 2024-04-08 23:35:21 +01:00
Tom Englund
125a8f7e07
workspace: fix crash on destruction of compositor (#5495)
when the compositor destructs because of exiting hyprland the
hookmanager and eventmanager is already destroyed, add an if check in
the destructor of workspace so it doesnt segfault on exit.
2024-04-08 18:28:11 +01:00
63e3668529 style: run clang-format 2024-04-08 15:33:02 +01:00
Tom Englund
db91d949f7
compositor: move wl_display_destroy_clients (#5498)
if enough clients are open when destructing the compositor destroying
clients will emit a wl_surface_unmap that a WLListener catches and doing
so it calls listener_unmapLayerSurface that tries to iterate over input
manager that is already destroyed, move the destruction of clients above
g_pInputManager.reset() and removeAllSignals() to ensure we dont
segfault at exit.
2024-04-08 15:32:31 +01:00
785d9d9521 config: verify string length in wrv2 before calling back
ref #5431
2024-04-08 15:27:13 +01:00
SoSeDiK
43b96f03b5
props: Allow setting per-window fullscreen opacity (#5470) 2024-04-07 23:19:02 +01:00
MightyPlaza
df1a3a978d
input: don't remove pinned focus on workspace change (#5486)
modified:   src/helpers/Monitor.cpp
2024-04-07 23:13:56 +01:00
7d989f2cf0 damageSurface: don't correct smallVec twice 2024-04-07 22:25:34 +01:00
863c7b6072 eventloop: move timers to an event loop fd
fixes #5481
2024-04-07 21:55:29 +01:00
thejch
89f775aec2
master: fix crash (#5472) 2024-04-07 15:21:12 +01:00
Junxuan Liao
d657b59f70
IME: fix IME popup mouse inputs (again) (#5417)
`lastBoxLocal`'s size should be the actual popup's size instead of the cursor
rectangle's size. Also, the rectangle position is now relative to the popup.
(Actually fixes #5255 imho.)

One thing #3922 missed was handling focus held by buttons. Let's hope I get
it right this time.
2024-04-07 15:15:50 +01:00
Vaxry
f2a848cbcc
core: Event loop rework (#5466)
* Event loop rework

* revert missed
2024-04-07 03:31:51 +01:00
thejch
9f1604e4b0
input: Dont set active monitor when simulating mouse movement (#5465)
* fix mouse simulation switching focusedmon

* fix some warnings with wrong enum
2024-04-07 01:07:21 +01:00
thejch
e80bccad51
master: fix workspace orientation not being restored after workspace rule no longer applies (#5463) 2024-04-06 23:49:38 +01:00
ff114cf6f9 input: fix focus on maximized bg surfaces 2024-04-06 18:59:23 +01:00
fa79aacea3 constraint: fix possible uaf on double destruction
ref #5448
2024-04-06 18:43:17 +01:00
Sungyoon Cho
04d067d78b
IME: fix race condition on closing window (#5455) 2024-04-06 15:54:02 +01:00
staz
1596e2d1f7
workspacerules: add back on-created-empty functionality (#5452)
* workspacerules: add back on-created-empty functionality

* clang format

* workspacerules: spawn on-created-empty window while initializing CWorkspace

* clang format

* configManager: fix typo

---------

Co-authored-by: Your Name <you@example.com>
2024-04-06 15:53:32 +01:00
f081a4300f input: fixup background layer checking on maximized 2024-04-06 15:18:58 +01:00
159444c45b compositor: fix ghost fadingOut windows remaining after cleanup 2024-04-06 14:59:30 +01:00
f8c22916ab compositor: remove windows from fadingOut properly 2024-04-06 14:51:35 +01:00
24734fbf1d subsurface: init existing subsurfaces on children creations
fixes #5333
2024-04-06 03:09:20 +01:00
dab149e4a6 core: fix compile without pch
fixes #5445
2024-04-05 21:23:28 +01:00
b5b1c0137d CColor: fix getAsHex 2024-04-05 21:23:06 +01:00
094bce8118 core: simplify sanityCheckWorkspaces 2024-04-05 19:43:51 +01:00
4909b0f350 monitor: unset visible flag from ws on disconnect
ref #5443
2024-04-05 19:25:40 +01:00
965a2e5b21 hooksystem: attempt allocating pages in linear order 2024-04-05 17:16:09 +01:00
f815a33f64 workspace: remove monitor and visible flags on inert 2024-04-05 16:57:49 +01:00
0051b078a1 monitor: check for invalid workspaces in onConnect
ref #5443
2024-04-05 16:57:49 +01:00
thejch
1e8f57c734
workspacerules: fix workspace rule loops (#5433) 2024-04-05 16:54:30 +01:00
Martin Sundhaug
942172d2dc
hooksystem: Fix miscalculation in comment (#5442) 2024-04-05 12:56:53 +01:00
1ae592fcd9 hyprpm: add support for minimum versions 2024-04-05 00:46:37 +01:00
1454c6213e window: fix invalid last workspace id
ref #5432
2024-04-04 22:49:15 +01:00
ec2cc79c65 renderer: avoid double-rendering ls-es on fadingOut
fixes #5295
2024-04-04 22:43:57 +01:00
0569b9c300 hooksystem: manually map trampoline addresses
better patching of rip calls as we are close enough to just change them up
2024-04-04 18:50:37 +01:00
cba9c5ff95 core: fix visibility flags in moveWorkspaceToMonitor
fixes #5416
2024-04-04 18:30:50 +01:00
Sungyoon Cho
c4b660a339
IME: fix crash on restarting IME (#5428) 2024-04-04 17:34:04 +01:00
4f3e90ad2d popups: more safety in damage checking 2024-04-04 16:42:30 +01:00
end-4
9b8ef9206d
layers: separate anim configs for open/close (#5421) 2024-04-04 16:41:09 +01:00
b7d71bc0e1 keybinds: fix spammy warning 2024-04-04 01:16:47 +01:00