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.62k stars 827 forks source link

'hyprctl dispatch dpms on' malfunction while monitor under custom resolution #7234

Open shilkazx opened 1 month ago

shilkazx commented 1 month ago

Regression?

No

System Info and Version

System/Version info ```sh 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: shilka Release: 6.10.3-zen1-2-zen Version: #1 ZEN SMP PREEMPT_DYNAMIC Tue, 06 Aug 2024 07:47:21 +0000 GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] [8086:46a6] (rev 0c) (prog-if 00 [VGA controller]) DeviceName: VGA 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/shilka/.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=HDMI-A-1, 1920x1080, 0x0, 1 monitor=eDP-1, 1680x1050, 1920x0, 1 monitor=,preferred,auto,auto ################### ### MY PROGRAMS ### ################### # See https://wiki.hyprland.org/Configuring/Keywords/ # Set programs that you use $terminal = terminator $fileManager = nemo #$menu = wofi --show drun --allow-images $menu = rofi -show ################# ### AUTOSTART ### ################# # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: exec-once = /usr/lib/mate-polkit/polkit-mate-authentication-agent-1 exec-once = swayidle -w exec-once = [workspace special magic] terminator -T dropdown -p dropdown exec-once = nm-applet & exec-once = waybar & hyprpaper exec-once = udiskie -v -t --appindicator exec-once = nutstore exec-once = blueman-applet exec-once = safeeyes exec-once = dunst exec-once = fcitx5 exec-once = copyq --start-server #exec-once = tilda --dbus ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = HYPRLAND_NO_SD_NOTIFY,1 # set cursor theme env = XCURSOR_SIZE,24 env = XCURSOR_THEME,whiteglass #env = HYPRCURSOR_SIZE,24 #env = HYPRCURSOR_THEME,whiteglass env = GDK_BACKEND,wayland,x11,* env = QT_QPA_PLATFORM,wayland;xcb env = SDL_VIDEODRIVER,wayland env = CLUTTER_BACKEND,wayland env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_QPA_PLATFORMTHEME,qt5ct #env = GTK_IM_MODULE,fcitx env = QT_IM_MODULE,fcitx env = XMODIFIERS,@im=fcitx ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hyprland.org/Configuring/Variables/ # https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 3 gaps_out = 3 border_size = 1 # 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 = false # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false #layout = dwindle layout = master } # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 5 # Change transparency of focused and unfocused windows active_opacity = 1.0 inactive_opacity = 0.5 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 animation = specialWorkspace, 1, 3, default, slidevert # animation = specialWorkspace, 1, 6, default, slidefadevert -50% } # 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 = -1 # Set to 0 or 1 to disable the anime mascot wallpapers disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( } ############# ### INPUT ### ############# # https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = numlock_by_default = true follow_mouse = 1 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. touchpad { natural_scroll = false } repeat_rate = 25 repeat_delay = 600 } # 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 ### #################### # See https://wiki.hyprland.org/Configuring/Keywords/ $mainMod = SUPER # Sets "Windows" key as main modifier # trigger when the switch is toggled, seems not work, using systemctl hook instead #bindl = , switch:[Lid Switch], exec, hyprlock # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod_CTRL, Return, exec, $terminal bind = $mainMod, C, killactive, bind = $mainMod_CTRL, Q, exit, bind = $mainMod, E, exec, $fileManager bind = $mainMod, P, exec, $menu drun bind = $mainMod, X, exec, $menu run bind = $mainMod, W, exec, $menu window #bind = $mainMod, D, pseudo, # dwindle #bind = $mainMod, S, togglesplit, # dwindle bind = $mainMod, Z, exec, hyprlock bind = , Print, exec, env XDG_CURRENT_DESKTOP=sway flameshot gui bind = ALT_CTRL, H, exec, copyq toggle bind = $mainMod, grave, exec, dunstctl history-pop bind = $mainMod SHIFT, grave, exec, dunstctl close-all bind = $mainMod_CTRL, R, exec, hyprctl reload bind = ALT_CTRL, X, exec, [float] goldendict #bind = $mainMod, F1, exec, tilda -T # Fn keys control bind = , XF86AudioMute, exec, amixer -c 0 sset Master toggle |grep \"Mono: Playback\"|awk '{print \"Sound Toggle: \"$6}'|xargs -i notify-send {} bind = , XF86AudioRaiseVolume, exec, amixer -c 0 sset Master 5%+ |grep \"Mono: Playback\"|awk '{print \"Volume Set to \"$4}'|xargs -i notify-send {} bind = , XF86AudioLowerVolume, exec, amixer -c 0 sset Master 5%- |grep \"Mono: Playback\"|awk '{print \"Volume Set to \"$4}'|xargs -i notify-send {} bind = , XF86Calculator, exec, yad --calendar bind = , XF86MonBrightnessDown, execr, echo $(( $(cat /sys/class/backlight/intel_backlight/actual_brightness) - 1500 )) > /sys/class/backlight/intel_backlight/brightness bind = , XF86MonBrightnessUp, execr, echo $(( $(cat /sys/class/backlight/intel_backlight/actual_brightness) + 1500 )) > /sys/class/backlight/intel_backlight/brightness # Move focus with mainMod + arrow keys #bind = $mainMod, H, movefocus, l #bind = $mainMod, L, movefocus, r #bind = $mainMod, J, movefocus, u #bind = $mainMod, K, movefocus, d bind = $mainMod, Tab, focuscurrentorlast bind = ALT, Tab, cyclenext bind = ALT, Tab, bringactivetotop bind = ALT_SHIFT, Tab, cyclenext, prev bind = ALT_SHIFT, Tab, bringactivetotop bind = $mainMod, Space, layoutmsg, orientationnext bind = $mainMod_SHIFT, Space, layoutmsg, orientationprev bind = $mainMod, Return, layoutmsg, swapwithmaster # Window control with submod win + R bind = $mainMod, R, submap, fastedit submap = fastedit bind = CTRL, right, resizeactive, 10 0 bind = CTRL, left, resizeactive, -10 0 bind = CTRL, up, resizeactive, 0 -10 bind= CTRL, down, resizeactive, 0 10 binde = , left, movefocus, l binde = , right, movefocus, r binde = , up, movefocus, u binde = , down, movefocus, d bind = SHIFT, left, movewindow, l bind = SHIFT, right, movewindow, r bind = SHIFT, up, movewindow, u bind = SHIFT, down, movewindow, d bind = , escape, submap, reset submap = reset # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, r~1 bind = $mainMod, 2, workspace, r~2 bind = $mainMod, 3, workspace, r~3 bind = $mainMod, 4, workspace, r~4 bind = $mainMod, 5, workspace, r~5 bind = $mainMod, 6, workspace, r~6 bind = $mainMod, 7, workspace, r~7 bind = $mainMod, 8, workspace, r~8 bind = $mainMod, 9, workspace, r~9 #bind = $mainMod, 0, workspace, r~10 # make back to last workspace logic conventional binds { workspace_back_and_forth = false allow_workspace_cycles = true } bind = $mainMod, Escape, workspace, previous # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspace, r~1 bind = $mainMod SHIFT, 2, movetoworkspace, r~2 bind = $mainMod SHIFT, 3, movetoworkspace, r~3 bind = $mainMod SHIFT, 4, movetoworkspace, r~4 bind = $mainMod SHIFT, 5, movetoworkspace, r~5 bind = $mainMod SHIFT, 6, movetoworkspace, r~6 bind = $mainMod SHIFT, 7, movetoworkspace, r~7 bind = $mainMod SHIFT, 8, movetoworkspace, r~8 bind = $mainMod SHIFT, 9, movetoworkspace, r~9 #bind = $mainMod SHIFT, 0, movetoworkspace, r~10 # Example special workspace (scratchpad) bind = $mainMod, F1, togglespecialworkspace, magic bind = $mainMod, S, togglespecialworkspace, magic bind = $mainMod SHIFT, S, movetoworkspace, special:magic # mimic minimize window bind = $mainMod, N, movetoworkspacesilent, special:min bind = $mainMod SHIFT, N, togglespecialworkspace, min bind = $mainMod SHIFT, N, movetoworkspace, +0 bind = $mainMod SHIFT, N, togglespecialworkspace, min # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 bind = $mainMod, Right, workspace, e+1 bind = $mainMod, Left, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow bind = $mainMod, F, togglefloating, bind = $mainMod_SHIFT, M, fullscreen, 0 bind = $mainMod, M, fullscreen, 1 bind = $mainMod, O, movewindow, mon:+1 bind = $mainMod, I, focusmonitor, +1 ############################## ### WINDOWS AND WORKSPACES ### ############################## # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules # workspace binding workspace=1, monitor:HDMI-A-1 workspace=2, monitor:HDMI-A-1 workspace=3, monitor:HDMI-A-1 workspace=4, monitor:HDMI-A-1 workspace=5, monitor:HDMI-A-1 workspace=6, monitor:HDMI-A-1 workspace=7, monitor:HDMI-A-1 workspace=8, monitor:HDMI-A-1 workspace=9, monitor:HDMI-A-1 workspace=11, monitor:eDP-1 workspace=12, monitor:eDP-1 workspace=13, monitor:eDP-1 workspace=14, monitor:eDP-1 workspace=15, monitor:eDP-1 workspace=16, monitor:eDP-1 workspace=17, monitor:eDP-1 workspace=18, monitor:eDP-1 workspace=19, monitor:eDP-1 workspace = special:magic, opacity 0.7 # unscale XWayland XWayland currently looks pixelated on HiDPI screens, due to Xorg’s inability to scale. xwayland { force_zero_scaling = true } # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. windowrulev2 = float, class:copyq windowrulev2 = minsize 500 300, class:copyq windowrulev2 = float,class:safeeyes windowrulev2 = float,class:GoldenDict-ng windowrulev2 = workspace special:magic, class:terminator, title:dropdown windowrulev2 = workspace 6, class:VirtualBox windowrulev2 = maximize, class:WFT, title:Wind金融终端 windowrulev2 = maximize, class:jetbrains-idea, initialtitle: #windowrulev2 = stayfocused,class:GoldenDict-ng #windowrulev2 = opaque,class:GoldenDict-ng #windowrulev2 = forceinput, class:Tilda #windowrulev2 = focusonactivate, class:Tilda #windowrulev2 = float, class:Tilda #windowrulev2 = opacity 0.8, class:Tilda # Flameshot rules ## important #windowrulev2 = nofullscreenrequest,class:flameshot windowrulev2 = float,class:flameshot #windowrulev2 = monitor 0,class:flameshot #windowrulev2 = move 0 0,class:flameshot ## visual windowrulev2 = noanim,class:flameshot windowrulev2 = noborder,class:flameshot windowrulev2 = rounding 0,class:flameshot ## disable popup window transparency #windowrulev2 = opaque,class:(),title:() #windowrulev2 = noshadow,class:(),title:() #windowrulev2 = noblur,class:(),title:() # wxwork rules windowrulev2 = noshadow,class:wxwork.exe windowrulev2 = noblur,class:wxwork.exe ======Config-End======= ```

