Commit Graph

538 Commits

Author SHA1 Message Date
vaxerski 870471dd96 internal: allow opening empty special workspaces
Fixes point 2 of #2596
2023-08-25 18:05:08 +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 ba31518ed8 compositor: fix log types 2023-08-22 16:44:33 +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 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 ebc5fed9b2 compositor: minor cleanup 2023-08-19 19:24:48 +02:00
Vaxry 7e8a212027 internal: allow negative monitor offsets 2023-08-16 18:16:39 +02:00
Vaxry 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
Vaxry 7c4daee29a compositor: fix skipping iterators in arrangeMonitors 2023-08-14 19:27:33 +02:00
Vaxry b9a783229b compositor: don't apply offsets in renderer 2023-08-14 18:41:52 +02:00
Vaxry 2110dc1f03 compositor: fix auto positioning offset calcs 2023-08-14 17:31:36 +02:00
Vaxry 13886a264f internal: add a new monitor auto system 2023-08-14 14:22:10 +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
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
Vaxry c748f36939 internal: add lock files and hyprctl instances 2023-08-08 16:16:40 +02:00
vaxerski 2e6693fbb6 compositor: update window rules on workspace move 2023-08-03 21:59:12 +02:00
vaxerski f5913135c6 input: add support for cursor-shape-v1 2023-07-24 18:50:17 +02:00
Vaxry 8370a7fcc4
internal: Protocol C++ Wraps + XDGOutput impl (#2733)
move to our own xdgoutput impl instead of wlr's
2023-07-18 15:30:28 +02:00
Jan Beich 8c9e2e1ff1
deps: update wlroots (#2734) 2023-07-18 12:13:59 +02:00
Tuur Vanhoutte d2eb4fee76
Avoid connected monitor reusing unavailable ID (#2731) 2023-07-18 12:12:05 +02:00
MightyPlaza cacdb424a9
massive-fix (#2725) 2023-07-16 21:00:38 +02:00
vaxerski 459afcc47f idle: fix reverse flag for new idle protocol 2023-07-14 20:02:31 +02:00
vaxerski f8def68e7e idle: implement new protocol 2023-07-13 18:05:34 +02:00
MightyPlaza 29d017f54b
monitor desc default workspace but working now (#2678)
* fix desc check

* fixes crashes when nulptr
2023-07-11 11:29:19 +02:00
MightyPlaza d9f7f039e1
monitor desc support (#2670)
* monitor desc

* monitor desc
2023-07-09 23:10:35 +02:00
Tuur Vanhoutte b99ac063ea
Reuse same ID when reconnecting monitor, otherwise use minimum available ID (#2666)
Fixes #2601
2023-07-09 23:08:40 +02:00
Mykola Perehudov 41358c6fb5
Cleanup compositor deadcode (#2657)
* Remove dead code as it is a part of CCompositor::cleanup

* Unify sd_notify logic with Compositor lifetime
2023-07-06 15:24:49 +02:00
vaxerski 18f9fb5e0f rules: add stayfocused 2023-07-04 12:05:25 +02:00
Vaxry 01f85a09a9 xwayland: send zero scaling to xwayland if enabled 2023-06-23 21:42:44 +02:00
Vaxry cbe9bf0e69 compositor: move group members properly in moveWindowToWorkspaceSafe 2023-06-21 20:51:18 +02:00
vaxerski fbabb105c3 gamma: use wlr's new gamma manager event 2023-06-14 13:26:47 +02:00
vaxerski e8c6d0f51e compositor: don't set dim percent on disabled dim 2023-06-13 18:51:49 +02:00
memchr 24ed9b061f
feat: add variable to customize locked group border color (#2507)
added variables:
- general:col.group_border_locked
- general:col.group_border_locked_active
2023-06-13 12:04:54 +02:00
Vaxry 147e962370 deps: update wlroots 2023-06-03 12:20:28 +02:00
Vaxry e76bd43f53 rules: add nodim 2023-05-31 21:11:20 +02:00
vaxerski 5484411232 compositor: disallow sending pinned to special 2023-05-29 17:46:12 +02:00
vaxerski 086f724951 wlr_ext_workspaces: honor activate from client + format 2023-05-22 19:36:47 +02:00
Anthony Ruhier d7935356da
input: don't move monitor focus on wp change (#2320) 2023-05-17 13:32:59 +01:00
vaxerski 824813fc6a internal: remove check for negative exact vector args 2023-05-15 15:16:06 +01:00
vaxerski f2725a374a render: minor fixes to fullscreen rendering 2023-05-10 18:36:13 +01:00
vaxerski cc4ccfdbfd internal: use i64 for workspaces in outofbounds 2023-05-09 14:08:05 +01:00
vaxerski afe8d8dfec monitors: fix some bugs with re-plug 2023-05-06 16:50:15 +01:00
dtop129 7e5ba5e824
Fixed wrong focus changes when moving background workspaces (#2258) 2023-05-06 16:13:26 +01:00
vaxerski 83cd5e2ebd workspaces: minor fixes for multi-special 2023-05-06 16:10:51 +01:00
vaxerski 4ad03af544 compositor: don't focus pointer in focusWindow 2023-05-06 00:59:25 +01:00
scorpion-26 c3b9326ba1
Honor debug:enable_stdout_logs on startup (#2197)
* Honor debug:enable_stdout_logs on startup

disableStdout is set via config in CConfigManager::init(), which is
called early in CCompositor::initServer(). initServer() always disables
stdout logs at the end though, even when stdout is enabled is config. With this commit,
the config is respected.

* Don't spam stdout message
2023-05-03 16:08:01 +01:00
outfoxxed 3a631e40db
Declarative plugin management (#2180)
* Declarative plugin management

Allow declaring `plugin` entries in the hyprland configuration.

Plugins will be loaded if an entry is added and unloaded if that entry
is removed.

* Replace pointers with copying in updateconfigPlugins

* Include which plugin was declared twice in error
2023-05-01 15:10:53 +01:00
scorpion-26 fdb772832f
Keep fullscreen mode in moveWindowToWorkspaceSafe (#2191)
Moving a maximised window would always result in the window being
fullscreen instead of maximised
2023-04-29 23:39:09 +01:00
vaxerski 5a3e3deb33 internal: warp workspace on change only if old mon is last 2023-04-29 13:32:59 +01:00
vaxerski fbb938fcf2 internal: don't change ws on active swap 2023-04-28 21:40:44 +01:00
vaxerski e195a51cd4 internal: update fullscreen fade on workspace move 2023-04-24 23:23:12 +01:00
vaxerski 247ff4e60d internal: improve fullscreen fade 2023-04-24 23:21:51 +01:00
vaxerski c0f4e9f52e internal: moveToWorkspace before setting ws 2023-04-22 21:13:06 +01:00
vaxerski d03dcc3d99 deps: update wlroots 2023-04-21 15:42:08 +01:00
vaxerski b15803510c input: improve mouse release conditions 2023-04-20 00:46:42 +01:00
vaxerski f914a5a06d input: release mouse buttons before refocuses 2023-04-19 21:36:08 +01:00
vaxerski 8b3d8dc792 Format: use %lx for all addresses 2023-04-17 17:35:28 +01:00
vaxerski c62ab1bee7 internal: use setSpecialWorkspace on destroy in sanityCheck 2023-04-16 21:33:28 +01:00
vaxerski 12604b7676 compositor: ignore contraints on warp in moveWorkspaceToMonitor 2023-04-15 21:27:11 +01:00
Jan Beich 63841c8aac
Disable systemctl when built without systemd support (#2066)
/bin/sh: systemctl: not found
2023-04-15 20:03:09 +01:00
vaxerski 4c4fcc128b input: fix ls focus in non-input area 2023-04-15 16:53:31 +01:00
vaxerski 287e6c4ede internal: workspace manip handling rework 2023-04-14 15:03:53 +01:00
vaxerski 260ef788f5 internal: don't sanity check workspaces on internal ws calls 2023-04-13 22:21:11 +01:00
vaxerski 41c7d896e3 internal: prevent premature destroy in moveworkspace 2023-04-13 21:09:50 +01:00
vaxerski a68feb5aa0 internal: guarantee activeWindow event type 2023-04-12 13:11:38 +01:00
vaxerski 92fecb8ad4 internal: don't iterate special workspaces in move 2023-04-12 11:24:36 +01:00
vaxerski ea77622e04 input: send null keycodes on focusSurface 2023-04-10 22:37:55 +01:00
vaxerski 366ebc123b internal: don't remove x11 children on parent remove 2023-04-06 20:59:44 +01:00
vaxerski a740e3e517 internal: comply to nofocus on vectorToWindow 2023-04-06 13:17:15 +01:00
Vaxry 0a099ca2ab
Hyprland Screencopy impl (#1800)
---------

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-04-03 17:01:05 +01:00
vaxerski e6211eef00 log: Move stdout log disabling to the end of init 2023-04-03 10:41:49 +01:00
vaxerski b1426cad28 input: fix minor issue with holding focus 2023-04-02 13:42:57 +01:00
vaxerski 0fc145c52c input: hold focus on mouse buttons 2023-04-02 13:30:45 +01:00
vaxerski e73c6fd3b0 logs: disable stdout after init 2023-03-24 13:00:54 +00:00
Vaxry 471ac474a1 core: remove old redundant shutdown stuff 2023-03-23 03:07:57 +00:00
vaxerski a8b3be2c9c config: add misc:suppress_portal_warnings 2023-03-22 12:17:16 +00:00
vaxerski cb229f6436 compositor: adjust xdp error cases 2023-03-20 22:26:54 +00:00
vaxerski 316674fecf notifs: use empty color for auto 2023-03-20 15:32:11 +00:00
vaxerski 71a95a581f feat: add pretty notifications 2023-03-20 15:03:09 +00:00
Vaxry 788a8f7c13
internal: wrap wlr surfaces (#1822) 2023-03-20 15:00:58 +00:00
vaxerski d23bbd1687 workspaces: preserve pin on moves 2023-03-20 01:50:46 +00:00
vaxerski 5d44ea802a monitors: guard output when read 2023-03-16 14:03:40 +00:00
Vaxry ca1c1438e3 Compositor: fix crash on exit 2023-03-09 14:19:54 +00:00
Vaxry 92d2331170 Events: Avoid sending std::nullptr_t in keyboardFocus 2023-03-08 09:46:17 +00:00
vaxerski dc7d783d14 Initialize priority managers before server init 2023-03-05 13:37:21 +00:00
vaxerski fea2031bfe systemd: expand sysd import env script 2023-03-04 15:21:27 +00:00
Vaxry dea71875e4 add desc: to getMonitorFromString 2023-03-02 12:04:41 +00:00
Vaxry 556c7dd51f reset signal handlers in unrecoverable 2023-03-01 21:55:30 +00:00
Vaxry 6c250df77e generate coredumps on sigabrt too 2023-03-01 15:08:44 +00:00
vaxerski 7c5c7ced91 Convert reverse iterators to ranges 2023-03-01 14:06:52 +00:00
vaxerski 3cef005fec use XCURSOR_SIZE for internal cursor size 2023-03-01 13:54:48 +00:00
Vaxry 86acdcf8b6 nuke unmanagedx11 vector 2023-03-01 13:15:51 +00:00
Vaxry ea717731a4 Simplfy framebuffer erasing in cleanupFadingOut 2023-03-01 10:06:15 +00:00
Stanisław Zagórowski 5c93f6947a
Unload plugins on compositor cleanup (#1662) 2023-02-28 23:11:49 +00:00
vaxerski 2187c6cf43 Allow decos to request interactivity 2023-02-28 22:32:42 +00:00
vaxerski 7e523e4d5e minor fixes to X11 configure/or handling 2023-02-28 18:50:47 +00:00
Vaxry ac251d7a66 allow focus to grouped windows 2023-02-28 12:34:59 +00:00
vaxerski 49f423aa8f update decos on anim values update 2023-02-27 23:34:41 +00:00
Vaxry 8b81f41e52
Plugin System (#1590)
---------

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-02-27 12:32:38 +00:00
vaxerski 66e3679ba3 Conform to X11 OR surfaces wanting focus 2023-02-21 20:47:02 +00:00
vaxerski 784cdd7638 abort instead of exiting on sigsegv 2023-02-20 11:02:44 +00:00
Vaxry e5a4c0c986
Group/Tab Rework (#1580) 2023-02-19 21:07:32 +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
vaxerski ff95721ad9 fix compile for single_pixel_buffer_v1 2023-02-16 13:37:46 +00:00
Vaxry d710e7347a enable single_pixel_buffer_v1 2023-02-16 12:55:52 +00:00
vaxerski 127e80692f move no_vfr to vfr and add vrr 2023-02-14 17:08:42 +00:00
vaxerski 79ad93d536 clear focus on lockscreen refocus 2023-02-12 19:20:13 +00:00
vaxerski 863812a097 added activewindowv2 2023-02-06 13:16:59 +00:00
vaxerski a0bc0e4998 make a null surface focus reset lastfocus 2023-02-03 17:18:22 +00:00
vaxerski 129e99a6f6 Implement ext-session-lock-v1 2023-02-03 11:58:55 +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 1c1e688564 fix crash in nested non-mouse warps 2023-01-28 17:54:14 +00:00
vaxerski 86f4772bd6 fix clang warn 2023-01-28 17:52:32 +00:00
vaxerski 61c9e50bcd warp cursor on login to center 2023-01-28 12:26:38 +00:00
Vaxry 94b7b6b584 added binds:focus_preferred_method 2023-01-26 14:36:22 +00:00
Vaxry a2ae37396f add hyprctl setprop 2023-01-24 19:05:43 +00:00
vaxerski e3d1743722 Revert "use spawn in dbus-env activation"
This reverts commit 63babcba36.

oops.
2023-01-24 16:25:18 +00:00
Vaxry 63babcba36 use spawn in dbus-env activation 2023-01-24 14:05:59 +00:00
vaxerski 70b5c1b119 fix clamp in monitor relative 2023-01-23 20:56:43 +00:00
DB 7574b3db64
fix: hyprland crashing wenn moving window -1 from first monitor (#1419)
Co-authored-by: xVermillionx <xVermillionx@notvalid>
2023-01-23 20:56:05 +00:00
Vaxry cb98242ea7 remove old comment and fixup lsl var name 2023-01-22 17:03:25 +01:00
Cyril Levis fcbfd19393
feat: add focus to urgent or last window (#1402)
* feat: add focus to urgent or last window

* Rename dispatcher

Co-authored-by: Maxim Baz <git@maximbaz.com>
2023-01-21 11:18:55 +01:00
Vaxry 434719611d fix focus history on workspace jumps 2023-01-20 20:57:35 +01:00
Vaxry 5814d9b2a0 make hyprerror follow fadein anim 2023-01-20 20:48:07 +01:00
Vaxry fb2679d5ef add a focus history vec 2023-01-20 19:15:15 +01:00
Vaxry 5112056fdb better log wl socket adding and use auto if failed 2023-01-19 16:44:23 +01:00
Vaxry b5b436e01d better error handling around getMonitorFromString 2023-01-14 20:45:28 +01:00
Maxim Baz 668d90c700
Implement urgency hint for workspaces (#1379)
When there are any unfocused windows that request activation, mark the workspace as urgent.
2023-01-14 20:31:11 +01:00
Vaxry df30f0519a damage monitor on stack rotations 2023-01-11 17:57:54 +01:00
Cyril Levis 3173fbdc4a
feat: dispatcher, add workspace renaming (#1336)
* feat: dispatcher, add workspace renaming

Co-authored-by: vaxerski <vaxry@vaxry.net>
2023-01-08 14:19:18 +01:00
rubyowo 0d2e1e1270
fix crashes and bug wiki link (#1333) 2023-01-07 12:33:36 +01:00
jrun 0d14fd9136
add systemd support (#1253)
* add systemd support
motivation for this is is proper ordering of related/bound/required
services to Hyprland (e.g. swaybg) that would need to have a compositor
ready.

this could possibly be a build-time option of course.

see also:
example/ files for example of services

Signed-off-by: Paymon MARANDI <darwinskernel@gmail.com>

* nix: add withSystemd flag

Signed-off-by: Paymon MARANDI <darwinskernel@gmail.com>
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
Co-authored-by: Vaxerski <vaxry@vaxry.net>
2023-01-05 20:17:55 +01:00
Vaxry 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
Vaxry 7f595ed0ca support gradients in dwindle group colors 2022-12-31 16:23:56 +01:00
Vaxry 0baef17a02 simplify workspace sanity checks 2022-12-29 17:06:30 +01:00
Vaxry d64fc7d336 remove useless log 2022-12-27 15:28:41 +01:00
vaxerski 2b888d5106 ignore focus to empty input region ls-es 2022-12-22 15:03:32 +00:00
vaxerski 96cb47fc64 Add sane permissions for /tmp/hypr 2022-12-21 15:41:02 +00:00
vaxerski 4fd90144d1 touch up the clang format and format all files 2022-12-20 02:18:47 +00:00
vaxerski 0f3214714f respect ls protocol by forcing kb focus to kb interactive top and overlay 2022-12-17 22:35:51 +00:00
Vaxry 98a4fa2b0d
Added clang format (#1239)
* clang-format stuff and format files
2022-12-16 17:17:31 +00:00
vaxerski 121ea1fac2 set created over fullscreen in movetotop 2022-12-15 17:29:06 +00:00
Vaxry 111d209bff
Added toplevel handle sharing Rev2 (#1203)
* Added toplevel handle sharing

* nix: fix build

* update hyprland-protocols

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2022-12-12 14:56:42 +00:00
vaxerski e8b99ae13a add override to opacity rules 2022-12-11 17:15:02 +00:00