summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* input: handle mouse on decorations (#3560)MightyPlaza2023-10-291-15/+12
|
* workspacerules: Add new optional "default command" for auto-launching apps ↵Brenno Lemos2023-10-221-0/+2
| | | | on new workspaces (#3559)
* hooksystem: add callbackinfo struct and cancellable eventsVaxry2023-10-211-1/+1
|
* binds: add ignoreMods flagVaxry2023-10-171-1/+2
|
* cleanup: Replace find() with C++20 starts_with(), ends_with() and contains() ↵Philip Damianik2023-10-151-6/+6
| | | | | | | (#3572) * Replace find() with C++20 starts_with() and ends_with() * Replace find() with C++20 contains()
* groups: ensure consistency in dispatcher behavior with global group lock (#3531)memchr2023-10-111-2/+16
|
* groups: create group and groupbar config sections (#3522)MightyPlaza2023-10-101-3/+2
| | | | | | | | | | | | | | | | | | | | * config: create group section modified: src/Compositor.cpp modified: src/config/ConfigManager.cpp 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/CHyprGroupBarDecoration.cpp * separate group border and groupbar colors modified: src/Compositor.cpp modified: src/config/ConfigManager.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * add new line modified: config/ConfigManager.cpp
* dispatchers: Add option to center the cursor on the focused window when ↵Philip Damianik2023-10-101-3/+8
| | | | | | | | | | | switching workspaces (#3528) * Add option for centering on workspace when switching workspace * Add option for centering on workspace when switching workspace --------- Co-authored-by: vaxerski <43317083+vaxerski@users.noreply.github.com>
* dispatchers: fix extra monitor offset when snapping floating (#3520)MightyPlaza2023-10-081-6/+6
| | | modified: src/managers/KeybindManager.cpp
* dispatchers: support number as arg in changegroupactive (#3329)memchr2023-09-231-0/+12
|
* windowrules: add rule `group` to map windows grouped (#3279)memchr2023-09-221-64/+36
| | | | | * windows: add rule group to map windows grouped * group rule: use `invade` to force open a window in a locked group
* keybinds: implement pushactivetobottom dispacher (#3217)alaricljs2023-09-211-1/+27
| | | Co-authored-by: Leeman <lstrout@enlj.com>
* logging: implement std::formatter for some types (#3380)memchr2023-09-201-0/+1
|
* keybinds: focus last window on workspace change to another monvaxerski2023-09-181-1/+4
|
* socket2: emit lockgroups event (#3317)memchr2023-09-151-0/+2
|
* keybinds: warp cursor to correct window in moveWindowOutOfGroup (#3290)memchr2023-09-131-1/+1
|
* keybinds: avoid onWindowRemoved & onWindowCreated when group has one member ↵memchr2023-09-131-6/+10
| | | | | | (#3286) Make moveWindowOutOfGroup behave like toggleGroup on a group with single member, this prevents the window from moving around rabidly.
* keybinds: simulate movement on empty focus after workspace changevaxerski2023-09-131-1/+4
|
* input: don't refocus on switched workspace on the same monitorvaxerski2023-09-131-8/+4
|
* layout: add direction parameter to onWindowCreated and friends (#3269)memchr2023-09-131-6/+17
| | | | | | | | | | | | | | | | | | * feat(layout): add direction parameter to onWindowCreated and friends In addition: - Implement directional moveWindowOutOfGroup for `movewindoworgroup` when using dwindle layout. (augmentation of #3006) - Replace `DWindleLayout::OneTimeFocus` with `IHyprLayout::eDirection`. - Slight formatting change (clang-format). * fix: nullptr dereference in dwindle window creation * refactor: generalized eDirection * refactor: eliminate DIRECTION_NONE * Update IHyprLayout.hpp
* keybinds: unify changeworkspace dispatcher (#3250)memchr2023-09-111-59/+26
| | | | | | | | | | | * 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
* refactor: fix missed middle() call in CKeybindManagervaxerski2023-09-111-1/+1
|
* keybinds: movewindow to screen edge for floating windows (#3245)alaricljs2023-09-111-0/+18
| | | | | | | | | | | | * movewindow to screen edge for floating windows * review changes * constify vars --------- Co-authored-by: Leeman <lstrout@enlj.com> Co-authored-by: vaxerski <vaxry@vaxry.net>
* refactor: utilize 'middle()' method for window/montior center (#3253)memchr2023-09-111-12/+7
|
* feat: add a new movewindoworgroup dispatcher (#3006)memchr2023-09-101-20/+101
|
* keybinds: ignore conditions on special releasevaxerski2023-09-101-2/+3
| | | | while the previous commit ignores mods, we also need to ignore other conditions to avoid dangling presses
* keybinds: track pressed special bindsvaxerski2023-09-101-1/+14
| | | | Ignore mods only if we're processing a special bind, and only if it's pressed. Otherwise we might shadow normal key releases via ignoring mods. Fixes #3240
* keybinds: ignore mods on release of special bindsvaxerski2023-09-101-3/+6
| | | | fixes #3208
* refactor: replace lambdas with CKeybindManager::switchToWindow (#3229)memchr2023-09-101-94/+35
| | | | | | | moves `switchToWindow` lambdas to a single private method `CKeybindManager::switchToWindow()`. fixes #3227, as a by-product of the mouse motion simulation at the end of `CKeybindManager::switchToWindow()`.
* keybinds: Do not suppress pass and mouse release (#3219)shadowmax312023-09-091-2/+2
|
* internal: Remove all `.c_str()` calls when using `std::vformat` (#3198)Philip Damianik2023-09-061-11/+9
| | | Signed-off-by: pdamianik <39028343+pdamianik@users.noreply.github.com>
* internal: Formatter rework (#3186)Vaxry2023-09-061-23/+23
|
* dwindle: add proper movement for window move bindsvaxerski2023-09-041-3/+3
| | | | ditches the "movewindow = swapwindow" mechanism. Fixes #2804
* refactor: replace manual iteration of CWindow with existing methods (#3147)memchr2023-09-041-4/+1
|
* socket2: added "activespecial" IPC event (#3163)MightyPlaza2023-09-041-29/+2
|
* keybinds: fixup global conditionsvaxerski2023-09-021-2/+2
|
* globalshortcuts: allow empty appidvaxerski2023-09-021-1/+1
|
* keybinds: set special monitor id before recalcvaxerski2023-09-011-2/+2
| | | | set special workspace's monitor ID before we call recalculateMonitor in toggleSpecialWorkspace. Fixes #1151
* keybinds: suppress up event if down was consumedvaxerski2023-09-011-5/+8
| | | | Fixes #3000
* internal: Unsafe state reworks (#3114)Vaxry2023-09-011-2/+1
|
* wlr-ext-workspace: remove protocol implvaxerski2023-09-011-6/+0
| | | | 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)
* keybinds: fixup release conditionsvaxerski2023-08-301-9/+1
| | | | honestly I already forgot why the m_vHeldBack vec existed. Seems useless and annoying. Fixes #3113
* decos: groupbar mouse interaction (#3102)MightyPlaza2023-08-301-5/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* internal: allow opening empty special workspacesvaxerski2023-08-251-8/+2
| | | | Fixes point 2 of #2596
* input: improved path handling; null check return value of fopen. (#3061)memchr2023-08-251-5/+4
|
* input: add transparent bindsvaxerski2023-08-251-8/+13
| | | | | adds a new flag for binds to be transparent (non-shadowable) fixes #3058
* internal: ioctl use /dev/tty instead of fd 0 for VT_GETSTATE (#2989)memchr2023-08-161-6/+11
| | | | | | | | | | | | | * fix: ioctl use /dev/tty instead of fd 0 for VT_GETSTATE ioctl VT_GETSTATE on stdin fails if it is not console, such as when using GDM. `/dev/tty` should be used instead. - `/dev/tty` is a synonym for the controlling terminal of a process, if there is one. --------- Co-authored-by: Jan Beich <jbeich@FreeBSD.org>
* internal: Fix grouped windows not being properly focused on activation (#2925)UserSv42023-08-111-5/+0
| | | | | | | | | | | * 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
* rules: center window improvements (#2935)MightyPlaza2023-08-111-1/+5
| | | | | | | | | | | | | * center window improvements modified: src/config/ConfigManager.cpp modified: src/events/Windows.cpp modified: src/managers/KeybindManager.cpp * remove redundant line modified: src/events/Windows.cpp * simplify code modified: src/events/Windows.cpp modified: src/managers/KeybindManager.cpp
* keybinds: Keep aspect ratio (#2907)MightyPlaza2023-08-081-4/+10
|