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.61k stars 827 forks source link

Chromium based apps flicker [NVIDIA] #7252

Closed ledror closed 1 month ago

ledror commented 1 month ago

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit 4b4971c06fb02df00a2bd20b6b47b5d0e7d799a7 (internal: introduce new types to avoid unsigned int rollover and signed int overflow (7216)). Date: Thu Aug 8 22:01:50 2024 Tag: v0.42.0-2-g4b4971c0, commits: 5071 flags: (if any) System Information: System name: Linux Node name: dror-arch Release: 6.10.3-arch1-2 Version: #1 SMP PREEMPT_DYNAMIC Tue, 06 Aug 2024 07:21:19 +0000 GPU information: 09:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU106 [GeForce RTX 2060 SUPER] [10de:1f06] (rev a1) (prog-if 00 [VGA controller]) NVRM version: NVIDIA UNIX x86_64 Kernel Module 555.58.02 Tue Jun 25 01:39:15 UTC 2024 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/dror/.config/hypr/hyprland.conf: Read Succeeded #   ░▒▒▒░░░░░▓▓          ___________ # ░░▒▒▒░░░░░▓▓        //___________/ # ░░▒▒▒░░░░░▓▓     _   _ _    _ _____ # ░░▒▒░░░░░▓▓▓▓▓▓ | | | | |  | |  __/ # ░▒▒░░░░▓▓   ▓▓ | |_| | |_/ /| |___ #  ░▒▒░░▓▓   ▓▓   \__  |____/ |____/ #    ░▒▓▓   ▓▓  //____/ $scrPath = $HOME/.local/share/bin # set scripts path # █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█ # █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄ # See https://wiki.hyprland.org/Configuring/Monitors/ monitor = ,preferred,auto,auto # █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█ # █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█ # 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 # █▀▀ █▄░█ █░█ # ██▄ █░▀█ ▀▄▀ # 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 repeat_delay = 400 repeat_rate = 40 sensitivity = 0 force_no_accel = 1 } debug:disable_logs = false # See https://wiki.hyprland.org/Configuring/Keywords/#executing # See https://wiki.hyprland.org/Configuring/Variables/ # █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀ # █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█ # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ dwindle { pseudotile = yes preserve_split = yes } # See https://wiki.hyprland.org/Configuring/Master-Layout/ master { new_status = master } # █▀▄▀█ █ █▀ █▀▀ # █░▀░█ █ ▄█ █▄▄ # 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 source = ~/.config/hypr/themes/theme.conf # theme specific settings 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 source = ~/.config/hypr/nvidia.conf # auto sourced vars for nvidia Config File: /home/dror/.config/hypr/animations.conf: Read Succeeded # ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ # █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█ # 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, 1.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 # this fucker literally ruined my cpu animation = fade, 1, 10, default animation = workspaces, 1, 5, wind } Config File: /home/dror/.config/hypr/keybindings.conf: Read Succeeded # █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀ # █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█ # See https://wiki.hyprland.org/Configuring/Keywords/ # & https://wiki.hyprland.org/Configuring/Binds/ # Main modifier $mainMod = Super # super / meta / windows key # Assign apps $term = kitty # $editor = code $file = dolphin $browser = google-chrome-stable # Window/Session actions bind = $mainMod, Q, exec, $scrPath/dontkillsteam.sh # close focused window bind = Alt, F4, exec, $scrPath/dontkillsteam.sh # close focused window bind = $mainMod+CTRL, D, exit, # kill hyprland session bind = $mainMod, W, togglefloating, # toggle the window between focus and float bind = $mainMod, G, togglegroup, # toggle the window between focus and group bind = Alt, Return, fullscreen, # toggle the window between focus and fullscreen bind = $mainMod, L, exec, swaylock # launch lock screen bind = $mainMod+Shift, F, exec, $scrPath/windowpin.sh # toggle pin on focused window bind = $mainMod, Backspace, exec, $scrPath/logoutlaunch.sh # launch logout menu bind = Ctrl+Alt, W, exec, killall waybar || waybar # toggle waybar # Application shortcuts bind = $mainMod, T, exec, $term # launch terminal emulator bind = $mainMod, E, exec, $file # launch file manager # bind = $mainMod, C, exec, $editor # launch text editor bind = $mainMod, F, exec, $browser # launch web browser bind = Ctrl+Shift, Escape, exec, $scrPath/sysmonlaunch.sh # launch system monitor (htop/btop or fallback to top) # Rofi menus bind = $mainMod, Space, exec, pkill -x rofi || $scrPath/rofilaunch.sh d # launch application launcher bind = $mainMod, Tab, exec, pkill -x rofi || $scrPath/rofilaunch.sh w # launch window switcher bind = $mainMod+Shift, E, exec, pkill -x rofi || $scrPath/rofilaunch.sh f # launch file explorer # Audio control bindl = , F10, exec, $scrPath/volumecontrol.sh -o m # toggle audio mute bindel = , F11, exec, $scrPath/volumecontrol.sh -o d # decrease volume bindel = , F12, exec, $scrPath/volumecontrol.sh -o i # increase volume bindl = , XF86AudioMute, exec, $scrPath/volumecontrol.sh -o m # toggle audio mute bindl = , XF86AudioMicMute, exec, $scrPath/volumecontrol.sh -i m # toggle microphone mute bindel = , XF86AudioLowerVolume, exec, $scrPath/volumecontrol.sh -o d # decrease volume bindel = , XF86AudioRaiseVolume, exec, $scrPath/volumecontrol.sh -o i # increase volume # Media control bindl = , XF86AudioPlay, exec, playerctl play-pause # toggle between media play and pause bindl = , XF86AudioPause, exec, playerctl play-pause # toggle between media play and pause bindl = , XF86AudioNext, exec, playerctl next # media next bindl = , XF86AudioPrev, exec, playerctl previous # media previous # Brightness control bindel = , XF86MonBrightnessUp, exec, $scrPath/brightnesscontrol.sh i # increase brightness bindel = , XF86MonBrightnessDown, exec, $scrPath/brightnesscontrol.sh d # decrease brightness # Move between grouped windows bind = $mainMod CTRL , H, changegroupactive, b bind = $mainMod CTRL , L, changegroupactive, f # Screenshot/Screencapture bind = $mainMod, P, exec, $scrPath/screenshot.sh s # partial screenshot capture bind = $mainMod+Ctrl, P, exec, $scrPath/screenshot.sh sf # partial screenshot capture (frozen screen) bind = $mainMod+Alt, P, exec, $scrPath/screenshot.sh m # monitor screenshot capture bind = , Print, exec, $scrPath/screenshot.sh p # all monitors screenshot capture # Custom scripts bind = $mainMod+Alt, G, exec, $scrPath/gamemode.sh # disable hypr effects for gamemode bind = $mainMod+Alt, Right, exec, $scrPath/swwwallpaper.sh -n # next wallpaper bind = $mainMod+Alt, Left, exec, $scrPath/swwwallpaper.sh -p # previous wallpaper bind = $mainMod+Alt, Up, exec, $scrPath/wbarconfgen.sh n # next waybar mode bind = $mainMod+Alt, Down, exec, $scrPath/wbarconfgen.sh p # previous waybar mode bind = $mainMod+Shift, R, exec, pkill -x rofi || $scrPath/wallbashtoggle.sh -m # launch wallbash mode select menu bind = $mainMod+Shift, T, exec, pkill -x rofi || $scrPath/themeselect.sh # launch theme select menu bind = $mainMod+Shift, A, exec, pkill -x rofi || $scrPath/rofiselect.sh # launch select menu bind = $mainMod+Shift, W, exec, pkill -x rofi || $scrPath/swwwallselect.sh # launch wallpaper select menu bind = $mainMod, V, exec, pkill -x rofi || $scrPath/cliphist.sh c # launch clipboard bind = $mainMod, K, exec, $scrPath/keyboardswitch.sh # switch keyboard layout bind = $mainMod, slash, exec, pkill -x rofi || $scrPath/keybinds_hint.sh c # launch keybinds hint # Move/Change window focus bind = $mainMod, Left, movefocus, l bind = $mainMod, Right, movefocus, r bind = $mainMod, Up, movefocus, u bind = $mainMod, Down, movefocus, d bind = Alt, Tab, movefocus, d # Switch workspaces 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 # Switch workspaces to a relative workspace bind = $mainMod+Ctrl, Right, workspace, r+1 bind = $mainMod+Ctrl, Left, workspace, r-1 # Move to the first empty workspace bind = $mainMod+Ctrl, Down, workspace, empty # Resize windows binde = $mainMod+Shift, Right, resizeactive, 30 0 binde = $mainMod+Shift, Left, resizeactive, -30 0 binde = $mainMod+Shift, Up, resizeactive, 0 -30 binde = $mainMod+Shift, Down, resizeactive, 0 30 # Move focused window to a workspace 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 # Move focused window to a relative workspace bind = $mainMod+Ctrl+Alt, Right, movetoworkspace, r+1 bind = $mainMod+Ctrl+Alt, Left, movetoworkspace, r-1 # Move active window around current workspace with mainMod + SHIFT + CTRL [←→↑↓] $moveactivewindow=grep -q "true" <<< $(hyprctl activewindow -j | jq -r .floating) && hyprctl dispatch moveactive binded = $mainMod SHIFT $CONTROL, left,Move activewindow to the right,exec, $moveactivewindow -30 0 || hyprctl dispatch movewindow l binded = $mainMod SHIFT $CONTROL, right,Move activewindow to the right,exec, $moveactivewindow 30 0 || hyprctl dispatch movewindow r binded = $mainMod SHIFT $CONTROL, up,Move activewindow to the right,exec, $moveactivewindow 0 -30 || hyprctl dispatch movewindow u binded = $mainMod SHIFT $CONTROL, down,Move activewindow to the right,exec, $moveactivewindow 0 30 || hyprctl dispatch movewindow d # Scroll through existing workspaces bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Move/Resize focused window bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow bindm = $mainMod, Z, movewindow bindm = $mainMod, X, resizewindow # Move/Switch to special workspace (scratchpad) bind = $mainMod+Alt, S, movetoworkspacesilent, special bind = $mainMod, S, togglespecialworkspace, # Toggle focused window split bind = $mainMod, J, togglesplit # Move focused window to a workspace silently bind = $mainMod+Alt, 1, movetoworkspacesilent, 1 bind = $mainMod+Alt, 2, movetoworkspacesilent, 2 bind = $mainMod+Alt, 3, movetoworkspacesilent, 3 bind = $mainMod+Alt, 4, movetoworkspacesilent, 4 bind = $mainMod+Alt, 5, movetoworkspacesilent, 5 bind = $mainMod+Alt, 6, movetoworkspacesilent, 6 bind = $mainMod+Alt, 7, movetoworkspacesilent, 7 bind = $mainMod+Alt, 8, movetoworkspacesilent, 8 bind = $mainMod+Alt, 9, movetoworkspacesilent, 9 bind = $mainMod+Alt, 0, movetoworkspacesilent, 10 Config File: /home/dror/.config/hypr/windowrules.conf: Read Succeeded # █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀ # ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█ # See https://wiki.hyprland.org/Configuring/Window-Rules/ # windowrulev2 = opacity 0.90 0.90,class:^(firefox)$ windowrulev2 = opacity 0.90 0.90,class:^(google-chrome-stable)$ 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:^(Spotify)$ windowrulev2 = opacity 0.70 0.70,initialTitle:^(Spotify Free)$ 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:^(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,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 Config File: /home/dror/.config/hypr/themes/common.conf: Read Succeeded # █▀▀ █░█ █▀█ █▀ █▀█ █▀█ # █▄▄ █▄█ █▀▄ ▄█ █▄█ █▀▄ exec = hyprctl setcursor Bibata-Modern-Ice 20 exec = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice' exec = gsettings set org.gnome.desktop.interface cursor-size 20 # █▀▀ █▀█ █▄░█ ▀█▀ # █▀░ █▄█ █░▀█ ░█░ exec = gsettings set org.gnome.desktop.interface font-name 'Cantarell 10' exec = gsettings set org.gnome.desktop.interface document-font-name 'Cantarell 10' exec = gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaCove Nerd Font Mono 9' exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' exec = gsettings set org.gnome.desktop.interface font-hinting 'full' # █▀ █▀█ █▀▀ █▀▀ █ ▄▀█ █░░ # ▄█ █▀▀ ██▄ █▄▄ █ █▀█ █▄▄ decoration { dim_special = 0.3 blur { special = true } } Config File: /home/dror/.config/hypr/themes/theme.conf: Read Succeeded exec = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-grey' exec = gsettings set org.gnome.desktop.interface gtk-theme 'Catppuccin-Latte' exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' general { gaps_in = 3 gaps_out = 8 border_size = 2 col.active_border = rgba(dc8a78ff) rgba(8839efff) 45deg col.inactive_border = rgba(7287fdcc) rgba(179299cc) 45deg layout = dwindle resize_on_border = true } group { col.border_active = rgba(dc8a78ff) rgba(8839efff) 45deg col.border_inactive = rgba(7287fdcc) rgba(179299cc) 45deg col.border_locked_active = rgba(dc8a78ff) rgba(8839efff) 45deg col.border_locked_inactive = rgba(7287fdcc) rgba(179299cc) 45deg } decoration { rounding = 10 drop_shadow = false blur { enabled = yes size = 6 passes = 3 new_optimizations = on ignore_opacity = on xray = false } } layerrule = blur,waybar Config File: /home/dror/.config/hypr/themes/colors.conf: Read Succeeded Config File: /home/dror/.config/hypr/monitors.conf: Read Succeeded # █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█ █▀ # █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄ ▄█ # 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=DVI-D-1, 1920x1080@144, 0x0, 1 monitor=HDMI-A-1, 1920x1080@60, 1920x0, 1 Config File: /home/dror/.config/hypr/userprefs.conf: Read Succeeded # █░█ █▀ █▀▀ █▀█   █▀█ █▀█ █▀▀ █▀▀ █▀ # █▄█ ▄█ ██▄ █▀▄   █▀▀ █▀▄ ██▄ █▀░ ▄█ # Set your personal hyprland configuration here # For a sample file, please refer to https://github.com/prasanthrangan/hyprdots/blob/main/Configs/.config/hypr/userprefs.t2 Config File: /home/dror/.config/hypr/nvidia.conf: Read Succeeded # █▄░█ █░█ █ █▀▄ █ ▄▀█ # █░▀█ ▀▄▀ █ █▄▀ █ █▀█ # See https://wiki.hyprland.org/Nvidia/ 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 cursor { no_hardware_cursors = true } ======Config-End======== ```

