Some games launch in floating mode instead of fullscreen
Bug or Regression?
Regression
System Info and Version
System/Version info
<Hyprland, built from branch at commit 9e781040d9067c2711ec2e9f5b47b76ef70762b3 (props: bump version to 0.41.1).
Date: Thu Jun 13 09:54:06 2024
Tag: v0.41.1, commits: 4818
flags: (if any)
System Information:
System name: Linux
Node name: arch
Release: 6.9.5-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Sun, 16 Jun 2024 19:06:37 +0000
GPU information:
2b:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6600/6600 XT/6600M] [1002:73ff] (rev c7) (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/theodor/.config/hypr/hyprland.conf: Read Succeeded
# Some default env vars.
env = XCURSOR_SIZE,24
env = XDG_CURRENT_DESKTOP,hyprland
env = QT_QPA_PLATFORM,WAYLAND
env = QT_QPA_PLATFORMTHEME,qt6ct
env = XDG_SESSION_TYPE,wayland
#env = SDL_VIDEODRIVER,wayland
# autostart
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY
exec-once=firefox
exec=telegram-desktop
exec-once=thunderbird
exec=$HOME/.config/waybar/launch.sh
exec-once=sed -i 's/offset = 10x30/offset = 10x10/g' ~/.config/dunst/dunstrc && dunst
exec-once=swaybg.sh
exec=easyeffects --gapplication-service
exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once=automount.sh
exec-once=wl-paste --watch cliphist store
# window rules
windowrulev2 = workspace 1,class:(firefox)
windowrulev2 = workspace 2,silent,class:(org.telegram.desktop)
windowrulev2 = workspace 3,class:(pcsx2-qt)
windowrulev2 = workspace 3,silent,class:(steam)
windowrulev2 = workspace 3,class:(org.libretro.RetroArch)
windowrulev2 = workspace 4 silent,class:(thunderbird)
windowrulev2 = workspace 5,class:(com.transmissionbt.transmission_2066_12218468)
windowrulev2 = workspace 5,class:(transmission-gtk)
windowrulev2 = workspace 6,class:(Gimp-2.10)
windowrulev2 = float,class:(flameshot)
windowrulev2 = float,class:(galculator)
windowrulev2 = fullscreen,class:(Rusted Warfare)
# appearance
exec=gsettings set org.gnome.desktop.interface gtk-theme 'Gruvbox-Material-Dark'
exec=gsettings set org.gnome.desktop.interface icon-theme 'Papirus-Dark'
exec=gsettings set org.gnome.desktop.interface cursor-theme 'Adwaita'
exec=gsettings set org.gnome.desktop.interface font-name 'Noto Sans Regular 10'
# main settings
monitor=,preferred,auto,auto
general {
gaps_in = 3
gaps_out = 3
border_size = 1
col.active_border = rgba(c2af8dee) 45deg
col.inactive_border = rgba(665c54aa)
layout = master
}
input {
kb_layout = us,ru
kb_variant =
kb_model = pc104
kb_options = grp:caps_toggle
kb_rules =
follow_mouse = 1
repeat_rate = 20
repeat_delay = 300
touchpad {
natural_scroll = no
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
misc {
disable_hyprland_logo = true
focus_on_activate = true
force_default_wallpaper = 0
disable_splash_rendering = true
enable_swallow = true
swallow_regex = kitty
swallow_exception_regex = wev
}
decoration {
rounding = 0
blur {
enabled = false
size = 20
passes = 1
new_optimizations = true
}
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
animations {
enabled = 0
bezier = myBezier, 0.05, 0.1, 0.1, 1.05
animation = windows, 1, 2, myBezier
animation = windowsOut, 1, 2, default, popin 80%
animation = border, 1, 2, default
animation = borderangle, 1, 2, default
animation = fade, 1, 3, default
animation = workspaces, 1, 2, default
}
master {
#new_status = master
new_is_master = true
mfact = 0.55
new_on_top = true
no_gaps_when_only = 0
orientation = left
always_center_master = true
}
gestures {
workspace_swipe = off
}
# binds
$mainMod = SUPER
bind = $mainMod, return, exec, kitty
bind = $mainMod SHIFT, return, layoutmsg, swapwithmaster
bind = $mainMod, Q, killactive
bind = $mainMod SHIFT, Q, exec, killactive.sh
bind = $mainMod, E, exec,rofi -show emoji -modi emoji
bind = $mainMod, D, exec, rofi -show drun
bind = $mainMod, X, exec, rofi -modi clipboard:$HOME/.local/bin/cliphist-rofi -show clipboard
bind = Control, delete, exec, dunstctl close-all
bind = Control, insert, exec, dunstctl history-pop
bind = Control, backslash, exec, dunstify -u low $(curl 'wttr.in?format=1')
bind = Control_ALT, r, exec, systemctl reboot
bind = Control_ALT, s, exec, suspend.sh
bind = Control_ALT, p, exec, systemctl poweroff
bind = $mainMod, S, togglefloating,
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = Control ALT, Down, exec, playerctl play-pause
bind = Control ALT, Right, exec, playerctl next
bind = Control ALT, Left, exec, playerctl previous
bind = $mainMod SHIFT,E,exit
bind = $mainMod SHIFT,R,exec,hyprctl reload
bind = $mainMod,F,fullscreen
bind = $mainMod SHIFT, F, fakefullscreen
bind = $mainMod,F1,exec,firefox
bind = $mainMod,F2,exec,telegram-desktop
bind = $mainMod,F3,exec,steam
bind = $mainMod,F4,exec,crow
bind = $mainMod,F5,exec,thunderbird
bind = $mainMod,F6,exec,galculator
bind = $mainMod,F7,exec,kitty -e btop
bind = ,Print,exec,flameshot screen
bind = SHIFT,Print,exec,flameshot gui
#bind = ,Print,exec,grim ~/Pictures/screenshots/screen-"$(date +%s)".png
#bind = SHIFT,Print,exec,grim -g "$(slurp)" ~/Pictures/screenshots/screen-"$(date +%s)".png
#bind = $mainMod,Print,exec,grim -g "$(slurp -p)" -t ppm - | convert - -format '%[pixel:p{0,0}]' txt:- | tail -n 1 | cut -d ' ' -f 4 | wl-copy
bind = $mainMod,A,layoutmsg,addmaster
bind = $mainMod,R,layoutmsg,removemaster
binde = CTRL,right,exec,changevolume.sh 5%+
binde = CTRL,left,exec,changevolume.sh 5%-
bind = CTRL,m,exec,changevolume.sh mute
bind = CTRL,u,exec,changevolume.sh unmute
# Move focus through list of windows
bind = $mainMod, up, layoutmsg, cyclenext
bind = $mainMod, down, layoutmsg, cycleprev
bind = $mainMod SHIFT, up, layoutmsg, swapnext
bind = $mainMod SHIFT, down, layoutmsg, swapprev
# chandge layout orientation
bind = $mainMod, grave, layoutmsg, orientationcycle left right bottom top
# 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
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# sets repeatable binds for resizing the active window
binde = $mainMod,right,resizeactive,50 0
binde = $mainMod,left,resizeactive,-50 0
======Config-End========>
Description
After updating to version 0.41, Hyprland began to ignore fullscreen requests from some games
https://github.com/hyprwm/Hyprland/assets/52626363/8385b632-791b-4876-8c0e-6086fae2dc18
How to reproduce
Just launch War Thunder (for example) on Steam
Crash reports, logs, images, videos
No response
For me it only seems to do this on initial launch. If the game has an in-game option to switch between fullscreen/windowed, it seems to work when toggled.
Of course it works if I press the shortcut to go to fullscreen but this should happen automatically, as it was in previous versions of Hyprland
For me it only seems to do this on initial launch. If the game has an in-game option to switch between fullscreen/windowed, it seems to work when toggled.
Same here
Also noticing this behaviour, perhaps its because the laucher is initially floating
can't you just set a window rule
can't you just set a window rule
No, it has no effect from what I've tried, possibly due to this:
Also noticing this behaviour, perhaps its because the laucher is initially floating
I've noticed it's impossible to tile the launchers for some games, and that they share the same class and title as the game window itself
can't you just set a window rule
No, it has no effect from what I've tried, possibly due to this:
Also noticing this behaviour, perhaps its because the laucher is initially floating
I've noticed it's impossible to tile the launchers for some games, and that they share the same class and title as the game window itself
that's impossible window doesn't have any say in fullscreen window rules, specially if the fullscreen and maximize events have been supressed what's the output of hyprctl clients and what window rule did you make?
What do you mean by fullscreen and maximise events being supressed?
windowrulev2=suppressevent maximize, class:^(firefox)$ for example to make sure the client isn't removing maximized state
Adding the suppressevent for maximize and fullscreen worked perfectly, thank you - I didn't realise those existed
@TAforever looks like the issue can be closed now
There is such a thing as a fullscreen request that some programs request to automatically launch in fullscreen, and until version 0.41 Hyprland correctly processed these requests. I have one game that does not send fullscreen requests even to Windows and for it I made a fullscreen rule, but here the error is on Hyprland’s side. Specifically for the game War Thunder, hyprctl clients does not even give out the class name so that I can make a fullscreen rule
There is such a thing as a fullscreen request that some programs request to automatically launch in fullscreen, and until version 0.41 Hyprland correctly processed these requests.
true and probably should be fixed, however since it's on xwayland I'd expect it to have a lower priority
Specifically for the game War Thunder,
hyprctl clientsdoes not even give out the class name so that I can make a fullscreen rule
i think this is reported somewhere, but can't find it atm
You should perform a bisect https://wiki.hyprland.org/Crashes-and-Bugs/#bisecting-an-issue
You should perform a bisect https://wiki.hyprland.org/Crashes-and-Bugs/#bisecting-an-issue
it was likely the xwayland rewrite
There is such a thing as a fullscreen request that some programs request to automatically launch in fullscreen, and until version 0.41 Hyprland correctly processed these requests.
true and probably should be fixed, however since it's on xwayland I'd expect it to have a lower priority
Specifically for the game War Thunder,
hyprctl clientsdoes not even give out the class name so that I can make a fullscreen rulei think this is reported somewhere, but can't find it atm
Yes, I understand that a lot of work is being done now and my problem has a low priority
The problem is still relevant and I will add that when switching to a workspace with another XWayland client and returning back to the game, the previously launched game that did not switch to fullscreen mode on startup goes into full screen mode.
The problem is still relevant and I will add that when switching to a workspace with another XWayland client and returning back to the game, the previously launched game that did not switch to fullscreen mode on startup goes into full screen mode.
supressevent window rule if you want to
Guys, I think I've found a solution. It seems to me that the games still run in fullscreen, but the waybar remains visible. To avoid this, specify the bottom layer for the waybar in ~/.config/waybar/config.jsonc "layer": "bottom"
Uh, that isn't the issue I was having? I had Waybar appear above windows in some cases way before having this
Guys, I think I've found a solution. It seems to me that the games still run in fullscreen, but the waybar remains visible. To avoid this, specify the bottom layer for the waybar in ~/.config/waybar/config.jsonc
"layer": "bottom"
That is not a fix for this issue. It's just a workaround. You're changing the behavior of waybar to mask an actual bug. Also means if you actually want waybar above non-fullscreen windows you can no longer do that.
This weird fullscreen but not really issue started happening after the xwayland rewrite, so it is an actual bug that needs fixing.
That is not a fix for this issue. It's just a workaround. You're changing the behavior of waybar to mask an actual bug. Also means if you actually want waybar above non-fullscreen windows you can no longer do that.
This weird fullscreen but not really issue started happening after the xwayland rewrite, so it is an actual bug that needs fixing.
Yes, you're right, I didn't need to close the issue, hyprctl activewindow shows that the game is not in fullscreen
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!