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
21.74k stars 901 forks source link

Display not working after sleep and reconnecting does not work, only loads on login + hyprland-git, aquamarine-git, 0.43 stable #7694

Closed zayihu closed 1 month ago

zayihu commented 2 months ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit 312411fc7073143a8bf1fc3ba23ef403b7d15eee (windows: support size with pseudo tiled). Date: Sun Sep 8 06:46:46 2024 Tag: v0.42.0-126-g312411fc, commits: 5195 flags: (if any) System Information: System name: Linux Node name: zaiyhu-laptop Release: 6.10.7-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Thu, 29 Aug 2024 16:48:57 +0000 GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation CoffeeLake-H GT2 [UHD Graphics 630] [8086:3e9b] (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/zaiyhu/.config/hypr/hyprland.conf: Read Succeeded # ####################################################################################### # AUTOGENERATED HYPR CONFIG. # PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, # OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. # ####################################################################################### #autogenerated = 1 # remove this line to remove the warning # This is an example Hyprland config file. # Refer to the wiki for more information. # https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ # Please note not all available settings / options are set here. # For a full list, see the wiki # You can split this configuration into multiple files # Create your files separately and then link them to this file like this: # source = ~/.config/hypr/myColors.conf ################ ### MONITORS ### ################ # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=,preferred,auto,auto monitor=eDP-1, 1920x1080, auto, 1.25 #monitor=HDMI-A-3, 1920x1080, 1920x0, 1 ################### ### MY PROGRAMS ### ################### # See https://wiki.hyprland.org/Configuring/Keywords/ # Set programs that you use $terminal = kitty $fileManager = dolphin $menu = fuzzel $browser = librewolf ################# ### AUTOSTART ### ################# # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: # # exec-once = hyprlock exec-once = hyprpaper exec-once = waybar exec-once = dunst exec-once = wl-paste --type text --watch cliphist store exec-once = hypridle exec-once = kdeconnectd exec-once = /usr/lib/polkit-kde-authentication-agent-1 ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = GDK_BACKEND,wayland,x11 env = GDK_SCALE,1 env = QT_QPA_PLATFORM,wayland;xcb env = QT_QPA_PLATFORMTHEME,qt5ct xwayland { force_zero_scaling = true } env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland env = XDG_MENU_PREFIX,arch- env = AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1 ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hyprland.org/Configuring/Variables/ # https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 3 gaps_out = 6 border_size = 2 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = true # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false layout = dwindle } # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 10 # Change transparency of focused and unfocused windows active_opacity = 1.0 inactive_opacity = 1.0 drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true size = 3 passes = 1 vibrancy = 0.1696 } } # https://wiki.hyprland.org/Configuring/Variables/#animations animations { enabled = true # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default } # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more dwindle { pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # You probably want this } # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more master { new_status = master } # https://wiki.hyprland.org/Configuring/Variables/#misc misc { force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :( } ############# ### INPUT ### ############# # https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = us,ru kb_variant = kb_model = kb_options = grp:win_space_toggle kb_rules = follow_mouse = 1 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. touchpad { natural_scroll = false } } # https://wiki.hyprland.org/Configuring/Variables/#gestures gestures { workspace_swipe = false } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more device { name = epic-mouse-v1 sensitivity = -0.5 } #################### ### KEYBINDINGSS ### #################### # binde =, xf86audioraisevolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+ binde =, xf86audiolowervolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- bind =, xf86audiomute, exec, wpctl set-mute @DEFAULT_SINK@ toggle bind =, xf86audioplay, exec, playerctl play-pause bind =, xf86audiopause, exec, playerctl play-pause bind =, xf86audionext, exec, playerctl next bind =, xf86audioprev, exec, playerctl previous bind =, xf86monbrightnessup, exec, brightnessctl set 5%+ bind =, xf86monbrightnessdown, exec, brightnessctl set 5%- bind=, Print, exec, grim -g "$(slurp)" - | satty --filename - --output-filename ~/data/Pictures/satty-$(date '+%Y%m%d-%H:%M:%S').png # See https://wiki.hyprland.org/Configuring/Keywords/ $mainMod = SUPER # Sets "Windows" key as main modifier # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Q, exec, $terminal bind = $mainMod, C, killactive, bind = $mainMod, M, exit, bind = $mainMod, E, exec, $fileManager bind = $mainMod, B, exec, $browser bind = $mainMod, V, togglefloating, bind = $mainMod, R, exec, $menu bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle bind = $mainMod, L, exec, hyprlock # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d # Switch workspaces with mainMod + [0-9] 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 active window to a workspace with mainMod + SHIFT + [0-9] 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 # Example special workspace (scratchpad) bind = $mainMod, S, togglespecialworkspace, magic bind = $mainMod SHIFT, S, movetoworkspace, special:magic # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow ############################## ### WINDOWS AND WORKSPACES ### ############################## # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. #Pavucontrol windowrulev2 = size 800 500,class:(pavucontrol) windowrulev2 = float,class:(pavucontrol) ======Config-End======== ```

Description

First I had this issue #7564 with hyrplock freeze on waking up from suspend on external monitor, but its reconnection though HDMI was fixing that. But now external monitor does not work after suspend at all.

How to reproduce

  1. Install hyprland-git + aquamarine-git
  2. Turn on the laptop with plugged monitor
  3. Suspend with systemctl suspend cmd (no hyprlock or anything, just plain suspend). My monitor goes to sleep mode too.
  4. Wake up from sleep + screen of laptop loads, but not the monitor, one more flash laptop screen turns dark, when again laptop screen works, but the monitor is dark.
  5. Reconnect few times, monitor is still dark, it LED indicator indicates that it is connected.

Crash reports, logs, images, videos

No response

zayihu commented 2 months ago

Removing env = AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1 makes external monitor work on wake up from suspend, but when reconnecting still get black screen. Sometimes when reconnecting, waybar and hyprpaper crash on laptop's screen, sometimes hyprpaper only, when is no wallpaper but hyprland works, like opening apps and shortcuts. Also when external monitor is black, logout and login back does not fix it, it stays black, only thing that helps is reboot. Also then external screen is black, wake from suspend sometimes produces this on external screen: 2024-09-08-18-11-27-995

zayihu commented 2 months ago

On 0.43 version of hyprland, systemctl suspend is fully broken, second monitor is either freezing on wake up from suspend or outright black, logout and login do not help at all, reconnecting does not help it crashes hyprland background & hyprpaper on laptop screen, second monitor is black. Basically suspend is sadly not usable at all. So it is not hyprlock issue it seems, screen is freezing with hyprlock or without all the same. Below is image of first primary laptop screen after reconnecting frozen second monitor. Please tell me how I can help you fix this. Do you need anything, maybe more logs or something? Is there anything I can do? I like Hyprland very much, do not want to leave it. Maybe I can somehow help you in contributing to fixing this issue? How to make sure it is Hyprland's problem, not my config, drivers or system? image

Stanko2 commented 2 months ago

I have the same problem on 0.42.0-2. For me the external monitor is black, I cannot see even mouse cursor on it. But I can hover on it and see that focus changes normally. Sometimes turning the external monitor off and then on fixes it, but sometimes I need to re-login.

zayihu commented 2 months ago

In short: after suspend second external monitor stays black, sometimes frozen on last frame before suspend. Nothing helps, reconnecting it, relogin into Hyprland. It stays black or frozen on last frame until reboot. If you do not suspend, second external monitor works as expected.

aacebedo commented 2 months ago

Same behaviour for me.

Not that kanshi is not able to make the internal screen turns off when declared disabled in the conf. It stays on with Grey background even if not listed by hyprctl.

This was working on 0.42

zayihu commented 1 month ago

Version 0.44 fixes suspend, now it is working. HDMI reconnection seems to be working too. But if I use hyprlock it freezes on resume from suspend. I will open issue in hyprlock repo.