Description

Basically every time there's an animation / window popping (like a youtube video or typing in the search bar, where the suggestions are appearing and disappearing) my chrome flickers.

The best example of this is when I delete lines from the chrome search bar, and the suggestions keep changing, the letters that are deleted alternate visually between appearing and disappearing

I use the latest (non-beta) nvidia drivers from the AUR and everything's updated (happens both on hyprland and hyprland-git).

This doesn't happen if I force chrome to run on X11.

This doesn't occur on KDE Plasma with Wayland.

I followed the nvidia support page in hyprland wiki but nothing changed much.

Also, turns ut that if I keep moving my mouse in the window of the video, it doesn't lag. Same happens with eglgears_wayland, though I'm not sure if its intended or not.

Turning off GPU acceleration "fixes" the issue.

How to reproduce

Installed hyprdots on a relatively fresh arch install and this happpened basically out of the box. Initially I used 0.41.2-3, then to try and fix the issue I upgarded to 0.42.0-1. I tried to selectively remove options from the config but nothing that I've tried eliminated the issue.

Crash reports, logs, images, videos

I see many errors being spammed nonstop when I watch a video, though none of these errors occur when I just delete some text from the search bar:

[20393:3:0809/094335.930158:ERROR:client_native_pixmap_dmabuf.cc(45)] Failed to mmap dmabuf: Invalid argument (22)
[20393:3:0809/094335.930280:ERROR:client_shared_image.cc(156)] Failed to map the buffer.
[20393:3:0809/094335.930357:ERROR:client_shared_image.cc(142)] ScopedMapping init failed.
[20393:3:0809/094335.930446:ERROR:client_shared_image.cc(294)] Unable to create ScopedMapping
[20393:3:0809/094335.980385:ERROR:client_native_pixmap_dmabuf.cc(45)] Failed to mmap dmabuf: Invalid argument (22)
[20393:3:0809/094335.980517:ERROR:client_shared_image.cc(156)] Failed to map the buffer.
[20393:3:0809/094335.980596:ERROR:client_shared_image.cc(142)] ScopedMapping init failed.
[20393:3:0809/094335.980677:ERROR:client_shared_image.cc(294)] Unable to create ScopedMapping
[20393:3:0809/094336.014181:ERROR:client_native_pixmap_dmabuf.cc(45)] Failed to mmap dmabuf: Invalid argument (22)
[20393:3:0809/094336.014299:ERROR:client_shared_image.cc(156)] Failed to map the buffer.
[20393:3:0809/094336.014366:ERROR:client_shared_image.cc(142)] ScopedMapping init failed.
[20393:3:0809/094336.014419:ERROR:client_shared_image.cc(294)] Unable to create ScopedMapping
vaxerski commented 1 month ago

