Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

Electron apps specifically not being interactable on a specific monitor

Open Novattz opened this issue 1 year ago • 12 comments

Regression?

Yes

System Info and Version

System/Version info
❯ hyprctl systeminfo -c
Hyprland, built from branch  at commit 918d8340afd652b011b937d29d5eea0be08467f5  (flake.lock: update).
Date: Tue Jun 25 12:06:02 2024
Tag: v0.41.2, commits: 4886

flags: (if any)


System Information:
System name: Linux
Node name: Archie
Release: 6.9.7-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Fri, 28 Jun 2024 04:32:50 +0000


GPU information:
0b:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 33 [Radeon RX 7600/7600 XT/7600M XT/7600S/7700S / PRO W7600] [1002:7480] (rev cf) (prog-if 00 [VGA controller])


os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo


plugins:

======Config-Start======


Config File: /home/tickbase/.config/hypr/hyprland.conf: Read Succeeded

#⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣤⣤⣤⣤⣶⣦⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⡿⠛⠉⠙⠛⠛⠛⠛⠻⢿⣿⣷⣤⡀⠀⠀⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠋⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⠈⢻⣿⣿⡄⠀⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⣸⣿⡏⠀⠀⠀⣠⣶⣾⣿⣿⣿⠿⠿⠿⢿⣿⣿⣿⣄⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⣿⣿⠁⠀⠀⢰⣿⣿⣯⠁⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣷⡄⠀
#⠀⠀⣀⣤⣴⣶⣶⣿⡟⠀⠀⠀⢸⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣷⠀
#⠀⢰⣿⡟⠋⠉⣹⣿⡇⠀⠀⠀⠘⣿⣿⣿⣿⣷⣦⣤⣤⣤⣶⣶⣶⣶⣿⣿⣿⠀
#⠀⢸⣿⡇⠀⠀⣿⣿⡇⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀
#⠀⣸⣿⡇⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠉⠻⠿⣿⣿⣿⣿⡿⠿⠿⠛⢻⣿⡇⠀⠀
#⠀⣿⣿⠁⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣧⠀⠀
#⠀⣿⣿⠀⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⠀⠀
#⠀⣿⣿⠀⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⠀⠀
#⠀⢿⣿⡆⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡇⠀⠀
#⠀⠸⣿⣧⡀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⠃⠀⠀
#⠀⠀⠛⢿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⣰⣿⣿⣷⣶⣶⣶⣶⠶⠀⢠⣿⣿⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⣿⣿⠀⠀⠀⠀⠀⣿⣿⡇⠀⣽⣿⡏⠁⠀⠀⢸⣿⡇⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⣿⣿⠀⠀⠀⠀⠀⣿⣿⡇⠀⢹⣿⡆⠀⠀⠀⣸⣿⠇⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⢿⣿⣦⣄⣀⣠⣴⣿⣿⠁⠀⠈⠻⣿⣿⣿⣿⡿⠏⠀⠀⠀⠀
#⠀⠀⠀⠀⠀⠀⠀⠈⠛⠻⠿⠿⠿⠿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀


$scrPath = $HOME/scripts


# █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
# █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█

#--> https://wiki.hyprland.org/Configuring/Keywords/

exec-once = waybar
exec = $scrPath/save_window.sh
exec = arrpc
exec-once = hyprlock
exec-once = openrgb
exec-once = waypaper --restore


# █▀▀ █▄░█ █░█
# ██▄ █░▀█ ▀▄▀

#--> https://wiki.hyprland.org/Configuring/Environment-variables/


env = XCURSOR_SIZE,24
env = XCURSOR_THEME,Nordzy-cursors
env = GTK_THEME,Nordic-darker
env = GTK_CURSOR,Nordzy-cursors
env = QT_QPA_PLATFORMTHEME,qt5ct
env = XDG_ICON_THEME,ePapirus-Dark
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
env = EDITOR=nvim


# █ █▄░█ █▀█ █░█ ▀█▀
# █ █░▀█ █▀▀ █▄█ ░█░


#--> https://wiki.hyprland.org/Configuring/Variables/


input {
     kb_layout = no
     follow_mouse = 1
     sensitivity = 0
     force_no_accel = 1
     accel_profile = "adaptive"
     scroll_method = "2fg"
     scroll_button = 0
     scroll_button_lock = 0
     scroll_factor = 1.0
     natural_scroll = false
     float_switch_override_focus = 1
     scroll_points = "0.1 0.2 0.3 0.5 0.7 1.0"
}

