You are not logged in.

#1 2024-11-12 21:42:16

lucki1000
Member
Registered: 2019-01-29
Posts: 16

Steam doesn't show window(s) on hyprland

Hi everyone,

I’m not sure if this is the right place to share my experience, but I thought it might be useful here. I’m not sure if anyone else has encountered this, but I’ve been using Arch with Hyprland since last year, and I had an issue when launching Steam through wofi, you only see the tray icon but no window, any window who trys to come up gets destroyed.
However, starting it via the command line worked fine.
After some investigation, I realized the issue might be related to the Steam desktop file at /usr/share/applications/steam.desktop. I looked into the file, I found these two parameters:

PrefersNonDefaultGPU=true
X-KDE-RunOnDiscreteGpu=true

After commenting these lines out, Steam was able to show up window(s) through wofi again. The problem is that every time Steam get updated, this file gets overwritten.
To solve this, I created a hook to automatically comment out these settings after each update:

[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = steam

[Action]
Description = STEAM: Disable KDE settings that break the Steam GUI on Hyprland
When = PostTransaction
Exec = /bin/bash -c "sed -i 's/PrefersNonDefaultGPU=true/#PrefersNonDefaultGPU=true/g' /usr/share/applications/steam.desktop; sed -i 's/X-KDE-RunOnDiscreteGpu=true/#X-KDE-RunOnDiscreteGpu=true/g' /usr/share/applications/steam.desktop"

Maybe this should be a note in the ArchWiki.
I hope this helps anyone who might be facing this issue!

Kind Regards
lucki1000

My specs are:
AMD Ryzen 7 7700
AMD Radeon RX 6900XT (using amdgpu not amdgpu-pro)
32GB RAM
Linux 6.11.6-zen1-1-zen
Hyprland 0.45.0

Offline

#2 2024-11-13 02:59:50

live4thamuzik
Member
Registered: 2024-02-27
Posts: 37

Re: Steam doesn't show window(s) on hyprland

Offline

#3 2024-11-13 20:48:41

lucki1000
Member
Registered: 2019-01-29
Posts: 16

Re: Steam doesn't show window(s) on hyprland

Hi,

thanks for your reply I already have those libs installed, also I think my issue is a little bit differernd.

Offline

#4 2024-11-17 19:55:08

live4thamuzik
Member
Registered: 2024-02-27
Posts: 37

Re: Steam doesn't show window(s) on hyprland

Can you share your conf files for Hyprland?

I feel like you shouldn't need to comment out those lines in ~/Desktop/steam.desktop. I use Hyprland and steam works great (provided the game doesn't have an anti-cheat software that requires windows like COD). I am using a NVIDA GPU and rofi-wayland though. AMD should be a lot easier to get working. I haven't used wofi.

Here are my configs located in ~/.config/hypr

animations.conf

#   _____    _______  .___   _____      ________________.___________    _______   
#  /  _  \   \      \ |   | /     \    /  _  \__    ___/|   \_____  \   \      \  
# /  /_\  \  /   |   \|   |/  \ /  \  /  /_\  \|    |   |   |/   |   \  /   |   \ 
#/    |    \/    |    \   /    Y    \/    |    \    |   |   /    |    \/    |    \
#\____|__  /\____|__  /___\____|__  /\____|__  /____|   |___\_______  /\____|__  /
#        \/         \/            \/         \/                     \/         \/ 

# See https://wiki.hyprland.org/Configuring/Animations/

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
}

hyprland.conf

#   _____   ________    _______  .______________________ __________ 
#  /     \  \_____  \   \      \ |   \__    ___/\_____  \\______   \
# /  \ /  \  /   |   \  /   |   \|   | |    |    /   |   \|       _/
#/    Y    \/    |    \/    |    \   | |    |   /    |    \    |   \
#\____|__  /\_______  /\____|__  /___| |____|   \_______  /____|_  /
#        \/         \/         \/                       \/       \/ 

$scrPath = $HOME/.local/share/bin # set scripts path


# See https://wiki.hyprland.org/Configuring/Monitors/

#monitor = ,preferred,auto,auto
monitor=eDP-1,2560x1600@165,0x0,1
monitor=HDMI-A-1,2560x1440,2560x0,1.33

#.____       _____   ____ __________  _________   ___ ___  
#|    |     /  _  \ |    |   \      \ \_   ___ \ /   |   \ 
#|    |    /  /_\  \|    |   /   |   \/    \  \//    ~    \
#|    |___/    |    \    |  /    |    \     \___\    Y    /
#|_______ \____|__  /______/\____|__  /\______  /\___|_  / 
#        \/       \/                \/        \/       \/  

