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
MightyPlaza
50755d26d4
lockgroups fix ( #2636 )
2023-07-03 15:53:04 +02:00
MightyPlaza
05047f60f4
groupbar fixes ( #2630 )
...
Fixes multiple groupbar decoration issues:
- togglegroup removes fullscreen to avoid to avoid weird state
- fixes issue where a group had multiple windows with head = true
- fixes issue where merging 2 groups would cause a window to have 2 groupbar decorations
- fixes issue where merging a group with more than 1 window into another group would make windows have no groupbar decoration
- fixes issue where ungrouping windows could just move them into another group on the same workspace
---------
Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
2023-07-03 12:49:56 +02:00
fc59cef1ee
keybinds: remove old todo
2023-06-21 21:20:26 +02:00
cabdf38ce4
internal: minor style fixes
2023-06-20 21:35:54 +02:00
outfoxxed
f0e4f6622e
Implement pass binds ( #2503 )
...
* Implement pass binds
Pass binds run the associated dispatcher but do not prevent windows
from receiving the bind.
* Fix pass binds not working properly with release binds
* Rename `pass` to `nonConsuming`
2023-06-14 13:08:56 +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
memchr
bca3068db2
feat: add lockactivegroup dispatcher ( #2478 )
...
* feat: add lockactivegroup dispatcher
The `lockactivewindow` dispatcher takes `lock`, `toggle` or `unlock` as arguments. When a group is locked, no window or group can be added to it, nor can it be added to another group, but the `moveintogroup` and `moveoutofgroup` dispatches are not affected.
Implementation details:
the lock is implement via `SGroupData.locked` flag (defaults to false).
The flag is only relevant to the group head, and upon the group head's succession, the flag will be passed down to the new head. Meanwhile, the old head's flag will be set to false.
The flag is set to false when a group is dismissed.
New condition checks have been added to the dwindle and master layout to check if target group is unlocked (and if the source is also a group and unlocked) before adding windows to the target group.
* refactor: `lockactivegroup dispatcher code ordering
2023-06-09 23:44:18 +02:00
cf37922d42
input: update surface input on changeworkspace
2023-06-09 12:20:40 +02:00
staz
e4e6ddb075
Make movetoworkspace register previous workspace ( #2436 )
...
* Make movetoworkspace register previous workspace
* style: no braces + format with clang-format
2023-06-05 09:44:13 +02:00
baf81cdc5d
input: force focus on movefocus
2023-05-31 20:59:38 +02:00
vaxerski
a7cfbdb854
keybinds: fix tryMoveFocusToMonitor with special
2023-05-29 18:11:37 +02:00
Jeremy Huang
b3a86952cf
focus: fix #1675 window not scrollable after movefocus ( #2390 )
2023-05-29 09:52:36 +02:00
Jeremy Huang
8afc2f45c7
focus: make cursor follow movewindow ( #2374 )
2023-05-27 12:16:50 +02:00
vaxerski
eb1f832fce
decos: recalc on add
2023-05-23 14:26:38 +02:00
vaxerski
088b4a68e6
moveActiveToWorkspace: update last window of old ws
2023-05-22 19:44:10 +02:00
Anthony Ruhier
9ef7225532
don't swap workspaces if monitors are the same ( #2322 )
...
Return swapActiveWorkspaces early if MON1 and MON2 are equals, to avoid
buggy behavior.
2023-05-17 13:31:03 +01:00
vaxerski
824813fc6a
internal: remove check for negative exact vector args
2023-05-15 15:16:06 +01:00
vaxerski
79791c9ed4
internal: fix -Wsign-compare and -Wunused-variable warnings
2023-05-02 14:53:31 +01:00
vaxerski
45b1e6dc5e
keybinds: simulate workspace switch on focusWindow to another ws
2023-05-01 15:39:08 +01:00
vaxerski
4a1fb3e903
keybinds: fix move to named
2023-04-26 16:58:58 +01:00
mekb
fbcbe947da
Added moveCursor dispatcher ( #2100 )
...
* Added moveCursor dispatcher
* fix error message for moveCursor
2023-04-23 19:50:53 +01:00
vaxerski
b15803510c
input: improve mouse release conditions
2023-04-20 00:46:42 +01:00
vaxerski
b6a7be7663
dispatchers: fix movetoworkspace with bound ws-es
2023-04-17 16:09:46 +01:00
vaxerski
785fc8d669
dispatchers: fix missing log param
2023-04-17 13:30:37 +01:00
vaxerski
f80f4f3194
dispatchers: fix named ws-es on changeworkspace
2023-04-16 21:32:32 +01:00
vaxerski
d6c4ae71d0
damage: fix damage on moves / workspace changes
2023-04-15 16:16:33 +01:00
vaxerski
83f1616a65
keybinds: minor adjustments to workspace
2023-04-14 17:51:10 +01:00
vaxerski
7ec23254fd
workspace: don't lose monitor with refocus on no warps
2023-04-14 17:03:12 +01:00
vaxerski
c2b5dd1be6
keybinds: only warp on different monitor ws
2023-04-14 16:22:55 +01:00
vaxerski
727160f0a4
workspaces: fixup workspaces not activating on workspace switch
2023-04-14 15:28:22 +01:00
vaxerski
3f2a18a435
keybinds: remove old comment
2023-04-14 15:16:59 +01:00
vaxerski
cf7c5e4dff
misc: fix a warning
2023-04-14 15:06:22 +01:00
vaxerski
287e6c4ede
internal: workspace manip handling rework
2023-04-14 15:03:53 +01:00
vaxerski
011600ac6e
keybinds: more intelligent fallback on silent move
2023-04-14 01:42:55 +01:00
vaxerski
260ef788f5
internal: don't sanity check workspaces on internal ws calls
2023-04-13 22:21:11 +01:00
vaxerski
6131e0bef7
keybinds: refocus properly on silent move
2023-04-13 22:20:31 +01:00
Max Verevkin
c2f29be9ba
make ext_workspace_unstable impl more atomic ( #2023 )
2023-04-11 14:28:32 +01:00
vaxerski
16a034a34a
keybinds: send pass with a null keymap
2023-04-10 22:42:05 +01:00
Hilmar Wiegand
7b43f9f056
Implement window move ( #2018 )
2023-04-10 20:07:49 +01:00
vaxerski
56a307d734
Revert "keybinds: avoid sending release on suppressed press"
...
Issues with XWayland
This reverts commit a1b1480c21
.
2023-04-10 15:47:20 +01:00
Hilmar Wiegand
6a4bda60f2
Allow movefocus for empty workspaces ( #2011 )
...
* Allow switching to empty workspaces using movefocus
* Allow switching to other workspaces when no windows are focused
* Implement review feedback
* Add option to disable focus fallback
* Remove unnecessary braces
2023-04-10 14:40:03 +01:00
vaxerski
a1b1480c21
keybinds: avoid sending release on suppressed press
2023-04-10 00:56:08 +01:00
Vaxry
046ad79d11
GlobalShortcuts protocol impl ( #1886 )
...
Implements the `hyprland-global-shortcuts-v1` protocol
---------
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2023-04-09 13:48:20 +01:00
vaxerski
80650b6722
keybinds: allow MOD1 as an alias of ALT
2023-04-06 19:28:09 +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
Alexander Seiler
60527ab180
Fix some typos ( #1907 )
...
Signed-off-by: Alexander Seiler <seileralex@gmail.com>
2023-03-29 23:44:25 +01:00
6fec5bfbeb
keybinds: improve movefocus on fullscreen
2023-03-27 15:19:27 +01:00
Vaxry
788a8f7c13
internal: wrap wlr surfaces ( #1822 )
2023-03-20 15:00:58 +00:00
vaxerski
7a514f41a3
Focus: warp cursor on movewindow
2023-03-20 01:42:21 +00:00
vaxerski
2ba5238b8e
groups: fix moving between displays
2023-03-18 16:30:29 +00:00
vaxerski
606cb2832a
keybinds: remember last workspace on focusmonitor
2023-03-16 16:40:28 +00:00
vaxerski
5d44ea802a
monitors: guard output when read
2023-03-16 14:03:40 +00:00
vaxerski
e749af7b60
dispatchers: remember named workspaces in prev
2023-03-13 15:19:25 +00:00
vaxerski
bcd8fe9573
groups: add deco on moveIntoGroup
2023-03-13 00:47:57 +00:00
vaxerski
71ef1bde7e
dispatchers: disallow togglesplit on fullscreen
2023-03-11 17:58:34 +00:00
vaxerski
489ef7c51c
add toggle group lock
2023-03-02 20:50:37 +00:00
ac251d7a66
allow focus to grouped windows
2023-02-28 12:34:59 +00:00
vaxerski
18ed73f091
Added moveoutofgroup dispatcher
2023-02-26 13:55:35 +00:00
vaxerski
55b412e0f4
Added moveintogroup dispatcher
2023-02-26 13:52:11 +00:00
Ryan Dwyer
3bfaeacf7d
movefocus: Set new workspace as active when focusing new monitor ( #1640 )
2023-02-26 13:44:11 +00:00
vaxerski
1089e858b4
fix changegroupactive back
2023-02-24 17:24:51 +00:00
60e37d727d
fix cyclenext on empty focus
2023-02-23 14:27:43 +00:00
14a2de0d0e
add mouse_left _right
2023-02-23 13:55:27 +00:00
a66ef50469
added a lockgroups dispatcher
2023-02-21 12:13:41 +00:00
vaxerski
df2956b411
ignore hidden in allfloat
2023-02-19 22:14:37 +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
6e16627cbc
Added execr
2023-02-19 13:59:47 +00:00
Ching Pei Yang
c92e0c05e4
Resize on border ( #1347 )
2023-02-18 22:35:31 +00:00
nub
98c95aa34d
focusCurrentOrLast dispatcher ( #1545 )
2023-02-14 00:46:58 +00:00
vaxerski
32381fe6c4
send a 1 on unknown minimize event
2023-01-29 17:02:55 +00:00
Jan Beich
c3adc9ec56
Get active VT via ioctl instead of sysfs after e90c5c6347
( #1448 )
2023-01-29 12:44:38 +00: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
devil-may-c0de
6a56d1e4d0
change placement of isSwitchingToPrevious ( #1388 )
...
fixes #1218 , but doesn't break functionality of allow_workspace_cycles.
2023-01-16 21:04:10 +01:00
9c77415cda
damage monitor on moveactive
2023-01-13 12:31:24 +01:00
Raffaele Mancuso
c0c7c12bb9
Pin dispatcher for a specific window ( #1340 )
...
Closes #1339
2023-01-08 18:37:24 +01:00
riChar
e5dcbf73d8
Add "on" and "off" for the bind of switch ( #1342 )
2023-01-08 16:35:24 +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
461fab0f27
minor fixes for fakefullscreen
2023-01-06 13:29:49 +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
cb4f748226
added fakefullscreen
2023-01-01 16:54:13 +01:00
vaxerski
4fd90144d1
touch up the clang format and format all files
2022-12-20 02:18:47 +00:00
vaxerski
668cc93962
refocus on special move
2022-12-19 14:49:19 +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
Julian Schuler
a3b37b0191
Fix focus not changing on (empty) workspace change ( #1243 )
2022-12-17 17:28:43 +00:00
vaxerski
99ca1ad353
remember pos and size across fullscreen moves
2022-12-17 12:15:56 +00:00
Vaxry
98a4fa2b0d
Added clang format ( #1239 )
...
* clang-format stuff and format files
2022-12-16 17:17:31 +00:00
vaxerski
b89a07596e
prevent moving to invalid workspaces
2022-12-14 18:42:48 +00:00
vaxerski
c3f1dc3f52
fix minor issues with move focus and follow mouse 0
2022-12-10 15:15:40 +00:00
vaxerski
ff12a41c40
minor focus fixes with LS-es and moving windows
2022-12-09 14:03:37 +00:00
vaxerski
e1d7a13333
unset fullscreen in onWindowRemoved
2022-12-07 18:57:02 +00:00
vaxerski
993c382e74
minor fixes to special workspace behavior
2022-12-06 20:31:44 +00:00
vaxerski
3c9a7811b8
fix up moving to special workspace
2022-12-06 20:20:37 +00:00
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