Commit graph

392 commits

Author SHA1 Message Date
vaxerski
0a302901d2 Added handling more special workspaces 2022-11-27 22:42:22 +00:00
0e6e8461eb reset m_bEmptyFocusCursorSet on workspace switch 2022-11-25 11:34:52 +00:00
dcb6a0425c override force opaque rule on keybind 2022-11-23 09:55:52 +00:00
vaxerski
be03a6186c fix invisible windows on moving fullscreen out 2022-11-20 18:50:27 +00:00
vaxerski
e427d9f622 unify setting of the active monitor 2022-11-19 16:41:41 +00:00
vaxerski
5d39223239 fix events in changeworkspace with bound ws-es 2022-11-17 21:58:22 +00:00
Jef
dbb6732743
apply some rules dynamically when state of window changes (#1020)
Co-authored-by: Jef Steelant <jef.steelant_ext@softathome.com>
2022-11-15 10:21:26 +00:00
Jef
4034aa2c60
possible crash when current workspace does not exist (#1023)
Co-authored-by: Jef Steelant <jef.steelant_ext@softathome.com>
2022-11-15 10:18:04 +00:00
fcb5037a1d guard lastwindow in circlenext 2022-11-14 12:12:13 +00:00
vaxerski
478fa7cafe Revert "Set child stdout and stderr to /dev/null (#1000)"
This reverts commit 1e5cab1ee7.

Breaks a bunch of stuff, e.g. Waybar.
2022-11-13 19:53:27 +00:00
Thomas Voss
1e5cab1ee7
Set child stdout and stderr to /dev/null (#1000)
Some scripts or utilities check to see if stdout or stderr are connected
to a TTY or not to determine certain behaviors (for example, you might
want to prompt a user for input with fzf(1) if in a terminal but tofi(1)
or wofi(1) when spawned from your WM).  Since hyprland never closes
these output streams for spawned processes, they end up just spewing
their output onto the TTY while giving the user no real way to have a
script detect if it's being run from the shell or WM.

Instead of just closing stdout and stderr though, we close them and then
proceed to reopen them but connect them to /dev/null.  This allows
scripts and processes to not fail when attempting to write, but for that
writing to simply have no effect.
2022-11-13 11:58:20 +00:00
851df11eb5 Added exec rules 2022-11-10 13:39:23 +00:00
vaxerski
aefc34b405 Minor fixes for virtual input devices 2022-11-07 22:22:13 +00:00
abbadanor
1a55fb4170
Dispatcher to center floating window (#961)
Co-authored-by: Adam Nord <adam.nord@abbgymnasiet.se>
Co-authored-by: vaxerski <vaxry@vaxry.net>
2022-11-07 12:16:30 +00:00
vaxerski
653b9ed0e4 Fix missing focusedmon event on focusmonitor dispatcher 2022-11-03 19:34:26 +00:00
vaxerski
9e227a52c0 allow cyclenext on null focus 2022-10-28 21:31:39 +01:00
vaxerski
69f1d7b360 Rework workspace rules 2022-10-24 18:36:31 +01:00
vaxerski
1d0d350fc3 fix silent + size windowrules 2022-10-24 12:03:15 +01:00
vaxerski
34cd8b125a rework focus system to be more safe and faster 2022-10-14 20:46:32 +01:00
a7bdfc06ca added bringactivetotop dispatcher 2022-10-14 14:22:31 +01:00
eb3c132fc5 set workspace name in previous 2022-10-13 15:17:16 +01:00
vaxerski
b4a8efc1a7 fix naming when workspace back and forth 2022-10-06 20:40:58 +01:00
vaxerski
9480c0fb90 fix workspace previous with multi-mon ws moves 2022-10-06 20:18:49 +01:00
vaxerski
f901c60da5 return true on vt switch keysyms to avoid printing stuff 2022-10-06 19:31:32 +01:00
vaxerski
922e978f56 reset sigmask on fork 2022-10-06 19:02:03 +01:00
Felix Dick
552c4b7361 Fix compiler warnings. 2022-10-06 13:42:52 +02:00
vaxerski
e90c5c6347 fix tty switch freeze 2022-10-05 21:41:27 +01:00
vaxerski
11ce468996 add dpms status info in hyprctl 2022-10-05 18:14:11 +01:00
0e4a894edb add dpms per output 2022-10-05 10:31:47 +01:00
71e2562a41 add desc: to monitor rules 2022-10-05 10:22:33 +01:00
Felix Dick
f825b87c2a Fix compiler warnig comparing signed and unsigned integers. 2022-10-05 02:42:51 +02:00
vaxerski
0d702b556d Add switch device handling and binds 2022-10-04 20:07:21 +01:00
vaxerski
9bbae5b8e2 ignore VT switches to current vt 2022-10-04 16:53:09 +01:00
vaxerski
719a5b4f0b use vectorToWindowIdeal in mouse binds 2022-10-04 16:08:55 +01:00
lylac
f9325b1655
focusedmon event check change
Compare PLASTWINDOW & PWINDOWTOCHANGETO m_iMonitorID's instead of PWINDOWTOCHANGETO->m_iMonitorID & g_pCompositor->m_pLastMonitor->ID
2022-10-04 18:19:14 +13:00
vaxerski
590fbf808b send a focusedmon event on focus change mon 2022-10-01 10:38:53 +01:00
vaxerski
bdd9680adf fix ipc event missing on silent movetoworkspace 2022-09-29 19:33:43 +01:00
vaxerski
9f9129e536 focusable checks in nextWindow calls 2022-09-29 16:53:31 +01:00
vaxerski
458ba3237b use goalv in movetoworkspace 2022-09-28 15:12:15 +01:00
Felix Dick
bf3f519eb7 Remove trailing whitespace. 2022-09-25 20:07:48 +02:00
fad5fc587d guard kb settings in xkb translation state 2022-09-24 21:07:18 +01:00
37f2e1ddbe don't recalc pseudo on fullscreen 2022-09-22 20:57:09 +01:00
c08218301b disallow pinning fullscreen 2022-09-22 16:48:40 +01:00
2b99dbb446 better cycling in fullscreen with pinned 2022-09-21 14:16:13 +01:00
8b11a2e1b1 minor mouse bind handling fixes 2022-09-20 22:23:02 +01:00
b4bcba935d disallow move/resize dispatchers on fullscreen windows 2022-09-20 19:58:08 +01:00
cde624ec6a fix moving between fullscreen workspaces 2022-09-20 10:16:58 +01:00
b82621c4ec fix mouse binds being stuck 2022-09-20 10:02:20 +01:00
c24b45671a mouse binds overhaul 2022-09-19 19:04:48 +01:00
696253b348 fix special workspace dispatcher logic 2022-09-19 16:01:42 +01:00
4070e1a148 fix wonky focus on movetoworkspace 2022-09-18 17:26:12 +01:00
151e013241 fix refocus on same workspace 2022-09-17 12:10:06 +01:00
vaxerski
da10022d84 fix an unholy memory safety issue 2022-09-13 20:27:07 +02:00
vaxerski
0062281092 added wsbind 2022-09-12 21:05:52 +02:00
vaxerski
d94fe3d063 added window pinning 2022-09-10 13:11:02 +02:00
vaxerski
94ca386a8c set last monitor and dont refocus in some cases (changeworkspace) 2022-09-05 21:36:22 +02:00
vaxerski
a74b8033ca added a submap IPC event 2022-09-05 13:50:52 +02:00
vaxerski
fbd2b4799d Fix some more crimes against humanity 2022-09-03 22:49:52 +02:00
vaxerski
f4add0ac6d refocus on reserved area 2022-09-03 15:35:53 +02:00
vaxerski
3c3f80c2fe simplify code and update monitor on warp 2022-09-03 11:55:19 +02:00
vaxerski
5d09bb647b fix up styling 2022-09-02 23:56:22 +02:00
vaxerski
f5697095bc unify monitor args 2022-09-02 11:53:12 +02:00
vaxerski
8581e71789 optimize calls in toggleSpecialWorkspace 2022-09-01 11:47:48 +02:00
vaxerski
bb90ff0461 sanity check on last window 2022-09-01 11:46:41 +02:00
vaxerski
f77fac9df9 warp only on another monitor in changeworkspace 2022-08-31 21:39:27 +02:00
vaxerski
dacaf72e02 remember last window on workspace 2022-08-31 17:02:49 +02:00
vaxerski
1cf46fd6a2 added closewindow dispatcher 2022-08-30 21:35:27 +02:00
vaxerski
20c050e890 set last monitor on move focus dispatcher 2022-08-29 18:50:10 +02:00
vaxerski
6865660e51 disable fullscreen and floating dispatchers on special 2022-08-29 14:55:11 +02:00
vaxerski
6c8ce734fb fix segfault in inactive sessions 2022-08-29 11:17:42 +02:00
vaxerski
c757fa54e1 Allow passing the mouse as well in pass 2022-08-28 17:01:48 +02:00
vaxerski
16f8d46391 Force wlroots to not send leave events in pass to XWayland
Massive hack, kill me
2022-08-28 16:43:15 +02:00
vaxerski
8122505825 pass press and release events separately 2022-08-27 19:29:28 +02:00
vaxerski
a648b452dd fix internal keybinds 2022-08-26 19:19:34 +02:00
vaxerski
0eb86f4b0d fix silent workspaces with back and forth 2022-08-26 00:19:57 +02:00
vaxerski
7b01c3d028 allow specifying window for toggle floating 2022-08-25 22:34:53 +02:00
vaxerski
e327b0a835 added a swapactiveworkspaces dispatcher 2022-08-25 21:25:28 +02:00
vaxerski
6c2175ed52 fixes to swapnext logic on dwindle 2022-08-24 22:01:25 +02:00
vaxerski
00ef40dda1 added swapnext and swapprev for master 2022-08-24 21:50:48 +02:00
vaxerski
9c3aeda9f9 added swapnext 2022-08-24 21:40:36 +02:00
vaxerski
09f3999b1e Unfocus first on non-internal ws changes 2022-08-23 23:34:36 +02:00
Vaxry
c4ba11729f
Merge pull request #557 from xDarksome/main
Add window{open/close/move} IPC events (#549)
2022-08-21 17:10:24 +02:00
Darksome
f7f3446882 CCompositor::moveWindowToWorkspace -> CWindow::moveToWorkspace 2022-08-21 18:01:26 +03:00
vaxerski
0f63077a07 use a custom translation state in keybinds 2022-08-21 16:43:22 +02:00
xDarksome
0f25f3aee3
Merge branch 'hyprwm:main' into main 2022-08-21 16:03:51 +03:00
Charles Taylor
9dbdd66da4 fix retrieval of monitor 2022-08-21 22:11:40 +10:00
Charles Taylor
6ec932d11f fix bug which allowed a switch to workspace ID -1.
This only happened for the workspace_back_and_forth setting, since it
was missing a check.
2022-08-21 22:05:35 +10:00
Charles Taylor
3c8c605541 fix style conflicts and config + monitor retrieval 2022-08-21 21:58:46 +10:00
Charles Taylor
9ee42836d5 add general:allow_workspace_cycles option 2022-08-21 20:47:56 +10:00
Charles Taylor
d6ff7e40cf add general:workspace_back_and_forth option 2022-08-21 20:40:06 +10:00
Charles Taylor
04f0efadc3 add switching to previous workspace 2022-08-21 20:21:21 +10:00
Darksome
37e1450a4d Impl CCompositor::moveWindowToWorkspace 2022-08-20 13:25:56 +03:00
Darksome
844c33c980 Add mapwindow, unmapwindow and movewindow IPC events 2022-08-18 22:23:28 +03:00
d2011a4ba9 added support for window selection in moving to workspace 2022-08-15 16:12:53 +02:00
b0b3a5af10 added resizewindowpixel and movewindowpixel 2022-08-15 15:59:07 +02:00
d47bfe6af1 remove unused fixXWaylandWindowsOnWorkspace 2022-08-15 00:34:39 +02:00
0e57651e2f fix segfault with cyclenext null 2022-08-11 22:56:16 +02:00
8fb4669b85 fix cyclenext on fullscreen 2022-08-11 20:21:55 +02:00
c9ed5bf77e fix cyclenext with fullscreen windows 2022-08-11 19:45:37 +02:00
8e5985d70e clean up unconstraining logic 2022-08-09 20:36:21 +02:00
9255a4d2ff ignore further keybinds on submap change 2022-08-09 19:54:06 +02:00
Mihai Fufezan
f28b71232a
unhide window on requested size change 2022-08-09 11:57:09 +03:00
b60b52c5cf fix movefocusto with null last 2022-08-08 22:46:11 +02:00
87a2ecb90e notify of all mods in pass 2022-08-08 20:31:48 +02:00
69b8568ccf better foreign toplevel protocol obedience 2022-08-06 20:57:38 +02:00
vaxerski
9a8a6317ff multiple IME fixes 2022-08-05 16:21:08 +02:00
vaxerski
996e5a9e69 disallow swapping in fullscreen 2022-08-03 15:35:28 +02:00
vaxerski
fff7534721 fullscreen new window on fullscreen movefocus 2022-08-03 15:33:55 +02:00
vaxerski
1edd66618f added general:no_cursor_warps 2022-08-01 18:50:16 +02:00
vaxerski
a1d1ec4c46 added misc:mouse_move_enables_dpms 2022-07-31 15:46:42 +02:00
vaxerski
20cba2d707 damage monitor on dpms on 2022-07-31 12:39:49 +02:00
vaxerski
2e3d42a9a9 added a dpms dispatcher 2022-07-30 23:51:13 +02:00
vaxerski
c2db3ad8ce fix minor memory issue 2022-07-30 23:04:31 +02:00
Ian Manske
ef2417fbcb Fix crash from moving current workspace to nonexistent (null) monitor. 2022-07-29 10:59:31 -04:00
vaxerski
9dd17a4be6 Added toggleopaque dispatcher 2022-07-28 12:07:41 +02:00
vaxerski
3904351678 Added layoutmsg and some master layout msgs 2022-07-28 12:00:10 +02:00
vaxerski
31a079b347 added DPMS 2022-07-27 12:32:00 +02:00
vaxerski
28046e9da0 added binds:scroll_event_delay 2022-07-26 23:34:03 +02:00
vaxerski
6f2368f809 Add a pass dispatcher 2022-07-26 17:30:30 +02:00
vaxerski
66eac124e2 add binding to mouse buttons 2022-07-26 14:50:21 +02:00
vaxerski
a0be6e19d8 fix shadowing with doesntHave 2022-07-25 16:12:06 +02:00
vaxerski
bb539f0a8d added keybind repeat flag 2022-07-25 14:42:49 +02:00
vaxerski
067e2d39f6 shadow with respect of keysym on press 2022-07-25 14:24:02 +02:00
vaxerski
3e6abaf680 fix some swipe issues 2022-07-25 14:06:49 +02:00
vaxerski
6dc8c4b310 Shadowing Keybinds fixes 2022-07-24 14:35:58 +02:00
vaxerski
8dcc3032a8 fix keybinds shadowing multibinds 2022-07-24 12:16:26 +02:00
Darksome
d5ccca4fdb Consider scroll as a 'pressed' key 2022-07-21 20:31:38 +03:00
Darksome
ce508f1cdc Fix merge 2022-07-21 19:48:34 +03:00
Darksome
eb8a1939e6 Merge upstream 2022-07-21 19:18:03 +03:00
vaxerski
189cbe9f09 added shadowing keybinds 2022-07-20 23:17:26 +02:00
vaxerski
fa2bd3b1a8 added keybinds on key up 2022-07-20 22:45:06 +02:00
vaxerski
641aaff998 minor code adjustments 2022-07-20 18:39:08 +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
8bcfda2230 update moveactivetoworkspace logic 2022-07-18 20:53:29 +02:00
Daniel Gerblick
dc1f34c5fa added PID and address-based options for focuswindow, as well as updated hyprctl clients to be consistent with logs and hyprctl activewindow 2022-07-17 19:00:12 -04:00
vaxerski
edcecae7a0 dont cycle on fullscreen 2022-07-16 19:55:40 +02:00
Darksome
08319dd1f5 Fix handleKeybinds debug log 2022-07-16 15:34:13 +03:00
Darksome
1eceae811f Try mouse wheel configuration 2022-07-15 21:54:05 +03:00
Vaxry
6708f3b133
Fixed TTY switching (#364) 2022-07-13 18:18:23 +02:00
vaxerski
c44cafda97 added cyclenext param previous 2022-07-09 18:39:41 +02:00
vaxerski
e6872bddf4 fix minor issues with floating windows and fullscreen 2022-07-08 21:52:52 +02:00
vaxerski
46306e59eb added keycode support to unbind 2022-07-08 09:32:09 +02:00
vaxerski
cd0a01f4de Added binding by keycodes 2022-07-08 09:27:17 +02:00
vaxerski
aa3bc65342 fix special status when workspace is changed 2022-07-07 19:16:16 +02:00
vaxerski
a7b595d968 allow windowrule special again 2022-07-07 19:01:42 +02:00
vaxerski
f9756d10d4 changed C++ std to C++23, use std::string::contains 2022-07-06 16:50:11 +02:00
vaxerski
239aa2cec4 fix internal workspace changes being clamped 2022-07-06 11:02:21 +02:00
vaxerski
cc8b8f595f disallow workspace special windowrule 2022-07-04 19:58:51 +02:00
vaxerski
9742ac7596 attempt to fix a specialworkspace crash 2022-07-04 19:41:55 +02:00
vaxerski
c40ef59a35 support monitor names in moving workspaces 2022-07-04 16:51:42 +02:00
Dakes
2225dca576 Add focusWindow dispatcher. Takes titles & classes
Removed focusWindowByClass function, replaced with focusWindow.
Either takes a class matching regex, or a title matching one,
beginning with "title:"
Kept the focuswindowbyclass dispatcher identifier to stay backwards
compatible with existing configs.
2022-07-01 16:24:37 +02:00
vaxerski
91d68513de fix possible segfault by realloc 2022-06-30 23:55:28 +02:00
vaxerski
328b3fa4bc mordernize pointers 2022-06-30 15:44:26 +02:00
vaxerski
b0cd90a43c refactor a bunch of layout code 2022-06-30 12:09:05 +02:00
vaxerski
3cbd69e703 added createworkspace destroyworkspace events 2022-06-28 12:39:56 +02:00
vaxerski
2cdb29aa10 fix anims with special workspace 2022-06-27 19:46:04 +02:00
vaxerski
781526dac5 added hyprctl kill 2022-06-27 13:42:20 +02:00
vaxerski
78bf88ba60 Added fullscreen rule 2022-06-26 12:12:29 +02:00
vaxerski
45898a57c8 guard windows' validity in focuswindowbyclass 2022-06-25 21:18:33 +02:00
vaxerski
3842b1641f allow move to 0 0 2022-06-25 11:20:03 +02:00
vaxerski
31dc70a41a Added exact to resizeActive and added moveactive 2022-06-23 10:14:59 +02:00
vaxerski
19d94b87ab Added keybind submaps 2022-06-22 20:23:20 +02:00
vaxerski
5541098f20 Added bindl 2022-06-21 22:47:27 +02:00
vaxerski
4a3f9ccba2 move ignore to eventmanager and fix double focus in changeworkspace 2022-06-21 22:17:30 +02:00
CcydtN
b69375a918 Fixing format issue 2022-06-17 03:25:08 +08:00
CcydtN
5fa61e5a54 Fix generating zombie process 2022-06-17 01:14:10 +08:00
Francois Rigaut
4fa69497ca fullscreen fix 2022-06-11 16:37:40 +02:00
vaxerski
3a2ac11e3e added focuswindowbyclass 2022-06-10 12:06:27 +02:00
vaxerski
90a859af27 cyclenext 2022-06-10 11:41:52 +02:00
vaxerski
c6953329d5 Added circlenext 2022-06-10 11:39:06 +02:00
vaxerski
8f0b963729 refocus after movetoworkspace 2022-06-08 15:52:38 +02:00
vaxerski
663fba76ae Added resizeactive 2022-06-06 19:32:14 +02:00
vaxerski
d743ac7bb1 added forcerendererreload and some more vt changes 2022-06-06 13:48:17 +02:00
vaxerski
19b17b590c fix moveactivetoworkspace with same workspace 2022-06-03 11:19:17 +02:00
vaxerski
0f8712ed64 fix crash in moveWorkspaceToMonitor 2022-05-31 18:47:32 +02:00
vaxerski
0055efc4f1 Added a special workspace 2022-05-31 14:01:00 +02:00
vaxerski
1f4c938c67 Added moving workspaces 2022-05-30 20:05:38 +02:00
vaxerski
1e096f6fcd fix moveactivetoworkspace 2022-05-30 15:28:23 +02:00
vaxerski
e81790f357 massive oopsie in logs 2022-05-30 14:12:36 +02:00
vaxerski
7522ade58d don't set fullscreen to maximized apps 2022-05-30 09:18:05 +02:00
vaxerski
3d7abfea92 Log keybind dispatchers only 2022-05-30 09:16:00 +02:00
vaxerski
227cbb0464 Added fullscreen types, maximize and full 2022-05-29 15:45:51 +02:00
vaxerski
3f8845a6a7 Added an exit dispatcher and no more SIGSEGV on exit 2022-05-29 00:00:47 +02:00
vaxerski
b1b24cb21a Added changegroupactive direction 2022-05-28 19:16:20 +02:00
vaxerski
e4d494aed4 fix focusmonitor with named workspaces 2022-05-28 18:38:49 +02:00
vaxerski
8145c552de post empty activewindow event on unfocus 2022-05-26 21:34:52 +02:00
vaxerski
795504dad0 Added workspaceopt dispatcher 2022-05-26 19:05:32 +02:00
vaxerski
0ae6563fef workspace set active 2022-05-25 10:25:36 +02:00
vaxerski
0ad33742e1 fix workspace event and add activewindow and activemon 2022-05-24 22:21:31 +02:00
vaxerski
ba7e3cd9a1 Major IPC Rework + Added Socket2
IPC is now done with UNIX sockets instead of TCP ones (security!), and added Socket2, see Wiki.
2022-05-24 19:42:43 +02:00
vaxerski
e924cd95fd Added movecursortocorner 2022-05-22 11:52:39 +02:00
vaxerski
5454cf8e89 Fixed mouse constraints, should be correct now 2022-05-18 14:57:08 +02:00
vaxerski
f70d0ec5aa Added movetoworkspacesilent 2022-05-18 12:18:58 +02:00
vaxerski
f09de365d5 Added workspace fade transition 2022-05-16 23:13:32 +02:00
vaxerski
50f978e518 Added togglesplit dispatcher 2022-05-16 17:37:46 +02:00
vaxerski
d4d72ae54d Workspaceanim: respect stack order 2022-05-12 13:03:02 +02:00
vaxerski
ff0f535c28 Added workspace animations 2022-05-12 11:27:31 +02:00
vaxerski
8369f2980a crucial fixes to full damage tracking 🎉
should now be mostly usable
2022-05-05 13:48:22 +02:00
vaxerski
500cbd135f moveactive monitor 2022-05-05 13:02:55 +02:00
vaxerski
8bb908a8da Added focusmonitor 2022-05-05 12:50:25 +02:00