You are not logged in.
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
have a look here:
Offline
Hi,
thanks for your reply I already have those libs installed, also I think my issue is a little bit differernd.
Offline
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