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
19.52k stars 818 forks source link

gamescope render a black screen #6942

Closed Zeioth closed 1 month ago

Zeioth commented 1 month ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 918d8340afd652b011b937d29d5eea0be08467f5 (flake.lock: update). Date: Tue Jun 25 12:06:02 2024 Tag: v0.41.2, commits: 4886 flags: (if any) System Information: System name: Linux Node name: zeioht-pc Release: 6.10.0-273-tkg-eevdf Version: #1 SMP PREEMPT_DYNAMIC TKG Sat, 20 Jul 2024 21:33:02 +0000 GPU information: 04:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev ef) (prog-if 00 [VGA controller]) 2d:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] [1002:73df] (rev c1) (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/zeioth/.config/hypr/hyprland.conf: Read Succeeded # User config for hyprland # Read `man ./help.man` for help about the config. # Read `man 5 hyprland` for a complete reference. # USER VARIABLES → keep it on the top source = ./aliases.d/00-themeing-aliases source = ./aliases.d/01-system-aliases source = ./aliases.d/02-program-aliases # AUTOSTART → Make sure you launch hyprland plugins before configuring them source = ./autostart.d/00-system-programs source = ./autostart.d/01-user-programs # USER HARDWARE source = ./hardware.d/displays source = ./hardware.d/keyboard source = ./hardware.d/wacom # ENABLE MODES source = ./modes.d/displays source = ./modes.d/move source = ./modes.d/resize source = ./modes.d/screenshot source = ./modes.d/shutdown # USER CONFIG source = ./config.d/00-theming source = ./config.d/01-keybindings source = ./config.d/02-window-rules # disable this if every app you use is compatible with wayland # xwayland enable → Not necessary anymore? Config File: /home/zeioth/.config/hypr/aliases.d/00-themeing-aliases: Read Succeeded # THEMEING VARIABLES # ============================================================================ # Note: You only need to change this vars to affect the entire system. # Warning: Make sure of using the right values or it will cause silent breakage. $system_theme = 'Arc-Dark' $system_icons = 'Numix-Square' $system_dpi_scaling_factor = 2.6 $cursor_size = 108 # Warning: # Avoid xorg cursor themes (like 'Breeze' for example) # They will be represented using xwayland, and will have the wrong size. $cursor_theme = Adwaita $titlebar_text_size = 32 $titlebar_font = Cantarell # BACKGROUNDS # See ../hyprpaper.conf $background1 = ~/images/backgrounds/tokyo-night-manjarosway-3840x2160.png $background2 = ~/images/backgrounds/minimal_squares.png $background3 = ~/images/backgrounds/tokyo-night-manjarosway-3840x2160.png $background4 = ~/images/backgrounds/tokyonight.png $background5 = ~/images/backgrounds/tokyonight.png $background6 = ~/images/backgrounds/tokyonight.png # WAYBAR # See ~/.config/waybar/style.css # MODES $modes_primary_color = #d8dee8 $modes_secondary_color = #e6cd69 Config File: /home/zeioth/.config/hypr/aliases.d/01-system-aliases: Read Succeeded # dbus docs: https://wiki.archlinux.org/title/Systemd/User#Environment_variables # flatpak docs: https://www.reddit.com/r/flatpak/comments/131qsvf/passing_env_vars_bottles_ignores_flatpak_override/ # This is necessary for them to apply the themes to hyprland-share-pickr. # SYSTEM VARIABLES # ============================================================================ # Mod key $mod = SUPER # Terminal emulator $term = ENABLE_VKBASALT=1 footclient -t xterm-256color $term_scratch = ENABLE_VKBASALT=1 footclient -t xterm-256color -a scratchpad $term_scratch_standalone = ENABLE_VKBASALT=1 foot -a scratchpad $tmux = ENABLE_VKBASALT=1 foot-tmux $foot_server = ENABLE_VKBASALT=1 foot --server # Displays $screen1 = DP-1 $screen2 = HDMI-A-3 $screen3 = HDMI-A-1 $screen4 = DP-3 $screen5 = DP-4 $screen6 = DP-5 # Launcher $launcher = wofi -p run # Task manager $task_killer = pkill -9 fkill; $term_scratch -T "Task Killer - fkill" fzf-kill # Notification daemon configuration $notifications = mako # Widgets - Note: A widget cannot leave its display, but you can create many. $widgets = hyprwidgets # Locking # Currently callig a shell script from bin because atm hyprctl # dispatch exec cannot parse the command correctly. $locking = hyprlock # Idle configuration → [requires sway-audio-idle-inhibit] $idle = hypridle $idle_audio_inhibit = sway-audio-idle-inhibit # Volume (speakers) $wob_socket = $XDG_RUNTIME_DIR/wob.sock # Used like $wob_socket $sink_volume = pactl get-sink-volume @DEFAULT_SINK@ | grep '^Volume:' | cut -d / -f 2 | tr -d ' ' | sed 's/%//' $sink_volume_mute = pactl get-sink-mute @DEFAULT_SINK@ | sed -En "/no/ s/.*/$($sink_volume)/p; /yes/ s/.*/0/p" # Volume (microphone) $source_volume = pactl get-source-volume @DEFAULT_SOURCE@ | grep '^Volume:' | cut -d / -f 2 | tr -d ' ' | sed 's/%//' $sink_microphone_volume_mute = pactl get-source-mute @DEFAULT_SOURCE@ | sed -En "/no/ s/.*/$($source_volume)/p; /yes/ s/.*/0/p" # Other system artifacts $systemctl_env = systemctl --user import-environment $dbus_env = dbus-update-activation-environment --systemd --all $flatpak_env = flatpak override -u $gnome_polkit = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 $swayd = env RUST_BACKTRACE=1 swayrd > /tmp/swayrd.log 2>&1 $update_mirrors = update_mirrors $sunset = ~/.local/bin/sunset.sh on $swork_style = pkill sworkstyle; sworkstyle &> /tmp/sworkstyle.log $wl_paste_polling = wl-paste --watch cliphist store # → [cliphist] $spice_vdagent = spice-vdagent # → Used by qemu to share clipboard on X systems. $wallpapers = hyprpaper $clipboard_open = cliphist list | wofi --show dmenu -p clipboard | cliphist decode | wl-copy; pkill -RTMIN+9 waybar # workspace name (to display on waybar) $ws1 = 1 $ws2 = 2 $ws3 = 3 $ws4 = 4 $ws5 = 5 $ws6 = 6 $ws7 = 7 $ws8 = 8 Config File: /home/zeioth/.config/hypr/aliases.d/02-program-aliases: Read Succeeded # PROGRAM VARIABLES # ============================================================================ # Uncomment me if the bug parsing variables with similar name is fixed upstream. # $tui_file_browser = TERMCMD="foot -a 'scratchpad'" $term_scratch_standalone -T 'Ranger - File Manager' ranger # File edition # $tui_file_browser = TERMCMD="foot -a 'scratchpad'" foot -t xterm-256color -a 'scratchpad' -T 'Ranger - FIle Manager' ranger $tui_file_browser = foot -t xterm-256color -a 'scratchpad' -T 'Yazi - FIle Manager' yazi $gui_file_browser = thunar $nvim_editor = $term -T 'NVIM - Editor' nvim -S ~/.vim_runtime/temp_dirs/sessions/meta-editor.vim $nvim_backlog = $term -T 'NVIM - Backlog' nvim -S ~/.vim_runtime/temp_dirs/sessions/meta-backlogs.vim # No need no use sessions anymore, we have an automated session manager $nvim = $term -T 'NVIM - Editor' nvim # system aliases $calc = wofi-calc $weather = $term_scratch -T 'Weather' weather $backup_to_cloud = $term_scratch -T 'Backup to cloud' ~/tweaks/sync-backup-to-cloud.sh $update_packages = $term_scratch -T 'Updating packages...' update-packages $update_mirrors = $term_scratch -T "Updating mirrors..." update-mirrors $chatgpt = $term_scratch -T "ChatGPT" chatgpt $lcg = $term_scratch -T "Clg" clg $help_keyboard = $term_scratch -T 'CRKBD manual' nvim -m ~/workspaces/git-forks/keyboards/qmk_firmware/keyboards/crkbd/keymaps/zeioth_trackball_right/README.md $help_nvim = $term_scratch -T 'NVIM Manual' nvim -m ~/workspaces/git-forks/keyboards/qmk_firmware/keyboards/crkbd/keymaps/zeioth_trackball_right/VIM-MANUAL.md # swayr aliases $swayr-wintab = env RUST_BACKTRACE=1 swayr switch-workspace-or-window >> /tmp/swayr.log 2>&1 $swayr-xkill = env RUST_BACKTRACE=1 swayr quit-window -k > /tmp/swayr.log 2>&1 $swayr-next = env RUST_BACKTRACE=1 swayr next-window >> /tmp/swayr.log 2>&2 $swayr-prev = env RUST_BACKTRACE=1 swayr prev-window >> /tmp/swayr.log 2>&2 $swayrd = env RUST_BACKTRACE=1 swayrd > /tmp/swayrd.log 2>&1" # extra system utils $corectrl = corectrl Config File: /home/zeioth/.config/hypr/autostart.d/00-system-programs: Read Succeeded # SYSTEM # ============================================================== # DOCS: # - sway-audio-inhibit # prevents idle while any source of sound is reproducing. # can be tested by checking all apps apre corked with: pactl list sink-inputs # - wob # It is not here because it runs as a service. # If you find any issue run 'fix-wob' to fix it. # EXAMPLE → many programs in 1 subprocess [sync] - (Errors won't be logged) # exec-once = waybar & hyprpaper & firefox # SYSTEM WIDE ENV VARS exec = $systemctl_env # Pass all user envs to systemctl exec = $dbus_env # Pass all user envs to dbus and systemctl exec = $flatpak_env # Pass all user envs to flatpak # ENABLED # One Subprocess per program [Async] exec = $foot_server exec-once = waybar exec-once = $gnome_polkit exec-once = $notifications exec-once = $update_mirrors exec-once = $sunset exec-once = $wl_paste_polling exec-once = $swork_style exec-once = $spice_vdagent exec-once = $idle exec-once = $idle_audio_inhibit exec-once = ~/.local/bin/fix-wob exec = $wallpapers # DISABLED # exec-once = $swayd Config File: /home/zeioth/.config/hypr/autostart.d/01-user-programs: Read Succeeded # USER # ============================================================== # ENABLED exec-once = $corectrl #exec-once = thunderbird-wayland #exec-once = hp-systray # DISABLED # exec-once = gamescope-custom Config File: /home/zeioth/.config/hypr/hardware.d/displays: Read Succeeded # Output configuration # # Example configuration: # # output HDMI-A-1 resolution 1920x1080 position 1920,0 # # You can get the names of your outputs by running: hyprctl monitors # ############################################################# # NOT SUPPORTED YET ON HYPRLAND (Maybe they are not needed at all) # FOR ALL SCREENS (Use rbg subpixel, for antialiased, less sharp image) # output * subpixel none misc { # Variable refresh rate vfr = true # Enabling vrr may introduce stuttering if the hz you set in your monitor is # over its vrr operational range. aka, if you OC your monitor EDID. vrr = true #no_direct_scanout = false # Currently buggy # render_ahead_of_time = 1 # This might affect latency compensation in games if you are rendering above # the monitor's refresh rate. In theory with vrr at 84FPS we don't need this. render_ahead_safezone = 5 # Allow applications to demand focus focus_on_activate = true # Enable if you use personalized wallpapers disable_hyprland_logo = true } cursor { default_monitor = $screen5 # Monitor where the cursor goes on startup. } # See https://wiki.hyprland.org/Configuring/Monitors/ # SCREEN RESOLUTION POS SCALE COLOR monitor = $screen1, 3840x2160@60, 0x0, 1, bitdepth,10 monitor = $screen2, 3840x2160@60, 3840x0, 1, bitdepth,10 monitor = $screen3, 3840x2160@60, 7680x0, 1, bitdepth,10 monitor = $screen4, 3840x2160@60, 0x2160, 1, bitdepth,10 monitor = $screen5, 3840x2160@60, 3840x2160, 1, bitdepth,10 monitor = $screen6, 3840x2160@60, 7680x2160, 1, bitdepth,10 # See: https://wiki.hyprland.org/Configuring/Workspace-Rules/ # WORKSPACE MONITOR IS DEFAULT workspace=1, monitor:$screen4, default:true workspace=2, monitor:$screen5, default:true workspace=3, monitor:$screen6, default:true workspace=4, monitor:$screen1, default:true workspace=5, monitor:$screen2, default:true workspace=6, monitor:$screen3, default:true Config File: /home/zeioth/.config/hypr/hardware.d/keyboard: Read Succeeded # Follow mouse values # 0 - Cursor movement will not change focus. # 1 - Cursor movement will always change focus to the window under the cursor. # 2 - Cursor focus will be detached from keyboard focus. Clicking on a window will move keyboard focus to that window. # 3 - Cursor focus will be completely separate from keyboard focus. Clicking on a window will not change keyboard focus. # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = es follow_mouse = 1 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. numlock_by_default = 1 touchpad { natural_scroll = no } } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more device { name = foostan Corne Mouse sensitivity = 1 accel_profile = } # LEGACY FROM SWAY #input * { # # toggles through configured layouts via caps-lock # # query the available layout toggles: `localectl list-x11-keymap-options | grep grp:` # # query the available led indicators: `localectl list-x11-keymap-options | grep grp_led` # # enables caps-lock led if not the first layout selected # # regular caps-lock behavior can be reached using shift+caps-lock # xkb_options grp:caps_toggle,grp_led:caps # # query the available layouts: `localectl list-x11-keymap-layouts` # xkb_layout "es" # # query the available variants for a given layout: `localectl list-x11-keymap-variants de` # # list in the same order as the layouts - empty equals the default layout # xkb_variant "," #} #input "18003:1:foostan_Corne_Mouse" { # # Flat or adaptative # accel_profile adaptive # # Between -1.0 and 1.0 # pointer_accel 1.0 # #My old xorg values: calibration_matrix 8 0 0 0 5 0 0 0 1 # calibration_matrix 8 0 0 0 8 0 #} Config File: /home/zeioth/.config/hypr/hardware.d/wacom: Read Succeeded # Query the connected input methods: `swaymsg -t get_inputs | grep Wacom` # DOCS: To map wacom to the active screen do it in keybinds like: # bindsym $mod+1 workspace $ws1 ; exec $map-to-active # If you have that code on keybinds, just choose screen to enable it # TODO: Needs to be re-implemented for hyprland # $map-to-active = swaymsg input type:tablet_tool map_to_output `swaymsg -t get_outputs | jq -r '.[] | select(.focused == true) | .name'` Config File: /home/zeioth/.config/hypr/modes.d/displays: Read Succeeded # TODO: There is no waybar integration in hyprland, so we could # display an overlay with the instructions while the mode is active. # NOTE: Turning on/off monitors can cause waybar/hyprpaper to crash sometimes. # To ensure they keep running, we restart them after turning on/off a monitor. submap=mode_displays # MODE IMPLEMENTATION (TURN OFF) # ------------------------------------- # One display #BIND MOD KEY DISPATCHER VALUE bind = , x, exec, hyprctl --batch "reload; keyword monitor $screen1, disable; keyword monitor $screen2, disable; keyword monitor $screen3, disable; keyword monitor $screen5, disable; keyword monitor $screen6, disable; dispatch exec pkill -9 waybar && sleep 0.1 && waybar; dispatch exec pkill -9 hyprpaper && sleep 0.1 && hyprpaper" # Three displays #BIND MOD KEY DISPATCHER VALUE bind = , c, exec, hyprctl --batch "reload; keyword monitor $screen1, disable; keyword monitor $screen2, disable; keyword monitor $screen3, disable; dispatch exec pkill -9 waybar && sleep 0.1 && waybar; dispatch exec pkill -9 hyprpaper && sleep 0.1 && hyprpaper" # Four displays #BIND MOD KEY DISPATCHER VALUE bind = , d, exec, hyprctl --batch "reload; keyword monitor $screen1, disable; keyword monitor $screen3, disable; dispatch exec pkill -9 waybar && sleep 0.1 && waybar; dispatch exec pkill -9 hyprpaper && sleep 0.1 && hyprpaper" # Six displays #BIND MOD KEY DISPATCHER VALUE bind = , v, exec, hyprctl --batch "reload; dispatch exec pkill -9 waybar && sleep 0.1 && waybar; dispatch exec pkill -9 hyprpaper && sleep 0.1 && hyprpaper" # MODE IMPLEMENTATION (DPMS) # ------------------------------------- # One display #BIND MOD KEY DISPATCHER VALUE bind = , o, dpms, off $screen1 bind = , o, dpms, off $screen2 bind = , o, dpms, off $screen3 bind = , o, dpms, on $screen4 bind = , o, dpms, off $screen5 bind = , o, dpms, off $screen6 # Three displays #BIND MOD KEY DISPATCHER VALUE bind = , t, dpms, off $screen1 bind = , t, dpms, off $screen2 bind = , t, dpms, off $screen3 bind = , t, dpms, on $screen4 bind = , t, dpms, on $screen5 bind = , t, dpms, on $screen6 # Four displays #BIND MOD KEY DISPATCHER VALUE bind = , f, dpms, off $screen1 bind = , f, dpms, on $screen2 bind = , f, dpms, off $screen3 bind = , f, dpms, on $screen4 bind = , f, dpms, on $screen5 bind = , f, dpms, on $screen6 # Six displays #BIND MOD KEY DISPATCHER VALUE bind = , s, dpms, on $screen1 bind = , s, dpms, on $screen2 bind = , s, dpms, on $screen3 bind = , s, dpms, on $screen4 bind = , s, dpms, on $screen5 bind = , s, dpms, on $screen6 # Exit conditions #BIND MOD KEY DISPATCHER VALUE bind = , escape, submap, reset bind = , o, submap, reset bind = , t, submap, reset bind = , f, submap, reset bind = , s, submap, reset # ------------------------------------- submap=reset # SWAY LEGACY (Same but it also changes hz) # ----------------------------------------- # NORMAL # ====================================================================== # This special mode is not listed: We use it for capped FPS games like # Street fighter, to get minimum latency. # $bindsym i mode "default", exec swaymsg \ # output $screen1 disable; \ # output $screen2 disable; \ # output $screen3 disable; \ # output $screen4 mode 3840x2160@59.997Hz pos 0 0 scale 1 enable; \ # output $screen5 disable; \ # output $screen6 disable # One display # $bindsym o mode "default", exec swaymsg \ # output $screen1 disable; \ # output $screen2 disable; \ # output $screen3 disable; \ # output $screen4 mode 3840x2160@70.981Hz pos 0 0 scale 1 enable; \ # output $screen5 disable; \ # output $screen6 disable # Three displays # $bindsym t mode "default", exec swaymsg \ # output $screen1 disable; \ # output $screen2 disable; \ # output $screen3 disable; \ # output $screen4 mode 3840x2160@70.981Hz pos 0 0 scale 1 enable; \ # output $screen5 mode 3840x2160@70.981Hz pos 3840 0 scale 1 enable; \ # output $screen6 mode 3840x2160@70.981Hz pos 7680 0 scale 1 enable # Six displays # $bindsym s mode "default", exec swaymsg \ # output $screen1 mode 3840x2160@70.981Hz pos 0 0 scale 1 enable; \ # output $screen2 mode 3840x2160@70.981Hz pos 3840 0 scale 1 enable; \ # output $screen3 mode 3840x2160@70.981Hz pos 7680 0 scale 1 enable; \ # output $screen4 mode 3840x2160@70.981Hz pos 0 2160 scale 1 enable; \ # output $screen5 mode 3840x2160@70.981Hz pos 3840 2160 scale 1 enable; \ # output $screen6 mode 3840x2160@70.981Hz pos 7680 2160 scale 1 enable Config File: /home/zeioth/.config/hypr/modes.d/move: Read Succeeded # TODO: There is no waybar integration in hyprland, so we could # display an overlay with the instructions while the mode is active. # DESCRIPTION: You can move a tiled window with the arrow keys. # You can move a float window with SHIFT + arrow keys. submap=mode_move # MODE IMPLEMENTATION # ------------------------------------- # For tiled #BIND MOD KEY DISPATCHER VALUE binde = , right, movewindow, r binde = , left, movewindow, l binde = , up, movewindow, u binde = , down, movewindow, d binde = , i, movewindow, r binde = , m, movewindow, l binde = , e, movewindow, u binde = , n, movewindow, d # For floats #BIND MOD KEY DISPATCHER VALUE binde = SHIFT, right, moveactive, 60 0 binde = SHIFT, left, moveactive, -60 0 binde = SHIFT, up, moveactive, 0 -60 binde = SHIFT, down, moveactive, 0 60 binde = SHIFT, i, moveactive, 60 0 binde = SHIFT, m, moveactive, -60 0 binde = SHIFT, e, moveactive, 0 -60 binde = SHIFT, n, moveactive, 0 60 # Exit condition #BIND MOD KEY DISPATCHER VALUE bind = , escape, submap, reset # ------------------------------------- submap=reset Config File: /home/zeioth/.config/hypr/modes.d/resize: Read Succeeded # TODO: There is no waybar integration in hyprland, so we could # display an overlay with the instructions while the mode is active. submap=mode_resize # MODE IMPLEMENTATION # ------------------------------------- #BIND MOD KEY DISPATCHER VALUE binde = , right, resizeactive, 60 0 binde = , left, resizeactive, -60 0 binde = , up, resizeactive, 0 -60 binde = , down, resizeactive, 0 60 #BIND MOD KEY DISPATCHER VALUE binde = SHIFT, right, resizeactive, 10 0 binde = SHIFT, left, resizeactive, -10 0 binde = SHIFT, up, resizeactive, 0 -10 binde = SHIFT, down, resizeactive, 0 10 #BIND MOD KEY DISPATCHER VALUE binde = , i, resizeactive, 60 0 binde = , m, resizeactive, -60 0 binde = , e, resizeactive, 0 -60 binde = , n, resizeactive, 0 60 #BIND MOD KEY DISPATCHER VALUE binde = SHIFT, i, resizeactive, 10 0 binde = SHIFT, m, resizeactive, -10 0 binde = SHIFT, e, resizeactive, 0 -10 binde = SHIFT, n, resizeactive, 0 10 # Exit conditions #BIND MOD KEY DISPATCHER VALUE bind = , escape, submap, reset # ------------------------------------- submap=reset Config File: /home/zeioth/.config/hypr/modes.d/screenshot: Read Succeeded # TODO: There is no waybar integration in hyprland, so we could # display an overlay with the instructions while the mode is active. submap=mode_screenshot # MODE IMPLEMENTATION # ------------------------------------- #BIND MOD KEY DISPATCHER VALUE bind = , s, exec, hyprshotgun display upload bind = , r, exec, hyprshotgun region upload bind = , w, exec, hyprshotgun window upload bind = , d, exec, hyprshotgun alldisplays upload bind = , a, exec, hyprshotgun display bind = , b, exec, hyprshotgun region bind = , c, exec, hyprshotgun window bind = , e, exec, hyprshotgun alldisplays # Exit conditions #BIND MOD KEY DISPATCHER VALUE bind = , escape, submap, reset bind = , s, submap, reset bind = , r, submap, reset bind = , w, submap, reset bind = , d, submap, reset bind = , a, submap, reset bind = , b, submap, reset bind = , c, submap, reset bind = , e, submap, reset # ------------------------------------- submap=reset Config File: /home/zeioth/.config/hypr/modes.d/shutdown: Read Succeeded # TODO: There is no waybar integration in hyprland, so we could # display an overlay with the instructions while the mode is active. submap=mode_shutdown # MODE IMPLEMENTATION # ------------------------------------- #BIND MOD KEY DISPATCHER VALUE bind = , l, exec, $locking bind = , e, exit bind = , s, exec, systemctl suspend bind = , h, exec, systemctl hibernate bind = , q, exec, systemctl poweroff bind = , r, exec, systemctl reboot # Exit conditions #BIND MOD KEY DISPATCHER VALUE bind = , escape, submap, reset bind = , l, submap, reset bind = , e, submap, reset bind = , s, submap, reset bind = , h, submap, reset bind = , q, submap, reset bind = , r, submap, reset # ------------------------------------- submap=reset Config File: /home/zeioth/.config/hypr/config.d/00-theming: Read Succeeded # Definitions files: # ../aliases.d/00-themeing-aliases # HYPRLAND ENV VARS # ================================================ # Clarification: # I'm also defining them on my .profile # beause I want them to affect all my desktop environments. # env = QT_QPA_PLATFORM,wayland # env = QT_STYLE_OVERRIDE,kvantum # env = QT_SCALE_FACTOR,2.6 # env = ELM_SCALE,2.6 # env = GDK_SCALE,2.6 # env = SAL_USE_VCLPLUGIN,gtk3 # fallback xcursor env = XCURSOR_THEME,$cursor_theme env = XCURSOR_SIZE,$cursor_size # hyprland cursor env = HYPRCURSOR_THEME,$cursor_theme env = HYPRCURSOR_SIZE,$cursor_size # GTK THEME # ================================================ # This is the only place where you need to set GTK scaling $gnome-schema = org.gnome.desktop.interface exec=gsettings set $gnome-schema gtk-theme $system_theme exec=gsettings set $gnome-schema icon-theme $system_icons exec=gsettings set org.gnome.desktop.interface text-scaling-factor $system_dpi_scaling_factor exec=gsettings set $gnome-schema cursor-theme $cursor_theme exec=gsettings set org.gnome.desktop.interface cursor-size $cursor_size # MOUSE THEME AND SIZE # ================================================ exec-once=hyprctl setcursor $cursor_theme $cursor_size # WINDOWS AND BORDERS # ================================================ general { layout = dwindle # Cursor no_focus_fallback = true # Gaps gaps_in = 5 gaps_out = 5 # Borders border_size = 2 col.active_border = 0xff4477ff col.inactive_border = 0xff2f343f # Resize resize_on_border = false hover_icon_on_border = false # Allow tearing (you must add a window rule to the window to allow tearing) allow_tearing = false } cursor { inactive_timeout = 900 # Hide the cursor after n ms (also works on screenlock) no_warps = false # Never move the cursor automatically } misc { # Allow windows to steal focus - (only xorg apps currently) focus_on_activate = false # Enable if you use personalized wallpapers disable_hyprland_logo = true } # VISUAL EFFECTS # ================================================ # See: https://wiki.hyprland.org/Configuring/Variables decoration { # Round borders rounding = 10 # Shadow drop_shadow = false shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) # Blur blur { enabled = false new_optimizations = true size = 3 passes = 1 } } # See: https://wiki.hyprland.org/Configuring/Animations animations { enabled = yes # BEZIERS NAME X0 Y0 X1 Y1 bezier = myBezier, 0.05, 0.9, 0.1, 1.05 # ANIMATION NAME ON SPEED CURVE STYLE animation = windows, 1, 2, myBezier animation = windowsOut, 1, 2, default, popin 80% animation = border, 1, 5, default animation = fadeIn, 1, 2, default animation = fadeOut, 1, 2, default animation = workspaces, 1, 6, default, fade animation = specialWorkspace, 1, 3, myBezier, slide } # LAYOUT DETAILS # ================================================ # See: https://wiki.hyprland.org/Configuring/Dwindle-Layout/ dwindle { pseudotile = yes preserve_split = yes } # See: https://wiki.hyprland.org/Configuring/Master-Layout master { new_on_top = true } # See: https://wiki.hyprland.org/Configuring/Variables gestures { workspace_swipe = off } Config File: /home/zeioth/.config/hypr/config.d/01-keybindings: Read Succeeded # More about bindings: # https://wiki.hyprland.org/Configuring/Binds/ # Definitions files: # ../aliases.d/01-system-aliases # ../aliases.d/02-program-aliases # SYSTEM # ============================================================================ # - Drag modifier # BIND MOD KEY DISPATCHER bindm = ALT_L, mouse:272, movewindow bindm = ALT_L, mouse:273, resizewindow # - System # BIND MOD KEY DISPATCHER VALUE bind = $mod SHIFT, q, killactive # window bind = $mod SHIFT, c, exec, pkill -9 waybar && hyprctl dispatch exec waybar && pkill -9 hyprpaper && hyprctl dispatch exec hyprpaper && hyprctl reload # - Terminal # BIND MOD KEY DISPATCHER VALUE bind = $mod, t, exec, $term_scratch bind = $mod SHIFT, t, exec, foot-tmux bind = $mod, d, exec, $launcher # - Hardware control # BIND MOD KEY DISPATCHER VALUE binde = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% && $sink_volume > $wob_socket binde = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% && $sink_volume > $wob_socket bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle && $sink_volume_mute > $wob_socket bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle && $set_sink_microphone_mute > $wob_socket bind = , XF86MonBrightnessUp, exec, light -A 5 && $onscreen_bar $(light -G | cut -d'.' -f1) bind = , XF86MonBrightnessDown, exec, light -U 5 && $onscreen_bar $(light -G | cut -d'.' -f1) bind = , XF86AudioPlay, exec, playerctl play-pause bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioPrev, exec, playerctl previous bind = , XF86Search, exec, $menu bind = , XF86PowerOff, exec, $shutdown # bind=XF86TouchpadToggle,input,type:touchpad events toggle enabled disabled # TODO: Port from sway # WORKSPACES # ============================================================================ # - Switch to workspace # Note: workspaces are asociated ot monitors on ../hardware.d/displays # BIND MOD KEY DISPATCHER VALUE bind = $mod, 1, workspace, 1 bind = $mod, 2, workspace, 2 bind = $mod, 3, workspace, 3 bind = $mod, 4, workspace, 4 bind = $mod, 5, workspace, 5 bind = $mod, 6, workspace, 6 # - Move focussed window to workspace # BIND MOD KEY DISPATCHER VALUE bind = $mod SHIFT, 1, movetoworkspace, 1 bind = $mod SHIFT, 2, movetoworkspace, 2 bind = $mod SHIFT, 3, movetoworkspace, 3 bind = $mod SHIFT, 4, movetoworkspace, 4 bind = $mod SHIFT, 5, movetoworkspace, 5 bind = $mod SHIFT, 6, movetoworkspace, 6 # UTILITIES # ============================================================================ # - Misc # BIND MOD KEY DISPATCHER VALUE bind = ALT, return, exec, ~/.config/tmux/new-grid.sh bind = $mod SHIFT, h, exec, $help_keyboard bind = $mod SHIFT, v, exec, $help_nvim bind = $mod CTRL, w, exec, $weather bind = $mod, F1, exec, $tui_file_browser # ranger bind = $mod, F2, exec, $gui_file_browser # thunar bind = $mod, F6, exec, $nvim_editor bind = $mod, F7, exec, $nvim_backlog bind = $mod, F8, exec, $calc bind = $mod, F10, exec, $nvim bind = $mod, F11, exec, $backup_to_cloud bind = $mod, F4, exec, $clipboard_open bind = $mod CTRL, e, exec, wofi-emoji bind = $mod CTRL, b, exec, $update_packages bind = $mod CTRL, s, exec, $chatgpt # - Swayr (Show running windows and more) # TODO: Comprueba porque no funcionan # BIND MOD KEY DISPATCHER VALUE bind = $mod SHIFT, x, exec, $task_killer bind = $mod, tab, exec, $task_killer #bind = $mod, tab, exec, $swayr-wintab #bind = $mod SHIFT, x, exec, $swayr-xkill #bind = $mod, next, exec, $swayr-next #bind = $mod, prior, exec, $swayr-prev # MODES # ============================================================================ # BIND MOD KEY DISPATCHER VALUE bind = $mod SHIFT, d, submap, mode_displays bind = $mod SHIFT, a, submap, mode_move bind = $mod , r, submap, mode_resize bind = $mod SHIFT, s, submap, mode_screenshot bind = $mod SHIFT, e, submap, mode_shutdown # SCRATCHPAD # ============================================================================ # Important: In order for hyprland scratchpad to work properly, you must create # a rule where anything going into scratchpat, becomes NOT float. # Wofi scratchpad → More powerful but requires naming terminal windows. # BIND MOD KEY DISPATCHER VALUE # bind = $mod SHIFT, minus, exec, hypr-scratchpad # bind = $mod, minus, exec, hypr-scratchpad -l -g # bind = $mod SHIFT CTRL, minus, togglespecialworkspace # Extra ws scratchpad → Less powerful but nicer. # BIND MOD KEY DISPATCHER VALUE bind = $mod SHIFT, minus, exec, hypr-fix-special bind = $mod, minus, togglespecialworkspace # LAYOUT # ============================================================================ # ## Action // Toggle floating ## bind = $mod SHIFT, space, togglefloating bind = $mod SHIFT, space, centerwindow # ## Action // Toggle fullscreen ## bind = $mod, f, fullscreen # ## Action // Toggle fullscreen across all monitors## # WIP: https://github.com/hyprwm/Hyprland/issues/1660 # bind = $mod SHIFT, f, fullscreen global # ## Setting // Split windows horizontally ## # bind = $mod, b, splith # ## Setting // Split windows vertically ## # bind = $mod, v, splitv # ## Action // Switch to window stacking ## # bind = $mod, s, layout stacking # ## Action // Switch to window tabbing ## # bind = $mod, w, layout tabbed # ## Action // Toggle window splitting ## # bind = $mod, e, layout toggle split # ## Navigation // Toggle focus between tiling and floating ## # bind = $mod, space, focus mode_toggle # ## Navigation // Swap focus to the parent window ## # bind = $mod, a, focus parent # ## Quick lock bind = $mod SHIFT, l, exec, $locking # FOCUS # ============================================================================ # TODO: Migrate from sway # Navigation // Move focus // $mod + ↑ ↓ ← → ## # bind = $mod, Left focus left # bind = $mod, Down focus down # bind = $mod, Up focus up # bind = $mod, Right focus right # PROGRAM KEYBINDINGS # ============================================================================ # HOW IT WORKS # The keybindings must be defined inside the program too. # We are just passing the keybinding to the program. # WARNING: # While you use this feature, you won't be able to use the shortcuts # on anything else, not even in the program itself. So comment this # while you setup the keybindings inside the program. # BIND MOD KEY DISPATCHER VALUE bind = CTRL SHIFT, r, pass, ^(com\.obsproject\.Studio)$ bind = CTRL SHIFT, b, pass, ^(com\.obsproject\.Studio)$ Config File: /home/zeioth/.config/hypr/config.d/02-window-rules: Read Succeeded # You can discover a class with 'hyprctl clients' # Check the syntax on: https://wiki.hyprland.org/Configuring/Window-Rules/ # WINDOW RULES # ============================================================================ # Workspace RULE WINDOW windowrulev2 = workspace $ws1, class:^(steamwebhelper)$ windowrulev2 = tile, class:^(steamwebhelper)$ windowrulev2 = workspace $ws1, class:^(com.stremio.stremio)$ windowrulev2 = workspace $ws2, class:^(firefox)$ windowrulev2 = workspace $ws4, class:^(franz)$ windowrulev2 = workspace $ws4, class:^(com.obsproject.Studio)$ windowrulev2 = workspace $ws6, class:^(thunderbird)$ windowrulev2 = workspace $ws6, class:^(spotify)$ # Scratchpad RULE WINDOW windowrulev2 = float, class:^(scratchpad)$ windowrulev2 = float, class:^(pcmanfm)$ windowrulev2 = float, class:^(pcmanfm-qt)$ windowrulev2 = float, class:^(pamac-manager)$ windowrulev2 = float, class:^(thunar)$ windowrulev2 = centerwindow, class:^(scratchpad)$ windowrulev2 = centerwindow, class:^(pcmanfm)$ windowrulev2 = centerwindow, class:^(pcmanfm-qt)$ windowrulev2 = centerwindow, class:^(pamac-manager)$ windowrulev2 = centerwindow, class:^(thunar)$ # Fullscreen RULE WINDOW windowrulev2 = fullscreen, class:^(swayimg)$ windowrulev2 = fullscreen, class:^(org.gnome.Weather)$ windowrulev2 = fullscreen, title:^(weather) # Float RULE WINDOW windowrulev2 = float, class:^(pulsemixer)$ windowrulev2 = float, class:^(pavucontrol)$ windowrulev2 = float, class:^(calamares)$ windowrulev2 = float, title:^(File Transfer*)$ windowrulev2 = float, title:^(Firefox — Sharing Indicator)$ windowrulev2 = float, class:^(firefox)$,title:^(library) windowrulev2 = float, title:^(Save File)$ windowrulev2 = float, class:^(blueman-manager)$ windowrulev2 = float, class:^(thunderbird)$,title:^(.*Reminder) windowrulev2 = float, class:^(pyton3)$,title:(\Remaining (\) windowrulev2 = float, class:^(SVPManager)$ windowrulev2 = tile, class:^(file-roller)$,title:^(Archive manager) windowrulev2 = float, class:^(file-roller)$,title:^(Extract archive) windowrulev2 = centerwindow, class:^(pulsemixer)$ windowrulev2 = centerwindow, class:^(pavucontrol)$ windowrulev2 = centerwindow, class:^(calamares)$ windowrulev2 = centerwindow, title:^(File Transfer*)$ windowrulev2 = centerwindow, title:^(Firefox — Sharing Indicator)$ windowrulev2 = centerwindow, class:^(firefox)$,title:^(library) windowrulev2 = centerwindow, title:^(Save File)$ windowrulev2 = centerwindow, class:^(blueman-manager)$ windowrulev2 = centerwindow, class:^(thunderbird)$,title:^(.*Reminder) windowrulev2 = centerwindow, class:^(pyton3)$,title:(\Remaining (\) windowrulev2 = centerwindow, class:^(SVPManager)$ windowrulev2 = centerwindow, class:^(file-roller)$,title:^(Extract archive) # Tearing windowrulev2 = immediate, class:^(steam_app_1172470)$ # Apex Legends # Animation RULE WINDOW # windowrulev2 = noanim, class:^(wofi)$ # windowrulev2 = dimaround, class:^(scratchpad)$ # Layer RULE WINDOW layerrule = noanim, wofi # HOT FIXES # ============================================================================ # Fix: Steam menus dissapearing on mouseover windowrulev2 = stayfocused, title:^()$,class:^(steam)$ windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$ # Fix: Steam starts in a broken position as float window windowrulev2 = tile, class:^(steam)$ windowrulev2 = fullscreen, class:^(steam)$ ======Config-End======== ```

