System/Version info
```sh
Hyprland, built from branch main at commit e4d09aa3a9de9a9e71c10bf4b6800585b3db9a4c (sessionLock: focus lock on creation based on mouse position (6658)).
Date: Tue Jun 25 14:22:38 2024
Tag: v0.41.2-5-ge4d09aa3a, commits: 4891
flags: (if any)
System Information:
System name: Linux
Node name: Timmy-PC
Release: 6.9.6-zen1-1-zen
Version: #1 ZEN SMP PREEMPT_DYNAMIC Fri, 21 Jun 2024 19:48:59 +0000
GPU information:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD106 [GeForce RTX 4060 Ti 16GB] [10de:2805] (rev a1) (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/Timmy/.config/hypr/hyprland.conf: Read Succeeded
################
#############################
### ENVIRONMENT VARIABLES ###
#############################
source=~/.config/hypr/env.conf
### MONITORS ###
################
# HIDPI, but scaler < 1 results in graphical issues
# Wayland, please fix
#monitor=DP-3,2560x1440@144,auto,1
#monitor=HDMI-A-1,1920x1080,0x-1120,0.75,transform,1
#monitor=HDMI-A-1,addreserved,1120,0,0,0
# Intead of scaling up, scale down 1440p to 1080p
# At least there isn't graphical glitches
monitor=DP-3,2560x1440@144,0x0,1.3333,bitdepth,10
monitor=HDMI-A-1,1920x1080,-1080x-840,1,transform,1,bitdepth,10
monitor=HDMI-A-1,addreserved,840,0,0,0
#monitor=HDMI-A-1,modeline 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vync,-1440x-1120,1
#monitor=HDMI-A-1,modeline 241.5 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync,-1440x-1120,1
#monitor=HDMI-A-1,modeline 234.59 2560 2568 2600 2640 1440 1467 1475 1481 +hsync -vsync,-1440x-1120,1
#monitor=HDMI-A-1,modeline 229.046 2560 2568 2600 2640 1440 1467 1475 1481 +hsync -vsync,-1440x-1120,1
#monitor=HDMI-A-1,,-1440x-1120,1,transform,1,bitdepth,10
#monitor=HDMI-A-1,,-1440x-1120,1,transform,1,bitdepth,10
#monitor=HDMI-A-1,2560x1440,-1440x-1120,1,transform,1,bitdepth,10
# IF YOU CHANGE THE ADDRESERVED OFFSET, MAKE SURE YOU CHANGE THE BIND FOR
# MOVING A WINDOW TO RESERVED AREA
###################
### MY PROGRAMS ###
###################
$terminal = foot
$fileManager = pcmanfm-qt
$menu = rofi -show run
$emoji = rofimoji
$browser = floorp
#################
### AUTOSTART ###
#################
source=~/.config/hypr/startup.conf
####### XDG-related ##########
#env = XDG_CURRENT_DESKTOP,hyprland
#env = XDG_SESSION_TYPE,wayland
#env = XDG_SESSION_DESKTOP,Hyprland
#
########## Nvidia ############
#env = LIBVA_DRIVER_NAME,nvidia
#env = GBM_BACKEND,nvidia-drm # REMOVE IF FIREFOX CRASHES
#env = __GLX_VENDOR_LIBRARY_NAME,nvidia
#env = NVD_BACKEND,direct
#
######## All Theming #########
## Cursor
#env = HYPRCURSOR_THEME,Posy_Cursor_Black_h
#env = HYPRCURSOR_SIZE,32
#
## XCursor fallback if app doesn't support server-side cursors
#env = XCURSOR_PATH,~/.local/share/icons:/usr/share/icons
#env = XCURSOR_THEME,Posy_Cursor_Black
#env = XCURSOR_SIZE,32
#
## Qt Theming Variables
#env = QT_QPA_PLATFORM,wayland;xcb
#env = QT_QPA_PLATFORMTHEME,qt6ct
#env = QT_STYLE_OVERRIDE,kvantum
#
#env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
#
##env = QT_AUTO_SCREEN_SCALE_FACTOR,1
##env = QT_ENABLE_HIGHDPI_SCALING,1
#
## swww defaults
#env = SWWW_TRANSITION,random
#env = SWWW_TRANSITION_STEP,90
#
## Use hyprland notify
##env = HYPRLAND_NO_SD_NOTIFY,1
## Use zprofile instead?
#
########### Fixes ############
## Fix gamma correction for Electron applications
## See https://wiki.archlinux.org/title/Font_configuration#Text_is_blurry
#env = FREETYPE_PROPERTIES,cff:no-stem-darkening=0 autofitter:no-stem-darkening=0
#
## Force applications to use wayland
#env = GDB_BACKEND,wayland,x11,*
#env = SDL_VIDEODRIVER,wayland
#env = CLUTTER_BACKEND,wayland
#####################
### LOOK AND FEEL ###
#####################
source=~/.config/hypr/pywal.conf
general {
gaps_in = -2
gaps_out = 0
border_size = 4
col.active_border = $color9 $color10 $color11 $color12 $color13 $color14 $color15
col.inactive_border = rgba(00000000)
resize_on_border = false
allow_tearing = false
layout = dwindle
}
decoration {
rounding = 24
active_opacity = 0.95
inactive_opacity = 0.85
drop_shadow = false
col.shadow = $color8
col.shadow_inactive = rgba(00000000)
shadow_range = 12
shadow_render_power = 2
blur {
enabled = true
size = 3
passes = 1
# Turn on xray to reduce power usage
xray = false
vibrancy = 0.1696
}
}
animations {
enabled = true
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.02
bezier = linear, 0.0, 0.0, 1.0, 1.0
animation = windows, 1, 4, myBezier
animation = windowsOut, 1, 4, default, popin 80%
animation = border, 1, 10, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
# Comment out to reduce power usage
animation = borderangle, 1, 300, linear, loop
}
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
#default_split_ratio = 0.878
}
misc {
force_default_wallpaper = -1 # 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. :(
splash_font_family = syne
}
cursor {
no_warps = true
# warp_on_change_workspace = false
# enable_hyprcursor = false
}
#############
### INPUT ###
#############
input {
kb_layout = us
kb_variant =
kb_model = pc105+inet
kb_options = terminate:ctrl_alt_bksp
kb_rules =
repeat_rate = 35
repeat_delay = 300
follow_mouse = 1
mouse_refocus = false
accel_profile = flat
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
scroll_factor = 0.2
# tap-to-click = false
# drag_lock = true
disable_while_typing = true
}
}
gestures {
workspace_swipe = true
workspace_swipe_invert = false
}
####################
### KEYBINDINGSS ###
####################
source=~/.config/hypr/binds.conf
##############################
### WINDOWS AND WORKSPACES ###
##############################
# Never maximize applications
windowrulev2 = suppressevent maximize, class:.*
# Steam fix, might work?
windowrulev2 = stayfocused, title:^()$, class:^(steam)$
# Image viewer
windowrulev2 = float, class:^(org\.nomacs\.ImageLounge)$
windowrulev2 = opaque, class:^(org\.nomacs\.ImageLounge)$
windowrulev2 = move onscreen cursor -50% -50%, class:^(org\.nomacs\.ImageLounge)$
# Terminal
windowrulev2 = float, class:^($terminal|Alacritty|kitty|org.wezfurlong.wezterm|foot)$
windowrulev2 = move onscreen cursor -50% -50%, class:^($terminal|Alacritty|kitty|org.wezfurlong.wezterm|foot)$
# KeepassXC
windowrulev2 = float, class:^(org.keepassxc.KeePassXC)$
windowrulev2 = center, class:^(org.keepassxc.KeePassXC)$
# ags debug
windowrulev2 = float, class: ^(com.github.Aylur.ags)$
windowrulev2 = center, class: ^(com.github.Aylur.ags)$
# Apply to all windows unless further matched by rules below
# windowrulev2 = suppressevent maximize, class:^(.*)$
# windowrulev2 = minsize 1 1, class:^(.*)$
# windowrulev2 = move onscreen cursor -50% -50%, class:^(.*)$ # applies if floating
#############
### FIXES ###
#############
debug {
disable_logs = false
}
# Fix for non-native wayland xorg app scaling
# See https://wiki.hyprland.org/Configuring/XWayland/#hidpi-xwayland
# unscale xWayland
#xwayland {
# force_zero_scaling = true
#}
# toolkit-specific scale
# may not be needed if scaling up existing monitors
env = GDK_SCALE,1
env = GDK_DPI_SCALE,1
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_ENABLE_HIGHDPI_SCALING,1
Config File: /home/Timmy/.config/hypr/env.conf: Read Succeeded
# Environmental variables that need to be set upon starting a DE (Hyprland)
#
# This should not include variables that do not depend on a DE running. This
# means that modifications to PATH should not exist here, and should be instead
# placed under .zprofile.
# XDG Specifications
env = XDG_CURRENT_DESKTOP,hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
# Themeing
# Cursor
env = HYPRCURSOR_THEME,Posy_Cursor_Black_h
env = HYPRCURSOR_SIZE,32
# XCursor fallback if app doesn't support server-side cursors
env = XCURSOR_PATH,~/.local/share/icons:/usr/share/icons
env = XCURSOR_THEME,Posy_Cursor_Black
env = XCURSOR_SIZE,32
# Qt Theming Variables
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_QPA_PLATFORMTHEME,qt6ct:qt5ct
env = QT_STYLE_OVERRIDE,kvantum
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
#env = QT_AUTO_SCREEN_SCALE_FACTOR,1
#env = QT_ENABLE_HIGHDPI_SCALING,1
# swww defaults
env = SWWW_TRANSITION,random
env = SWWW_TRANSITION_STEP,90
Config File: /home/Timmy/.config/hypr/startup.conf: Read Succeeded
# Applications to startup on boot
# System configurations through third party tools
# For screen sharing
# See https://gist.github.com/brunoanc/2dea6ddf6974ba4e5d26c3139ffb7580#editing-the-configuration-file
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = xrandr --output DP-3 --primary # Make graphical applications treat DP-3 as primary monitor
# Utilities
exec-once = /usr/lib/mate-polkit/polkit-mate-authentication-agent-1 # Allows GUI apps to ask for elevated permissions
exec-once = hyprlock # Lock from autologin
exec-once = wl-paste --type text --watch cliphist store # Clipboard "manager"
exec-once = wl-paste --type image --watch cliphist store # Need both for text and images
# Themeing
exec-once = ~/.local/lib/mywal/theme-boot
# DE setup
exec-once = ags # one to rule them all...
# exec-once = waybar # Bar
exec-once = hypridle # Idle daemon
# exec-once = mako # Notifications
# Apps
exec-once = vesktop --start-minimized
exec-once = keepassxc
# exec-once = foot --server
Config File: /home/Timmy/.config/hypr/pywal.conf: Read Succeeded
$foreground = rgb(c1c1c1)
$color0 = rgb(0a0907)
$color1 = rgb(7f4f3c)
$color2 = rgb(5b6253)
$color3 = rgb(8e7856)
$color4 = rgb(a1764d)
$color5 = rgb(7e5170)
$color6 = rgb(8c7d7c)
$color7 = rgb(848483)
$color8 = rgb(474645)
$color9 = rgb(AA6A51)
$color10 = rgb(7A836F)
$color11 = rgb(BEA073)
$color12 = rgb(D79E67)
$color13 = rgb(A96D96)
$color14 = rgb(BBA7A6)
$color15 = rgb(c1c1c1)
Config File: /home/Timmy/.config/hypr/binds.conf: Read Succeeded
####################
### KEYBINDINGSS ###
####################
$mainMod = SUPER # Sets "Windows" key as main modifier
# Program Binds
# See hyprland.conf for program definitions
bind = $mainMod, q, exec, $terminal
bind = $mainMod SHIFT, w, killactive
bind = $mainMod SHIFT, M, exit,
bind = $mainMod, e, exec, $fileManager
bind = $mainMod, f, togglefloating,
bind = ALT, space, exec, $menu
#bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, p, exec, $browser
bind = $mainMod, period, exec, $emoji
# Window Management
bind = $mainMod, s, togglesplit, # dwindle
bind = $mainMod, u, fullscreen, 2
bind = $mainMod SHIFT, U, fullscreen, 0
bind = $mainMod SHIFT CONTROL, U, fakefullscreen
# Move focus with mainMod + arrow keys
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, 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
bind = ALT, tab, workspace, e+1
bind = $mainMod, tab, workspace, e-1
# Moving of windows is $mainMod + SHIFT
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
bind = $mainMod SHIFT, j, movetoworkspace, +1
bind = $mainMod SHIFT, k, movetoworkspace, -1
bind = $mainMod SHIFT, l, movetoworkspace, e+1
bind = $mainMod SHIFT, h, movetoworkspace, e-1
# Swap, retains layout
bind = $mainMod CONTROL, l, swapwindow, r
bind = $mainMod CONTROL, h, swapwindow, l
bind = $mainMod CONTROL, k, swapwindow, u
bind = $mainMod CONTROL, j, swapwindow, d
# Move, destructive to layout, will autotile/autoresize
# also merges and leaves groups
bind = $mainMod SHIFT CONTROL, l, movewindoworgroup, r
bind = $mainMod SHIFT CONTROL, h, movewindoworgroup, l
bind = $mainMod SHIFT CONTROL, k, movewindoworgroup, u
bind = $mainMod SHIFT CONTROL, j, movewindoworgroup, d
# Resize
$RESIZE_AMOUNT = 16
binde = $mainMod ALT, h, resizeactive, -$RESIZE_AMOUNT 0
binde = $mainMod ALT, l, resizeactive, $RESIZE_AMOUNT 0
binde = $mainMod ALT, k, resizeactive, 0 -$RESIZE_AMOUNT
binde = $mainMod ALT, j, resizeactive, 0 $RESIZE_AMOUNT
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Desktop secondary monitor, move to reserved area
bind = $mainMod SHIFT, F, setfloating,
bind = $mainMod SHIFT, F, movewindow, mon:HDMI-A-1
bind = $mainMod SHIFT, F, moveactive, exact -1076 -804
bind = $mainMod SHIFT, F, resizeactive, exact 1072 836
# For historical 1440p monitor setup, see monitors section
#bind = $mainMod SHIFT, F, moveactive, exact 4 -1092
#bind = $mainMod SHIFT, F, resizeactive, exact 1432 1112
# Force opaque on active
bind = $mainMod, O, toggleopaque
# Grouping
bind = $mainMod, g, togglegroup
bind = $mainMod SHIFT, g, lockactivegroup, toggle
bind = $mainMod SHIFT, next, movegroupwindow,
bind = $mainMod SHIFT, prior, movegroupwindow, b
bind = $mainMod, next, changegroupactive,
bind = $mainMod, prior, changegroupactive, b
# Idle and lock
bind = $mainMod CONTROL ALT, L, exec, hyprlock
# Monitor Brightness
binde = , XF86MonBrightnessUp, exec, ~/.config/hypr/scripts/backlight --inc
binde = , XF86MonBrightnessDown, exec, ~/.config/hypr/scripts/backlight --dec
# Volume and Media Control
#bind = , XF86AudioRaiseVolume, exec, pamixer -i 5
#bind = , XF86AudioLowerVolume, exec, pamixer -d 5
#bind = , XF86AudioMicMute, exec, pamixer --default-source -t
#bind = , XF86AudioMute, exec, pamixer -t
bind = , XF86AudioRaiseVolume, exec, ~/.config/hypr/scripts/volume --inc
bind = , XF86AudioLowerVolume, exec, ~/.config/hypr/scripts/volume --dec
bind = , XF86AudioMicMute, exec, ~/.config/hypr/scripts/volume --toggle-mic
bind = , XF86AudioMute, exec, ~/.config/hypr/scripts/volume --toggle
bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioPause, exec, playerctl play-pause
bind = , XF86AudioNext, exec, playerctl next
bind = , XF86AudioPrev, exec, playerctl previous
# Clipboard with rofi
#bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
bind = $mainMod, V, exec, rofi -modi clipboard:~/.local/lib/cliphist/cliphist-rofi-img -show clipboard -show-icons
# Screenshotting with Hyprshot
bind = $mainMod CONTROL, backslash, exec, hyprshot -m window
bind = $mainMod CONTROL SHIFT, backslash, exec, hyprshot -m output
bind = $mainMod, backslash, exec, hyprshot -m region
======Config-End========
```
Description
Some applications (just nomacs image viewer in my case) seem to crash Hyprland when setting the onscreen option and starting the application.
This could the a problem with my configuration, but as far as I'm aware, to apply multiple rules to a single application, you use multiple windowrule lines applied to the same application.
It was actually working fine in the past, but suddenly stopped working (I believe after a Hyprland crash?). Ever since then it has not worked. I don't believe it was due to a system or Hyprland update on my end, but I could very much be wrong.
And well, reading the hyprland crash log tails, it seems like it's in some infinite loop on constantly applying window rules to nomacs for some reason, almost as if it's re-setting itself when the rules apply, and then because it's a new class, it checks for the windowrules again, and loops, and then crashes.
How to reproduce
Install nomacs or nomacs-qt6-git. I have tested that both of these crash.
windowrulev2 = move onscreen cursor -50% -50%, class:^(org\.nomacs\.ImageLounge)$ for nomacs-qt6-git. May be under a different class for the non-qt6-git version.
Regression?
No?
System Info and Version
System/Version info
```sh Hyprland, built from branch main at commit e4d09aa3a9de9a9e71c10bf4b6800585b3db9a4c (sessionLock: focus lock on creation based on mouse position (6658)). Date: Tue Jun 25 14:22:38 2024 Tag: v0.41.2-5-ge4d09aa3a, commits: 4891 flags: (if any) System Information: System name: Linux Node name: Timmy-PC Release: 6.9.6-zen1-1-zen Version: #1 ZEN SMP PREEMPT_DYNAMIC Fri, 21 Jun 2024 19:48:59 +0000 GPU information: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD106 [GeForce RTX 4060 Ti 16GB] [10de:2805] (rev a1) (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/Timmy/.config/hypr/hyprland.conf: Read Succeeded ################ ############################# ### ENVIRONMENT VARIABLES ### ############################# source=~/.config/hypr/env.conf ### MONITORS ### ################ # HIDPI, but scaler < 1 results in graphical issues # Wayland, please fix #monitor=DP-3,2560x1440@144,auto,1 #monitor=HDMI-A-1,1920x1080,0x-1120,0.75,transform,1 #monitor=HDMI-A-1,addreserved,1120,0,0,0 # Intead of scaling up, scale down 1440p to 1080p # At least there isn't graphical glitches monitor=DP-3,2560x1440@144,0x0,1.3333,bitdepth,10 monitor=HDMI-A-1,1920x1080,-1080x-840,1,transform,1,bitdepth,10 monitor=HDMI-A-1,addreserved,840,0,0,0 #monitor=HDMI-A-1,modeline 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vync,-1440x-1120,1 #monitor=HDMI-A-1,modeline 241.5 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync,-1440x-1120,1 #monitor=HDMI-A-1,modeline 234.59 2560 2568 2600 2640 1440 1467 1475 1481 +hsync -vsync,-1440x-1120,1 #monitor=HDMI-A-1,modeline 229.046 2560 2568 2600 2640 1440 1467 1475 1481 +hsync -vsync,-1440x-1120,1 #monitor=HDMI-A-1,,-1440x-1120,1,transform,1,bitdepth,10 #monitor=HDMI-A-1,,-1440x-1120,1,transform,1,bitdepth,10 #monitor=HDMI-A-1,2560x1440,-1440x-1120,1,transform,1,bitdepth,10 # IF YOU CHANGE THE ADDRESERVED OFFSET, MAKE SURE YOU CHANGE THE BIND FOR # MOVING A WINDOW TO RESERVED AREA ################### ### MY PROGRAMS ### ################### $terminal = foot $fileManager = pcmanfm-qt $menu = rofi -show run $emoji = rofimoji $browser = floorp ################# ### AUTOSTART ### ################# source=~/.config/hypr/startup.conf ####### XDG-related ########## #env = XDG_CURRENT_DESKTOP,hyprland #env = XDG_SESSION_TYPE,wayland #env = XDG_SESSION_DESKTOP,Hyprland # ########## Nvidia ############ #env = LIBVA_DRIVER_NAME,nvidia #env = GBM_BACKEND,nvidia-drm # REMOVE IF FIREFOX CRASHES #env = __GLX_VENDOR_LIBRARY_NAME,nvidia #env = NVD_BACKEND,direct # ######## All Theming ######### ## Cursor #env = HYPRCURSOR_THEME,Posy_Cursor_Black_h #env = HYPRCURSOR_SIZE,32 # ## XCursor fallback if app doesn't support server-side cursors #env = XCURSOR_PATH,~/.local/share/icons:/usr/share/icons #env = XCURSOR_THEME,Posy_Cursor_Black #env = XCURSOR_SIZE,32 # ## Qt Theming Variables #env = QT_QPA_PLATFORM,wayland;xcb #env = QT_QPA_PLATFORMTHEME,qt6ct #env = QT_STYLE_OVERRIDE,kvantum # #env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 # ##env = QT_AUTO_SCREEN_SCALE_FACTOR,1 ##env = QT_ENABLE_HIGHDPI_SCALING,1 # ## swww defaults #env = SWWW_TRANSITION,random #env = SWWW_TRANSITION_STEP,90 # ## Use hyprland notify ##env = HYPRLAND_NO_SD_NOTIFY,1 ## Use zprofile instead? # ########### Fixes ############ ## Fix gamma correction for Electron applications ## See https://wiki.archlinux.org/title/Font_configuration#Text_is_blurry #env = FREETYPE_PROPERTIES,cff:no-stem-darkening=0 autofitter:no-stem-darkening=0 # ## Force applications to use wayland #env = GDB_BACKEND,wayland,x11,* #env = SDL_VIDEODRIVER,wayland #env = CLUTTER_BACKEND,wayland ##################### ### LOOK AND FEEL ### ##################### source=~/.config/hypr/pywal.conf general { gaps_in = -2 gaps_out = 0 border_size = 4 col.active_border = $color9 $color10 $color11 $color12 $color13 $color14 $color15 col.inactive_border = rgba(00000000) resize_on_border = false allow_tearing = false layout = dwindle } decoration { rounding = 24 active_opacity = 0.95 inactive_opacity = 0.85 drop_shadow = false col.shadow = $color8 col.shadow_inactive = rgba(00000000) shadow_range = 12 shadow_render_power = 2 blur { enabled = true size = 3 passes = 1 # Turn on xray to reduce power usage xray = false vibrancy = 0.1696 } } animations { enabled = true # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.02 bezier = linear, 0.0, 0.0, 1.0, 1.0 animation = windows, 1, 4, myBezier animation = windowsOut, 1, 4, default, popin 80% animation = border, 1, 10, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default # Comment out to reduce power usage animation = borderangle, 1, 300, linear, loop } 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 #default_split_ratio = 0.878 } misc { force_default_wallpaper = -1 # 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. :( splash_font_family = syne } cursor { no_warps = true # warp_on_change_workspace = false # enable_hyprcursor = false } ############# ### INPUT ### ############# input { kb_layout = us kb_variant = kb_model = pc105+inet kb_options = terminate:ctrl_alt_bksp kb_rules = repeat_rate = 35 repeat_delay = 300 follow_mouse = 1 mouse_refocus = false accel_profile = flat sensitivity = 0 # -1.0 - 1.0, 0 means no modification. touchpad { natural_scroll = false scroll_factor = 0.2 # tap-to-click = false # drag_lock = true disable_while_typing = true } } gestures { workspace_swipe = true workspace_swipe_invert = false } #################### ### KEYBINDINGSS ### #################### source=~/.config/hypr/binds.conf ############################## ### WINDOWS AND WORKSPACES ### ############################## # Never maximize applications windowrulev2 = suppressevent maximize, class:.* # Steam fix, might work? windowrulev2 = stayfocused, title:^()$, class:^(steam)$ # Image viewer windowrulev2 = float, class:^(org\.nomacs\.ImageLounge)$ windowrulev2 = opaque, class:^(org\.nomacs\.ImageLounge)$ windowrulev2 = move onscreen cursor -50% -50%, class:^(org\.nomacs\.ImageLounge)$ # Terminal windowrulev2 = float, class:^($terminal|Alacritty|kitty|org.wezfurlong.wezterm|foot)$ windowrulev2 = move onscreen cursor -50% -50%, class:^($terminal|Alacritty|kitty|org.wezfurlong.wezterm|foot)$ # KeepassXC windowrulev2 = float, class:^(org.keepassxc.KeePassXC)$ windowrulev2 = center, class:^(org.keepassxc.KeePassXC)$ # ags debug windowrulev2 = float, class: ^(com.github.Aylur.ags)$ windowrulev2 = center, class: ^(com.github.Aylur.ags)$ # Apply to all windows unless further matched by rules below # windowrulev2 = suppressevent maximize, class:^(.*)$ # windowrulev2 = minsize 1 1, class:^(.*)$ # windowrulev2 = move onscreen cursor -50% -50%, class:^(.*)$ # applies if floating ############# ### FIXES ### ############# debug { disable_logs = false } # Fix for non-native wayland xorg app scaling # See https://wiki.hyprland.org/Configuring/XWayland/#hidpi-xwayland # unscale xWayland #xwayland { # force_zero_scaling = true #} # toolkit-specific scale # may not be needed if scaling up existing monitors env = GDK_SCALE,1 env = GDK_DPI_SCALE,1 env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_ENABLE_HIGHDPI_SCALING,1 Config File: /home/Timmy/.config/hypr/env.conf: Read Succeeded # Environmental variables that need to be set upon starting a DE (Hyprland) # # This should not include variables that do not depend on a DE running. This # means that modifications to PATH should not exist here, and should be instead # placed under .zprofile. # XDG Specifications env = XDG_CURRENT_DESKTOP,hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland # Themeing # Cursor env = HYPRCURSOR_THEME,Posy_Cursor_Black_h env = HYPRCURSOR_SIZE,32 # XCursor fallback if app doesn't support server-side cursors env = XCURSOR_PATH,~/.local/share/icons:/usr/share/icons env = XCURSOR_THEME,Posy_Cursor_Black env = XCURSOR_SIZE,32 # Qt Theming Variables env = QT_QPA_PLATFORM,wayland;xcb env = QT_QPA_PLATFORMTHEME,qt6ct:qt5ct env = QT_STYLE_OVERRIDE,kvantum env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 #env = QT_AUTO_SCREEN_SCALE_FACTOR,1 #env = QT_ENABLE_HIGHDPI_SCALING,1 # swww defaults env = SWWW_TRANSITION,random env = SWWW_TRANSITION_STEP,90 Config File: /home/Timmy/.config/hypr/startup.conf: Read Succeeded # Applications to startup on boot # System configurations through third party tools # For screen sharing # See https://gist.github.com/brunoanc/2dea6ddf6974ba4e5d26c3139ffb7580#editing-the-configuration-file exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = xrandr --output DP-3 --primary # Make graphical applications treat DP-3 as primary monitor # Utilities exec-once = /usr/lib/mate-polkit/polkit-mate-authentication-agent-1 # Allows GUI apps to ask for elevated permissions exec-once = hyprlock # Lock from autologin exec-once = wl-paste --type text --watch cliphist store # Clipboard "manager" exec-once = wl-paste --type image --watch cliphist store # Need both for text and images # Themeing exec-once = ~/.local/lib/mywal/theme-boot # DE setup exec-once = ags # one to rule them all... # exec-once = waybar # Bar exec-once = hypridle # Idle daemon # exec-once = mako # Notifications # Apps exec-once = vesktop --start-minimized exec-once = keepassxc # exec-once = foot --server Config File: /home/Timmy/.config/hypr/pywal.conf: Read Succeeded $foreground = rgb(c1c1c1) $color0 = rgb(0a0907) $color1 = rgb(7f4f3c) $color2 = rgb(5b6253) $color3 = rgb(8e7856) $color4 = rgb(a1764d) $color5 = rgb(7e5170) $color6 = rgb(8c7d7c) $color7 = rgb(848483) $color8 = rgb(474645) $color9 = rgb(AA6A51) $color10 = rgb(7A836F) $color11 = rgb(BEA073) $color12 = rgb(D79E67) $color13 = rgb(A96D96) $color14 = rgb(BBA7A6) $color15 = rgb(c1c1c1) Config File: /home/Timmy/.config/hypr/binds.conf: Read Succeeded #################### ### KEYBINDINGSS ### #################### $mainMod = SUPER # Sets "Windows" key as main modifier # Program Binds # See hyprland.conf for program definitions bind = $mainMod, q, exec, $terminal bind = $mainMod SHIFT, w, killactive bind = $mainMod SHIFT, M, exit, bind = $mainMod, e, exec, $fileManager bind = $mainMod, f, togglefloating, bind = ALT, space, exec, $menu #bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, p, exec, $browser bind = $mainMod, period, exec, $emoji # Window Management bind = $mainMod, s, togglesplit, # dwindle bind = $mainMod, u, fullscreen, 2 bind = $mainMod SHIFT, U, fullscreen, 0 bind = $mainMod SHIFT CONTROL, U, fakefullscreen # Move focus with mainMod + arrow keys bind = $mainMod, h, movefocus, l bind = $mainMod, l, movefocus, r bind = $mainMod, k, movefocus, u bind = $mainMod, j, 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 bind = ALT, tab, workspace, e+1 bind = $mainMod, tab, workspace, e-1 # Moving of windows is $mainMod + SHIFT 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 bind = $mainMod SHIFT, j, movetoworkspace, +1 bind = $mainMod SHIFT, k, movetoworkspace, -1 bind = $mainMod SHIFT, l, movetoworkspace, e+1 bind = $mainMod SHIFT, h, movetoworkspace, e-1 # Swap, retains layout bind = $mainMod CONTROL, l, swapwindow, r bind = $mainMod CONTROL, h, swapwindow, l bind = $mainMod CONTROL, k, swapwindow, u bind = $mainMod CONTROL, j, swapwindow, d # Move, destructive to layout, will autotile/autoresize # also merges and leaves groups bind = $mainMod SHIFT CONTROL, l, movewindoworgroup, r bind = $mainMod SHIFT CONTROL, h, movewindoworgroup, l bind = $mainMod SHIFT CONTROL, k, movewindoworgroup, u bind = $mainMod SHIFT CONTROL, j, movewindoworgroup, d # Resize $RESIZE_AMOUNT = 16 binde = $mainMod ALT, h, resizeactive, -$RESIZE_AMOUNT 0 binde = $mainMod ALT, l, resizeactive, $RESIZE_AMOUNT 0 binde = $mainMod ALT, k, resizeactive, 0 -$RESIZE_AMOUNT binde = $mainMod ALT, j, resizeactive, 0 $RESIZE_AMOUNT # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Desktop secondary monitor, move to reserved area bind = $mainMod SHIFT, F, setfloating, bind = $mainMod SHIFT, F, movewindow, mon:HDMI-A-1 bind = $mainMod SHIFT, F, moveactive, exact -1076 -804 bind = $mainMod SHIFT, F, resizeactive, exact 1072 836 # For historical 1440p monitor setup, see monitors section #bind = $mainMod SHIFT, F, moveactive, exact 4 -1092 #bind = $mainMod SHIFT, F, resizeactive, exact 1432 1112 # Force opaque on active bind = $mainMod, O, toggleopaque # Grouping bind = $mainMod, g, togglegroup bind = $mainMod SHIFT, g, lockactivegroup, toggle bind = $mainMod SHIFT, next, movegroupwindow, bind = $mainMod SHIFT, prior, movegroupwindow, b bind = $mainMod, next, changegroupactive, bind = $mainMod, prior, changegroupactive, b # Idle and lock bind = $mainMod CONTROL ALT, L, exec, hyprlock # Monitor Brightness binde = , XF86MonBrightnessUp, exec, ~/.config/hypr/scripts/backlight --inc binde = , XF86MonBrightnessDown, exec, ~/.config/hypr/scripts/backlight --dec # Volume and Media Control #bind = , XF86AudioRaiseVolume, exec, pamixer -i 5 #bind = , XF86AudioLowerVolume, exec, pamixer -d 5 #bind = , XF86AudioMicMute, exec, pamixer --default-source -t #bind = , XF86AudioMute, exec, pamixer -t bind = , XF86AudioRaiseVolume, exec, ~/.config/hypr/scripts/volume --inc bind = , XF86AudioLowerVolume, exec, ~/.config/hypr/scripts/volume --dec bind = , XF86AudioMicMute, exec, ~/.config/hypr/scripts/volume --toggle-mic bind = , XF86AudioMute, exec, ~/.config/hypr/scripts/volume --toggle bind = , XF86AudioPlay, exec, playerctl play-pause bind = , XF86AudioPause, exec, playerctl play-pause bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioPrev, exec, playerctl previous # Clipboard with rofi #bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy bind = $mainMod, V, exec, rofi -modi clipboard:~/.local/lib/cliphist/cliphist-rofi-img -show clipboard -show-icons # Screenshotting with Hyprshot bind = $mainMod CONTROL, backslash, exec, hyprshot -m window bind = $mainMod CONTROL SHIFT, backslash, exec, hyprshot -m output bind = $mainMod, backslash, exec, hyprshot -m region ======Config-End======== ```Description
Some applications (just
nomacs
image viewer in my case) seem to crash Hyprland when setting theonscreen
option and starting the application.This could the a problem with my configuration, but as far as I'm aware, to apply multiple rules to a single application, you use multiple windowrule lines applied to the same application.
It was actually working fine in the past, but suddenly stopped working (I believe after a Hyprland crash?). Ever since then it has not worked. I don't believe it was due to a system or Hyprland update on my end, but I could very much be wrong.
And well, reading the hyprland crash log tails, it seems like it's in some infinite loop on constantly applying window rules to
nomacs
for some reason, almost as if it's re-setting itself when the rules apply, and then because it's a new class, it checks for the windowrules again, and loops, and then crashes.How to reproduce
nomacs
ornomacs-qt6-git
. I have tested that both of these crash.windowrulev2 = move onscreen cursor -50% -50%, class:^(org\.nomacs\.ImageLounge)$
fornomacs-qt6-git
. May be under a different class for the non-qt6-git version.Crash reports, logs, images, videos
hypr.log journal.log