sounds like an nvidia bug that makes chromium bug out

BasitAli commented 1 month ago

Just fyi @vaxerski this doesn't happen on mutter for me or kde as mentioned in the ticket. Not imposing as I cannot contribute much in this bug and currently just ignoring the glitches. Do you think it'll get resolved when the nvidia kms bug is fixed?

vaxerski commented 1 month ago

no clue

gillesgagniard commented 1 week ago

I'm also impacted by this one making Chromium unusable on Hyprland (and I've also got a nvidia card, running on 560 drivers). As Chromium runs fine on KDE Wayland, as well as Cosmic for what it's worth, this is indeed an Hyprland issue.

ledror commented 1 week ago

I'm also impacted by this one making Chromium unusable on Hyprland (and I've also got a nvidia card, running on 560 drivers). As Chromium runs fine on KDE Wayland, as well as Cosmic for what it's worth, this is indeed an Hyprland issue.

What fixed it for me (as far as I can tell, and if we can call it a fix) was following "Fixing other random flickering (nuclear method)" in the hyprland nvidia wiki Turns out that if I had my mouse actively moving, the videos/animations didn't suffer from the flickering. Realized this has to do with the gpu idling or something, so it's logical that it worked for my case

ledror commented 1 week ago

I'm not sure if there's a different solution. My 2060 super takes ~33W on idle with this setting which is nothing too bad.

