4ed6b69b68
socket2: fix empty activewindowv2 events
...
fixes #5827
2024-05-01 13:57:32 +01:00
zakk4223
d2899a6c27
layout: Trigger layout recalcuation on deco position/size change ( #5821 )
...
* Trigger layout recalcuation on deco position/size change
* Remove now unneeded code
* Formatting
2024-05-01 12:59:40 +01:00
ed58cc4c31
sessionLock: remove m_pLastFocus on destroy of surface
...
fixes #5822
2024-05-01 02:33:36 +01:00
70ebc3add3
sessionLock: call wlr_surface_map/_unmap on the surface manually
...
fixes unmapped subsurfaces etc
ref #5816
2024-04-30 21:59:07 +01:00
a09103cd38
sessionLock: set locked after emitting event
...
ref #5816
2024-04-30 21:20:06 +01:00
dbb8b294d6
sessionLock: fix incorrect protocol error raised
...
fixes #5816
2024-04-30 20:02:30 +01:00
1f6657f037
keybinds: check for special workspace equality before switching
...
fixes #5814
2024-04-30 16:42:31 +01:00
90e1411315
session-lock: move to new impl
2024-04-30 16:34:09 +01:00
Jan Beich
07e070012b
CrashReporter: unbreak build on FreeBSD ( #5786 )
...
* CrashReporter: skip Linux field on BSDs after 90a53aed59
In file included from src/debug/CrashReporter.cpp:10:
src/debug/signal-safe.hpp:113:17: error: no member named 'sa_restorer' in 'sigaction'
act.sa_restorer = NULL;
~~~ ^
* CrashReporter: ensure *argv[] is NULL-terminated after 90a53aed59
execv() may fail with EFAULT otherwise.
* hyprpm: add missing header after 335015fe2d
hyprpm/src/core/PluginManager.cpp:165:43: error: use of undeclared identifier 'getuid'
165 | const std::string USERNAME = getpwuid(getuid())->pw_name;
| ^
hyprpm/src/core/PluginManager.cpp:431:45: error: use of undeclared identifier 'getuid'
431 | const std::string USERNAME = getpwuid(getuid())->pw_name;
| ^
hyprpm/src/core/PluginManager.cpp:558:43: error: use of undeclared identifier 'getuid'
558 | const std::string USERNAME = getpwuid(getuid())->pw_name;
| ^
2024-04-30 14:14:31 +01:00
Sungyoon Cho
801437cd54
hyprctl: add missing json string escapes ( #5811 )
2024-04-30 14:13:36 +01:00
Vaxry
62ae2b3f40
pluginAPI/hooks: Remove dependency on cc from the hooksystem ( #5801 )
...
* Remove dependency on cc from the hooksystem
* Nix: remove cc from wrapper
---------
Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2024-04-30 02:54:43 +01:00
5edc32930d
layerSurface: refactor/move to a memory-safe impl
...
Makes all the pointers smart to avoid memory issues
Refactors layerSurface code to live inside desktop/layersurface
2024-04-30 02:41:27 +01:00
5e6f7b1cdb
cursor-shape: allow duplicate devices per pointer resource
...
fixes #5798
2024-04-30 00:05:29 +01:00
f2b03e9679
ext-idle-notify: move to new impl
2024-04-29 17:50:07 +01:00
86133983a9
xdg-activation: move to new impl
2024-04-29 16:43:24 +01:00
39595aaca3
hyprctl: make commits wrapped in quotes in json
2024-04-29 16:10:26 +01:00
thejch
a783cd8f40
log: Add some colors to stdout log 🔴 🟡 🟢 🔵 🟣 ( #5778 )
...
* add colored log
* add config option
* make it dynamic
2024-04-29 16:07:35 +01:00
33e0bb1478
wlr-output-power: move to new impl
2024-04-29 01:38:24 +01:00
Vaxry
a5a6480917
core: Move /tmp/hypr to $XDG_RUNTIME_DIR/hypr ( #5788 )
...
Moves the directory containing sockets and logs.
Also restructures lockfiles a bit.
For consumers, check if `$XDG_RUNTIME_DIR/hypr` exists. If so, use it. If not, use the old `/tmp/hypr`.
2024-04-28 22:25:24 +01:00
95a5e75c26
hooksystem: check for existing random outdir
2024-04-28 21:20:10 +01:00
f7815dab42
compositor: more fs safety around tmp directories
...
HIS now includes a random bit, and hyprland will bail if /tmp/hypr is not a directory or if /tmp/hypr/his exists
2024-04-28 20:06:40 +01:00
b164e67d8b
core: prefer mkdir over create_directory and permissions
2024-04-28 18:58:31 +01:00
28c8561924
hooksystem: use a random 700 directory for assembler
2024-04-28 18:28:19 +01:00
82a6fba6ec
tokenmgr: separate getRandomUUID from registerNewToken
2024-04-28 18:17:48 +01:00
2e763764bf
pointer-constraints: don't warp on entering a confined pointer
...
ref #5774
2024-04-27 21:15:33 +01:00
virchau13
90a53aed59
CrashReporter: fix deadlocks by making it mostly async-signal-safe ( #5771 )
...
`CrashReporter::createAndSaveCrash()` is not async-signal-safe,
resulting in random deadlocks/double-crashes during Hyprland crashes.
This changes the function to be (mostly) async-signal-safe.
2024-04-27 17:38:48 +01:00
niki-on-github
55490637aa
windowrules: add subtract window option to move rule ( #5770 )
...
Co-authored-by: nix <nix@local>
2024-04-27 17:34:19 +01:00
e400a288d0
pointer-constraints: remove emoji to fix clang
...
fixes #5765
2024-04-27 13:27:24 +01:00
Vaxry
bca7804bb6
internal: Window storage rework - part 1 ( #5762 )
...
* Window storage rework - part 1
* format
* remove useless include
* fix pch
* format
* fix crash in dwindle
* fix vram leak
* prefer .expired() for bool checks
2024-04-27 12:43:12 +01:00
25aec3ac8c
pointer-constraints: move to new impl
2024-04-27 03:17:04 +01:00
f94264928a
swipe: fix crashes with invalid distance
...
fixes #5758
2024-04-26 19:11:28 +01:00
d9ec2785cb
wlr-foreign-toplevel: send done after property changes
...
fixes #5753
2024-04-26 13:14:50 +01:00
1d40af64d3
text-input-v3: move to new impl
2024-04-25 23:27:44 +01:00
eriedaberrie
e87227e00a
config: Default unconfigured monitors to open to the right ( #5741 )
...
* config: default unconfigured monitors to open to the right
* monitor: improve logging for auto positioning
2024-04-25 22:07:50 +01:00
eriedaberrie
faa9017043
renderer: fix rounding of the size of fractionally scaled monitors ( #5748 )
2024-04-25 18:52:49 +01:00
0652a20bd3
events: set window initial* before searching for rules
2024-04-25 16:57:11 +01:00
9fc3cb5629
foreign-toplevel: fix bad_any_cast in moveWindow
...
fixes #5740
2024-04-25 16:35:09 +01:00
01df3b73d8
shortcuts-inhibitor: move to new impl
2024-04-25 14:32:35 +01:00
ecf282d331
wlr-foreign-toplevel: move to new impl
2024-04-25 01:10:43 +01:00
zakk4223
72e31d3335
idle-inhibit: Always recheck idle inhibitors on creation and deletion ( #5738 )
...
Formatting
2024-04-25 00:05:19 +01:00
3878f806ff
pointer-gestures: move to new impl
2024-04-24 21:36:56 +01:00
d86eec332f
idle-inhibit: don't destroy inhibitor on surface destroy
...
fixes #5731
2024-04-24 19:15:01 +01:00
4540d8ccd5
style: fix clang-format
2024-04-24 16:45:54 +01:00
Virt
9fe409800b
renderer: Fix mirrored displays when transformed and preserve aspect ratio ( #5697 )
...
* renderer: transform mirror buffer and preserve mirror aspect ratio
* renderer: render mirrors directly from offloadFB
* renderer: fix formatting
* renderer: use monitorMirrorFB again, but properly damage mirrors
* renderer: clean mirrors after reload and support cursor zoom mirroring
2024-04-24 16:29:41 +01:00
8aecd4f253
cursormgr: fix misscaled cursors on fractional
2024-04-24 16:18:38 +01:00
608eff600d
tokens: add more modes to initial_workspace_tracking
...
1 is single-shot, 2 is persistent
fixes #5732
2024-04-24 16:16:52 +01:00
Agent00Ming
81bb4eb2f6
workspace: Fix duplication of "special:" in special workspace name ( #5729 )
...
* Fix duplication of "special:" in special workspace name
modified: src/desktop/Workspace.cpp
* Track default special workspace name as special:special
This is to fix the edge cases with the previous commit without breaking
user configs.
modified: src/helpers/MiscFunctions.cpp
---------
Co-authored-by: Agent_00Ming <agent00ming9366@gmail.com>
2024-04-24 16:07:22 +01:00
e5fa0007a5
foreign: fix no-pch builds
2024-04-24 16:03:56 +01:00
0d1bb65c75
ext-foreign-toplevel: add implementation
2024-04-24 15:48:06 +01:00
34413d1f36
tokens: fix initial workspace token ignoring special
...
ref #5726
2024-04-24 02:06:13 +01:00
drendog
31d055f6d4
input: fix active keyboard for seat after destroying one ( #5725 )
...
* fix: manage active keyboard for seat after destroying one
* chore: clang-format
2024-04-23 23:30:35 +01:00
d119513749
renderer: fix safety around sendFrameEventsToWorkspace
...
ref #5718
2024-04-23 21:15:37 +01:00
bb4646bbdf
compositor: properly update workspace in moveWindowToWorkspaceSafe
...
fixes #5714
2024-04-23 16:38:12 +01:00
a2366f78f0
renderer: send frame events to apps on empty damage renders
...
fixes #5711
2024-04-23 16:08:54 +01:00
cf3596a96d
renderer: avoid rendering frame if finalDamage is empty
2024-04-23 12:29:01 +01:00
4f1214c7e9
windows: don't force workspace change on same tracked workspace
2024-04-23 11:37:20 +01:00
5fdd0bceac
Meson & Nix: add libuuid dep
2024-04-23 07:01:20 +03:00
Gabriel Ford
c3ec16f494
config: Add More Monitor 'Auto' Positions. ( #5670 )
...
* Reverse Window Positioning.
* Cleanup old comments and logs.
* Finish Splitting Left and Right offset.
* Forgot to add Auto Left to ConfigManager
* Fix problems with auto_left.
* Nearly finish up and down.
* Finish draft of all four dirs. Testing now.
* Change Y value in moveTo for up and down.
* Format, comment, and cleanup.
* Address Vaxry's feedback.
* Add check to see if auto position is first rule.
* Run clang-format.
2024-04-23 01:49:25 +01:00
29308b94ca
windows: add misc:initial_workspace_tracking
...
By default enabled, will track the initial opened workspace of a window spawned for 2 minutes or until it's moved to a different workspace.
For example: you run a launcher and open an app on workspace 1, but quickly switch to workspace 2. The app will now open on workspace 1 regardless of your switch.
2024-04-23 01:49:23 +01:00
7778f01194
managers: Add a TokenManager
2024-04-23 01:28:27 +01:00
PostCyberPunk
855a516596
core: add libinput backend support for headless session ( #5699 )
2024-04-22 18:48:18 +01:00
012a2802e0
Protocols: implement protoLog
2024-04-22 18:44:25 +01:00
741c75d907
gamma-control: move to new impl
2024-04-22 18:21:03 +01:00
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