Commit Graph

2225 Commits

Author SHA1 Message Date
scorpion-26 07e4ba9d80
Fix crash in CConfigManager::parseKeyword (#1983)
If debug:manual_crash is set on startup, parseKeyword tries
to call g_pHyprNotificationOverlay->addNotification, but
g_pHyprNotificationOverlay isn't initialized yet (is nullptr)

This commit adds a sanity check for that.
2023-04-07 20:15:11 +01:00
vaxerski 5e2d4d644a screencopy: fix crash 2023-04-07 19:21:47 +01:00
vaxerski 50876f1b15 screencopy: fix read on incorrect monitor render 2023-04-07 19:11:30 +01:00
vaxerski c2a85c9d36 screencopy: minor fixes for damage_ring 2023-04-07 18:04:02 +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
Andrew Nitrogenesis a35ea4d242
Better and more secure argument parsing, and code reformatting (#1976)
* Better and more secure argument parsing, and code reformatting

* Changes to resolve PR conversation

* Formatted via clang-format, fixed typos

* More typos
2023-04-07 15:03:26 +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
Andrew Pritchard dfb78e0593
Fix swiping onto a new workspace with multiple monitors. (#1971)
The previous code could run into issues into the following circumstances:

* The focused monitor is on its rightmost workspace with ID `i`.
* Another monitor has a workspace with ID `i+1`.
* `workspace_swipe_create_new` is enabled.

Then, swiping rightwards attempts to target a new workspace with ID
`i+1`: completing the swipe gesture unintentionally focuses that
workspace on whichever monitor it's already on while leaving the active
monitor in a broken state where it shows no windows but creates new
windows on the workspace it was previously on; and cancelling the swipe
gesture shifts the entire workspace `i+1` to the right by the width of
the active monitor.

By choosing an ID that doesn't exist, this problematic behavior is
avoided.  More specifically, it's the smallest ID greater than any
existing workspace's ID, because otherwise the new workspace that was
seemingly just created to the right of the rightmost workspace could end
up somewhere in the middle of the workspace order.
2023-04-07 12:18:53 +01:00
vaxerski 24ace03780 internal: migrate to damage_ring 2023-04-07 12:18:40 +01:00
vaxerski 569eaff04c swipe: block on locked session 2023-04-07 11:51:52 +01:00
vaxerski 1a5d5bf620 deps: update wlroots 2023-04-06 21:03:53 +01:00
vaxerski 366ebc123b internal: don't remove x11 children on parent remove 2023-04-06 20:59:44 +01:00
vaxerski bc4a51dbbb internal: make togglefloat better visible on small size deltas 2023-04-06 19:45:59 +01:00
vaxerski 80650b6722 keybinds: allow MOD1 as an alias of ALT 2023-04-06 19:28:09 +01:00
vaxerski a740e3e517 internal: comply to nofocus on vectorToWindow 2023-04-06 13:17:15 +01:00
vaxerski 19809532df input: ignore constraints on touch 2023-04-06 11:34:18 +01:00
Vaxry 110f3fd658 screencopy: fix incorrect resource error post 2023-04-05 15:19:49 +01:00
vaxerski a80ba54bbc renderer: don't use simple rect on alphazero stencil 2023-04-04 22:58:58 +01:00
vaxerski 00d199b477 monitors: guard scale in onConnect 2023-04-04 22:54:35 +01:00
vaxerski eea99abc49 debug: allow manual crash from hyprctl 2023-04-04 22:13:36 +01:00
vaxerski e7185b338f debug: minor improvements to manual crash 2023-04-04 22:04:32 +01:00
Vaxry 7d9977d028 debug: added manual_crash 2023-04-04 14:50:03 +01:00
vaxerski 882be7765b toplevelExport: honor overlay_cursor 2023-04-04 00:58:30 +01:00
vaxerski 99314fbe71 render: plug missing software cursor unlocks 2023-04-04 00:46:58 +01:00
vaxerski c50df4c0c3 screencopy: allow on legacy renderer 2023-04-03 23:34:08 +01:00
vaxerski 2f7fb2f553 input: don't set icon on held buttons without a drag 2023-04-03 23:17:06 +01:00
vaxerski 23001f6144 input: don't overset resize icons on drag 2023-04-03 23:15:33 +01:00
vaxerski 55d585ce17 input: fix click-to-refocus not working on loose 2023-04-03 23:09:44 +01:00
vaxerski d3b0c90356 internal: rename ensureDPMS to ensureMonitorStatus 2023-04-03 22:52:09 +01:00
vaxerski a43b18ae26 Feat: add initial class/title to hyprctl clients 2023-04-03 19:16:51 +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 c2b25f4701 swallow: move swallowed on workspace change 2023-04-02 10:24:17 +01:00
vaxerski 88a96110b7 config: default no direct scanout to true 2023-04-01 19:37:30 +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
vaxerski 7680cd549c plugins: mark getFunctionAddressFromSignature deprecated 2023-03-31 18:43:00 +01:00
vaxerski 430778293e plugins: Add an API entry for finding functions by name 2023-03-31 18:31:11 +01:00
vaxerski de3b00b5ee renderer: go back to rendering layers without reverse 2023-03-31 17:44:36 +01:00
NotAShelf 3d9bf17f11
crashReporter: try `$XDG_CACHE_HOME` before `$HOME` (#1920) 2023-03-31 13:15:24 +01:00
vaxerski 614ea53ad7 Renderer: fix dim easing 2023-03-30 21:08:20 +01:00
vaxerski b88de63abb Input: fix always_follow_on_dnd 2023-03-30 00:34:24 +01:00
Alexander Seiler 60527ab180
Fix some typos (#1907)
Signed-off-by: Alexander Seiler <seileralex@gmail.com>
2023-03-29 23:44:25 +01:00
vaxerski d6241a3086 windows: only connect unmap when mapped 2023-03-28 20:17:47 +01:00
vaxerski df54ab40ce layer: allow focus on top/overlay surfaces without a window 2023-03-28 17:21:11 +01:00
Vaxry 6fec5bfbeb keybinds: improve movefocus on fullscreen 2023-03-27 15:19:27 +01:00
vaxerski 3343aac6bf feat: add forcergbx rule 2023-03-26 02:00:24 +01:00
vaxerski 41f7736c85 config: default manual animations to false 2023-03-24 22:24:12 +00:00
vaxerski c418007c68 shaders: fix missing discardAlphaZero 2023-03-24 19:43:50 +00:00
vaxerski cc2c270dde log: log wlr logs to stdout 2023-03-24 19:38:09 +00:00
vaxerski 70e3cb8151 feat: add debug:enable_stdout_logs 2023-03-24 19:37:37 +00: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 e73c6fd3b0 logs: disable stdout after init 2023-03-24 13:00:54 +00:00
vaxerski a5a0434fff dbus: don't update vars in nests 2023-03-24 03:21:38 +00:00
vaxerski 463690a27a keybinds: allow code: prefix 2023-03-23 13:05:23 +00:00
Vaxry 471ac474a1 core: remove old redundant shutdown stuff 2023-03-23 03:07:57 +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
vaxerski 3a3a3f7bdb popups: fix heap-use-after-free 2023-03-23 00:22:49 +00:00
vaxerski a8b3be2c9c config: add misc:suppress_portal_warnings 2023-03-22 12:17:16 +00:00
staz 5ce91bb0fd
Added overflow check for blur radius (#1847)
* internal: added overflow check for blur radius

---------

Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
2023-03-21 19:01:24 +00:00
vaxerski adf5d8a114 monitors: update surface outputs on recover from unsafe 2023-03-21 17:46:26 +00:00
vaxerski cb229f6436 compositor: adjust xdp error cases 2023-03-20 22:26:54 +00:00
lisuke dc78c58c77
fix: a fullscreen bug. (#1821) (#1831) 2023-03-20 16:07:18 +00:00
vaxerski 22721a37d5 hyprctl: add notify 2023-03-20 16:00:54 +00:00
vaxerski dd4270eadf notifs: add ICON_OK to icons 2023-03-20 15:49:46 +00:00
vaxerski e2923a9385 meson: add pango deps 2023-03-20 15:39:43 +00:00
vaxerski 316674fecf notifs: use empty color for auto 2023-03-20 15:32:11 +00:00
vaxerski 34da16b7e6 plugin api: add addNotificationV2
Allows for issuing fancy notifs via api
2023-03-20 15:23:25 +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 7a514f41a3 Focus: warp cursor on movewindow 2023-03-20 01:42:21 +00:00
vaxerski 928de33447 monitors: more guards for safety 2023-03-19 02:19:52 +00:00
Mihai Fufezan 0624455591
Meson: add rdynamic ld flag 2023-03-18 21:01:24 +02:00
vaxerski 2ba5238b8e groups: fix moving between displays 2023-03-18 16:30:29 +00:00
vaxerski 00c2ca4697 config: improve ux on workspace and transform 2023-03-18 16:12:43 +00:00
vaxerski d544c30551 LS: don't try to get rules on non-existent ls 2023-03-18 15:02:00 +00:00
vaxerski ef80a69399 config: fix long variables being substrd 2023-03-18 14:57:59 +00:00
vaxerski 6e6971606d windowrules: allow monitor by str 2023-03-18 01:34:06 +00:00
vaxerski e5ad53ac42 config: make default config use hyphenated dev names 2023-03-18 01:06:03 +00:00
vaxerski e98ee49aee LS: fix support for legacy blurls 2023-03-17 23:36:36 +00:00
vaxerski d797d9905d LS: support address: in layerrules 2023-03-17 23:33:03 +00:00
vaxerski e5870d47c7 LS: add blur and ignorezero rules 2023-03-17 23:16:13 +00:00
vaxerski 91a565c7b0 monitors: don't refocus on apply rule 2023-03-17 20:34:33 +00:00
vaxerski 5b924aaf60 crashReporter: add hl ver 2023-03-17 11:51:16 +00:00
vaxerski 606cb2832a keybinds: remember last workspace on focusmonitor 2023-03-16 16:40:28 +00:00
vaxerski 4b52c1e68f monitors: remove from monitors on unsafe 2023-03-16 16:33:27 +00:00
vaxerski e77ebec629 monitors: guard output in damageSurface 2023-03-16 16:32:03 +00:00
vaxerski 162f235972 switches: do not fire on no change in toggle 2023-03-16 16:30:22 +00:00
Vaxry 96718d8b09 dpms: fix keyboard dpms 2023-03-16 15:29:48 +00:00
vaxerski 5d44ea802a monitors: guard output when read 2023-03-16 14:03:40 +00:00
vaxerski d9d57ce39a monitors: fix segfault on non-unsafe remove 2023-03-16 01:04:54 +00:00
vaxerski 3e261b1fa7 dpms: fix key_press_enables_dpms 2023-03-16 00:30:07 +00:00
vaxerski cee7f11d8b hyprctl: ignore null output monitors 2023-03-16 00:18:44 +00:00
vaxerski f5669a7d6b events: guard output in change 2023-03-15 17:01:20 +00:00
vaxerski 25d3d73dbf monitors: fixes to unsafe mode 2023-03-15 15:11:41 +00:00
vaxerski d63e8c8f45 ime: account for text height in popup calcs 2023-03-14 16:46:39 +00:00
vaxerski 7e5a3eb045 ime: fix panels overflowing on corners 2023-03-14 16:12:25 +00:00
vaxerski f960f72785 input: minor fixes for tiv1 2023-03-14 14:37:00 +00:00
vaxerski 0807b8b95f tiv1: minor fixes for crashes 2023-03-14 13:51:08 +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
vaxerski 17deeb07ad master: better cycle 2023-03-13 01:07:05 +00:00
vaxerski bcd8fe9573 groups: add deco on moveIntoGroup 2023-03-13 00:47:57 +00:00
vaxerski 146d231ec5 config: add key_press_enables_dpms 2023-03-12 13:46:38 +00:00
vaxerski 71ef1bde7e dispatchers: disallow togglesplit on fullscreen 2023-03-11 17:58:34 +00:00
vaxerski 253286669a groups: fix fullscreen behavior with groups 2023-03-10 15:19:09 +00:00
Vaxry c9167d9646 blurls: fix address substr length 2023-03-09 14:24:06 +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
Vaxry a85a6fa6c8 Dwindle: Added default_split_ratio 2023-03-07 14:24:10 +00:00
Stanisław Zagórowski b11e2eaa3b
Fix plugin argument-less hyprctl calls (#1723)
Handle hyprctl command whitespace trimming

might break
2023-03-07 10:42:33 +00:00
vaxerski 0aeb61a95a Opengl: Fix forcefully setting missing time prop to final shader 2023-03-06 19:02:08 +00:00
hillyu 4f647a8e8b
fix mfact not applying to addmaster (#1715)
Co-authored-by: Hill <hillyu@live.com>
2023-03-06 09:03:49 +00:00
Jan Beich 7739b776cd
config: explicitly use environ(7) after b03c8970e6 (#1708)
src/config/ConfigManager.cpp:40:23: error: use of undeclared identifier 'environ'
    for (char** env = environ; *env; ++env) {
                      ^
2023-03-05 18:39:46 +00:00
opsu 0c8d1ba4a8
Buffer overflow fix (#1707) 2023-03-05 18:16:42 +00:00
hillyu 7ce92f93ad
add mfact setting for master layout (#1666)
* add mfact setting for master layout

---------

Co-authored-by: Hill <hillyu@live.com>
2023-03-05 16:29:23 +00:00
vaxerski b03c8970e6 Allow environment in config 2023-03-05 14:54:32 +00:00
scorpion-26 de5f1b2a83
Optionally expose time to screen shaders (#1700)
* Optionally expose time to screen shaders

Since that collides with damage tracking, it will only be done, when
damage tracking is disabled, meaning this comes at no cost for everyone
not using time.

* Rename m_Timer to m_tGlobalTimer
2023-03-05 14:05:30 +00:00
vaxerski dc7d783d14 Initialize priority managers before server init 2023-03-05 13:37:21 +00:00
vaxerski 8e5ee31f30 Add env to example cfgs 2023-03-05 13:37:05 +00:00
vaxerski 90c5715bc6 add env dbus opt 2023-03-05 13:15:12 +00:00
vaxerski d5093f7af0 add env keyword to cfg 2023-03-05 13:12:01 +00:00
vaxerski 4abc608bc0 update dbus env on exec-once dispatches 2023-03-05 12:53:02 +00:00
vaxerski fea2031bfe systemd: expand sysd import env script 2023-03-04 15:21:27 +00:00
vaxerski b69f40815f opengl: use a passthru shader for final wlr copy 2023-03-04 14:59:27 +00:00
scorpion-26 f678789dfd
Fix clang compilation (#1697)
void* + integral type is not allowed on standard C++ and is a GNU
extension
2023-03-04 14:02:40 +00:00
Vaxry c444099325 Mirrors: remove accidentally leftover logs 2023-03-04 01:06:16 +00:00
vaxerski 31cd104286 fix warns 2023-03-04 00:53:42 +00:00
Vaxry 1ead6c46f4 Mirrors: minor fixes 2023-03-04 00:48:22 +00:00
vaxerski fb45f8f2f9 crashReporter: remove inconsistent log from crash reports 2023-03-04 00:14:20 +00:00
vaxerski a34b747661 update wlroots dep 2023-03-03 21:28:22 +00:00
vaxerski fe007fd36a xwl: don't try to get unmanaged titles 2023-03-03 19:37:25 +00:00
Stanisław Zagórowski 141365cbc1
Fix plugin config breakage (#1687) 2023-03-03 19:32:44 +00:00
vaxerski 51ce3ddd67 layoutmgr: don't reenable layout on unchanged layout 2023-03-03 14:06:01 +00:00
vaxerski 64f35c0e31 Bezier: Fix incorrect binary search in bezier approx 2023-03-03 13:33:52 +00:00
vaxerski 9c0e2bba54 Renderer: Nuke onWindowResize{start/end} 2023-03-03 13:18:44 +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
vaxerski 66b8629964 Update the debug overlay 2023-03-03 12:15:59 +00:00
vaxerski 9e028d56c0 fix credentials of invalid surfaces 2023-03-03 11:17:43 +00:00
vaxerski 489ef7c51c add toggle group lock 2023-03-02 20:50:37 +00:00
vaxerski 34685a836a Move AnimationManager::tick() to an event loop 2023-03-02 17:30:50 +00:00
Vaxry dea71875e4 add desc: to getMonitorFromString 2023-03-02 12:04:41 +00:00
Vaxry 76fc12869d nuke cursorSI due to crashes 2023-03-01 22:12:26 +00:00