Hyprland
Hyprland copied to clipboard
'hyprctl dispatch dpms on' malfunction while monitor under custom resolution
Regression?
No
System Info and Version
System/Version info
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.
can you update? you're on an old version. Newest is 0.42.0
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.
I can reproduce on 0.42.0:
- Have a 1440p Laptop, run it at a custom resolution
monitor=eDP-1,[email protected],0x0,1.0
bindl=, switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, 1920x1080, 0x0, 1.0"
bindl=, switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable"
Sidenote: to achieve the same look when switching to 0.42.0 the scaling factor had to be adjusted? Edit: Opened separate issue: https://github.com/hyprwm/Hyprland/issues/7250
- Use Hypridle and Hyprlock
general {
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
}
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:
I tested some more and found the following:
- The main issue is caused by the high resolution laptop screen and might be related to scaling and the lid controls:
bindl=, switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, 1920x1080, 0x0, 1.0"
bindl=, switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable"
without these, hyprland comes back fine. (I'd like to keep them to switch to an external monitor, obviously…)
- When I remove the
before_sleep_cmdin hypridle the screen turns on but shows a freezed hyprland - The back screen itself might be caused by hyprlock or loginctl.
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......
the background install directory changed, you need to install assets again
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"?
idk what distro this is but the paths changed from hyprland to hypr. Your distro's package maintainer might've missed that
@vaxerski Thanks a lot. I'll feed back the bug to arch package maintainer.
@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?
@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.
idk what I am supposed to say here
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.
asset dir changed, if the maintainer still installs them in the old location hyprland won't find them
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
`
@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.
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!