# See https://wiki.hyprland.org/Configuring/Keywords/

exec-once = $scrPath/resetxdgportal.sh # reset XDPH for screenshare
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH
exec-once = dbus-update-activation-environment --systemd --all # for XDPH
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH
exec-once = $scrPath/polkitkdeauth.sh # authentication dialogue for GUI apps
exec-once = waybar # launch the system bar
exec-once = blueman-applet # systray app for Bluetooth
exec-once = udiskie --no-automount --smart-tray # front-end that allows to manage removable media
exec-once = nm-applet --indicator # systray app for Network/Wifi
exec-once = dunst # start notification demon
exec-once = wl-paste --type text --watch cliphist store # clipboard store text data
exec-once = wl-paste --type image --watch cliphist store # clipboard store image data
exec-once = $scrPath/swwwallpaper.sh # start wallpaper daemon
exec-once = $scrPath/batterynotify.sh # battery notification

#___________ ___________   ____
#\_   _____/ \      \   \ /   /
# |    __)_  /   |   \   Y   / 
# |        \/    |    \     /  
#/_______  /\____|__  /\___/   
#        \/         \/         

# See https://wiki.hyprland.org/Configuring/Environment-variables/

env = PATH,$PATH:$scrPath
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_QPA_PLATFORMTHEME,qt6ct
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = MOZ_ENABLE_WAYLAND,1
env = GDK_SCALE,1

#.___ _______ __________ ____ ______________
#|   |\      \\______   \    |   \__    ___/
#|   |/   |   \|     ___/    |   / |    |   
#|   /    |    \    |   |    |  /  |    |   
#|___\____|__  /____|   |______/   |____|   
#            \/                             

# See https://wiki.hyprland.org/Configuring/Variables/

input {
    kb_layout = us
    follow_mouse = 1

    touchpad {
        disable_while_typing = 1
        natural_scroll = yes
    }

    sensitivity = 0
    force_no_accel = 1
}

input {
    # Enable NumLock by default
    numlock_by_default = true
}

# See https://wiki.hyprland.org/Configuring/Keywords/#executing

device {
    name = epic mouse V1
    sensitivity = -0.5
}

device {
    name = basilisk-x-hyperspeed-mouse
    sensitivity = -0.5
    natural_scroll = yes
}

# See https://wiki.hyprland.org/Configuring/Variables/

gestures {
    workspace_swipe = true
    workspace_swipe_fingers = 3
}

#.____       _____ _____.___.________   ____ _______________________
#|    |     /  _  \\__  |   |\_____  \ |    |   \__    ___/   _____/
#|    |    /  /_\  \/   |   | /   |   \|    |   / |    |  \_____  \ 
#|    |___/    |    \____   |/    |    \    |  /  |    |  /        \
#|_______ \____|__  / ______|\_______  /______/   |____| /_______  /
#        \/       \/\/               \/                          \/ 

# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/

dwindle {
    pseudotile = yes
    preserve_split = yes
}

# See https://wiki.hyprland.org/Configuring/Master-Layout/

#master {
#    new_is_master = true
#}

#   _____  .___  __________________  
#  /     \ |   |/   _____/\_   ___ \ 
# /  \ /  \|   |\_____  \ /    \  \/ 
#/    Y    \   |/        \\     \____
#\____|__  /___/_______  / \______  /
#        \/            \/         \/ 

# See https://wiki.hyprland.org/Configuring/Variables/

misc {
    vrr = 0
    disable_hyprland_logo = true
    disable_splash_rendering = true
    force_default_wallpaper = 0
}

xwayland {
    force_zero_scaling = true
}

#  _________________   ____ ______________________ ___________
# /   _____/\_____  \ |    |   \______   \_   ___ \\_   _____/
# \_____  \  /   |   \|    |   /|       _/    \  \/ |    __)_ 
# /        \/    |    \    |  / |    |   \     \____|        \
#/_______  /\_______  /______/  |____|_  /\______  /_______  /
#        \/         \/                 \/        \/        \/ 

source = ~/.config/hypr/animations.conf
source = ~/.config/hypr/keybindings.conf
source = ~/.config/hypr/windowrules.conf
source = ~/.config/hypr/themes/common.conf # shared theme settings
# hyprlang noerror true
source = ~/.config/hypr/themes/theme.conf # theme specific settings
# hyprlang noerror false
source = ~/.config/hypr/themes/colors.conf # wallbash color override
source = ~/.config/hypr/monitors.conf # initially empty, to be configured by user and remains static
source = ~/.config/hypr/userprefs.conf # initially empty, to be configured by user and remains static