#--> https://wiki.hyprland.org/Configuring/Variables/

gestures {
  workspace_swipe = true
  workspace_swipe_fingers = 3
}


# █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀
# █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█


#--> https://wiki.hyprland.org/Configuring/Dwindle-Layout/


dwindle {
  pseudotile = yes
  preserve_split = yes
}


#--> https://wiki.hyprland.org/Configuring/Master-Layout/


master {
  new_status = master
}

xwayland {
  force_zero_scaling = true
}


# █▀ █▀█ █░█ █▀█ █▀▀ █▀▀
# ▄█ █▄█ █▄█ █▀▄ █▄▄ ██▄

source = ~/.config/hypr/animations.conf
source = ~/.config/hypr/keybindings.conf
source = ~/.config/hypr/windowrules.conf
source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/themes/theme.conf
source = ~/.config/hypr/themes/common.conf


Config File: /home/tickbase/.config/hypr/animations.conf: Read Succeeded
animations {
    enabled = yes
    bezier = wind, 0.05, 0.9, 0.1, 1.05
    bezier = winIn, 0.1, 1.1, 0.1, 1.1
    bezier = winOut, 0.3, -0.3, 0, 1
    bezier = liner, 1, 1, 1, 1
    animation = windows, 1, 6, wind, slide
    animation = windowsIn, 1, 6, winIn, slide
    animation = windowsOut, 1, 5, winOut, slide
    animation = windowsMove, 1, 5, wind, slide
    animation = border, 1, 1, liner
    animation = borderangle, 1, 30, liner, loop
    animation = fade, 1, 10, default
    animation = workspaces, 1, 5, wind
}


Config File: /home/tickbase/.config/hypr/keybindings.conf: Read Succeeded

# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█

#--> https://wiki.hyprland.org/Configuring/Keywords/
#--> https://wiki.hyprland.org/Configuring/Binds/

# Main modifier
$mainMod = SUPER

# assign apps
$terminal = alacritty
$fileManager = nemo
$menu = /home/tickbase/.config/rofi/launchers/type-1/launcher.sh -show drun
$powermenu = /home/tickbase/.config/rofi/powermenu/type-1/powermenu.sh
$print = $scrPath/screenshot.sh
$picker = $scrPath/hyprpicker.sh

# Window/Session actions
bind = $mainMod, W, killactive, # Close active window
bind = $mainMod, Delete, exit, # Kill hyprland session
bind = $mainMod, V, togglefloating, # Toggle the window between focus and float
bind = $mainMod, F, fullscreen, # Toggle the window between focus and fullscreen
bind = $mainMod, DOWN, togglesplit, # Toggle the window between focus and split
bind = $mainMod, L, exec, hyprlock # Launch lock screen
bindm = $mainMod, mouse:272, movewindow # Move windows
bindm = $mainMod, mouse:273, resizewindow # Resize windows

# Application Shortcuts
bind = $mainMod, Return, exec, $terminal # Launch Terminal
bind = $mainMod, E, exec, $fileManager # Launch file manager
bind = $mainMod, Space, exec, $menu # Launch application launcher
bind = $mainMod, P, exec, $powermenu # Launch powermenu
bind = $mainMod, C, exec, $picker # Launch color picker
bind =,Print, exec, $scrPath/screenshot.sh # Take a screenshot

# Audio Control
bindel=, XF86AudioRaiseVolume, exec, amixer set Master 5%+; $scrPath/volume_notify.sh # Increase volume
bindel=, XF86AudioLowerVolume, exec, amixer set Master 5%-; $scrPath/volume_notify.sh # Decrease volume
bindl=, XF86AudioMute, exec, amixer set Master toggle; $scrPath/volume_notify.sh # Toggle audio mute

# Media Control
bindel=, XF86AudioPrev, exec, $scrPath/media-controlv2.sh save; $scrPath/media-controlv2.sh previous # Media previous
bindel=, XF86AudioNext, exec, $scrPath/media-controlv2.sh save; $scrPath/media-controlv2.sh next # Media next
bindel=, XF86AudioPlay, exec, $scrPath/media-controlv2.sh save; $scrPath/media-controlv2.sh play-pause # Toggle between play and pause

# Switch workspaces
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10

# Move/Change window focus
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

# Move focused window to a workspace
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10

# Scroll through existing workspaces
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1


Config File: /home/tickbase/.config/hypr/windowrules.conf: Read Succeeded

# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀
# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█

#--> https://wiki.hyprland.org/Configuring/Window-Rules/


# Wallpaper waybar
windowrule = float, ^(waypaper)$
windowrule = move 900 60, ^(waypaper)$
windowrulev2 = float,class:(vpn.py),title:(WireGuard VPN Manager)
windowrulev2 = float,class:(wallpaper.py),title:(Wallpaper Selector)
windowrulev2 = float,class:(main.py),title:(Inventory Management)


Config File: /home/tickbase/.config/hypr/monitors.conf: Read Succeeded

# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█
# █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄

monitor=DP-1,1920x1080@144,1920x1080,1
monitor=DP-2,1920x1080@60,3840x1080,1
monitor=DP-3,1920x1080@60,0x1080,1
monitor=HDMI-A-1,1920x1080@60,1920x0,1


Config File: /home/tickbase/.config/hypr/themes/theme.conf: Read Succeeded
exec = gsettings set org.gnome.desktop.interface icon-theme 'ePapirus-Dark'
exec = gsettings set org.gnome.desktop.interface gtk-theme 'Nordic-darker'
exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'



general {
    gaps_in = 3
    gaps_out = 8
    border_size = 2
    col.active_border = rgba(8fbcbbff) rgba(5e81acff) 45deg
    col.inactive_border = rgba(4c566aff) rgba(3b4252ff) 45deg
    layout = dwindle
    resize_on_border = true
}

group {
    col.border_active = rgba(ca9ee6ff) rgba(f2d5cfff) 45deg
    col.border_inactive = rgba(b4befecc) rgba(6c7086cc) 45deg
    col.border_locked_active = rgba(ca9ee6ff) rgba(f2d5cfff) 45deg
    col.border_locked_inactive = rgba(b4befecc) rgba(6c7086cc) 45deg
}

decoration {
    rounding = 10
    drop_shadow = false

    blur {
        enabled = yes
        size = 6
        passes = 3
        new_optimizations = on
        ignore_opacity = on
        xray = false
    }
}

layerrule = blur,waybar


Config File: /home/tickbase/.config/hypr/themes/common.conf: Read Succeeded

# █▀▀ █░█ █▀█ █▀ █▀█ █▀█
# █▄▄ █▄█ █▀▄ ▄█ █▄█ █▀▄

exec = hyprctl setcursor Nordzy-cursors 14
exec = gsettings set org.gnome.desktop.interface cursor-theme 'Nordzy-cursors'
exec = gsettings set org.gnome.desktop.interface cursor-size 14


# █▀▀ █▀█ █▄░█ ▀█▀
# █▀░ █▄█ █░▀█ ░█

exec = gsettings set org.gnome.desktop.interface font-name 'Liga SFMono Nerd Font'
exec = gsettings set org.gnome.desktop.interface document-font-name 'Liga SFMono Nerd Font'
exec = gsettings set org.gnome.desktop.interface monospace-font-name 'Liga SFMono Nerd Font'
exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba'
exec = gsettings set org.gnome.desktop.interface font-hinting 'full'

======Config-End========

Description

I have 3 monitors and a tv as my main setup and they are configured with this layout: HDMI-A-1 DP-1 DP-2 DP-3

This has worked flawlessly for awhile and i have experienced 0 issues until maybe 2 or 3 weeks ago when electron apps in specific stopped getting focus and became completely "frozen" and it specifically happens on my left monitor. If i swap DP-1 and DP-3 and swap them back then its fine again but after some time the same issues start happening. I have 0 clue why it happens.

How to reproduce

To reproduce i have 0 clue how someone would. I assume it could be related to putting computer to sleep a couple times. Disconnecting mouse and using it wirelessly (i do this from time to time), etc. hyprland.log

Crash reports, logs, images, videos

No response

Novattz avatar Jul 20 '24 00:07 Novattz

electron on xwayland?

MightyPlaza avatar Jul 20 '24 12:07 MightyPlaza

I have the same issue, not only in Electron, but all xwayland windows.

I have two monitors; on the left side, there is a 3440x1440 monitor; on the right side, there is a 2560x1440 one. If I open an xwayland window on the left (bigger) monitor, only the right side of the window is clickable. I'm not sure, but I assume that if my cursor is in the x, y position, the xwayland window registers it in the min(x, 2560), y position. In other words, if the cursor is on the far left side (close to x=0), I cannot click the buttons there; instead, a button gets clicked on the same y coordinate, but on the middle of the right half of the monitor (around x = 2560, i didn't measure it properly).