Description

The next command render a black screen on Hyprland.

gamescope -f -W 3840 -H 2160 --prefer-vk-device 1002:73df --prefer-output DP-3 -e -- steam -gamepadui; exit

When launched through a launcher:

[Desktop Entry]
Name=Steam Gamescope (Custom)
Comment=Steam Gamescope + gamemode
Exec=gamescope-custom
Icon=steam
Terminal=false
Type=Application
Categories=Game;

It renders a black screen:

screenshot_2024-07-21_13-53-58_203762468

Funny enough, running the launcher in sway, it works correctly. Also when running the command on the terminal on hyprland (without the launcher). This regression has been introduced a couple hyprland versions ago, it used to work fine.

How to reproduce

x

Crash reports, logs, images, videos

No response

vaxerski commented 1 month ago

can you bisect this? also is that not #6376

Zeioth commented 1 month ago

It only seems to affect gamescope, steam launches correctly:

/local/bin

QT_SCALE_FACTOR=1.0 ENABLE_VKBASALT=1 steam-native

/local/share/applications

[Desktop Entry]
Name=Steam (Custom)
Comment=Steam + gamemode
Exec=steam-custom
Icon=steam
Terminal=false
Type=Application
Categories=Game;
abihf commented 1 month ago

have you tried --backend sdl on gamescope?

Zeioth commented 1 month ago

@abihf Oh what the hell, that works. Is that a known gamescope bug or something?

vaxerski commented 1 month ago

dupe #6376

Is that a known gamescope bug or something?

As the maintainer of gamescope said, mr Joshua Ashton, it's a bug because "vaxry is a terrible person and hyprland is shit code"

izmyname commented 1 month ago

vaxry is a terrible person and hyprland is shit code

I like the fact, the people who say such things, are the most vocal about 'toxicity in FOSS community'. They give me vibes of sociopaths pretending to be normal, caring people.

Sorry for bumping.