# Note: as userprefs.conf is sourced at the end, settings configured in this file will override the defaults

monitors.conf

#   _____   ________    _______  .______________________ __________  _________
#  /     \  \_____  \   \      \ |   \__    ___/\_____  \\______   \/   _____/
# /  \ /  \  /   |   \  /   |   \|   | |    |    /   |   \|       _/\_____  \ 
#/    Y    \/    |    \/    |    \   | |    |   /    |    \    |   \/        \
#\____|__  /\_______  /\____|__  /___| |____|   \_______  /____|_  /_______  /
#        \/         \/         \/                       \/       \/        \/ 

# Set your monitor configuration here
# See https://wiki.hyprland.org/Configuring/Monitors/
# For a sample file, please refer to https://github.com/prasanthrangan/hyprdots/blob/main/Configs/.config/hypr/monitors.t2
#

monitor = eDP-2, 2560x1600@165, 0x0, 1
monitor = HDMI-A-1, 2560x1440@120, 2560x0, 1.33

#   _____  .___  __________________  
#  /     \ |   |/   _____/\_   ___ \ 
# /  \ /  \|   |\_____  \ /    \  \/ 
#/    Y    \   |/        \\     \____
#\____|__  /___/_______  / \______  /
#        \/            \/         \/ 

# See https://wiki.hyprland.org/Configuring/Variables/

misc {
    vrr = 0
} 

nvidia.conf

# ___________   ____.___________  .___   _____   
# \      \   \ /   /|   \______ \ |   | /  _  \  
# /   |   \   Y   / |   ||    |  \|   |/  /_\  \ 
#/    |    \     /  |   ||    `   \   /    |    \
#\____|__  /\___/   |___/_______  /___\____|__  /
#        \/                     \/            \/ 

# See https://wiki.hyprland.org/Nvidia/

env = LIBVA_DRIVER_NAME,nvidia
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = __GL_VRR_ALLOWED,1
env = WLR_NO_HARDWARE_CURSORS,1
env = WLR_DRM_NO_ATOMIC,1
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia

windowrules.conf

# __      __.___ _______  ________   ________  __      __  __________ ____ ___.____     ___________ _________
#/  \    /  \   |\      \ \______ \  \_____  \/  \    /  \ \______   \    |   \    |    \_   _____//   _____/
#\   \/\/   /   |/   |   \ |    |  \  /   |   \   \/\/   /  |       _/    |   /    |     |    __)_ \_____  \ 
# \        /|   /    |    \|    `   \/    |    \        /   |    |   \    |  /|    |___  |        \/        \
#  \__/\  / |___\____|__  /_______  /\_______  /\__/\  /    |____|_  /______/ |_______ \/_______  /_______  /
#       \/              \/        \/         \/      \/            \/                 \/        \/        \/ 

# See https://wiki.hyprland.org/Configuring/Window-Rules/

windowrulev2 = opacity 0.90 0.90,class:^(firefox)$
windowrulev2 = opacity 0.90 0.90,class:^(Brave-browser)$
windowrulev2 = opacity 0.80 0.80,class:^(code-oss)$
windowrulev2 = opacity 0.80 0.80,class:^([Cc]ode)$
windowrulev2 = opacity 0.80 0.80,class:^(code-url-handler)$
windowrulev2 = opacity 0.80 0.80,class:^(code-insiders-url-handler)$
windowrulev2 = opacity 0.80 0.80,class:^(kitty)$
windowrulev2 = opacity 0.80 0.80,class:^(org.kde.dolphin)$
windowrulev2 = opacity 0.80 0.80,class:^(org.kde.ark)$
windowrulev2 = opacity 0.80 0.80,class:^(nwg-look)$
windowrulev2 = opacity 0.80 0.80,class:^(qt5ct)$
windowrulev2 = opacity 0.80 0.80,class:^(qt6ct)$
windowrulev2 = opacity 0.80 0.80,class:^(kvantummanager)$
windowrulev2 = opacity 0.80 0.70,class:^(org.pulseaudio.pavucontrol)$
windowrulev2 = opacity 0.80 0.70,class:^(blueman-manager)$
windowrulev2 = opacity 0.80 0.70,class:^(nm-applet)$
windowrulev2 = opacity 0.80 0.70,class:^(nm-connection-editor)$
windowrulev2 = opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$
windowrulev2 = opacity 0.80 0.70,class:^(polkit-gnome-authentication-agent-1)$
windowrulev2 = opacity 0.80 0.70,class:^(org.freedesktop.impl.portal.desktop.gtk)$
windowrulev2 = opacity 0.80 0.70,class:^(org.freedesktop.impl.portal.desktop.hyprland)$
windowrulev2 = opacity 0.70 0.70,class:^([Ss]team)$
windowrulev2 = opacity 0.70 0.70,class:^(steamwebhelper)$
windowrulev2 = opacity 0.70 0.70,class:^([Ss]potify)$
windowrulev2 = opacity 0.70 0.70,initialTitle:^(Spotify Free)$
windowrulev2 = opacity 0.70 0.70,initialTitle:^(Spotify Premium)$