ferrreo commented 1 week ago

@vaxerski I think there is a hyprland or aquamarine bug here. Turning off damage tracking completely gets rid of the flickering. It also gets much worse if fractional scaling is enabled in combination with damage tracking. Turning off VFR also gets rid of the weird discord typing behavior where it backtracks and stuff.

It does not happen with any other compositors that I have tested with KMS/explicit sync on so if it is a driver bug then both mutter and kwin are working around it somehow but honestly I don't think they are. Even cosmic/smithay works fine even though it doesn't have explicit sync.

What can I do to help track down this potential bug?

vaxerski commented 1 week ago

no clue, seems like a very rare bug. Does it happen on 0.39.1?

ferrreo commented 1 week ago

If the hyprland-nvidia channel is anything to go by I don't think this is a rare bug at all, it seems to effect everyone that posts in there to some extent. The issue is separating what are nvidia driver issues or chromium shit code issues from actual hyprland issues.

BasitAli commented 1 week ago

Should this be reopened or maybe we can create a new issue?

BTW, Is smithay to cosmic what aquamarine is to hyprland?

enzi commented 5 days ago

just stumbled upon here because i get this bug in KDE. so it's not just related to hyprland. discord throws this for me so i guess all electron and chromium based apps are affected. pretty sure it's also only happening with nvidia. i have 560 drivers.