Description

hyprctl dispatch dpms on malfunction (the monitor keep power off state) while monitor under custom resolution(i.e. for me the problematic monitor is eDP-1, and I set a custom resolution not shown in cat /sys/class/drm/card1-eDP-1/modes). Although hyprctl is malfunctioned, it still gives me the 'ok' output.

How to reproduce

Execute hyprctl dispatch dpms off problematic_monitor, and then hyprctl dispatch dpms on problematic_monitor.

Crash reports, logs, images, videos

Hyprland not crash.

vaxerski commented 1 month ago

can you update? you're on an old version. Newest is 0.42.0

shilkazx commented 1 month ago

can you update? you're on an old version. Newest is 0.42.0 Thanks for your suggestion. I'm waiting for Arch release the latest package. :-) I'll post the result after the update ASAP.

LDAP commented 1 month ago

I can reproduce on 0.42.0:

listener { timeout = 300 # 5min on-timeout = loginctl lock-session # lock screen when timeout has passed }

listener { timeout = 600 # 10min on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired. }

 - Close the lid (you do not need to wait for the timeout, its about suspend)
 - Wait until the Laptop suspended
 - Open the lid
 - The screen turns on for a second, then turns off again and cannot be enabled again. (The mouse enable dpms setting does also not help). Switching tty does also not help. For me, turning the laptop off is the only option: When hyprland is quit after pressing the power button the screen turns back on. (I am therefore not quite sure if the screen is really off or just displaying a black screen?)

 - Interestingly: When a second monitor is attached, the second monitor seems to work.

 My systeminfo:

Hyprland, built from branch main at commit 4b4971c06fb02df00a2bd20b6b47b5d0e7d799a7 (internal: introduce new types to avoid unsigned int rollover and signed int overflow (7216)). Date: Thu Aug 8 21:01:50 2024 Tag: v0.42.0-2-g4b4971c0, commits: 5071

flags: (if any)

System Information: System name: Linux Node name: T480s-arch Release: 6.10.3-arch1-2 Version: #1 SMP PREEMPT_DYNAMIC Tue, 06 Aug 2024 07:21:19 +0000

GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 620 [8086:5917] (rev 07) (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:

LDAP commented 1 month ago

I tested some more and found the following:

LDAP commented 1 month ago

ssh into the machine, you can killall Hyprland

Worked!

hyprland_freeze.log

shilkazx commented 1 month ago

can you update? you're on an old version. Newest is 0.42.0

My monitor works fine after update hyprland to 0.42.0(official archlinux package). But I don't know why the default wallpaper change to a pure black background......

vaxerski commented 1 month ago

the background install directory changed, you need to install assets again

shilkazx commented 1 month ago

I check the installation details, the 0.42 package still contain the default wallpapers as same as old version:

hyprland /usr/share/hyprland/wall0.png hyprland /usr/share/hyprland/wall1.png hyprland /usr/share/hyprland/wall2.png

And the wallpaper setting in default conf file("misc" section) is not changed either. So what's your mean by "install assets again"?

vaxerski commented 1 month ago

idk what distro this is but the paths changed from hyprland to hypr. Your distro's package maintainer might've missed that

shilkazx commented 4 weeks ago

@vaxerski Thanks a lot. I'll feed back the bug to arch package maintainer.

crimsonduelist commented 4 weeks ago

@vaxerski Thanks a lot. I'll feed back the bug to arch package maintainer.

did u solve this ? was it on the maintainer s side?

shilkazx commented 4 weeks ago

@crimsonduelist I do not have privilege to submit bug on Arch's gitlab, so I'm applying an account yesterday. Based on vaxerski's reply, it should be maintainer's little mistake.

vaxerski commented 4 weeks ago

idk what I am supposed to say here

crimsonduelist commented 4 weeks ago

idk what I am supposed to say here

Sry I came here while looking for default wallpapers not being applied I just asked cuz I dont see how the wallpaper s not being there would be the maintainer s fault - I thought hyprland itself would just look at another dir i.e. /hypr instead. Even if the /hypr should be handled from the pkgbuild I tried copy pasting the dir in /hypr/ and i still wouldnt have the default wallpapers.

vaxerski commented 4 weeks ago

asset dir changed, if the maintainer still installs them in the old location hyprland won't find them

crimsonduelist commented 3 weeks ago

hmm btw that s exactly what s happening https://gitlab.archlinux.org/archlinux/packaging/packages/hyprland/-/blob/main/PKGBUILD?ref_type=heads

`pkgname=hyprland package() {

install -Dm0644 -t "$pkgdir/usr/share/$pkgname/" assets/*.png

`

shilkazx commented 3 weeks ago

@crimsonduelist Arch's package maintainer is engaging on the wallpaper location bug, you can simply wait for the bug fix or temporarily use sym link cross over it by yourself.