hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
21.97k stars 914 forks source link

recent fullscreen state refractor broke gamescope fullscreen flag #7136

Closed winneratwin closed 4 months ago

winneratwin commented 4 months ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit 60571cd5ccc76f91209ef2faac93ecea542de221 (border: fixup infinite recursion). Date: Thu Aug 1 12:36:15 2024 Tag: v0.41.2-152-g60571cd5, commits: 5038 flags: (if any) System Information: System name: Linux Node name: pog-os Release: 6.10.2-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Sat, 27 Jul 2024 16:49:55 +0000 GPU information: 2b:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3060 Ti Lite Hash Rate] [10de:2489] (rev a1) (prog-if 00 [VGA controller]) NVRM version: NVIDIA UNIX Open Kernel Module for x86_64 555.58.02 Release Build (archlinux-builder@pog-os) 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/winner/.config/hypr/hyprland.conf: Read Succeeded # This is an example Hyprland config file. # # Refer to the wiki for more information. source = ~/.config/hypr/hyprland/environment.conf # env = HYPRLAND_TRACE,1 # env = AQ_TRACE,1 # # Please note not all available settings / options are set here. # For a full list, see the wiki # # See https://wiki.hyprland.org/Configuring/Monitors/ #monitor=,preferred,auto,auto monitor=HDMI-A-1,prefered,0x390,1 monitor=DP-3,highrr,1680x0,1 # See https://wiki.hyprland.org/Configuring/Keywords/ for more source = ~/.config/hypr/hyprland/startup.conf # Some default env vars. env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 5 gaps_out = 15 border_size = 2 col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) resize_on_border = false allow_tearing = true # layout = hy3 # waiting until https://github.com/outfoxxed/hy3/pull/126 is merged (move focus crosses monitors) layout = dwindle } # group { # focus_removed_window = false # } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 active_opacity = 1.0 # inactive_opacity = 1.0 inactive_opacity = 0.80 drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) blur { enabled = true size = 3 passes = 1 vibrancy = 0.1696 } } animations { enabled = true # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1 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, 4, default animation = workspaces, 1, 6, default } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # you probably want this } misc { # See https://wiki.hyprland.org/Configuring/Variables/ for more key_press_enables_dpms = true force_default_wallpaper = 2 # 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. :( } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_status = true } ############# ### INPUT ### ############# input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = follow_mouse = 1 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. touchpad { natural_scroll = false } } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = false } experimental { # See https://wiki.hyprland.org/Configuring/Variables/ for more explicit_sync = true } # equivalent to the above # experimental:explicit_sync = true debug { disable_logs = false } cursor { no_hardware_cursors = true allow_dumb_copy = true } source = ~/.config/hypr/hyprland/pluginsconf.conf # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more # device:epic-mouse-v1 { # sensitivity = -0.5 # } # See https://wiki.hyprland.org/Configuring/Keywords/ for more source = ~/.config/hypr/hyprland/keybinds.conf ############################## ### WINDOWS AND WORKSPACES ### ############################## # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # workspace monitor bindings source = ~/.config/hypr/hyprland/workspaces.conf source = ~/.config/hypr/hyprland/windowrules.conf Config File: /home/winner/.config/hypr/hyprland/environment.conf: Read Succeeded # nvidia env vars env = LIBVA_DRIVER_NAME,nvidia env = XDG_SESSION_TYPE,wayland env = GBM_BACKEND,nvidia-drm env = __GLX_VENDOR_LIBRARY_NAME,nvidia env = NVD_BACKEND,direct env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_DESKTOP,Hyprland env = __GL_GSYNC_ALLOWED,1 env = __GL_VRR_ALLOWED,0 Config File: /home/winner/.config/hypr/hyprland/startup.conf: Read Succeeded exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = hyprpaper # wallpaper exec-once = hypridle # idle manager exec-once = waybar # bar exec-once = dunst # notification daemon exec-once = gammastep # f.lux alternative exec-once = nm-applet # network manager exec-once = blueman-applet # bluetooth manager exec-once = opensnitch-ui # application firewall exec-once = webcord exec-once = thunderbird exec-once = qbittorrent exec-once = steam exec-once = librewolf exec-once = alacritty exec-once = plover exec-once = copyq exec-once = ckb-next -b Config File: /home/winner/.config/hypr/hyprland/pluginsconf.conf: Read Succeeded plugin { hy3 { # disable gaps when only one window is onscreen # 0 - always show gaps # 1 - hide gaps with a single window onscreen # 2 - 1 but also show the window border no_gaps_when_only = 0 # default: 0 # policy controlling what happens when a node is removed from a group, # leaving only a group # 0 = remove the nested group # 1 = keep the nested group # 2 = keep the nested group only if its parent is a tab group node_collapse_policy = 2 # default: 2 # offset from group split direction when only one window is in a group group_inset = 10 # default: 10 # if a tab group will automatically be created for the first window spawned in a workspace tab_first_window = false # tab group settings tabs { # height of the tab bar height = 15 # default: 15 # padding between the tab bar and its focused node padding = 5 # default: 5 # the tab bar should animate in/out from the top instead of below the window from_top = false # default: false # rounding of tab bar corners rounding = 3 # default: 3 # render the window title on the bar render_text = true # default: true # center the window title text_center = false # default: false # font to render the window title with text_font = Sans # default: Sans # height of the window title text_height = 8 # default: 8 # left padding of the window title text_padding = 3 # default: 3 # active tab bar segment color col.active = 0xff32b4ff # default: 0xff32b4ff # urgent tab bar segment color col.urgent = 0xffff4f4f # default: 0xffff4f4f # inactive tab bar segment color col.inactive = 0x80808080 # default: 0x80808080 # active tab bar text color col.text.active = 0xff000000 # default: 0xff000000 # urgent tab bar text color col.text.urgent = 0xff000000 # default: 0xff000000 # inactive tab bar text color col.text.inactive = 0xff000000 # default: 0xff000000 } # autotiling settings autotile { # enable autotile enable = false # default: false # make autotile-created groups ephemeral ephemeral_groups = true # default: true # if a window would be squished smaller than this width, a vertical split will be created # -1 = never automatically split vertically # 0 = always automatically split vertically # = pixel height to split at trigger_width = 0 # default: 0 # if a window would be squished smaller than this height, a horizontal split will be created # -1 = never automatically split horizontally # 0 = always automatically split horizontally # = pixel height to split at trigger_height = 0 # default: 0 # a space or comma separated list of workspace ids where autotile should be enabled # it's possible to create an exception rule by prefixing the definition with "not:" # workspaces = 1,2 # autotiling will only be enabled on workspaces 1 and 2 # workspaces = not:1,2 # autotiling will be enabled on all workspaces except 1 and 2 workspaces = all # default: all } } } Config File: /home/winner/.config/hypr/hyprland/keybinds.conf: Read Succeeded # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more $mainMod = SUPER # hyprland bind = $mainMod SHIFT, Q, killactive, bind = $mainMod SHIFT, E, exit, bind = $mainMod, T, togglefloating, bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle # programs # terminal bind = $mainMod, RETURN, exec, alacritty # file manager bind = $mainMod, E, exec, thunar # rofi bind = $mainMod, D, exec, ./.config/rofi/scripts/launcher_t1 # clipboard manager bind = $mainMod, V, exec, copyq menu # lockscreen # bind = $mainMod, ESCAPE, exec, swaylock --image /home/winner/Pictures/backgrounds/D3pZLXx.png & sleep 0.5 && hyprctl dispatch dpms off bind = $mainMod, ESCAPE, exec, hyprlock & sleep 0.5 && hyprctl dispatch dpms off # open thunar using o bind = $mainMod, O, exec, thunar # screenshot save copy and open with gimp bind = $mainMod, PRINT, exec, ~/.config/hypr/scripts/screenshot.sh # media keys # i3 version: # bindsym XF86AudioPlay exec playerctl play-pause # bindsym XF86AudioStop exec playerctl stop # bindsym XF86AudioNext exec playerctl next # bindsym XF86AudioPrev exec playerctl previous bind = , XF86AudioPlay, exec, playerctl play-pause bind = , XF86AudioStop, exec, playerctl stop bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioPrev, exec, playerctl previous # bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status # bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status # bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status # bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d bind = $mainMod+SHIFT, left, movewindow, l bind = $mainMod+SHIFT, right, movewindow, r bind = $mainMod+SHIFT, up, movewindow, u bind = $mainMod+SHIFT, down, movewindow, d # Move windows with mainMod + SHIFT + arrow keys # disable for now until move focus is fixed # bind = $mainMod, left, hy3:movefocus, l # bind = $mainMod, right, hy3:movefocus, r # bind = $mainMod, up, hy3:movefocus, u # bind = $mainMod, down, hy3:movefocus, d # bind = $mainMod+SHIFT, left, hy3:movewindow, l # bind = $mainMod+SHIFT, down, hy3:movewindow, d # bind = $mainMod+SHIFT, up, hy3:movewindow, u # bind = $mainMod+SHIFT, right, hy3:movewindow, r # bind = $mainMod, r, hy3:makegroup, opposite, force_ephemeral # Switch workspaces with mainMod + [0-9] # bind = $mainMod, 1, exec, ~/.config/hypr/scripts/dispatch.sh 1 # bind = $mainMod, 2, exec, ~/.config/hypr/scripts/dispatch.sh 2 # bind = $mainMod, 3, exec, ~/.config/hypr/scripts/dispatch.sh 3 # bind = $mainMod, 4, exec, ~/.config/hypr/scripts/dispatch.sh 4 # bind = $mainMod, 5, exec, ~/.config/hypr/scripts/dispatch.sh 5 # bind = $mainMod, 6, exec, ~/.config/hypr/scripts/dispatch.sh 6 # bind = $mainMod, 7, exec, ~/.config/hypr/scripts/dispatch.sh 7 # bind = $mainMod, 8, exec, ~/.config/hypr/scripts/dispatch.sh 8 # bind = $mainMod, 9, exec, ~/.config/hypr/scripts/dispatch.sh 9 # bind = $mainMod, 0, exec, ~/.config/hypr/scripts/dispatch.sh 10 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, 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 # 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 Config File: /home/winner/.config/hypr/hyprland/workspaces.conf: Read Succeeded # browser workspace=1,monitor:DP-3,persistent:true,default:true # terminals workspace=2,monitor:HDMI-A-1,persistent:true,default:true # discord workspace=3,monitor:HDMI-A-1,persistent:true # games workspace=4,monitor:DP-3,persistent:true # steam workspace=5,monitor:DP-3,persistent:true # thunderbird/qbittorrent workspace=10,monitor:DP-3,persistent:true # bind LibreWolf to workspace 1 windowrulev2 = workspace 1 silent,class:^(LibreWolf)$ # bind alacritty to workspace 2 windowrulev2 = workspace 2,class:^(Alacritty)$ # bind discord and variants to workspace 3 windowrulev2 = workspace 3 silent,class:^(discord)$ windowrulev2 = workspace 3 silent,class:^(WebCord)$ # bind steam to 5 windowrulev2 = workspace 5 silent,class:^(SDL Application)$,title:^(Steam)$ # bind thunderbird to 10 windowrulev2 = workspace 10 silent,class:^(thunderbird)$ # bind qbittorrent to 10 windowrulev2 = workspace 10 silent,class:^(org.qbittorrent.qBittorrent)$ Config File: /home/winner/.config/hypr/hyprland/windowrules.conf: Read Succeeded windowrule = float, file_progress windowrule = float, confirm windowrule = float, dialog windowrule = float, download windowrule = float, notification windowrule = float, error windowrule = float, splash windowrule = float, confirmreset windowrule = float, title:Open File windowrule = float, title:branchdialog windowrule = float, Lxappearance windowrule = float, Rofi windowrule = animation none,Rofi windowrule = float, title:CopyQ windowrule = float,viewnior windowrule = float,feh windowrule = float, pavucontrol-qt windowrule = float, pavucontrol windowrule = float, file-roller windowrule = fullscreen, wlogout windowrule = float, title:wlogout windowrule = fullscreen, title:wlogout windowrule = idleinhibit focus, mpv windowrule = idleinhibit fullscreen, firefox windowrule = float, title:^(Media viewer)$ windowrule = float, title:^(Volume Control)$ windowrule = float, title:^(Picture-in-Picture)$ windowrule = size 800 600, title:^(Volume Control)$ windowrule = move 75 44%, title:^(Volume Control)$ windowrule = float, ^(opensnitch_ui)$ windowrule = fullscreen, steam_app_1293830 windowrulev2 = fullscreen,class:^(steam_app_1293830)$ windowrulev2=noanim,class:^(flameshot)$ windowrulev2=float,class:^(flameshot)$ windowrulev2=fullscreen,class:^(flameshot)$ windowrulev2=monitor 1,class:^(flameshot)$ windowrulev2=move -1680 0,class:^(flameshot)$ windowrule = move cursor -45% -30%,^(com.github.hluk.copyq)$ # moves copyq to the center of the cursor #disable animations for copyq, flameshot, and rofi windowrulev2 = noanim,class:^(com.github.hluk.copyq)$ windowrulev2 = noanim,class:^(flameshot)$ windowrulev2 = noanim,class:^(Rofi)$ # opacity rules # 100% for active windows and picture-in-picture # 85% for unfocused windows # windowrulev2 = opacity 1.0 0.75,class:.* # 85 for floating and focused # 75 for floating and unfocused # windowrulev2 = opacity 0.85 0.75,floating:1 windowrulev2 = opacity 1.0,title:^(Picture-in-Picture)$ # 85 for rofi windowrulev2 = opacity 1.0 0.95,class:^(Rofi)$ # move steam notifications to the bottom right # steam notifications have a title of notificationtoasts_\d+_desktop # and a class of steam # windowrule = move 100% 100%,title:^(notificationtoasts_\d+_desktop)$,class:^(steam)$ # remove rounded corners from steam notifications windowrulev2 = norounding, title:^(notificationtoasts_\d+_desktop)$,class:^(SDL Application)$ # pin the notification to the bottom right windowrulev2 = pin, title:^(notificationtoasts_\d+_desktop)$,class:^(SDL Application)$ windowrulev2 = immediate, class:^(love)$ # windowrulev2 = fullscreen, class:^(gamescope)$ ======Config-End======== ```

Description

commit e989a0bcffac81092ed2a7e371f5225c113f689d broke the ability for gamescope to go fullscreen using the command line argument -f

How to reproduce

run gamescope -f vkcube and see that the window doesn't become fullscreen and instead is windowed

Crash reports, logs, images, videos

No response

MightyPlaza commented 4 months ago

https://github.com/hyprwm/Hyprland/pull/7134 should fix it

MightyPlaza commented 4 months ago

should be fixed on -git now

winneratwin commented 4 months ago

can confirm it is fixed on -git