obivan commented 1 day ago

Will post here as I have found a simple and reliable way to reproduce it.

1) Open Chromium. 2) Go to a page with a lot of CSS animations, for example https://daisyui.com/components/loading/ 3) Scroll to the middle of the page.

Chromium flickers.

obivan commented 1 day ago

Can we reopen this please?

vaxerski commented 1 day ago

no, it's an nvidia bug

ferrreo commented 1 day ago

If anyone wants to "fix" this with their config you can (mostly) by setting the following:

render { explicit_sync = 2 explicit_sync_kms = 0 }

opengl { nvidia_anti_flicker = 0 force_introspection = 2 }

misc { vfr = 0 }

debug { damage_tracking = 0 }

These work to fix almost all flickers on the 560 drivers, I have not tested the 555 drivers.

Some caveats vfr=0 means Hyprland sends every single frame even if nothing changed so average CPU usage will go up, however the fact this allows nvidia_anti_flicker to be set to 0 also saves a massive amount of CPU. damage_tracking = 0 sucks to have to do as it means the whole screen gets re-rendered every frame, again using more power but a lot of the flickering seems to be damage tracking related, bits of previous frames hanging around longer than they should.

I would basically check when new drivers drop and revert these settings to default as soon as Nvidia fixes their shit.

ledror commented 1 day ago