windowrulev2 = opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ # Cartridges-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(com.obsproject.Studio)$ # Obs-Qt
windowrulev2 = opacity 0.80 0.80,class:^(gnome-boxes)$ # Boxes-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(vesktop)$ # Vesktop
windowrulev2 = opacity 0.80 0.80,class:^(discord)$ # Discord-Electron
windowrulev2 = opacity 0.80 0.80,class:^(WebCord)$ # WebCord-Electron
windowrulev2 = opacity 0.80 0.80,class:^(ArmCord)$ # ArmCord-Electron
windowrulev2 = opacity 0.80 0.80,class:^(app.drey.Warp)$ # Warp-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt
windowrulev2 = opacity 0.80 0.80,class:^(yad)$ # Protontricks-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(Signal)$ # Signal-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(io.github.alainm23.planify)$ # planify-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(io.github.flattool.Warehouse)$ # Warehouse-Gtk

windowrulev2 = float,class:^(org.kde.dolphin)$,title:^(Progress Dialog — Dolphin)$
windowrulev2 = float,class:^(org.kde.dolphin)$,title:^(Copying — Dolphin)$
windowrulev2 = float,title:^(About Mozilla Firefox)$
windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$
windowrulev2 = float,class:^(firefox)$,title:^(Library)$
windowrulev2 = float,class:^(kitty)$,title:^(top)$
windowrulev2 = float,class:^(kitty)$,title:^(btop)$
windowrulev2 = float,class:^(kitty)$,title:^(htop)$
windowrulev2 = float,class:^(vlc)$
windowrulev2 = float,class:^(kvantummanager)$
windowrulev2 = float,class:^(qt5ct)$
windowrulev2 = float,class:^(qt6ct)$
windowrulev2 = float,class:^(nwg-look)$
windowrulev2 = float,class:^(org.kde.ark)$
windowrulev2 = float,class:^(org.pulseaudio.pavucontrol)$
windowrulev2 = float,class:^(blueman-manager)$
windowrulev2 = float,class:^(nm-applet)$
windowrulev2 = float,class:^(nm-connection-editor)$
windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$

windowrulev2 = float,class:^(Signal)$ # Signal-Gtk
windowrulev2 = float,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk
windowrulev2 = float,class:^(app.drey.Warp)$ # Warp-Gtk
windowrulev2 = float,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt
windowrulev2 = float,class:^(yad)$ # Protontricks-Gtk
windowrulev2 = float,class:^(eog)$ # Imageviewer-Gtk
windowrulev2 = float,class:^(io.github.alainm23.planify)$ # planify-Gtk
windowrulev2 = float,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk
windowrulev2 = float,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk
windowrulev2 = float,class:^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk
windowrulev2 = float,class:^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk

#.____       _____ _____.___._____________________  __________ ____ ___.____     ___________ _________
#|    |     /  _  \\__  |   |\_   _____/\______   \ \______   \    |   \    |    \_   _____//   _____/
#|    |    /  /_\  \/   |   | |    __)_  |       _/  |       _/    |   /    |     |    __)_ \_____  \ 
#|    |___/    |    \____   | |        \ |    |   \  |    |   \    |  /|    |___  |        \/        \
#|_______ \____|__  / ______|/_______  / |____|_  /  |____|_  /______/ |_______ \/_______  /_______  /
#        \/       \/\/               \/         \/          \/                 \/        \/        \/ 

layerrule = blur,rofi
layerrule = ignorezero,rofi
layerrule = blur,notifications
layerrule = ignorezero,notifications
layerrule = blur,swaync-notification-window
layerrule = ignorezero,swaync-notification-window
layerrule = blur,swaync-control-center
layerrule = ignorezero,swaync-control-center
layerrule = blur,logout_dialog

Last edited by live4thamuzik (2024-11-17 20:15:05)

Offline

Board footer

Powered by FluxBB