Vaxry
21e9313c10
Core: various unsafe state improvements ( #3713 )
...
Fixes #3637
2023-11-01 18:53:36 +00:00
4b592d0819
renderer: properly pass 10-bit formats to opengl
2023-10-30 15:56:16 +00:00
cb6cfde6e8
window: update window reported size on damage events
2023-10-30 14:49:49 +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
8991be671f
renderer: respect viewporter dest on base surfaces
2023-10-25 22:05:04 +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
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
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
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
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
vaxerski
4531717f3e
renderer: considerable fixes to repaint logic
2023-10-04 13:39:40 +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
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
4daa515700
watchdog: don't hang on exit
2023-09-29 20:05:43 +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
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
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
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
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
fb80cbe415
input: properly track mouse focus on drag operations
2023-09-23 01:28:45 +01:00
vaxerski
9f68aa33ea
renderer: damage monitor on special workspace change
...
fixes #3396
2023-09-22 23:36:28 +01:00
memchr
ea5d9584da
refactor: manually resets singletons ( #3395 )
2023-09-22 11:06:09 +01:00
Mihai Fufezan
1925e64c21
Vector2D: fix typo in include
2023-09-20 22:26:08 +03: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
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
Dickby
b0a82c04df
bezier: Remove Todo about N-Point bezier curves. ( #3352 )
2023-09-17 18:48:11 +01:00
Dickby
a53ec98b82
bezier: Optimize CBezierCurve::getYForPoint ( #3321 )
2023-09-16 18:32:33 +01:00
memchr
db2b72adee
config: fix relative path resolution ( #3308 )
2023-09-14 12:07:31 +01:00
2e34548aea
varlist: move to a separate header, add join
2023-09-12 16:50:10 +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
memchr
e96e0dc02d
refactor: utilize 'middle()' method for window/montior center ( #3253 )
2023-09-11 10:09:34 +01:00
Philip Damianik
6c855dd6e4
internal: Fix wlr output management ( #3234 )
2023-09-10 13:14:27 +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
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
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
vaxerski
d9937fcdba
input: minor constraint fixes
...
fixes the confined region, warping issues, etc. Closes #3158
2023-09-04 17:34:19 +02:00
MightyPlaza
6a0e2bbff3
socket2: added "activespecial" IPC event ( #3163 )
2023-09-04 15:11:51 +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
vaxerski
5126bfab72
monitor: ignore no-op workspace changes
2023-09-03 17:21:55 +02:00
Vaxry
d9292800a2
internal: Unsafe state reworks ( #3114 )
2023-09-01 22:03:56 +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
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
870471dd96
internal: allow opening empty special workspaces
...
Fixes point 2 of #2596
2023-08-25 18:05:08 +02:00
end-4
17ea7db23a
gestures: Swipe direction lock ( #3052 )
2023-08-23 22:40:19 +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
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
7713daa86a
compositor: log thrown runtime exceptions
2023-08-20 11:47:06 +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
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
13886a264f
internal: add a new monitor auto system
2023-08-14 14:22:10 +02:00
3f7f4207a6
config: add vrr per-display
2023-08-11 17:37:57 +02:00
60b548296d
internal: move backtrace to specific func
2023-08-11 17:22:19 +02:00
cbb899740c
rules: add layer and window xray rules
2023-08-09 22:03:31 +02:00
261c3307f7
internal: cleanup headers in helpers/
2023-08-07 13:36:14 +02:00
a077b7a92e
animationmgr: avoid redundant ticks
2023-08-05 23:29:33 +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
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
7091d4e597
animationmanager: optimize avar state
2023-07-19 22:40:03 +02:00
Vaxry
89b87158db
internal: Wrap regions ( #2750 )
2023-07-19 20:09:49 +02:00
vaxerski
2623364dbd
no_xwayland: fix redef
2023-07-19 00:33:47 +02:00
vaxerski
ce9c5fd722
render: set refresh to 0 for both wl and x11 backends
2023-07-19 00:28:15 +02:00
vaxerski
0ba28a46fd
monitor: unplug all callbacks in ~dtor
2023-07-18 15:36:27 +02:00
vaxerski
629e61c7a5
monitor: disconnect bind on disconnect
2023-07-18 15:22:49 +02:00
Daniel Adolfsson
64e7d5345d
Add support for smart splitting ( #2676 )
...
* Add support for smart splitting
* clang-format
* smart_split default to 0, and make smart_split behave like preserve_split
2023-07-11 13:37:25 +02:00
vaxerski
515a363ecd
render: move lastFrameDamage to CMonitor
2023-07-10 13:21:00 +02:00
vaxerski
42f46aeac5
config: minor path handling fixes
2023-07-10 13:10:34 +02:00
Mykola Perehudov
bbedb065e1
eventmanager: drop obsoleted ignore events flag ( #2660 )
...
This flag became obsoleted in commit
287e6c4ede
2023-07-06 15:23:11 +02:00
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
6beb79f27b
xwayland: add force_zero_scaling
2023-06-11 21:52:13 +02:00
end-4
e1edfde539
Allow setting alpha value for ignorezero layer rule ( #2477 )
...
* rename ignorezero to ignorealpha
* allow setting ignorealpha value
This commit allows setting a float value (0-1) for the ignorealpha layer rule.
Does not yet have error handling; invalid ignorealpha layer rule will crash Hyprland.
* add brackets i forgot to add
* prevent crash with invalid ignorealpha value
prevents hyprland from immediately crashing with invalid ignorealpha layer rule
does not log
* don't try to set ignoreAlphaValue if alpha value not specified
* add catch to try, reintroduce ignorezero
- added catch after try cuz i was an idiot
- re-add ignorezero as an alternative to ignorealpha to not introduce a breaking change
* add logging for failed ignorealpha layer rule
* fix get ignorealpha's get VALUE
* check npos and use empty()
* rename VALUE cuz no longer const
* format Shader.hpp
2023-06-11 19:30:31 +02:00
c5a7202cd9
noxwl: add missing stubs
2023-06-03 13:01:32 +02:00
147e962370
deps: update wlroots
2023-06-03 12:20:28 +02:00
871ab24c6e
internal: properly set monitor props on special windows
2023-06-02 20:14:34 +02:00
Jan Beich
f1ad270ff8
vector: restore cmath include after 438d063ec6
( #2394 )
...
src/helpers/Vector2D.cpp:27:26: error: no member named 'floor' in namespace 'std'
return Vector2D(std::floor(x), std::floor(y));
~~~~~^
src/helpers/Vector2D.cpp:27:41: error: no member named 'floor' in namespace 'std'
return Vector2D(std::floor(x), std::floor(y));
~~~~~^
src/helpers/Vector2D.cpp:37:17: error: no member named 'sqrt' in namespace 'std'
return std::sqrt(dx * dx + dy * dy);
~~~~~^
2023-05-29 15:12:00 +02:00
outfoxxed
409ff027f8
Fix UAF in animation end callback if callback deletes the animation ( #2389 )
...
Removes use after free when the end callback deletes the animation as
long as `m_bRemoveEndAfterRan` is false.
2023-05-29 09:51:58 +02:00
vaxerski
438d063ec6
vector: use c++ stdlib math functions instead of cmath
2023-05-28 22:50:13 +02:00
Anthony Ruhier
d7935356da
input: don't move monitor focus on wp change ( #2320 )
2023-05-17 13:32:59 +01:00
Eric_Luo
b5b9af508a
bug fix ( #2314 )
...
fix float check logic
Co-authored-by: hnboy <hnywolf@gmail.ccom>
2023-05-16 17:43:04 +01:00
vaxerski
d68f8ea668
internal: make CAnimatedVariable non-move non-copy
2023-05-16 12:49:59 +01:00
vaxerski
5b84b0fb44
animationmgr: allow empty avars
2023-05-15 17:11:51 +01:00
vaxerski
7fde80f38e
layers: fix wonky focus on multimon
2023-05-09 17:01:18 +01:00
Andrei Alexeyev
2f87e4c2f3
renderer,config: add custom DRM modeline support ( #2254 )
...
This allows specifying custom display resolutions for the DRM backend.
This is useful for display overclocking, working around broken EDIDs,
etc. To use this feature, specify a modeline instead of a resolution
in the config, for example:
monitor = DP-1, modeline 1071.101 3840 3848 3880 3920 2160 2263 2271 2277 +hsync -vsync, 0x0, 1
This example is a custom 3840x2160@120Hz mode with tightened timings.
I use it because the standard timings don't work with my monitor and GPU
combination (M28U with RX580).
The syntax is compatible with Sway and Xorg.
2023-05-09 14:01:45 +01:00
scorpion-26
826dc61e5c
Add "next on monitor or empty" workspace parameter ( #2198 )
...
* Add "next on monitor or empty" workspace parameter
Implements the following workspace parameter:
r+x/r-x (i.e. r+1): Behaves similar to the "m" parameter, but can also
select empty workspaces and it doesn't wrap around
* Improve code comments
* Implementation V2 for 'r' workspace param
* Rebase to upstream
Should fix CI
* Always set outName
* Include named workspaces
Currently only considers open/active named workspaces
2023-05-08 14:37:59 +01:00
vaxerski
afe8d8dfec
monitors: fix some bugs with re-plug
2023-05-06 16:50:15 +01:00
vaxerski
83cd5e2ebd
workspaces: minor fixes for multi-special
2023-05-06 16:10:51 +01:00
vaxerski
8435d6fc12
monitors: toggle special on changeworkspace with special
2023-05-05 15:01:31 +01:00
vaxerski
fd3e6a3bfd
workspaces: restore monitor on re-plug
2023-05-03 15:15:56 +01:00
vaxerski
45b1e6dc5e
keybinds: simulate workspace switch on focusWindow to another ws
2023-05-01 15:39:08 +01:00
vaxerski
6501bceb42
workspace: don't check LS-es in startAnim
2023-04-30 01:13:58 +01:00
vaxerski
3580f845e6
monitor: update fullscreen fade on workspace change
2023-04-30 01:12:20 +01:00
vaxerski
1a1656ddbf
Revert "internal: include headers from protocols/"
...
This reverts commit 550700bed0
.
We can't cuz meson
2023-04-27 13:55:13 +01:00
vaxerski
550700bed0
internal: include headers from protocols/
2023-04-27 13:40:38 +01:00
vaxerski
412d46ff65
monitors: set special monitor ID on open
2023-04-17 22:58:59 +01:00
vaxerski
8b3d8dc792
Format: use %lx for all addresses
2023-04-17 17:35:28 +01:00
vaxerski
7c36a3e167
internal: move workspace special check higher in changeWorkspace
2023-04-17 13:32:35 +01:00
vaxerski
b05ff89c76
Render: add cursor_zoom
2023-04-16 14:48:38 +01:00
dann-merlin
c86f06caa0
Fix possible usage of clamp with lo > hi in Vector2D ( #2049 )
2023-04-16 01:27:14 +01:00
vaxerski
afc887d941
monitor: recalc layout on switched ws
2023-04-16 01:11:57 +01:00
vaxerski
d6c4ae71d0
damage: fix damage on moves / workspace changes
2023-04-15 16:16:33 +01:00
vaxerski
727160f0a4
workspaces: fixup workspaces not activating on workspace switch
2023-04-14 15:28:22 +01:00
vaxerski
8dd0c4fe74
workspaces: deactivate all on monitor switch
2023-04-14 15:08:27 +01:00
vaxerski
287e6c4ede
internal: workspace manip handling rework
2023-04-14 15:03:53 +01:00
vaxerski
41c7d896e3
internal: prevent premature destroy in moveworkspace
2023-04-13 21:09:50 +01:00
vaxerski
a22e1174ee
screencopy: implement dmabuf
2023-04-12 21:40:51 +01:00
Hilmar Wiegand
7b43f9f056
Implement window move ( #2018 )
2023-04-10 20:07:49 +01:00
vaxerski
41d1fdedf2
output: handle needs_frame
2023-04-07 17:25:56 +01:00
vaxerski
cd1b982b2a
internal: listen to output.damage events
2023-04-07 16:31:55 +01:00
vaxerski
d8645cd148
internal: release buttons on unmap
2023-04-07 12:54:11 +01:00
vaxerski
c9f7afbf78
subsurfaces: guard node's surface
2023-04-07 12:36:26 +01:00
vaxerski
24ace03780
internal: migrate to damage_ring
2023-04-07 12:18:40 +01:00
vaxerski
00d199b477
monitors: guard scale in onConnect
2023-04-04 22:54:35 +01:00
Jan Beich
16bc5997bb
Misc FreeBSD fixes ( #1926 )
...
* helpers: drop incomplete GNU/kFreeBSD bits
Debian with FreeBSD kernel lacks Wayland-related packages and is not
officially supported since Jessie.
* KeybindManager: check VT ioctl availability instead of hardcoding
* plugins: add missing header for libc++ after 430778293e
src/plugins/PluginAPI.cpp:299:33: error: implicit instantiation of undefined template 'std::basic_istringstream<char>'
std::istringstream inStream(SYMBOLS);
^
/usr/include/c++/v1/iosfwd:140:32: note: template is declared here
class _LIBCPP_TEMPLATE_VIS basic_istringstream;
^
* plugins: prefer llvm-nm with Clang after 430778293e
nm: invalid option -- j
2023-03-31 20:39:04 +01:00
Vaxry
a80f8f257f
Feat: Introduce render_ahead_of_time ( #1863 )
2023-03-24 19:23:16 +00:00
vaxerski
b3a70b565e
subsurfaces: avoid reading destroyed surfaces
2023-03-24 18:44:42 +00:00
vaxerski
a3fda12ba1
window: unassign surface on unmap
2023-03-23 00:39:32 +00:00
vaxerski
0268bb9888
surface: set to nullptr after destroy()
2023-03-23 00:22:49 +00:00
Vaxry
788a8f7c13
internal: wrap wlr surfaces ( #1822 )
2023-03-20 15:00:58 +00:00
vaxerski
00c2ca4697
config: improve ux on workspace and transform
2023-03-18 16:12:43 +00:00
vaxerski
e5870d47c7
LS: add blur and ignorezero rules
2023-03-17 23:16:13 +00:00
vaxerski
4b52c1e68f
monitors: remove from monitors on unsafe
2023-03-16 16:33:27 +00:00
vaxerski
162f235972
switches: do not fire on no change in toggle
2023-03-16 16:30:22 +00:00
Vaxry
5dc1a5fec6
input: text-input-v1 support ( #1778 )
...
support zwp_text_input_v1
---------
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-03-14 12:57:50 +00:00
vaxerski
e749af7b60
dispatchers: remember named workspaces in prev
2023-03-13 15:19:25 +00:00
opsu
0c8d1ba4a8
Buffer overflow fix ( #1707 )
2023-03-05 18:16:42 +00:00
1ead6c46f4
Mirrors: minor fixes
2023-03-04 00:48:22 +00:00
vaxerski
64f35c0e31
Bezier: Fix incorrect binary search in bezier approx
2023-03-03 13:33:52 +00:00
vaxerski
62e0c9226e
Up the bezier bake count
2023-03-03 13:17:11 +00:00
vaxerski
c5aa20f226
fix bezier step approx
2023-03-03 13:08:46 +00:00
Vaxry
8b81f41e52
Plugin System ( #1590 )
...
---------
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-02-27 12:32:38 +00:00
vaxerski
f1c9077139
unblock pure wayland compiles
2023-02-21 23:57:08 +00:00
Jan Beich
474ada9267
Unbreak CrashReporter on FreeBSD ( #1589 )
2023-02-20 14:15:15 +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
38c25bb50d
Added a crash reporter
2023-02-19 13:45:56 +00:00
Ching Pei Yang
c92e0c05e4
Resize on border ( #1347 )
2023-02-18 22:35:31 +00:00
4ea4efb871
add prev to getWorkspaceIDFromString
2023-02-09 14:15:42 +00:00
494103b521
add missing xwayland stub
2023-02-03 14:12:28 +00:00
ozwaldorf
32d56fec97
feat: border angle animations ( #1469 )
...
Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
2023-02-01 21:06:01 +00:00
vaxerski
11234529db
Simulate mouse movement on unmap of popups and subsurfaces
2023-01-31 00:26:15 +00:00
Jan Beich
f90ff8303b
Unbreak build with libc++ ( #1457 )
2023-01-31 00:03:23 +00:00
ef12120270
fixup LS scaling impl
2023-01-29 15:58:36 +00:00
Jan Beich
ff9bcb19fa
Allow to disable X11 backend separately from Xwayland after 5a750b485a
( #1445 )
2023-01-29 12:43:18 +00:00
vaxerski
8ae1fd0173
added layer rules
2023-01-25 15:34:13 +00:00
vaxerski
84954f376f
remove restrictions from setprop for ints
2023-01-24 21:44:54 +00:00
vaxerski
cb6e36d804
ignore null ls-es in cleanup
2023-01-23 18:23:44 +00:00
cb98242ea7
remove old comment and fixup lsl var name
2023-01-22 17:03:25 +01:00
5814d9b2a0
make hyprerror follow fadein anim
2023-01-20 20:48:07 +01:00
Vaxry
60b880d931
wp-fractional-scaling-v1 impl ( #1373 )
...
* Initial fractional scaling impl
* apply UV after geom calcs
* fix scaling -> scale
* meson: add fractional scale proto
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-01-20 19:44:30 +01:00
d8ee624e35
move monitor remove notice up
2023-01-19 16:27:04 +01:00
2858e08ce0
remove color rassert to fix overshot beziers
2023-01-07 13:38:19 +01:00
464dd79246
fix crashes on monitor ls remove
2023-01-06 16:13:50 +01:00
96198dae55
Normalize color storage
...
Colors are now normalized to 0 - 1 values instead of 0 - 255
causes calculations to be simpler and generally cleans up the codebase.
2023-01-05 19:25:45 +01:00
a33ecec61e
destroy LS-es on disconnected monitor
2023-01-02 16:16:28 +01:00
5d095bb9e1
use curves for special dim anim
2022-12-29 12:30:43 +01:00
545e63d1dd
sanity check workspaces after enabling mirror
2022-12-26 13:27:02 +01:00
vaxerski
6749c8abd7
fix dynamic monitor disables corrupting pmosthz
2022-12-22 12:15:07 +00:00
vaxerski
e9bd2ee996
move setActiveMonitor backup later in onDisconnect
2022-12-21 15:17:24 +00:00
vaxerski
41cdfb7420
allow binding tablets to outputs
2022-12-21 15:11:39 +00:00
vaxerski
261fbb5b62
adjust medium ppi values
2022-12-20 13:33:29 +00:00
vaxerski
4fd90144d1
touch up the clang format and format all files
2022-12-20 02:18:47 +00:00
vaxerski
3e2785b970
fix restack in xwayland stubs
2022-12-19 23:43:50 +00:00
Julian Schuler
2daabfa0e9
Add 'exact' option for 'splitratio' ( #1245 )
...
* Simplify getPlusMinusKeywordResult()
* Add an 'exact' option for 'splitratio'
2022-12-17 22:37:44 +00:00
vaxerski
f72c237d85
add disabling keyboards
2022-12-16 17:20:51 +00:00
Vaxry
98a4fa2b0d
Added clang format ( #1239 )
...
* clang-format stuff and format files
2022-12-16 17:17:31 +00:00
vaxerski
3bd9ee0d32
minor xcursor and scale fixes
2022-12-15 17:17:15 +00:00
vaxerski
374571da96
add auto scale
2022-12-14 17:57:45 +00:00
vaxerski
f8188ed7f8
stuff
2022-12-14 17:57:45 +00:00
vaxerski
f8a6799d4e
verify lastmon status on connect
2022-12-12 20:51:20 +00:00
Maarten van Gompel
6381b6474f
Implement orientation (placement of master area) for master layout ( #1202 )
...
* Implemented choosing placement of master area (#1059 )
This implement a per workspace 'orientation' that can be set
to left, right, top or bottom. Reflecting placement of the master area.
Left (default) and right are horizontal layouts, top and bottom produce vertical
layouts. Orientation can be switched with: 'hyprctl dispatch layoutmsg orientationleft'
2022-12-10 21:59:16 +00:00
vaxerski
62f4503f07
handle constraint cursor hints better
2022-12-10 14:43:46 +00:00
vaxerski
d5352a5d12
find a default workspace smarter
2022-12-09 17:17:02 +00:00
vaxerski
726732244a
sort valid ws-es in relative
2022-12-08 21:24:55 +00:00
vaxerski
0803febac5
optimize m+- and e+- workspace opts
2022-12-08 12:08:41 +00:00
Flafy
ffc580dda9
blur xray for layers ( #1158 )
...
* feat: apply blur_xray to non window surfaces
* don't blur optimize bottom and background layers
2022-12-04 20:57:41 +00:00
vaxerski
9e8df888eb
fix warning
2022-12-04 00:03:48 +00:00
vaxerski
0a302901d2
Added handling more special workspaces
2022-11-27 22:42:22 +00:00
vaxerski
9616dc7bd8
don't change alpha on special anims
2022-11-24 20:51:33 +00:00
Julian Schuler
79a9bc9076
Add option for retrieving first empty workspace ( #1085 )
2022-11-23 14:10:26 +00:00
1f72237291
Fix incorrect layout positions in mirror re-add
2022-11-19 16:58:14 +00:00
vaxerski
e427d9f622
unify setting of the active monitor
2022-11-19 16:41:41 +00:00
vaxerski
df132e5ff3
update wlroots dep
2022-11-19 16:28:04 +00:00
0ffaa8d667
Fix minor issues with mirrors
2022-11-19 13:14:55 +00:00
e887149f25
minor fixes for mirrors & log more monitor events
2022-11-19 13:01:32 +00:00
vaxerski
ba05c43ae3
minor monitor code fixups
2022-11-18 14:15:19 +00:00
vaxerski
82fe530045
don't set AS in onConnect
2022-11-18 14:08:34 +00:00
vaxerski
f91f3d1c81
Reset callbacks on remap
2022-11-18 13:53:54 +00:00
vaxerski
d2a7e22efd
more memory safety around onDisconnect
2022-11-17 21:52:45 +00:00
Jef
549fdf63f6
Add bordercolor windowrule ( #992 )
...
* Add bordercolor windowrule
* remove spaces form bordercolor rule + typo
Co-authored-by: Jef Steelant <jef.steelant_ext@softathome.com>
2022-11-13 19:33:13 +00:00
vaxerski
a5ffd44caf
guard empty str in removeBeginEndSpacesTabs
2022-11-10 21:51:46 +00:00
Jan Beich
5d5066570c
helpers: implement getPPIDof on BSDs ( #972 )
...
Get PPID from `struct kinfo_proc` via sysctl for the specified PID.
Adjusted for minor differences between each BSD kernel.
2022-11-07 20:26:23 +00:00
vaxerski
57817f7252
Added resize transitions
2022-11-06 17:52:09 +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
ff76fbe763
prevent double-registering of avars
2022-11-05 13:37:29 +00:00
vaxerski
c9eb0f3aab
fix missing stub for xwayland
2022-11-04 16:10:10 +00:00
vaxerski
206360177f
Multiple animation optimization and xwayland wine fixes
2022-11-04 15:56:31 +00:00
vaxerski
2e32e202e9
set lastmonitor in onDisconnect
2022-10-29 22:45:01 +01:00
vaxerski
74d05d0adc
ensure VRR for current display only in onConnect
2022-10-28 23:48:48 +01:00
vaxerski
341a0616aa
avoid applying offset twice in onConnect
2022-10-28 23:23:23 +01:00
7d6ccca695
add 10bit support to displays
2022-10-27 13:26:47 +01:00
28c81fc71e
add disabling pointer devices
2022-10-27 12:58:10 +01:00
Vaxry
d5a0610ea2
No xwayland overhaul ( #920 )
2022-10-27 11:26:35 +01:00
vaxerski
47eac4be1c
disable adaptive sync with no_vfr off
2022-10-22 21:45:17 +01:00
724fa4a7d4
add touch binding to output
2022-10-14 12:38:44 +01:00
Vaxry
cee0645fd1
Merge pull request #813 from histausse/touch_dev_rotation
...
Add input:touchdevice:transform config
2022-10-14 12:26:31 +01:00
vaxerski
2ee9fb0675
don't recalc offset on monitor reload offset auto
2022-10-12 15:16:31 +01:00
Felix Dick
7e781f24c5
Merge branch 'main' into simplify_matrix_calculations
2022-10-10 02:45:40 +02:00
Felix Dick
3bf7c5aea1
Change matrixProjection function stop use matrixFlip180 everywhere.
2022-10-10 01:35:42 +02:00
vaxerski
881f828250
better subsurface handling on unmaps
2022-10-09 17:40:30 +01:00
Histausse
32ae0c51f0
Add input:touchdevice:td_rotation config
...
Add support for touch device roation. The rotation is
set globally with `input:touchdevice:td_rotation config` and by
device with `td_rotation` in a device block.
2022-10-08 15:25:46 +02:00
vaxerski
0508c7d384
more monitor checks for shutdown:
2022-10-06 18:43:50 +01:00
vaxerski
11ce468996
add dpms status info in hyprctl
2022-10-05 18:14:11 +01:00
71e2562a41
add desc: to monitor rules
2022-10-05 10:22:33 +01:00
vaxerski
0d702b556d
Add switch device handling and binds
2022-10-04 20:07:21 +01:00
vaxerski
63dfe305dd
log GPU info for debugging
2022-10-03 23:10:15 +01:00
vaxerski
174b593438
optimize removing trailing spaces
2022-10-03 14:36:56 +01:00
vaxerski
a97621b1cb
Added window swallowing
2022-10-01 19:19:15 +01:00
vaxerski
e6c9e3f81d
add case for empty strings in isNumber
2022-09-30 21:54:13 +01:00
Felix Dick
11ee78f88b
Use double literals, don't cast a integer literal to double.
2022-09-28 20:08:41 +02:00
vaxerski
ec5ffe8839
rewrite isNumber
2022-09-28 15:32:53 +01:00
vaxerski
e3b1d3c3c5
allow for pure workspace names in dispatchers
2022-09-28 15:26:41 +01:00
Felix Dick
87afc8c250
Replace clamp with max if there is no upper bound.
2022-09-26 21:10:24 +02:00
Felix Dick
bf3f519eb7
Remove trailing whitespace.
2022-09-25 20:07:48 +02:00
79c645f8cd
handle touch devices internally as objects
2022-09-21 14:39:34 +01:00
4dca2b945b
fix LS fading out on ws change
2022-09-20 09:46:55 +01:00
tomahk
5146165599
this is c++, use nullptr
2022-09-19 21:45:00 +02:00
tomahk
73e19aee6f
prevent assert killing Hyprland after reenabling monitor
2022-09-19 20:44:33 +02:00
18b483b8e1
fix ws switching with LS opacity
2022-09-19 10:40:42 +01:00
a72a39ebd5
minor swipe fixes
2022-09-17 15:05:12 +01:00
vaxerski
8e0f7b9b11
Various subsurface handling fixes
2022-09-14 16:34:41 +02:00
vaxerski
5a146e9d90
guard surface in addsurfaceglobaloffset
2022-09-13 21:49:55 +02:00
vaxerski
e518adf1ac
don't iterate over subsurfaces in unmap
2022-09-13 15:44:50 +02:00
vaxerski
e9f226797e
Added monitor mirroring
2022-09-13 15:25:42 +02:00
vaxerski
f663fa209c
minor code styling fixes
2022-09-09 19:08:11 +02:00
vaxerski
bb90ff0461
sanity check on last window
2022-09-01 11:46:41 +02:00
vaxerski
7f62cbc48a
Update wlroots dep
2022-09-01 11:24:15 +02:00
vaxerski
dacaf72e02
remember last window on workspace
2022-08-31 17:02:49 +02:00
Vaxry
52c0ba544c
Viewporter implementaion ( #585 )
...
Implementation of the `wp_viewporter` core protocol and some bugfixes
2022-08-28 10:14:43 +02:00
Vaxry
1d97ad9856
Merge pull request #588 from alec-lefors/drm-leasing
...
implemented DRM leasing
2022-08-27 23:47:41 +02:00
Alec LeFors
59d7cfcd02
implemented DRM leasing for VR headsets
2022-08-27 17:10:13 -04:00
vaxerski
ed2cacc5d5
fix styling in const ptrs
2022-08-27 21:37:35 +02:00
vaxerski
10f529ada7
added a specialWorkspace anim leaf
2022-08-26 11:26:23 +02:00
vaxerski
a9e34cba93
move monitor damage to separate funcs
2022-08-23 16:07:47 +02:00
vaxerski
23c5760538
IME Popup damage fixes
2022-08-23 11:16:35 +02:00
Charles Taylor
3c8c605541
fix style conflicts and config + monitor retrieval
2022-08-21 21:58:46 +10:00
Charles Taylor
04f0efadc3
add switching to previous workspace
2022-08-21 20:21:21 +10:00
vaxerski
cc3f0ff9e7
update wlroots dep
2022-08-20 20:06:24 +02:00
FlafyDev
f0ad77251b
move absolutePath to MiscFunctions
2022-08-19 23:18:09 +03:00
FlafyDev
69d17bf424
add input:kb_file
2022-08-19 21:01:51 +03:00
b078a12eed
Added an activelayout event
2022-08-18 17:17:33 +02:00
c7350117f1
reinit render on disconnected displays
2022-08-10 23:19:15 +02:00
58ff04fdf3
added experimental monitor saving
2022-08-10 21:54:09 +02:00
9b39a0c2e0
Added hyprctl setcursor
2022-08-10 21:22:11 +02:00
76877d4b15
minor changes to monitor logging
2022-08-10 18:27:57 +02:00
03f2e4d42a
fix compile
2022-08-10 13:45:20 +02:00
15fc0892c7
further fixes to monitor disabling on launch
2022-08-10 13:44:04 +02:00
a564be73c5
set correct full params in disabled at launch
2022-08-10 13:31:58 +02:00
vaxerski
e0ada97a24
support zwp_input_method_v2 popups
2022-08-05 17:07:01 +02:00
vaxerski
9a8a6317ff
multiple IME fixes
2022-08-05 16:21:08 +02:00
vaxerski
cb5521ec6e
fix possible crashes with IME
2022-08-05 13:19:16 +02:00
vaxerski
1c4d0e8c18
added IME protocol support
2022-08-05 13:03:37 +02:00
vaxerski
37068cf4f0
fix crash with reenabling a monitor
2022-08-03 17:42:19 +02:00
vaxerski
c3edb20e04
make monitor IDs permanent
2022-08-03 16:19:00 +02:00
vaxerski
b9be405d32
clear ls lists on monitor disconnect
2022-08-03 16:12:05 +02:00
vaxerski
8dd88d901d
guard onDisconnect
2022-08-03 16:05:25 +02:00
vaxerski
920fdd6bff
Animation config rework
2022-07-28 13:28:43 +02:00
vaxerski
b6f2a4bc36
damage popups correctly
2022-07-28 11:37:27 +02:00
vaxerski
427bc35b6b
fix empty workspace name on unspecified default
2022-07-27 13:56:01 +02:00
vaxerski
cb1a36faf0
missed 2 structs
2022-07-27 12:36:56 +02:00
vaxerski
31a079b347
added DPMS
2022-07-27 12:32:00 +02:00
vaxerski
98ef43496b
listener fixes
2022-07-26 21:41:29 +02:00
vaxerski
b18a2738e3
schedule recalcs in LS
2022-07-26 18:22:34 +02:00
vaxerski
b0d91cbf3a
simplify formats
2022-07-25 22:40:34 +02:00
vaxerski
6e16dfa5e5
use defines for unreachable
2022-07-25 21:34:57 +02:00
vaxerski
b1d3a1deea
force unmap on direct destroy
2022-07-25 18:38:40 +02:00
vaxerski
1626707b7f
make layerSurfaces into RAII
2022-07-23 15:48:08 +02:00
Mihai Fufezan
72700bf9dc
layersurfaces: set default geometry
2022-07-22 20:28:43 +03:00
vaxerski
616ec22735
wrapped wl_listener fixes
2022-07-22 13:34:19 +02:00
Darksome
eb8a1939e6
Merge upstream
2022-07-21 19:18:03 +03:00
vaxerski
641aaff998
minor code adjustments
2022-07-20 18:39:08 +02:00
vaxerski
f905ae33c8
guard pSurface in unmapsubsurface
2022-07-19 13:54:42 +02:00
Vaxry
f35d513bf5
Merge pull request #391 from dgerblick/focuswindow-options
...
focuswindow options + other hyprctl bugs I found when testing
2022-07-18 23:19:12 +02:00
vaxerski
10a83853ac
added ls noprocess
2022-07-18 21:16:01 +02:00
Daniel Gerblick
f2c0e6ef02
fixed issue causing hyprctl to output ill-formed json when strings include characters needing escaping
2022-07-18 14:47:28 -04:00
xDarksome
4f9be67298
Merge branch 'hyprwm:main' into main
2022-07-16 15:30:32 +03:00
Darksome
ce9efb7ae3
Impl changeworkspace(e+{n})
2022-07-16 15:28:17 +03:00
vaxerski
48e5bd96bc
Added shadow colors animations and inactive col
2022-07-16 12:44:45 +02:00
vaxerski
19c646ab47
Minor changes to the renderer's overflow behavior
...
Won't squish base layers anymore
2022-07-15 19:07:06 +02:00
vaxerski
2f3b2db83d
fixed tiled popups going behind windows
2022-07-12 09:49:56 +02:00