hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
19.61k stars 827 forks source link

Electron apps specifically not being interactable on a specific monitor #6933

Open Novattz opened 1 month ago

Novattz commented 1 month ago

Regression?

Yes

System Info and Version

System/Version info ```sh ❯ 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

MightyPlaza commented 1 month ago

electron on xwayland?

nemarci commented 1 month ago

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.

Floresce commented 1 month ago

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

emptydream-zdb commented 1 month ago

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.

ghost commented 1 month ago

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.

Novattz commented 1 month ago

Setting:

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

Fixed the issues for me.

jas3333 commented 1 month ago

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.

nemarci commented 1 month ago

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)
Babakinha commented 1 month ago

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

zjeffer commented 3 days ago

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.

nemarci commented 3 days ago

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.