Also note that I'm using the split-monitor-workspaces plugin; I'm not sure if it has anything to do with this.

nemarci avatar Jul 20 '24 18:07 nemarci

I think I have the same issues too. If I change one of my monitor configs like monitor = DP-3, 2560x1440@120, 0x0, 1 to monitor = DP-3, 2560x1440@120, 0x0, 1, bitdepth, 10 it seems to fix it. However, the issue would happen again after I reboot, even with the added bitdepth, 10 config, which I would then remove to temporarily fix it, and vice versa. So far, I've had this issue with VSCode and XIVLauncher

Floresce avatar Jul 21 '24 06:07 Floresce

I think I have the same issues too. If I change one of my monitor configs like monitor = DP-3, 2560x1440@120, 0x0, 1 to monitor = DP-3, 2560x1440@120, 0x0, 1, bitdepth, 10 it seems to fix it. However, the issue would happen again after I reboot, even with the added bitdepth, 10 config, which I would then remove to temporarily fix it, and vice versa. So far, I've had this issue with VSCode and XIVLauncher

I have the same issue , especitailly in wechat-universal-bwrap and r3playx, and change monitor to bitdepth, 10 also have temporarily fixed it.

emptydream-zdb avatar Jul 21 '24 13:07 emptydream-zdb

My electron apps started going crazy about 2-3 weeks ago. Really terrible rendering that made them unusable and made my system crash. I ended up removing all electron/ozone flag configs including ones set in chromium-based browsers @chrome://flags and that fixed it for me. Not sure if this is the same issue you are referring to, but it might be worth checking.

ghost avatar Jul 21 '24 20:07 ghost

Setting:

env = ELECTRON_USE_OZONE,1
env = OZONE_PLATFORM,wayland
env = GDK_BACKEND,wayland

Fixed the issues for me.

Novattz avatar Jul 22 '24 14:07 Novattz

Having same issue. Any Chromium based app/browser is unusable on the left side. I have to run two windows and keep Steam or brave on the right side of the screen in order to use them.

jas3333 avatar Jul 23 '24 02:07 jas3333

An update fixed it for me. My current hyprctl version:

Hyprland, built from branch  at commit 918d8340afd652b011b937d29d5eea0be08467f5  (flake.lock: update).
Date: Tue Jun 25 12:06:02 2024
Tag: v0.41.2, commits: 4886

flags: (if any)

nemarci avatar Jul 23 '24 19:07 nemarci

doing --ozone-platform-hint=auto (making it not run in XWayland) fixed it for me

Babakinha avatar Jul 25 '24 21:07 Babakinha

This is still happening for me with xwayland electron windows on latest git (commit 312411fc7073143a8bf1fc3ba23ef403b7d15eee). Adding --ozone-platform-hint=wayland indeed fixes it, but not all my apps work well that way.

zjeffer avatar Sep 09 '24 20:09 zjeffer

I think the issue happens if you turn off a monitor, and then turn it back on. I have two monitors, and I used to regularly turn off and turn back on one of them. I stopped doing that, and since then, I haven't seen this issue.

nemarci avatar Sep 09 '24 21:09 nemarci

Can confirm, that the way to reproduce this is to turn off and back on any monitor (I specifically do my main, middle one, on a triple setup). And it also only happens on xwayland windows (afaik), which I still have to use due to #2588. I've worked around this by ditching monitor configuration in Hyprland and using Kanshi, but it's not as convenient, especially because there is no way to prevent Hyprland from messing with the monitors on a reload. So i just kill, and run kanshi on every reload...

Edit: nevermind, Kanshi didn't solve it completely, it does still happen sometimes.. maybe in combination with suspending the PC? who knows

niraami avatar Nov 11 '24 20:11 niraami

Just for the record, I'm also having this issue. Has any fix been found? I'm unable to click on any electron apps on my rightmost monitor after it has been set from extend->mirror, then mirror->extend.

tealblu avatar Mar 06 '25 22:03 tealblu

Hello there!

This issue has been closed, as we are moving from issues to discussions. More about this can be found here and in #9854.

Firstly, please make sure this issue is still relevant in latest Hyprland. If so, we ask you to open a discussion (please read the discussion guidelines first, in the pinned post)

Thank you for your understanding!

vaxerski avatar Apr 05 '25 18:04 vaxerski