summaryrefslogtreecommitdiff
path: root/src/helpers/Monitor.cpp
Commit message (Collapse)AuthorAgeFilesLines
* internal: Support libhyprcursor (#5009)Vaxry2024-03-091-4/+0
| | | | | | | woo --------- Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
* socket2: Add 5 IPC event with support for workspace ID (#5022)Aaron2024-03-081-3/+2
| | | | | | | | | | | - `moveworkspacev2`: returns workspaceID,workspaceName,monitorName - `movewindowv2`: returns windowAddress,workspaceID,workspaceName - `createWorkspacev2`: returns workspaceID,workspaceName - `destroyWorkspacev2`: returns workspaceID,workspaceName - `workspacev2`: returns workspaceID,workspaceName - Include workspaceID as a parameter in CWorkspace constructor to support `createWorkspacev2`. Resolves #4929
* layout: Fix toggling fullscreen special workspace on different monitor (#5000)thejch2024-03-071-0/+10
| | | | | | | * fix toggling fullscreen special ws on different monitor * add for dwindle * fix change regular workspace when special fullscreen
* monitor: remove commas from short description (#4970)Junxuan Liao2024-03-051-3/+3
| | | | | | | Since `hyprctl monitor` shows szShortDescription now, it needs to be sanitized. (See #2457) Also, monitor selectors are now compared against szShortDescription and szDescription to avoid re-striping the string.
* keybinds: Allow fullscreen/maximize in special workspace (#4921)thejch2024-03-041-0/+8
| | | | | | | | | | | | | | | * allow fullscreen/maximize in special workspace * remove duplicate code * hide top layer * fix special fullscreen deco * edit * fix fade top layer when toggle special * remove double render
* config: improve config value infrastructureVaxry2024-03-031-7/+9
|
* animations: Refactor AnimatedVariable (#4911)GartoxFR2024-03-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | * animation: Refactor AnimatedVariable This commit decomposes the AnimatedVariable class into a base class with the common attribute to all variable types and a templated derived type containing strongly typed info on the type being animated. Access to the typed version is perfomed using the visitor pattern. A utility is provided to build a visitor on the fly using lambdas. Adding a new type to be animated should just be a matter of adding the typed in the list defined by the ANIMABLE_TYPES macro The size of the commit is justified by the API change in the AnimatedVariable class. No more vec(), fl() or col() method but a unified value() method. * animation: Remove visitor pattern * animation: Fix coding style * animation: Fix coding style
* input: Map touch devices and tablets bound to an output (#3544)Philip Damianik2024-02-271-2/+29
| | | | | | | | | | | * Map bound touch devices and tablets to an output * Add "[[Auto]]" default option for auto detecting outputs for touch inputs * Bind new monitors to configured touch and tablet devices * Use Monitor::matchesStaticSelector in CConfigManager::getMonitorRuleFor * Use Monitor::matchesStaticSelector in CCompositor::getMonitorFromString
* Migrate the config to hyprlang (#4656)Vaxry2024-02-181-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Migrate to hyprlang * pop up errors * fix swapped args * Meson & Nix: build with hyprlang * CI: add hyprlang to setup action * add infra for plugin stuff * fix hyprctl getoption * fix hyprctl getoption with json * format * fix post parse logic * fix autogen config * oops missed exec-once * fmt * fix ws rules * require 0.3.0 for hyprlang * nix: flaek * minor type fixes * fix cfg usages in swipe * use cvarlist for ws rules * fix throw in addPluginConfigVar * Nix: update hyprlang * minor fixes * fix disableLogs * mention hyprlang docs * bump hyprlang dep in cmake * Meson: bump min hyprlang version Nix: update hyprlang * minor fix * Nix: update meson patch --------- Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
* monitor: don't damage twice (#4727)Abílio Costa2024-02-171-3/+1
| | | | | | | | | When scaled, the ring is already fully damaged, no need to add the region damage. Also moved a variable that was being declared way to far for where it is actually used. Co-authored-by: Abilio Costa <abilio.costa@criticaltechworks.com>
* socket2: `monitoraddedv2` IPC event for monitor description and id (#4646)Jacob Birkett2024-02-151-0/+7
| | | | | | | | | * add monitor szShortDescription without DRM node name * change hyprctl to use szShortDescription * add monitoraddedv2 event * add monitor ID as first param of monitoraddedv2
* keybinds: Fix focus not moving along when moving workspace (#4660)Sefa Eyeoglu2024-02-091-2/+2
| | | | | --------- Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
* input: focus window on mouse down on decoration (#4514)MightyPlaza2024-02-041-1/+1
| | | Also unifies vectorToWindow funcs
* monitor: wrap usage of wlr_output_stateVaxry2024-01-281-23/+40
| | | | | | for better control and convenience in usage. fixes #4546
* monitor: don't call output_state_finish on buffer-less state clearsVaxry2024-01-281-1/+5
| | | | ref #4546
* monitor: clear output state after usageVaxry2024-01-271-0/+6
| | | | fixes massive lag
* deps: update wlrootsVaxry2024-01-271-13/+17
| | | | drops requirement for WLR_DRM_NO_ATOMIC provided kernel >= 6.8
* keybinds: Add dispatcher for xmonad/qtile-style workspace switching (#4439)virchau132024-01-151-2/+2
| | | | | | | | | | | | | | | * feat: implement xmonad/qtile-style workspace switching Implements the focusWorkspaceOnCurrentMonitor dispatcher and function, which implements XMonad/Qtile-style workspace switching. When called, focusWorkspaceOnCurrentMonitor will: 1. Send the requested workspace to the current monitor, 2. If the workspace was previously active on a different monitor, replace it with the workspace that was previously active on the current monitor, 3. Focus the workspace on the current monitor. * fix: address PR comments
* subsurfaceTree: update surface tree protocol feedback on mapvaxerski2024-01-091-1/+1
|
* special: move floating windows along with the workspacevaxerski2023-12-261-0/+16
|
* xdgshell: bump to 6, send suspended statesvaxerski2023-12-231-0/+6
|
* Revert "xwayland: push invisible windows outside layout"Vaxry2023-12-131-26/+1
| | | | | | This reverts commit accb3d8d0b339ce83dd36704503253d874c7163b. Bad idea
* xwayland: push invisible windows outside layoutVaxry2023-12-121-1/+26
| | | | fixes some xwl focus issues with special especially.
* keybinds: Keep focus on special when switching workspaces (#4084)dranull2023-12-071-12/+12
|
* monitor: remove comma from monitor description (#3996)François Conzelmann2023-11-301-1/+5
| | | | | | this allows for monitor specific rules to work on monitor with comma on their description fixes #2457
* monitor: fix transform matrix calculations for transformedVaxry2023-11-241-1/+1
| | | | fixes #3929
* renderer: Move to a full Hyprland GL rendering pipeline (#3920)Vaxry2023-11-241-0/+9
| | | Also updates wlroots
* internal: replace INT_MAX with WORKSPACE_INVALIDVaxry2023-11-121-1/+1
|
* output-layout: fix wlroots display handling (#3718)Alessio Molinari2023-11-121-4/+4
|
* Internal: Hyprland box implementation (#3755)Vaxry2023-11-041-2/+2
| | | | | | | * box impl * remove unused operators * missed applyfromwlr
* Core: various unsafe state improvements (#3713)Vaxry2023-11-011-24/+29
| | | Fixes #3637
* monitor: ensure vrr on workspace changevaxerski2023-10-121-0/+2
|
* tearing: cleanup vars and avoid rendering before drm is readyvaxerski2023-09-301-1/+1
|
* renderer: Tearing implementation (#3441)Vaxry2023-09-281-0/+2
|
* internal: Further unsafe state improvements (#3404)Vaxry2023-09-241-1/+1
| | | Instead of allowing Hyprland to sit in a state where there are no monitors, which various parts of the code don't like, we create a fake headless output on all monitor disconnect, and then remove it when a monitor appears
* renderer: damage monitor on special workspace changevaxerski2023-09-221-0/+2
| | | | fixes #3396
* logging: implement std::formatter for some types (#3380)memchr2023-09-201-2/+1
|
* refactor: utilize 'middle()' method for window/montior center (#3253)memchr2023-09-111-0/+4
|
* internal: Fix wlr output management (#3234)Philip Damianik2023-09-101-2/+0
|
* fix: focusWindow on hidden workspace triggers another focusWindow. (#3216)memchr2023-09-081-3/+3
| | | | | | | | | | | This commit address an issue where focusing a window on a hidden workspace inadvertently triggered a second `focusWindow` call due to simulated mouse movement. This behaviour led to the incorrect focus on the window under the cursor instead of target window of method `focusWindow()`, disrupting `focusurgentorlast` and `focuscurrentorlast` dispatchers. Introduced a flag to the `CMonitor::changeWorkspace()` method to prevent simulated mouse movements. This flag is set to false by default. Changed the `focusWindow()` method accordingly to set this flag to true when the target window is in a hidden workspace.
* internal: Remove all `.c_str()` calls when using `std::vformat` (#3198)Philip Damianik2023-09-061-2/+2
| | | Signed-off-by: pdamianik <39028343+pdamianik@users.noreply.github.com>
* internal: Formatter rework (#3186)Vaxry2023-09-061-9/+9
|
* monitor: minor adjustmentsvaxerski2023-09-051-7/+1
|
* socket2: added "activespecial" IPC event (#3163)MightyPlaza2023-09-041-2/+17
|
* monitor: ignore no-op workspace changesvaxerski2023-09-031-0/+3
|
* internal: Unsafe state reworks (#3114)Vaxry2023-09-011-23/+19
|
* wlr-ext-workspace: remove protocol implvaxerski2023-09-011-22/+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)
* fix: improved focus behaviour on workspace switching for follow_mouse!=1 (#3041)memchr2023-08-211-2/+16
| | | | | | | | | | | | | | | | | * 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>
* internal: add a new monitor auto systemvaxerski2023-08-141-0/+9
|
* internal: Wrap regions (#2750)Vaxry2023-07-191-2/+4
|