4b592d0819
renderer: properly pass 10-bit formats to opengl
2023-10-30 15:56:16 +00:00
MightyPlaza
a1924ae435
internal: create canBeGroupedInto() ( #3693 )
...
modified: src/Window.cpp
modified: src/Window.hpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/MasterLayout.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
2023-10-30 14:54:12 +00:00
cb6cfde6e8
window: update window reported size on damage events
2023-10-30 14:49:49 +00:00
8e91c038db
renderer: use optional for cursor surface storing
...
because nullptr is a valid surface.
fixes #3692
2023-10-30 00:18:40 +00:00
86318ce04f
input: let input-grabbing decos have prio over resize on border
2023-10-29 23:37:12 +00:00
59d6a12a7e
config: fixup usage of plugin in handles
...
would filter calls to keyword plugin: and stuff
2023-10-29 22:35:26 +00:00
935c90915a
pluginapi: fixup get_hash functions
2023-10-29 21:21:54 +00:00
b95c0c318e
renderer: fixup blend disable conditions in renderSurface
...
Fixes #3680
2023-10-29 20:54:14 +00:00
MightyPlaza
9abfa9efc6
input: handle mouse on decorations ( #3560 )
2023-10-29 20:14:47 +00:00
7a5234a0cc
input: better cursor image infrastructure
...
Improves handling of cursor images/surfaces
Fixes an issue with decos and cursors
Fixes #3471
2023-10-29 18:09:05 +00:00
af9440152e
pluginapi: add a config keyword adding method
2023-10-29 16:59:50 +00:00
7f4b0aaadc
hyprctl: add focusHistoryID to hyprctl clients
...
fixes #3661
2023-10-28 17:22:42 +01:00
4a4e13f8ac
events: ignore takes_over_fullscreen for floating windows
...
fixes #3622 . Floating windows should not respect the config option, they should be shown on top. That option is meant for tiled only
2023-10-27 12:45:17 +01:00
Antoine Dutot
1d47e2c408
input: fix force_zero_scaling for tablet and touch ( #3644 )
...
* Attempt to fix force_zero_scaling for tablet and touch for XWayland apps.
* Formated using clang-format.
* Simpler way to compute touch origin.
2023-10-27 10:15:29 +01:00
47256a6ed8
input: remove incorrect check in re-enter
...
fixes #3659
2023-10-26 22:21:13 +01:00
732b058489
input: send motion events on focusWindow if follows_mouse is 0
2023-10-26 22:17:49 +01:00
92cf1c2337
input: fix mouse down handling on unset last surface
...
fixes #3659
2023-10-26 18:54:19 +01:00
Tyler Schneider
07714dd5bd
input: Apply scaling to cursorPosOnActivate position ( #3664 )
2023-10-26 02:05:10 +01:00
b0b88a63b6
renderer: fix missed box scale
2023-10-25 22:38:14 +01:00
5b0dc779ed
renderer: blur properly behind small surfaces
2023-10-25 22:20:58 +01:00
8991be671f
renderer: respect viewporter dest on base surfaces
2023-10-25 22:05:04 +01:00
6650e4ba85
compositor: remove old comment
2023-10-25 18:32:04 +01:00
df00727310
deps: update wlroots
2023-10-25 00:27:16 +01:00
03771d3aa9
windowrules: add nearestneighbor
2023-10-24 21:29:03 +01:00
14a3c939ce
hyprctl: log monitor id in workspaces request
...
fixes #3640
2023-10-24 01:03:40 +01:00
aeb8c8fc70
internal: honor close_special_on_empty on moveToWorkspace
...
fixes #3602
2023-10-24 00:58:44 +01:00
616ff343b7
input: fix warn
2023-10-24 00:53:59 +01:00
2f6729f557
example: add special workspace to default config
2023-10-24 00:50:45 +01:00
015664eb4c
compositor: do not process fullscreen events in unsafe
2023-10-23 00:53:33 +01:00
98059b52d7
layershell: support ON_DEMAND keyboard mode
...
fixes #2264
2023-10-22 23:32:55 +01:00
Brenno Lemos
b135bd6cd4
workspacerules: Add new optional "default command" for auto-launching apps on new workspaces ( #3559 )
2023-10-22 23:11:03 +01:00
59f27e7f57
compositor: send preferred scale and transform events to surfaces
...
fixes #3635
2023-10-22 16:58:06 +01:00
d0367d8560
renderer: use preOffset pos instead of offset
...
offset is not passed to transformers, so if they change pos, decos will be in the wrong place
2023-10-21 19:51:14 +01:00
95db9108e5
transformers: allow modifying renderdata pre-pass
2023-10-21 19:25:44 +01:00
a61eb7694d
hooksystem: add callbackinfo struct and cancellable events
2023-10-21 14:52:43 +01:00
c6233a790f
renderer: avoid drawing invisibly small surfaces in renderSurface
2023-10-21 14:20:06 +01:00
92311d260a
renderer: add transformers
2023-10-21 14:15:56 +01:00
Roberto Previdi
af72404259
hyprctl: add a query for workspace rules ( #3630 )
2023-10-21 02:28:34 +01:00
4a79718fe8
renderer: fix shimmers when manual resizing
2023-10-20 20:32:47 +01:00
7f35f33b4c
surface/wayland: conform to small surface requirements
...
do not stretch small surfaces, instead center them if they fit.
2023-10-20 20:15:57 +01:00
thejch
bab2f6a664
master: fix movewindow across monitors ( #3628 )
2023-10-20 18:01:04 +01:00
thejch
bb9d0aed5b
compositor: Fix a lack of a check for workspace equality on same monitors in getInDirection ( #3625 )
...
* prevent movefocus and movewindow from going into main workspace when in special workspace
* compare workspace IDs instead
* change comparison and make code more readable
2023-10-20 10:53:37 +01:00
386708563c
workspacerules: search for special properly
...
fixes #3537
2023-10-19 16:04:59 +01:00
6e15590e98
shaders: support changing the outer radius of borders independently
2023-10-19 14:05:02 +01:00
a0b675ec9e
binds: add ignoreMods flag
2023-10-17 20:10:07 +01:00
André Silva
784f8a88fb
input: don't reset cursor movement timer on simulateMouseMovement ( #3595 )
...
Fixes #2570
2023-10-17 17:00:39 +01:00
thejch
20e7ccd480
master: fix resizing wrong window behind in special workspace ( #3591 )
2023-10-17 12:06:16 +01:00
eriedaberrie
421f5fb221
events: make new windows taking over fullscreen keep the existing mode ( #3588 )
2023-10-17 11:41:27 +01:00
Jan Beich
93676f91a0
renderer: cast std::clamp args to be of the same type ( #3589 )
...
src/render/OpenGL.cpp:1769:41: error: no matching function for call to 'clamp'
const auto FORCEWALLPAPER = std::clamp(*PFORCEWALLPAPER, -1L, 2L);
^~~~~~~~~~
/usr/include/c++/v1/__algorithm/clamp.h:38:1: note: candidate template ignored: deduced conflicting types for parameter '_Tp' ('int64_t' (aka 'long long') vs. 'long')
clamp(const _Tp& __v, const _Tp& __lo, const _Tp& __hi)
^
/usr/include/c++/v1/__algorithm/clamp.h:27:1: note: candidate function template not viable: requires 4 arguments, but 3 were provided
clamp(const _Tp& __v, const _Tp& __lo, const _Tp& __hi, _Compare __comp)
^
2023-10-17 01:29:06 +01:00
memchr
54e1c2ccbd
fix(build): do not include wlr headers directly, use includes.hpp instead. ( #3587 )
2023-10-16 17:39:12 +01:00
Alexander Seleznev
1f582457cf
Debug: respect logging settings for wlr ( #3584 )
2023-10-15 19:19:07 +01:00
Philip Damianik
442209942f
cleanup: Replace find() with C++20 starts_with(), ends_with() and contains() ( #3572 )
...
* Replace find() with C++20 starts_with() and ends_with()
* Replace find() with C++20 contains()
2023-10-15 19:07:23 +01:00
memchr
43b39e0bc6
build: include version.h in PluginAPI.hpp ( #3571 )
2023-10-15 12:22:51 +01:00
Vaxry
d5a572bd39
Plugin API: Add version query ( #3545 )
2023-10-14 18:47:43 +01:00
424c9a7e70
render: stop locking SWC on tearing
2023-10-13 22:11:21 +01:00
Michał Lewandowski
3a61350286
notifications: Schedule a frame on notification creation ( #3556 )
2023-10-13 00:05:05 +01:00
vaxerski
e4bcd2e2da
monitor: ensure vrr on workspace change
2023-10-12 17:26:35 +01:00
Vaxry
06cc42441c
build: guard execinfo.h via build systems ( #3547 )
...
* guard execinfo via cmake
* libexecinfo -> execinfo macro name
* meson: add execinfo check
* move check in cmake up
---------
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-10-11 22:27:53 +01:00
Bernhard M. Wiedemann
5dc7161b1d
meson: Sort input file list ( #3550 )
...
so that hyprland builds in a reproducible way
in spite of non-deterministic filesystem readdir order.
See https://reproducible-builds.org/ for why this is good.
This patch was done while working on reproducible builds for openSUSE.
Co-authored-by: Bernhard M. Wiedemann <bernhard+gitcommit lsmod.de>
2023-10-11 19:49:42 +01:00
memchr
34455844e9
groups: ensure consistency in dispatcher behavior with global group lock ( #3531 )
2023-10-11 11:13:12 +01:00
vaxerski
d83357f497
internal: use pragma once in version.h
2023-10-10 21:03:07 +01:00
Vaxry
914851b91a
internal: better versioning ( #3543 )
...
* better versioning
* meson: better versioning
* nix: better versioning
---------
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-10-10 20:21:57 +01:00
MightyPlaza
d537815d43
groups: create group and groupbar config sections ( #3522 )
...
* config: create group section
modified: src/Compositor.cpp
modified: src/config/ConfigManager.cpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/MasterLayout.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/input/InputManager.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* separate group border and groupbar colors
modified: src/Compositor.cpp
modified: src/config/ConfigManager.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* add new line
modified: config/ConfigManager.cpp
2023-10-10 17:42:45 +01:00
Philip Damianik
ac1bd47653
dispatchers: Add option to center the cursor on the focused window when switching workspaces ( #3528 )
...
* Add option for centering on workspace when switching workspace
* Add option for centering on workspace when switching workspace
---------
Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
2023-10-10 17:34:28 +01:00
vaxerski
8abb6e1cee
screencopy: enhance error logging
2023-10-09 23:51:59 +01:00
Roberto Previdi
df0c8e0f7a
workspacerules: Add a persistent workspace rule ( #3530 )
...
* add persistent flag to workspace rules
* get rid of unused ws->indestructible flag
2023-10-09 20:28:22 +01:00
Michał Lewandowski
7f8e0a1318
dwindle: Avoid rounding errors in window position ( #3524 )
...
* Avoid rounding errors in window position
* Fix naming scheme
* Fix unwanted window movement
2023-10-09 12:28:58 +01:00
MightyPlaza
499df49f7b
dispatchers: fix extra monitor offset when snapping floating ( #3520 )
...
modified: src/managers/KeybindManager.cpp
2023-10-08 13:49:15 +01:00
vaxerski
728a8bb48e
config: mention force_default_wallpaper in default configs
2023-10-07 15:55:33 +01:00
DaniD3v
7d7565e7ec
renderer: add force_wallpaper instead of no_hypr_chan ( #3459 )
2023-10-07 14:08:38 +01:00
vaxerski
38e242953d
animationmgr: damage floating windows on workspace anim
...
fixes #3514
2023-10-07 02:28:23 +01:00
Jeremy Huang
61d3d4dee7
master: fix drop_at_cursor on workspace 2 ( #3512 )
2023-10-06 22:33:11 +01:00
ItsDrike
1afb00a01b
pluginapi: remove starting newline in demangled func name ( #3502 )
2023-10-06 14:01:40 +01:00
vaxerski
cb7dd1ac6e
layershell: avoid configure on unchanged size
...
fixes #3496
2023-10-06 14:00:05 +01:00
vaxerski
4b3efc73c5
events: fixup empty events not being sent on unmap
...
Ref #3506 https://github.com/hyprwm/Hyprland/issues/3506#issuecomment-1749508111
2023-10-06 01:11:47 +01:00
vaxerski
24c04a8b7c
crashreporter: avoid using empty CACHE_HOME
2023-10-05 16:57:54 +01:00
vaxerski
3d1a167960
wsrules: check for workspace ID matches on numbered workspaces
...
fixes #3494
2023-10-05 01:31:13 +01:00
322c5cc4b9
layout: add new_window_takes_over_fullscreen mode 2
...
fixes #3486
2023-10-04 15:00:24 +01:00
vaxerski
230356012b
renderer: extract solitary check into frame handler
2023-10-04 13:48:44 +01:00
vaxerski
4531717f3e
renderer: considerable fixes to repaint logic
2023-10-04 13:39:40 +01:00
vaxerski
f8c18ff797
renderer: fixup solitary conditions
2023-10-04 13:30:13 +01:00
vaxerski
f803be3d31
input: fixup frame schedule conditions on mouse move
2023-10-04 12:57:37 +01:00
vaxerski
2901bb0d2f
renderer: add further conditions to solitary recheck
2023-10-04 09:44:07 +01:00
Jeremy Huang
d61e4f9ad7
master: add option to drag and drop windows at cursor position ( #3465 )
...
* add option to drag and drop a window at cursor position
* use getWindowIdealBoundingBoxIgnoreReserved
2023-10-03 22:16:57 +01:00
vaxerski
b814ba98a7
misc: add misc:new_window_takes_over_fullscreen
...
referenced in #3474
2023-10-02 16:27:32 +01:00
vaxerski
50fecf084d
events: set new window alpha to 0 if it's tiled behind fullscreen
...
fixes #3474
2023-10-02 16:22:39 +01:00
vaxerski
5ffb1032e1
events: don't focus new window if spawned behind fullscreen
...
fixes #3473
2023-10-02 14:09:23 +01:00
vaxerski
fc1d7acd9a
renderer: fix missing check for surfaceCount in rechecking solitary
...
closes #3470
2023-10-02 14:02:19 +01:00
vaxerski
763bb2d3bc
renderer: remove old debug log
2023-10-02 10:50:33 +01:00
memchr
161fee1d82
internal: include missing header ( #3464 )
2023-10-01 12:26:10 +01:00
vaxerski
a2a29a60e5
tearing: cleanup vars and avoid rendering before drm is ready
2023-09-30 17:07:50 +01:00
vaxerski
e2b72b2975
renderer: avoid spamming software cursor locks
2023-09-30 16:55:41 +01:00
Dickby
772c7d1d3c
shaders: Remove redundant clamp of smoothsteps return value. ( #3456 )
2023-09-30 13:12:48 +01:00
vaxerski
6a4643842d
hyprctl: log activelyTearing for monitors
2023-09-30 13:12:04 +01:00
vaxerski
a05076a7ee
log: log wlr errors regardless of env
2023-09-30 13:12:04 +01:00
vaxerski
b8f8912db2
renderer: lock software cursors while tearing
2023-09-30 13:12:01 +01:00
vaxerski
86e8ed038f
includes: add missing log include to animatedvariable
2023-09-30 02:09:08 +01:00
vaxerski
c298439433
renderer: nuke multisample_edges in favor of a faster algorithm
2023-09-30 01:41:05 +01:00
vaxerski
495d4f2d11
shaders: improve border rounding
2023-09-30 01:35:05 +01:00
vaxerski
7b002d609b
input: fix warn
2023-09-29 20:06:20 +01:00
vaxerski
4daa515700
watchdog: don't hang on exit
2023-09-29 20:05:43 +01:00
vaxerski
e07e64458e
input: fix unused variable warn
2023-09-29 17:55:41 +01:00
vaxerski
a44ab7748f
renderer: optimize render pipeline when there is a solitary client
2023-09-29 17:51:07 +01:00
vaxerski
ab11bd2085
watchdog: remove thread on destroy
2023-09-29 17:33:26 +01:00
vaxerski
27cd7ef0c9
watchdog: initialize after config
2023-09-29 17:04:20 +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
vaxerski
453128ee0e
examples/readme: mention tearing
2023-09-28 22:09:14 +01:00
Vaxry
88b63a00b6
renderer: Tearing implementation ( #3441 )
2023-09-28 21:48:33 +01:00
vaxerski
d48c11cc3f
input: minor constraint fixes
...
Better adjust to constraints that do not set a hint. Fixes #3436
2023-09-28 20:02:00 +01:00
vaxerski
1f4eab176e
layout: don't discard fullscreen on new tiling
2023-09-28 17:49:40 +01:00
Cascade aka. Isoheptane
6d7dc70f66
input: Add map to region options for tablets ( #3425 )
...
* Add region remap for tablets
* Fix code style
2023-09-27 19:49:30 +01:00
ffacd2efd1
hyprctl: fix crash in unsafe state with activeworkspace
...
fixes #3419
2023-09-25 15:00:28 +01:00
vaxerski
3b657257ec
layout: check for specialworkspace in floating toggle
2023-09-24 23:20:15 +01:00
Legorel
6bdc45e9ce
config: restore configCurrenPath after sourcing file ( #3339 )
2023-09-24 23:11:34 +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
352ceb1117
config: trim spaces in the rule field in windowrulev2
2023-09-24 13:35:36 +01:00
vaxerski
3b445ec849
input: avoid using the wrong surface in drag focus force
2023-09-23 17:20:39 +01:00
memchr
8252957392
dispatchers: support number as arg in changegroupactive ( #3329 )
2023-09-23 13:36:40 +01:00
Jan Beich
8637bfb1b7
build: Unbreak build without precompiled headers ( #3400 )
...
* helpers: add missing header after 2e34548aea
src/helpers/VarList.cpp: In constructor 'CVarList::CVarList(const std::string&, size_t, char, bool)':
src/helpers/VarList.cpp:19:34: error: 'removeBeginEndSpacesTabs' was not declared in this scope
19 | m_vArgs.emplace_back(removeBeginEndSpacesTabs(in.substr(pos)));
| ^~~~~~~~~~~~~~~~~~~~~~~~
src/helpers/VarList.cpp:23:30: error: 'removeBeginEndSpacesTabs' was not declared in this scope
23 | m_vArgs.emplace_back(removeBeginEndSpacesTabs(std::string_view{s}.data()));
| ^~~~~~~~~~~~~~~~~~~~~~~~
* helpers: add missing C linkage after 0dbd997003
ld.lld: error: undefined symbol: wlr_region_scale(pixman_region32*, pixman_region32 const*, float)
>>> referenced by Region.cpp
>>> src/Hyprland.p/helpers_Region.cpp.o:(CRegion::scale(float))
>>> did you mean: extern "C" wlr_region_scale
>>> defined in: /usr/lib/libwlroots.so.12032
2023-09-23 13:31:37 +01:00
vaxerski
de95089552
input: fixup mouse down refocus conditions
...
fixes #3402
2023-09-23 13:30:53 +01:00
vaxerski
9c00381dfc
hyprctl: avoid .pop_back() on empty string
2023-09-23 13:26:35 +01:00
vaxerski
fb80cbe415
input: properly track mouse focus on drag operations
2023-09-23 01:28:45 +01:00
vaxerski
3b1e09e5a1
renderer: fix missing dontRound check in renderSurface
...
fixes 3296
2023-09-23 00:06:48 +01:00
vaxerski
9f68aa33ea
renderer: damage monitor on special workspace change
...
fixes #3396
2023-09-22 23:36:28 +01:00
vaxerski
ea45bfb63c
renderer: cleanup drm format selection
2023-09-22 20:15:12 +01:00
memchr
ea5d9584da
refactor: manually resets singletons ( #3395 )
2023-09-22 11:06:09 +01:00
memchr
1357b66091
windowrules: add rule group
to map windows grouped ( #3279 )
...
* windows: add rule group to map windows grouped
* group rule: use `invade` to force open a window in a locked group
2023-09-22 00:42:00 +01:00
vaxerski
2e1842b5ff
screencopy: log renderer_begin_with_buffer failures
2023-09-22 00:21:07 +01:00
vaxerski
b662215fad
input: simplify fullscreen workspace input calculations
...
Fixes an issue with special workspaces not receiving focus above fullscreen windows, and cleans up the code
2023-09-21 23:58:58 +01:00
alaricljs
e4ddfcfa0c
keybinds: implement pushactivetobottom dispacher ( #3217 )
...
Co-authored-by: Leeman <lstrout@enlj.com>
2023-09-21 22:18:26 +01:00
Mihai Fufezan
1925e64c21
Vector2D: fix typo in include
2023-09-20 22:26:08 +03:00
vaxerski
62efc045d7
input: lock focus to last surface on buttons held
...
fixes #3385
2023-09-20 19:50:46 +01:00
Vaxry
0dbd997003
input: Various constraint handling fixes ( #3381 )
...
Fixes #3204
2023-09-20 16:47:05 +01:00
memchr
3785defaf1
logging: implement std::formatter for some types ( #3380 )
2023-09-20 16:25:03 +01:00
memchr
6594b50e57
logging/format: use std::format_string to catch formatting string errors at compile time ( #3377 )
...
* fix(log): use constexpr format string
* deprecate getFormat
2023-09-20 08:26:20 +01:00
Dickby
d8d0cd75c2
internal: Make part of CCompositor::focusWindow a bit easier to read. ( #3356 )
2023-09-19 11:37:30 +01:00
memchr
c50072b108
varlist: cleanup unintuitive string splitting ( #3369 )
...
* refactor(varlist): replace unintuitive string splitting
* refactor(varlist): remove test asserts
2023-09-19 09:44:54 +01:00
vaxerski
60f10e6037
hyprctl: print monitor IDs as int64
2023-09-19 00:41:56 +01:00
vaxerski
e4d6695375
keybinds: focus last window on workspace change to another mon
2023-09-18 11:33:19 +01:00
Dickby
b0a82c04df
bezier: Remove Todo about N-Point bezier curves. ( #3352 )
2023-09-17 18:48:11 +01:00
vaxerski
af15b15b4b
input: guard constraint in unconstrainMouse
2023-09-17 16:46:04 +01:00
Mihai Fufezan
f72e04d63b
misc: add disable_hypr_chan option ( #3343 )
2023-09-17 15:26:24 +01:00
vaxerski
2f01a18989
window: recalculate layout on swallow in map
...
fixes #2848
2023-09-16 18:40:57 +01:00
Dickby
a53ec98b82
bezier: Optimize CBezierCurve::getYForPoint ( #3321 )
2023-09-16 18:32:33 +01:00
Jeremy Huang
cc630c90b5
master: partially revert 0e64dd2e
and fix the animation ( #3327 )
2023-09-15 22:13:23 +01:00
vaxerski
b9b38424b0
input: fix hints not being used if committed at the beginning
2023-09-15 21:01:54 +01:00
memchr
56adec7c1a
socket2: emit lockgroups event ( #3317 )
2023-09-15 12:06:59 +01:00
MightyPlaza
824290c791
windowrules: fix workspace exec rule with special ( #3316 )
...
modified: src/events/Windows.cpp
2023-09-15 12:05:21 +01:00
Jeremy Huang
d3cbec2d1a
master: Add mfact dispatcher ( #3298 )
...
* add mfact dispatcher
* limit mfact to between 0.05 and 0.95
* add try catch block for stof
* change log to err
2023-09-15 12:03:05 +01:00
vaxerski
2536630049
dwindle: fix moving windows on special
2023-09-14 15:37:45 +01:00
memchr
e6651334f2
refactor: flatten nesting if
s in layout window creation method ( #3294 )
2023-09-14 12:27:16 +01:00
Jeremy Huang
0e64dd2ea5
master: respect the resizing animation option in master layout ( #3300 )
2023-09-14 12:14:10 +01:00
memchr
db2b72adee
config: fix relative path resolution ( #3308 )
2023-09-14 12:07:31 +01:00
memchr
0dc8289b02
dwindle: fix: don't merge groups when moving window ( #3302 )
2023-09-14 11:56:29 +01:00
memchr
84f8f4d77d
keybinds: warp cursor to correct window in moveWindowOutOfGroup ( #3290 )
2023-09-13 15:02:21 +01:00
Jeremy Huang
2ad429dfe0
master: Fix the wrong resize speed in master layout center orientation ( #3289 )
...
* rebase
* change isStackVertical variable to make it more readable
* fix some code getting unnecessarily repeating in a loop
2023-09-13 11:48:19 +01:00
memchr
4f88897fc0
keybinds: avoid onWindowRemoved & onWindowCreated when group has one member ( #3286 )
...
Make moveWindowOutOfGroup behave like toggleGroup on a group with single
member, this prevents the window from moving around rabidly.
2023-09-13 11:44:02 +01:00
41e5f401c5
keybinds: simulate movement on empty focus after workspace change
2023-09-13 11:36:41 +01:00
b884544ee6
input: don't refocus on switched workspace on the same monitor
2023-09-13 11:33:36 +01:00
memchr
6b1ac659e0
layout: add direction parameter to onWindowCreated and friends ( #3269 )
...
* feat(layout): add direction parameter to onWindowCreated and friends
In addition:
- Implement directional moveWindowOutOfGroup for `movewindoworgroup`
when using dwindle layout. (augmentation of #3006 )
- Replace `DWindleLayout::OneTimeFocus` with `IHyprLayout::eDirection`.
- Slight formatting change (clang-format).
* fix: nullptr dereference in dwindle window creation
* refactor: generalized eDirection
* refactor: eliminate DIRECTION_NONE
* Update IHyprLayout.hpp
2023-09-13 11:13:29 +01:00
outfoxxed
b0d5e4008b
layout: Allow the layout to control how windows are raised in groups ( #3275 )
...
* Allow the layout to control how windows are raised in groups
Previously windows could only be focused if they weren't hidden or
were part of a group. This shifts the logic for picking the window out
of a group to the layout allowing for alternate group implementations
to function normally.
* Fix doc comment consistency
* Fix tabs in comments
2023-09-12 22:37:08 +01:00
be19773aaa
windowrules: fix workspace rule separation
...
fixes #3265
2023-09-12 16:50:10 +01:00
2e34548aea
varlist: move to a separate header, add join
2023-09-12 16:50:10 +01:00
memchr
5cc53c14d9
config: add wildcard handling in source= ( #3276 )
2023-09-12 12:54:05 +01:00
alaricljs
9192b20b96
windowrules: add on-screen constraint to wrv2 'move' ( #3247 )
...
* add on-screen constraint to wrv2 'move'
* review changes
* std::clamp
* more parens
---------
Co-authored-by: Leeman <lstrout@enlj.com>
2023-09-12 09:56:20 +01:00
memchr
bc41d7ec85
fix: inconsistent behaviour where last workspace was not saved ( #3261 )
2023-09-11 23:39:24 +01:00
memchr
df51c45d7f
keybinds: unify changeworkspace dispatcher ( #3250 )
...
* refactor: changeworkspace dispatcher
* refactor: remove redundant focusWindow calls
* refactor(changeworkspace): warp cursor to middle of last focused window
* refactor: use rememberPrevWorkspace
* Fix: `CWorkspace::rememberPreWorkspace` condition is illogical
2023-09-11 15:14:43 +01:00
5a6d0e9963
refactor: fix missed middle() call in CKeybindManager
2023-09-11 12:19:21 +01:00
alaricljs
99fac59938
keybinds: movewindow to screen edge for floating windows ( #3245 )
...
* movewindow to screen edge for floating windows
* review changes
* constify vars
---------
Co-authored-by: Leeman <lstrout@enlj.com>
Co-authored-by: vaxerski <vaxry@vaxry.net>
2023-09-11 10:23:57 +01:00
memchr
e96e0dc02d
refactor: utilize 'middle()' method for window/montior center ( #3253 )
2023-09-11 10:09:34 +01:00
vaxerski
3859607b6c
input: do not process mouse in unsafe state
2023-09-10 23:44:47 +01:00
memchr
ac2f1a9c30
feat: add a new movewindoworgroup dispatcher ( #3006 )
2023-09-10 23:29:10 +01:00
alaricljs
81661b49aa
windowrules: add % to resizeparams ( #3246 )
...
Co-authored-by: Leeman <lstrout@enlj.com>
2023-09-10 23:26:14 +01:00
memchr
79862c957c
layout: add missing groupbar decoration to the window ( #3235 )
...
* fix: add missing groupbar decoration to the window
Add groupbar decoration to the operand window of `CWindow::insertWindowToGroup` if it does not exist, to prevent segmentation faults when mouse events are triggered after moving the window to a group, where `getDecorationByType(DECORATION_GROUPBAR)` unexpectedly returns nullptr.
Also fixed a bug where the group bar disappeared when the moveIntoGroup dispatcher's operand window was in a group.
* Update Window.cpp
2023-09-10 22:59:10 +01:00
Jeremy Huang
19bbdeed47
master: Add smart resizing option for master layout ( #3210 )
...
* add smart resizing for master layout
* fix smart resizing workspace check
* master layout fix smart resize when at max size
* change resizing for center orientation so it doesnt use all nodes
* master layout resizing, simplify code for calculating total height and weight
* remove the redundant smart resizing check
2023-09-10 22:58:06 +01:00
vaxerski
0d53401217
xwayland: adjust coord calculation
...
coord exactly at the corner would be calc'd wrong
2023-09-10 20:19:09 +01:00
vaxerski
d28725c678
keybinds: ignore conditions on special release
...
while the previous commit ignores mods, we also need to ignore other conditions to avoid dangling presses
2023-09-10 16:54:14 +01:00
vaxerski
dcb909df04
keybinds: track pressed special binds
...
Ignore mods only if we're processing a special bind, and only if it's pressed. Otherwise we might shadow normal key releases via ignoring mods. Fixes #3240
2023-09-10 16:27:14 +01:00
Philip Damianik
6c855dd6e4
internal: Fix wlr output management ( #3234 )
2023-09-10 13:14:27 +01:00
vaxerski
d490f198a4
keybinds: ignore mods on release of special binds
...
fixes #3208
2023-09-10 13:13:15 +01:00
memchr
a781c152ff
fix(layout): remove focusWindow
calls from onWindowCreatedTiling
( #3233 )
2023-09-10 12:55:18 +01:00
memchr
f7f70c9e72
refactor: replace lambdas with CKeybindManager::switchToWindow ( #3229 )
...
moves `switchToWindow` lambdas to a single private method
`CKeybindManager::switchToWindow()`.
fixes #3227 , as a by-product of the mouse motion simulation at the end
of `CKeybindManager::switchToWindow()`.
2023-09-10 12:51:27 +01:00
vaxerski
f4e99a36a9
input: don't warp region constraints
2023-09-10 12:49:53 +01:00
Philip Damianik
1a6f961de2
hyprctl: Make device configs queryable ( #3226 )
...
* Make device configs queryable
Signed-off-by: pdamianik <39028343+pdamianik@users.noreply.github.com>
* Add set property to getoption output
---------
Signed-off-by: pdamianik <39028343+pdamianik@users.noreply.github.com>
2023-09-09 12:25:17 +01:00
shadowmax31
c061946a94
keybinds: Do not suppress pass and mouse release ( #3219 )
2023-09-09 10:15:24 +01:00
memchr
6648274735
fix: focusWindow on hidden workspace triggers another focusWindow. ( #3216 )
...
This commit address an issue where focusing a window on a hidden
workspace inadvertently triggered a second `focusWindow` call due to
simulated mouse movement. This behaviour led to the incorrect focus on
the window under the cursor instead of target window of method
`focusWindow()`, disrupting `focusurgentorlast` and `focuscurrentorlast`
dispatchers. Introduced a flag to the `CMonitor::changeWorkspace()`
method to prevent simulated mouse movements. This flag is set to false
by default. Changed the `focusWindow()` method accordingly to set this
flag to true when the target window is in a hidden workspace.
2023-09-08 19:17:04 +02:00
398e861b55
internal: fix warnings
2023-09-07 16:43:01 +02:00
vaxerski
cc5852faa2
config: disable blur special by default
...
very expensive
2023-09-07 00:35:44 +02:00
vaxerski
b2516010b7
hyprctl: fix missing comma in getopt -j
...
Fixes #3200
2023-09-06 23:52:25 +02:00
Philip Damianik
8c83852704
internal: Remove all .c_str()
calls when using std::vformat
( #3198 )
...
Signed-off-by: pdamianik <39028343+pdamianik@users.noreply.github.com>
2023-09-06 21:45:37 +02:00
Philip Damianik
60c01dab01
config: Integrate HASCONFIG into CConfigManager::getConfigValueSafeDevice ( #3195 )
2023-09-06 19:16:46 +02:00
Philip Damianik
a15e3e1f38
config/input: Improve fallback behavior for unset device config values ( #3184 )
...
* Fix fallback behavior for unset device config values
* Replace overload with default argument for fallback config key
* Remove default value for fallback argument in source
* Fix typos
2023-09-06 16:14:18 +02:00
vaxerski
a1cc99a986
pch: add format
2023-09-06 14:59:34 +02:00
unrealhoang
f90a009e93
input/config: add button scroll lock ( #3189 )
2023-09-06 14:54:48 +02:00
vaxerski
8b9cc9a8db
animationmgr: guard monitor ptr in animationSlide
2023-09-06 13:05:37 +02:00
vaxerski
37e2311a3e
config: loosen restrictions around animation keywords
...
Fixes #3185 , makes hyprland ignore further args if an animation is disabled
2023-09-06 12:58:01 +02:00
Vaxry
61a71c65ac
internal: Formatter rework ( #3186 )
2023-09-06 12:51:36 +02:00
vaxerski
c3a83daa1e
monitor: minor adjustments
2023-09-05 22:16:14 +02:00
Dickby
fa3de9b70e
renderer: Fix blur for passes set to 0. ( #3181 )
2023-09-05 16:33:40 +02:00
vaxerski
2d100bf57e
socket2: add renameWorkspace event
2023-09-05 15:55:24 +02:00
Dickby
28f1f035b1
animationmgr: Optimize CAnimationManager::scheduleTick a bit. ( #3172 )
...
* Optimize CAnimationManager::scheduleTick a bit.
* Use integer in wl_event_source_timer_update call.
2023-09-05 15:06:39 +02:00
vaxerski
db48f973fd
xdgoutput: do not destroy resources on monitorRemoved
2023-09-05 13:33:08 +02:00
memchr
8e9f010ee0
build: use PCH to reduce compile time ( #3095 )
2023-09-04 19:56:02 +02:00
vaxerski
4eecb8bffc
config: don't enable vrr 2 for maximized workspaces
...
fixes #3162
2023-09-04 18:24:18 +02:00
vaxerski
d9937fcdba
input: minor constraint fixes
...
fixes the confined region, warping issues, etc. Closes #3158
2023-09-04 17:34:19 +02:00
vaxerski
e3c83ab2e0
xwaylandmgr: find closest output in xwayland coord translation
...
partially off-screen windows would be snapped to 0,0 otherwise
2023-09-04 17:30:48 +02:00
shadowmax31
b4c832a1f2
master: Add orientationcycle command on MasterLayout ( #3128 )
2023-09-04 16:45:58 +02:00
vaxerski
9f3a64481e
dwindle: add proper movement for window move binds
...
ditches the "movewindow = swapwindow" mechanism. Fixes #2804
2023-09-04 15:34:13 +02:00
memchr
69439871e6
refactor: replace manual iteration of CWindow with existing methods ( #3147 )
2023-09-04 15:13:39 +02:00
MightyPlaza
6a0e2bbff3
socket2: added "activespecial" IPC event ( #3163 )
2023-09-04 15:11:51 +02:00
vaxerski
32f75ebb70
renderer: separate workspace window render logic
...
Makes the logic used to render stuff over the windows (special, popups, ime, lockscreen) unified by yeeting the workspace window logic (which is separate cuz fullscreen windows) into their own funcs. Fixes #2053
2023-09-04 15:07:56 +02:00
vaxerski
35df4693ea
animatedvariable: don't reset timers on duplicate setters
...
Fixes the annoying jump when a recalc happens while a window is being animated
2023-09-04 13:11:56 +02:00
MightyPlaza
8fefb180b1
windowrules: Monitor rule fix ( #3157 )
...
* fix monitor rules
modified: src/events/Windows.cpp
* exec on workspace as silent when special is open
modified: src/events/Windows.cpp
2023-09-03 17:23:13 +02:00
vaxerski
5126bfab72
monitor: ignore no-op workspace changes
2023-09-03 17:21:55 +02:00
vaxerski
c6c820d16d
layout: always center floating xdg windows
2023-09-03 13:07:40 +02:00
vaxerski
e6ca4b6eee
window: check for special id matching in close_special_on_empty
2023-09-03 13:02:05 +02:00
vaxerski
5e0cf7d6a5
special: add misc:close_special_on_empty
...
fixes #3156
2023-09-03 13:00:06 +02:00
staz
01c6c5ae22
internal: Revert rounding of window size ( #3153 )
...
* Revert "renderer: round coords and size in renderWindow"
This reverts commit fc0c1896e0
.
* Revert "xwaylandmgr: round reported sizes"
This reverts commit 2985e20e6a
.
2023-09-03 12:51:48 +02:00
vaxerski
423b129b24
renderer: don't set enabled in applyMonitorRule
2023-09-03 12:43:57 +02:00
MightyPlaza
00bee91bbc
internal: workspace rule handling refactor ( #3116 )
...
modified: src/events/Windows.cpp
2023-09-02 20:41:02 +02:00
vaxerski
d4ec54d048
renderer: render IME popups in fullscreen
...
fixes #1353
2023-09-02 20:32:15 +02:00
memchr
69ce11a063
fix: use-after-free of CWindow* in CHyprGroupBarDecoration::draw ( #3146 )
2023-09-02 19:58:01 +02:00
vaxerski
204a580544
keybinds: fixup global conditions
2023-09-02 19:36:12 +02:00
vaxerski
1ecfb5e852
globalshortcuts: allow empty appid
2023-09-02 19:32:05 +02:00
vaxerski
2985e20e6a
xwaylandmgr: round reported sizes
...
Since we round the sizes in the renderer, it's also a good idea to round the sizes reported to the apps. Fixes #3138
2023-09-02 00:04:55 +02:00
vaxerski
d2a785dfe3
renderer: fixup occlusion conditions
...
fixes #3123 I fucking hate yall
2023-09-01 23:01:59 +02:00
vaxerski
563fe83db2
keybinds: set special monitor id before recalc
...
set special workspace's monitor ID before we call recalculateMonitor in toggleSpecialWorkspace. Fixes #1151
2023-09-01 22:57:23 +02:00
vaxerski
f242f9447b
keybinds: suppress up event if down was consumed
...
Fixes #3000
2023-09-01 22:14:10 +02:00
Vaxry
d9292800a2
internal: Unsafe state reworks ( #3114 )
2023-09-01 22:03:56 +02:00
vaxerski
774a5bedf8
waylandResource: remove user data in markDefunct and not ~dtor
2023-09-01 20:03:58 +02: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
q234rty
5035f5fc68
text-input-v1: Fix preedit styling in chromium ( #3131 )
2023-09-01 16:39:15 +02:00
memchr
1a13d44d5d
refactor: raise SIGABRT instead of write to null address ( #3124 )
2023-08-31 22:52:02 +02:00
vaxerski
fc0c1896e0
renderer: round coords and size in renderWindow
2023-08-31 09:55:38 +02:00
vaxerski
9c4f776757
keybinds: fixup release conditions
...
honestly I already forgot why the m_vHeldBack vec existed. Seems useless and annoying. Fixes #3113
2023-08-30 23:23:35 +02:00
MightyPlaza
b10cae3010
decos: groupbar mouse interaction ( #3102 )
...
* allow groupbar clicking
modified: src/Window.cpp
modified: src/Window.hpp
modified: src/managers/input/InputManager.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.hpp
* remove setting pos inside insertWindowToGroup()
modified: src/Window.cpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/MasterLayout.cpp
modified: src/managers/KeybindManager.cpp
* add group window by index and group size functions
modified: src/Window.cpp
modified: src/Window.hpp
modified: src/managers/input/InputManager.cpp
* allow dragging into groupbar
modified: src/Window.cpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/MasterLayout.cpp
* allow dragging from groupbar
modified: src/managers/KeybindManager.cpp
* try groupbar clicking before border resize
modified: src/managers/input/InputManager.cpp
* block grabbing groupbar on floating (crash)
remove later when crashing is fixed
modified: src/managers/KeybindManager.cpp
* remove redundant { }
modified: src/layout/DwindleLayout.cpp
modified: src/layout/MasterLayout.cpp
* implement getWindowDecorationBox()
modified: src/Window.cpp
modified: src/Window.hpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/MasterLayout.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/input/InputManager.cpp
modified: src/render/decorations/CHyprDropShadowDecoration.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
modified: src/render/decorations/IHyprWindowDecoration.cpp
modified: src/render/decorations/IHyprWindowDecoration.hpp
* fix crash when moveoutofgroup in floating windows
also removes dragging from floating windows limitation
modified: src/layout/IHyprLayout.cpp
modified: src/managers/KeybindManager.cpp
* use CRegion in getWindowDecorationBox()
modified: src/helpers/Region.cpp
modified: src/helpers/Region.hpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/MasterLayout.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/input/InputManager.cpp
modified: src/render/decorations/IHyprWindowDecoration.cpp
modified: src/render/decorations/IHyprWindowDecoration.hpp
* add groupbar scrolling
modified: src/config/ConfigManager.cpp
modified: src/managers/input/InputManager.cpp
* change name to getWindowDecorationRegion()
modified: src/layout/DwindleLayout.cpp
modified: src/layout/MasterLayout.cpp
modified: src/managers/KeybindManager.cpp
modified: src/managers/input/InputManager.cpp
modified: src/render/decorations/IHyprWindowDecoration.cpp
modified: src/render/decorations/IHyprWindowDecoration.hpp
* make dragging from group less hacky for floating
modified: src/managers/KeybindManager.cpp
2023-08-30 17:39:22 +02:00
vaxerski
c98a00678c
input: fix xwayland constraint calcs
...
some minor adjustments, fixes #3028
2023-08-30 17:23:35 +02:00
vaxerski
b4f123d1f2
compositor: remove wlr_scene refs
...
super old leftovers
2023-08-30 17:22:55 +02:00
vaxerski
28a90d6055
input: warp in unconstrainMouse
...
XWayland coord translation would fuck up if we did this in destroyConstraint
2023-08-30 13:42:17 +02:00
vaxerski
32f4059b37
screencopy: fix region sharing
...
translate before scaling if we are not dividing the coords
2023-08-30 13:17:26 +02:00
vaxerski
84c4a14dad
opengl: cleanup framebuffer style
2023-08-29 23:24:35 +02:00
vaxerski
981386d2ae
layout: allow changing float status of fullscreen windows
2023-08-28 22:55:52 +02:00
vaxerski
b8f38dcbd3
layout: allow drag on fullscreen windows
2023-08-28 22:54:23 +02:00
vaxerski
df691859fb
renderer: make contrast and brightness adjustments before rendering
2023-08-28 18:29:44 +02:00
Vaxry
4a41d013a2
internal: Fix XDP multi-portal issues ( #3077 )
...
* add a hyprland portals conf
* remove portal checks
* typo
* Nix: remove portal patch
---------
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-08-26 17:12:21 +02:00
vaxerski
299d201e56
renderer: don't blur special on disabled blur
2023-08-26 11:48:04 +02:00
vaxerski
116b9a8056
xdgoutput: mark resources defunct when monitor is unplugged
2023-08-25 18:22:25 +02:00
vaxerski
9dae8ece71
layout: use full box for visibility check of floating xdg
...
Fixes #3069 , if an xdg dialog pops up and is partially off bounds, just move it to the center.
2023-08-25 18:10:12 +02:00
vaxerski
870471dd96
internal: allow opening empty special workspaces
...
Fixes point 2 of #2596
2023-08-25 18:05:08 +02:00
vaxerski
23e17700a7
renderer: add decoration:blur:special
...
will blur behind the special ws
2023-08-25 17:44:17 +02:00
memchr
f0da0b0be4
input: improved path handling; null check return value of fopen. ( #3061 )
2023-08-25 17:21:55 +02:00
vaxerski
3a1f30519b
compositor: fix offset in auto arrangeMonitors
...
Fixes #3043 , I am an idiot
2023-08-25 13:11:32 +02:00
vaxerski
6a5a5ed11e
input: add transparent binds
...
adds a new flag for binds to be transparent (non-shadowable)
fixes #3058
2023-08-25 12:35:24 +02:00
vaxerski
ad085666c1
input: sanitize newlines in device names
...
fixes #3066 by replacing newlines with dashes in device names
2023-08-25 12:17:48 +02:00
Jeremy Huang
90c03e5bd2
master: layout resize makes the wrong size changes ( #3064 )
2023-08-24 11:57:30 +02:00
end-4
17ea7db23a
gestures: Swipe direction lock ( #3052 )
2023-08-23 22:40:19 +02:00
vaxerski
9d094f655e
renderer: track fade alpha for blur if ignore opacity is true
...
with ignore_opacity, blur would stay at 1 opacity during a fadeOut animation on layers, making it look wrong. Fixes #3051
2023-08-23 12:03:27 +02:00
vaxerski
ba31518ed8
compositor: fix log types
2023-08-22 16:44:33 +02:00
MightyPlaza
41d9b6f0d7
dwindle: use smart on display borders ( #2897 )
2023-08-21 20:57:55 +02:00
memchr
9ad4a96d18
renderer: update alpha of layers only if active ws ( #2994 )
...
update `alpha` of ZWLR_LAYER_SHELL_V1_LAYER_TOP only when Workspaces is active on the monitor.
2023-08-21 20:55:57 +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
vaxerski
9977a8bfd4
compositor: log more in arrangeMonitors
2023-08-21 19:52:34 +02:00
Vaxry
37128bfd43
internal: Wayland Protocol impl improvements ( #2944 )
2023-08-21 19:36:09 +02:00
vaxerski
63b2189ce8
xdgshell: damage old popup coords after a reposition
...
fixes #3038 . I updated the shell ver without properly supporting .reposition
2023-08-21 01:15:00 +02:00
vaxerski
025c023e4b
xwayland: use logical pos in unmanaged geom requests
...
using raw xwayland coords is wrong cuz we use separate coord spaces
2023-08-21 00:39:39 +02:00
memchr
09cc96c0d5
feat(debug): add debug:suppress_errors to suppress errors. ( #3032 )
2023-08-20 18:17:49 +02:00
vaxerski
b79dfcceb4
compositor: fix missed raw throws
2023-08-20 13:58:46 +02:00
vaxerski
7713daa86a
compositor: log thrown runtime exceptions
2023-08-20 11:47:06 +02:00
vaxerski
fff118fa76
xdgoutput: don't send all details in .get
2023-08-19 21:14:12 +02:00
vaxerski
ebc5fed9b2
compositor: minor cleanup
2023-08-19 19:24:48 +02:00
942ee943f5
input: unify constraint hint logic
...
Unifies the constraint hint logic. Previously, ignoring the stupid conditions, unscaled hints were mistaken with scaled coordinates.
2023-08-18 22:40:23 +02:00
14f20a7372
xwayland: fix incorrect VECINRECT usage
...
Fixes #3002 . VECINRECT uses x2 and y2 and not w / h.
2023-08-18 22:20:05 +02:00
3d9545d2e0
shaders: minor premultiplication fixes
2023-08-18 22:07:28 +02:00
end-4
37a211a2ae
animations: add slidefade and slidefadevert styles for workspaces ( #3008 )
...
* add slidefade and slidefadevert animations
* fix swiping for slidefadevert
* rename minPerc to movePerc for slidefade anim styles
* change default slidefade percentage to 100%
* remove useless comments
* findlastof + 1
* debug logging for slidefade/slidefadevert percentage
2023-08-17 22:30:20 +02:00
MightyPlaza
7155b4c266
renderer: Border improvements ( #2986 )
...
* simplify getting border size
modified: src/Window.cpp
modified: src/Window.hpp
modified: src/layout/DwindleLayout.cpp
modified: src/layout/MasterLayout.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* fix border damage and input box
modified: src/Window.cpp
modified: src/managers/AnimationManager.cpp
* add border size in resize_on_border box
modified: src/managers/input/InputManager.cpp
* simplify border (fixes possible typo)
modified: src/Window.cpp
* use updateSpecialRenderData()
modified: Window.cpp
modified: Window.hpp
modified: events/Windows.cpp
modified: layout/DwindleLayout.cpp
modified: layout/IHyprLayout.cpp
modified: layout/MasterLayout.cpp
modified: render/Renderer.cpp
* update window workspace rule data on reload
modified: src/config/ConfigManager.cpp
* use rounding()
modified: src/Window.cpp
2023-08-17 10:13:19 +02:00
7e8a212027
internal: allow negative monitor offsets
2023-08-16 18:16:39 +02:00
Dashie
19c4855afc
layout: Use refreshrate tick on all manual animations ( #2988 )
2023-08-16 10:56:48 +02:00
memchr
63b266cf65
internal: ioctl use /dev/tty instead of fd 0 for VT_GETSTATE ( #2989 )
...
* fix: ioctl use /dev/tty instead of fd 0 for VT_GETSTATE
ioctl VT_GETSTATE on stdin fails if it is not console, such as when
using GDM. `/dev/tty` should be used instead.
- `/dev/tty` is a synonym for the controlling terminal of a process, if
there is one.
---------
Co-authored-by: Jan Beich <jbeich@FreeBSD.org>
2023-08-16 10:51:08 +02:00
4986d74ef2
xwayland: fix use of xwayland coords in native spaces
2023-08-15 20:10:43 +02:00
91e28bbe9d
xwayland: use a completely separate coordinate system
...
Use a completely separate coordinate system for XWayland. This fixes all issues with force_zero_scaling overlaps.
Fixes #2916
2023-08-15 19:15:37 +02:00
kbtz
2b4537606f
master: fix always_center_master
( #2961 )
...
* master: fix always_center_master
* master: allow resizing single centered window
---------
Co-authored-by: kbtz <github@kbtz.dev>
2023-08-15 18:13:45 +02:00
347a1eb662
xdgoutput: separate logic for zero scaling positions
...
if a scaled monitor was directly to the left of another monitor, we'd change the size to have zero scaling without pushing other monitors out of the way, creating overlaps in xwayland.
2023-08-15 17:55:29 +02:00
7c4daee29a
compositor: fix skipping iterators in arrangeMonitors
2023-08-14 19:27:33 +02:00
b9a783229b
compositor: don't apply offsets in renderer
2023-08-14 18:41:52 +02:00
2110dc1f03
compositor: fix auto positioning offset calcs
2023-08-14 17:31:36 +02:00
13886a264f
internal: add a new monitor auto system
2023-08-14 14:22:10 +02:00
0314a727eb
layers: set proper alpha to top grabbing surfaces
2023-08-13 21:52:43 +02:00
0220e4c1ea
input: notify idle about activity on mouse move regardless of focus
2023-08-13 17:46:20 +02:00
MightyPlaza
4b568ae5f6
remove shadow no_gaps_when_only master ( #2958 )
...
* remove shadow no_gaps_when_only
modified: src/Window.hpp
modified: src/config/ConfigManager.cpp
modified: src/config/ConfigManager.hpp
modified: src/layout/DwindleLayout.cpp
modified: src/render/decorations/CHyprDropShadowDecoration.cpp
* add master
modified: src/layout/MasterLayout.cpp
* fix wrong
modified: src/layout/MasterLayout.cpp
2023-08-13 10:18:48 +02:00
MightyPlaza
739598717b
remove shadow no_gaps_when_only ( #2956 )
...
modified: src/Window.hpp
modified: src/config/ConfigManager.cpp
modified: src/config/ConfigManager.hpp
modified: src/layout/DwindleLayout.cpp
modified: src/render/decorations/CHyprDropShadowDecoration.cpp
2023-08-12 23:37:55 +02:00
3f7f4207a6
config: add vrr per-display
2023-08-11 17:37:57 +02:00
UserSv4
8a7ce59ad4
internal: Fix grouped windows not being properly focused on activation ( #2925 )
...
* Fix grouped windows not being properly focused on activation
This bug could happen if you:
1. Open two Chromium windows in a single group
2. Open some tabs in both of the windows
3. Using tabs search (Ctrl+Shift+A) try to switch to a tab in the second window from the first one.
When this happens any window focus would be lost (hyprctl activewindow starts to output "Invalid") and also the mouse cursor would become centered relatively to the second window.
* Update Compositor.cpp
2023-08-11 17:27:09 +02:00
60b548296d
internal: move backtrace to specific func
2023-08-11 17:22:19 +02:00
MightyPlaza
901236a535
rules: center window improvements ( #2935 )
...
* center window improvements
modified: src/config/ConfigManager.cpp
modified: src/events/Windows.cpp
modified: src/managers/KeybindManager.cpp
* remove redundant line
modified: src/events/Windows.cpp
* simplify code
modified: src/events/Windows.cpp
modified: src/managers/KeybindManager.cpp
2023-08-11 16:54:16 +02:00
e4e8ae8f88
dwindle: disallow togglesplit on fullscreen
2023-08-10 22:01:34 +02:00
MightyPlaza
c4c3b590e5
toplevel: patches group toplevel-activated ( #2931 )
...
* patches group toplevel-activated
modified: src/Compositor.cpp
modified: src/Window.cpp
* remove redundant call
modified: src/Compositor.cpp
* fix style
modified: src/Compositor.cpp
2023-08-10 20:06:39 +02:00
126792584f
renderer: don't add workspace offset to pinned
2023-08-09 22:15:37 +02:00
cbb899740c
rules: add layer and window xray rules
2023-08-09 22:03:31 +02:00
d7209b90bb
renderer: remember extents before removing a window and use them for dt
...
fixes #2351
2023-08-09 14:28:04 +02:00
8e04a80e60
toplevelexport: minor fixes to dmabuf
2023-08-08 19:10:53 +02:00
MightyPlaza
6295cbe9cb
keybinds: Keep aspect ratio ( #2907 )
2023-08-08 18:52:20 +02:00
ab73183cb2
config: adjust default background color
2023-08-08 18:04:46 +02:00
0x455241
b3393c429f
background: add background color option ( #2915 )
...
Co-authored-by: 0x455241 <>
2023-08-08 18:00:11 +02:00
c748f36939
internal: add lock files and hyprctl instances
2023-08-08 16:16:40 +02:00
Michael
ad3b8dddf9
keybinds: Only call fclose() when we have a valid file. ( #2908 )
...
Signed-off-by: Michael Pacheco <git@michaelpacheco.org>
2023-08-08 16:07:15 +02:00
Michael
cebab759d5
Close keymap files. Fixes #2904 ( #2905 )
...
Signed-off-by: Michael Pacheco <git@michaelpacheco.org>
2023-08-07 19:34:15 +02:00
deeeb33c5f
macros: fix missing include
2023-08-07 18:48:08 +02:00
261c3307f7
internal: cleanup headers in helpers/
2023-08-07 13:36:14 +02:00
6e53c47e68
renderer: fix missing premultiplication for border multisampling
2023-08-06 20:46:00 +02:00
6c10c38481
renderer: fully switch to premultiplied alpha
2023-08-06 20:33:36 +02:00
a077b7a92e
animationmgr: avoid redundant ticks
2023-08-05 23:29:33 +02:00
MightyPlaza
b925f1b497
fix workspace change focus ( #2891 )
2023-08-05 20:53:13 +02:00
vaxerski
ef0d97153a
xdgoutput: manually destroy manager resource
2023-08-04 14:07:41 +02:00
vaxerski
2e6693fbb6
compositor: update window rules on workspace move
2023-08-03 21:59:12 +02:00
romanstingler
7d98181ade
xwayland: drop wlr_xwayland_surface.events.set_pid ( #2884 )
...
Co-authored-by: Roman Stingler <roman.stingler@waterdrop.com>
2023-08-03 21:40:56 +02:00
vaxerski
7a2027d1fd
input: fix and unify client checking in mouseRequests
2023-08-03 18:44:07 +02:00
vaxerski
da46e01b97
config: update default config for new blur changes
2023-08-03 15:16:37 +02:00
Vaxry
d96f8ff0fe
renderer: Various Blur Improvements ( #2877 )
...
* move blur to its own category
* blur improvements, contrast, brightness, noise
2023-08-03 15:11:10 +02:00
vaxerski
5c50fac907
windowrules: add workspace param
2023-08-02 13:21:38 +02:00
vaxerski
51cda87fe4
hyprctl: rerender on cursor_zoom_factor dynamic calls
2023-08-01 18:08:53 +02:00
vaxerski
da0c74cdf0
config: schedule frame for mons on reload
2023-08-01 15:47:56 +02:00
vaxerski
08651736ad
keybinds: add toggle to dpms
2023-07-30 16:46:37 +02:00
vaxerski
f61a714320
renderer: cleanup old redundancies in CFramebuffer
2023-07-29 13:27:40 +02:00
Po-Yeh Chen
77818e3457
xwayland: Add temporary fix for #2808 by adding nullptr check. ( #2829 )
...
* Add temporary fix for #2808 by adding nullptr check.
* Remove redundency.
2023-07-28 17:12:24 +02:00
Gioele Pannetto
ef26f711c9
Added git tag in json version command ( #2821 )
2023-07-27 10:51:04 +02:00
vaxerski
a9b8e2159c
renderer: reset scissor after renderTexturePrimitive
2023-07-25 13:33:08 +02:00
vaxerski
4173d2ccf6
input: fix styling
2023-07-25 11:49:36 +02:00
vaxerski
f5913135c6
input: add support for cursor-shape-v1
2023-07-24 18:50:17 +02:00
vaxerski
603de16f9a
renderer: adjust distribution of backgrounds
2023-07-24 18:30:00 +02:00
ferrreo
f6b340cc19
init: Fix for issue #2797 ( #2799 )
...
* Fix for issue #2797
* Fix for issue #2797
* Fix for issue #2797
2023-07-24 18:26:24 +02:00
memchr
76c6e09e39
keybinds: Make moveintogroup locking check configurable ( #2796 )
...
* groups: revert to the old moveintogroup behaviour, ignore m_sGroupData.locked
* groups: Make moveintogroup locking check configurable
2023-07-24 18:25:10 +02:00
vaxerski
9bad2a8180
backgrounds: add hypr chan var 2
2023-07-24 18:22:39 +02:00
MightyPlaza
6db3c4ef5e
layout: no_border_when_only-improvements ( #2791 )
2023-07-24 12:13:40 +02:00
Mily
9fc5f4c48b
init: Request SCHED_RR using CAP_SYS_NICE and add Python to nix dev shell ( #2690 )
...
* nix: add python3 to devShell
* init: request SCHED_RR scheduling policy
* init: checks if host supports reseting scheduler on fork
* init: make gainRealTime more compatible with other OSes
* init: remove linux-only code
2023-07-23 20:51:00 +02:00
MightyPlaza
50e6f368ff
windowrules: implements nomaximizerequest ( #2785 )
...
* Window.hpp
* ConfigManager.cpp
* Windows.cpp
* fix maximize event
2023-07-23 19:47:41 +02:00
vaxerski
975c4175b2
hyprctl: unify and sanitize ver commit msg better
2023-07-23 19:43:15 +02:00
vaxerski
af395a8f55
windowrules: fix opacity override
2023-07-23 16:03:59 +02:00
vaxerski
90f69782ee
window: fix segfault in boundingbox
2023-07-23 16:02:35 +02:00
vaxerski
5a64c73e05
render: use primitive end() only when no screen shader is present
2023-07-23 15:54:27 +02:00
end-4
9845f99b60
add config option to enable/disable new intuitive resizing ( #2774 )
...
dwindle:smart_resizing = 1 by default
== 1 then use new resizing
else use old resizing
2023-07-23 15:50:09 +02:00
MightyPlaza
d3bba2489d
render: Border fixes ( #2781 )
...
* Window.cpp
* layout
* CHyprGroupBarDecoration.cpp
2023-07-23 15:49:49 +02:00
Rachel Knight
b21644b611
input: Fix #2376 mouse movement bug in XWayland ( #2776 )
2023-07-22 19:31:36 +02:00
vaxerski
b70553cf46
opengl: fix warn
2023-07-22 19:26:56 +02:00
vaxerski
1a7fb1572a
renderer: disable init anim on disabled animations
2023-07-22 19:26:44 +02:00
outfoxxed
375e8385ee
Fix background occlusion ignoring monitor position ( #2771 )
2023-07-22 10:19:51 +02:00
vaxerski
27dd07f1b8
windowrules: improve opacity
2023-07-21 19:05:00 +02:00
vaxerski
263b9c6e39
socket1: add a timeout for requests
2023-07-21 17:20:23 +02:00
vaxerski
d7e9eb65e2
renderer: use primitive rendering for copying buffers
2023-07-21 17:11:54 +02:00
vaxerski
f864b15427
background: add option to force hypr chan
2023-07-20 21:01:07 +02:00
vaxerski
61dc0909ae
layout: use warp() instead of setValue()
2023-07-20 20:03:27 +02:00
MightyPlaza
ca54ceff6f
groups: add use_current_group_pos ( #2759 )
2023-07-20 19:48:32 +02:00
vaxerski
6c1f4faff2
animationmgr: avoid looping over all avars in favor of only active ones
2023-07-20 19:26:10 +02:00
vaxerski
a3f6a72a51
region: allow ctor from pixman_box32_t
2023-07-20 18:27:28 +02:00
vaxerski
d2a8b8c2de
renderer: cleanup back buffer skip checks
2023-07-20 18:27:14 +02:00
vaxerski
833d73df09
shaders: short-circuit rounding if radius <= 0
2023-07-20 18:18:53 +02:00
vaxerski
23eda1411b
renderer: scale box for occlusion
2023-07-20 18:12:29 +02:00
vaxerski
ff598b0827
renderer: don't occlude when pre-blur is queued
2023-07-20 18:03:47 +02:00
vaxerski
a3e1e5e8ba
tracy: add more opengl zones
2023-07-20 17:51:38 +02:00
vaxerski
a921c5b89e
Debug: add tracy
2023-07-20 17:47:49 +02:00
vaxerski
948855a984
renderer: add canSkipBackBufferClear
2023-07-20 14:11:05 +02:00
vaxerski
547305c7ed
opengl: adjust blend and reduce the usage of clear
2023-07-20 13:49:28 +02:00
vaxerski
b65adf8d4a
toplevelexport: support dmabuf + various fixes
2023-07-20 12:42:25 +02:00
vaxerski
7091d4e597
animationmanager: optimize avar state
2023-07-19 22:40:03 +02:00
vaxerski
80cd2ef3d7
renderer: remove unused var
2023-07-19 21:10:42 +02:00
vaxerski
2c2314faa0
renderer: take workspace offset into account for occlusion
2023-07-19 21:08:49 +02:00
vaxerski
88c2a02773
render: avoid allocating mirrorfb for no reason
2023-07-19 21:04:45 +02:00
Vaxry
89b87158db
internal: Wrap regions ( #2750 )
2023-07-19 20:09:49 +02:00
vaxerski
ce9896204a
renderer: fix rounding in renderSurface
2023-07-19 20:06:19 +02:00
vaxerski
f4f0f35c5b
renderer: add occlusion for back layers
2023-07-19 16:13:55 +02:00
vaxerski
aac75ddcbf
screencopy: guard region buffer values in frameDamage
2023-07-19 13:10:41 +02:00
outfoxxed
5cd5631fb2
Add bringWindowToTop function to IHyprLayout ( #2747 )
...
* Add bringWindowToTop function to IHyprLayout
* Rename `bringWindowToTop` to `requestFocusForWindow`
* Fix doc
2023-07-19 12:39:45 +02:00
vaxerski
b8a7b09092
screencopy: use wlr_buffer api for shm copies
2023-07-19 12:24:41 +02:00
vaxerski
81f4a4f471
screencopy: improve shm handling
2023-07-19 00:51:38 +02:00
vaxerski
2623364dbd
no_xwayland: fix redef
2023-07-19 00:33:47 +02:00
MightyPlaza
3b03597784
keybinds: movegroupwindow-improvement ( #2740 )
...
* movegroupwindow-improvement
* use std::swap
2023-07-19 00:30:10 +02:00
vaxerski
ce9c5fd722
render: set refresh to 0 for both wl and x11 backends
2023-07-19 00:28:15 +02:00
vaxerski
f2999e84b9
render: set refresh to 0 for wayland backend outputs
2023-07-19 00:02:57 +02:00
Aaron Blasko
7c1dacea09
only return 0 when using -h ( #2738 )
2023-07-18 21:00:08 +02:00
vaxerski
16fd9084ea
screencopy: nullcheck for empty buffer
2023-07-18 15:52:53 +02:00
vaxerski
0ba28a46fd
monitor: unplug all callbacks in ~dtor
2023-07-18 15:36:27 +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
vaxerski
629e61c7a5
monitor: disconnect bind on disconnect
2023-07-18 15:22:49 +02:00
vaxerski
2e323a5671
renderer: use correct wlr sample func
2023-07-18 12:25:48 +02:00
Jan Beich
8c9e2e1ff1
deps: update wlroots ( #2734 )
2023-07-18 12:13:59 +02:00
István Donkó
5c8a20be77
fix: handle window change directions in fullscreen ( #2728 )
2023-07-18 12:12:50 +02:00
Tuur Vanhoutte
d2eb4fee76
Avoid connected monitor reusing unavailable ID ( #2731 )
2023-07-18 12:12:05 +02:00
vaxerski
4537860079
layout: recalculate monitor instead of window in updateDynamicRules
2023-07-18 11:49:57 +02:00
vaxerski
7f47655f60
layout: recalc window on dynamic rule update
2023-07-18 00:11:43 +02:00
vaxerski
2c7b2ad6ca
windowrules: add border size rule
2023-07-18 00:11:29 +02:00
MightyPlaza
ddb8c89776
Allow empty args in hyprctl dispatch ( #2724 )
2023-07-16 21:01:06 +02:00
MightyPlaza
cacdb424a9
massive-fix ( #2725 )
2023-07-16 21:00:38 +02:00
vaxerski
3229862dd4
xwayland: guard monitor validity in xwayland scale overriding
2023-07-15 23:10:05 +02:00
vaxerski
06563d7034
popups: update parent pos on commit
2023-07-15 18:27:21 +02:00
vaxerski
459afcc47f
idle: fix reverse flag for new idle protocol
2023-07-14 20:02:31 +02:00
Lennard Hofmann
06f5910365
Make bind modmask case-insensitive ( #2714 )
2023-07-14 18:39:53 +02:00
MightyPlaza
b159634ef9
move/resize window ( #2706 )
2023-07-13 20:20:40 +02:00
MightyPlaza
db2367bf33
update groub decos ( #2705 )
2023-07-13 20:17:14 +02:00
vaxerski
f8def68e7e
idle: implement new protocol
2023-07-13 18:05:34 +02:00
vaxerski
9f7382bca4
keybinds: add movegroupwindow
2023-07-13 17:55:25 +02:00
Daniel Adolfsson
d3a644d81c
Dwindle: Make resize more intuitive ( #2681 )
...
* improved resize
* clang-format
* rewrite
* almost legacy behavior when using CORNER_NONE
2023-07-13 16:52:11 +02:00