If anyone wants to "fix" this with their config you can (mostly) by setting the following:

render { explicit_sync = 2 explicit_sync_kms = 0 }

opengl { nvidia_anti_flicker = 0 force_introspection = 2 }

misc { vfr = 0 }

debug { damage_tracking = 0 }

These work to fix almost all flickers on the 560 drivers, I have not tested the 555 drivers.

Some caveats vfr=0 means Hyprland sends every single frame even if nothing changed so average CPU usage will go up, however the fact this allows nvidia_anti_flicker to be set to 0 also saves a massive amount of CPU. damage_tracking = 0 sucks to have to do as it means the whole screen gets re-rendered every frame, again using more power but a lot of the flickering seems to be damage tracking related, bits of previous frames hanging around longer than they should.

I would basically check when new drivers drop and revert these settings to default as soon as Nvidia fixes their shit.

Did you try changing the idle settings, as per the wiki page, before trying these config changes? Seems much less intrusive to me if both works, just wondering.

ferrreo commented 1 day ago

If anyone wants to "fix" this with their config you can (mostly) by setting the following: render { explicit_sync = 2 explicit_sync_kms = 0 } opengl { nvidia_anti_flicker = 0 force_introspection = 2 } misc { vfr = 0 } debug { damage_tracking = 0 } These work to fix almost all flickers on the 560 drivers, I have not tested the 555 drivers. Some caveats vfr=0 means Hyprland sends every single frame even if nothing changed so average CPU usage will go up, however the fact this allows nvidia_anti_flicker to be set to 0 also saves a massive amount of CPU. damage_tracking = 0 sucks to have to do as it means the whole screen gets re-rendered every frame, again using more power but a lot of the flickering seems to be damage tracking related, bits of previous frames hanging around longer than they should. I would basically check when new drivers drop and revert these settings to default as soon as Nvidia fixes their shit.

Did you try changing the idle settings, as per the wiki page, before trying these config changes? Seems much less intrusive to me if both works, just wondering.

If you mean these then those settings don't do anything after driver 525 as Nvidia completely removed powermizer.

ledror commented 1 day ago

If you mean these then those settings don't do anything after driver 525 as Nvidia completely removed powermizer.

So I have no idea why it fixed everything for me on 560, wth…

obivan commented 1 day ago

Does anyone know why the flickering doesn't happen in KWin? I mean, maybe they are using some kind of hack?

ferrreo commented 1 day ago

If you mean these then those settings don't do anything after driver 525 as Nvidia completely removed powermizer.

So I have no idea why it fixed everything for me on 560, wth…

You must have also changed something else or the exact issue you were seeing got fixed in an update or something. For me the idle flicker was never as bad as a page with heavy CSS in chromium or typing in discord etc.

Also those config changes to use like 3% cpu instead of 1% cpu are likely to use less power than your GPU idling 50W higher from the wiki's powermizer changes. Does depend heavily on specific hardware though.

ferrreo commented 1 day ago

Does anyone know why the flickering doesn't happen in KWin? I mean, maybe they are using some kind of hack?

Someone above said they get it in KDE too

BasitAli commented 1 day ago

I have noticed something strange with powermizer. Initially it did not do anything for me and based on some search results, I came to the same conclusion that the settings to enable powermizer no longer works (I kept the settings in nvidia.conf). Then I was test driving cosmic for like a week and saw no flickers at all, but the gpu at idle used >75 watts. Came back to Hyprland and still see the same power usage and no flickers.

My guess is that powermizer started working after a kernel update or something. Haven't put it to test after disabling the settings. So far, I'm happy with the increased power usage as long as I get no flickers.