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.96k stars 913 forks source link

Cursor size changing on GTK 4 programs #7944

Closed Axenide closed 2 months ago

Axenide commented 2 months ago

Already reported ? *

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 0f594732b063a90d44df8c5d402d658f27471dfe (props: bump version to 0.43.0). Date: Sun Sep 8 16:48:21 2024 Tag: v0.43.0, commits: 5196 flags: (if any) System Information: System name: Linux Node name: arch Release: 6.10.10-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Thu, 12 Sep 2024 17:21:02 +0000 GPU information: 06:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU106 [GeForce RTX 2060 Rev. A] [10de:1f08] (rev a1) (prog-if 00 [VGA controller]) NVRM version: NVIDIA UNIX x86_64 Kernel Module 560.35.03 Fri Aug 16 21: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/adriano/.config/hypr/hyprland.conf: Read Succeeded # ┌────────────────────────────────────────────┐ # │ │ # │ ░█▀█░█░█░█▀▀░█▀█░▀█▀░█▀▄░█▀▀░▀░█▀▀ │ # │ ░█▀█░▄▀▄░█▀▀░█░█░░█░░█░█░█▀▀░░░▀▀█ │ # │ ░▀░▀░▀░▀░▀▀▀░▀░▀░▀▀▀░▀▀░░▀▀▀░░░▀▀▀ │ # │ ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄ │ # │ ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█ │ # │ ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░ │ # │ │ # └────────────────────────────────────────────┘ # https://github.com/Axenide/Dotfiles # Monitor configuration monitor=,preferred,auto,1 # Source a file (multi-file configs) source = ~/.config/hypr/source/environment.conf source = ~/.config/hypr/source/binds.conf source = ~/.config/hypr/source/autostart.conf source = ~/.config/hypr/source/windowrules.conf source = ~/.config/hypr/source/input.conf source = ~/.config/hypr/source/colors.conf source = ~/.config/hypr/source/appearance.conf source = ~/.config/hypr/source/misc.conf Config File: /home/adriano/.config/hypr/source/environment.conf: Read Succeeded env = LIBSEAT_BACKEND=logind env = _JAVA_AWT_WM_NONREPARENTING=1 env = XDG_SESSION_TYPE,wayland env = QT_SELECTION=/usr/bin/qmake env = ELECTRON_ARGS="--enable-features=UseOzonePlatform --ozone-platform=wayland" env = MOZ_DBUS_REMOTE=1 env = QT_WAYLAND_DISABLE_WINDOWDECORATION=1 env = XCURSOR_SIZE=24 source = ~/.config/hypr/source/nvidia.conf Config File: /home/adriano/.config/hypr/source/nvidia.conf: Read Succeeded env = LIBVA_DRIVER_NAME,nvidia env = GBM_BACKEND,nvidia-drm env = __GLX_VENDOR_LIBRARY_NAME,nvidia env = WLR_DRM_NO_ATOMIC=1 env = NVD_BACKEND,direct env = ELECTRON_OZONE_PLATFORM_HINT,auto cursor { no_hardware_cursors = true } opengl { nvidia_anti_flicker = true } Config File: /home/adriano/.config/hypr/source/binds.conf: Read Succeeded $mainMod = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, C, killactive, bind = $mainMod SHIFT, escape, exit, bind = $mainMod, E, exec, nautilus bind = $mainMod SHIFT, E, exec, kitty -e yazi # Floorp # bind = $mainMod, W, exec, floorp # Private Floorp # bind = $mainMod SHIFT, W, exec, floorp --private-window # # Brave # bind = $mainMod, W, exec, brave-nightly # # Brave Incognito # bind = $mainMod SHIFT, W, exec, brave-nightly --incognito # # Zen Browser bind = $mainMod, W, exec, zen-browser # # Private Firefox bind = $mainMod SHIFT, W, exec, zen-browser --private-window bind = $mainMod, space, togglefloating, bind = $mainMod, P, pseudo, # dwindle bind = $mainMod SHIFT, D, togglesplit, # dwindle # bind = $mainMod, L, exec, swaylock # Rofi $rofiPath = ~/.config/rofi # Launcher # bind = $mainMod, R, exec, $rofiPath/launcher/launcher.sh # bind = $mainMod, R, exec, ~/.config/ags/shared/scripts/sidebar.sh toggle-applauncher # Powermenu bind = $mainMod, escape, exec, $rofiPath/powermenu/powermenu.sh # Emoji bind = $mainMod, PERIOD, exec, $rofiPath/emoji/emoji.sh # Wallpaper # bind = $mainMod, COMMA, exec, $rofiPath/wallpaper/wallpaper.sh # Tmux bind = $mainMod, T, exec, $rofiPath/tmux/tmux.sh # Notes bind = $mainMod, N, exec, $rofiPath/notes/notes.sh # Volume bind = $mainMod, V, exec, $rofiPath/applets/bin/volume.sh --row 3 # To-Do's bind = $mainMod, Q, exec, $rofiPath/todo/todo.sh # Calculator # bind = $mainMod, M, exec, ~/.config/rofi/calc/calc.sh bind = $mainMod, M, exec, gnome-calculator # Bluetooth bind = $mainMod, B, exec, $rofiPath/bluetooth/bluetooth.sh # Network # bind = $mainMod, D, exec, python ~/.config/rofi/network/network.py # Keepass bind = $mainMod, U, exec, $rofiPath/keepmenu/keepmenu.sh # Calendar bind = $mainMod, I, exec, $rofiPath/calendar/calendar.sh # Screenshot bind = $mainMod, S, exec, $rofiPath/screenshot/screenshot.sh # Fullscreen screenshot # CopySave bind = , Print, exec, grimblast --notify copysave screen $XDG_PICTURES_DIR/Screenshots/$(date +%Y-%m-%d-%H-%M-%S).png # Copy bind = SHIFT, Print, exec, grimblast --notify copy screen # Area screenshot bind = $mainMod SHIFT, S, exec, grimblast --notify copy area # Waybar # Hide/Show waybar # bind = $mainMod SHIFT, B, exec, killall -SIGUSR1 waybar # Restart waybar # bind = $mainMod ALT, B, exec, killall waybar;waybar # Fullscreen toggle bind = $mainMod, F, fullscreen, bind = $mainMod CTRL, F, fullscreen, 0 bind = $mainMod SHIFT, F, fullscreen, 1 # Start Kitty terminal bind = $mainMod, RETURN, exec, kitty # Start Kitty terminal in floating mode bind = $mainMod SHIFT, RETURN, exec, kitty --class kitty-floating # Execute kitty + slurp.sh bind = $mainMod ALT, RETURN, exec, bash ~/.config/kitty/slurp.sh # Open notification center # bind = $mainMod, A, exec, swaync-client -t -sw # Fabric bind = $mainMod ALT, B, exec, killall ax-bar; cd ~/.config/fabric/bar && ./main.py $fabricSend = python ~/.config/fabric/bar/modules/scripts/send.py bind = $mainMod, A, exec, $fabricSend chat bind = $mainMod, D, exec, $fabricSend dashboard bind = $mainMod, COMMA, exec, $fabricSend wallpapers bind = $mainMod, R, exec, $fabricSend apps bind = $mainMod SHIFT, B, exec, $fabricSend update-style # Pin a window bind = $mainMod, Y, pin, # Center window bind = $mainMod, G, centerwindow # ARROWS # 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 # Move active window with mainMod + SHIFT + arrow keys bind = $mainMod SHIFT, Left, movewindow, l bind = $mainMod SHIFT, Right, movewindow, r bind = $mainMod SHIFT, Up, movewindow, u bind = $mainMod SHIFT, Down, movewindow, d # Resize active window with mainMod + CTRL + arrow keys bind = $mainMod CONTROL, Left, resizeactive, -50 0 bind = $mainMod CONTROL, Right, resizeactive, 50 0 bind = $mainMod CONTROL, Up, resizeactive, 0 -50 bind = $mainMod CONTROL, Down, resizeactive, 0 50 # Move floating window with mainMod + ALT + arrow keys bind = $mainMod ALT, Left, moveactive, -50 0 bind = $mainMod ALT, Right, moveactive, 50 0 bind = $mainMod ALT, Up, moveactive, 0 -50 bind = $mainMod ALT, Down, moveactive, 0 50 # Move floating window with mainMod + SHIFT + ALT + arrow keys bind = $mainMod SHIFT ALT, Left, moveactive, -10 0 bind = $mainMod SHIFT ALT, Right, moveactive, 10 0 bind = $mainMod SHIFT ALT, Up, moveactive, 0 -10 bind = $mainMod SHIFT ALT, Down, moveactive, 0 10 # VIM-LIKE # Move focus with mainMod + arrow keys bind = $mainMod, H, movefocus, l bind = $mainMod, L, movefocus, r bind = $mainMod, K, movefocus, u bind = $mainMod, J, movefocus, d # Move active window with mainMod + SHIFT + arrow keys bind = $mainMod SHIFT, H, movewindow, l bind = $mainMod SHIFT, L, movewindow, r bind = $mainMod SHIFT, K, movewindow, u bind = $mainMod SHIFT, J, movewindow, d # Resize active window with mainMod + CTRL + arrow keys bind = $mainMod CONTROL, H, resizeactive, -50 0 bind = $mainMod CONTROL, L, resizeactive, 50 0 bind = $mainMod CONTROL, K, resizeactive, 0 -50 bind = $mainMod CONTROL, J, resizeactive, 0 50 # Move floating window with mainMod + ALT + arrow keys bind = $mainMod ALT, H, moveactive, -50 0 bind = $mainMod ALT, L, moveactive, 50 0 bind = $mainMod ALT, K, moveactive, 0 -50 bind = $mainMod ALT, J, moveactive, 0 50 # Move floating window with mainMod + SHIFT + ALT + arrow keys bind = $mainMod SHIFT ALT, H, moveactive, -10 0 bind = $mainMod SHIFT ALT, L, moveactive, 10 0 bind = $mainMod SHIFT ALT, K, moveactive, 0 -10 bind = $mainMod SHIFT ALT, J, moveactive, 0 10 # 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, 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 SHIFT, Z, workspace, e-1 bind = $mainMod, mouse_up, workspace, e+1 bind = $mainMod SHIFT, X, workspace, e+1 # Next/previous workspace with Z and X bind = $mainMod, Z, workspace, -1 bind = $mainMod, X, workspace, +1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Audio bind=,XF86AudioPlay,exec,playerctl play-pause bind=,XF86AudioPrev,exec,playerctl previous bind=,XF86AudioNext,exec,playerctl next bindl=,XF86AudioMedia,exec,playerctl play-pause bindl=,XF86AudioStop,exec,playerctl stop # volume bindle=,XF86AudioRaiseVolume,exec,swayosd-client --output-volume 5 bindle=,XF86AudioLowerVolume,exec,swayosd-client --output-volume -5 bindle=,XF86AudioMute,exec,swayosd-client --output-volume mute-toggle # brightness bindle=,XF86MonBrightnessUp,exec,swayosd-client --brightness=raise 5 bindle=,XF86MonBrightnessDown,exec,swayosd-client --brightness=lower 5 # bind=,XF86Calculator,exec, ~/.config/rofi/calc/calc.sh bind=,XF86Calculator,exec, gnome-calculator # Plugins # bind = $mainMod, D, hyprexpo:expo, toggle # can be: toggle, off/disable or on/enable # bind = $mainMod SHIFT, SEMICOLON, exec, notify-send colon # bind = $mainMod, SEMICOLON, exec, notify-send semicolon Config File: /home/adriano/.config/hypr/source/autostart.conf: Read Succeeded exec-once = rm $XDG_RUNTIME_DIR/swww.socket exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec = swww init exec = swaync exec = swayosd-server exec = alpha start exec-once = cd ~/.config/fabric/bar && python main.py exec-once = maestral_qt Config File: /home/adriano/.config/hypr/source/windowrules.conf: Read Succeeded # Blur # blurls=waybar # layerrule = ignorezero, waybar # layerrule = ignorezero, swaync-control-center layerrule = noanim, swaync-control-center layerrule = noanim, swaync-notification-window # layerrule = ignorezero, rofi layerrule = noanim, rofi # blurls=rofi # blurls=swaync-control-center # Fabric layerrule = noanim, fabric layerrule = ignorealpha 0.75, fabric blurls=fabric windowrulev2 = float, class:^(org.gnome.Calculator)$ $browser = zen-alpha # Picture-in-picture windowrulev2 = float, class:^($browser)$, title:^(Picture-in-picture)$ windowrulev2 = move 1491 838, class:^($browser)$, title:^(Picture-in-picture)$ windowrulev2 = size 427 240, class:^($browser)$, title:^(Picture-in-picture)$ windowrulev2 = pin, class:^($browser)$, title:^(Picture-in-picture)$ # Kitty floating windowrulev2 = float, class:^(kitty-floating)$ # windowrulev2 = dimaround, class:^(kitty-floating)$ layerrule=noanim,selection Config File: /home/adriano/.config/hypr/source/input.conf: Read Succeeded source = ~/.config/hypr/source/keyboard.conf input { follow_mouse = 1 touchpad { natural_scroll = yes scroll_factor = 0.25 } sensitivity = 0 } Config File: /home/adriano/.config/hypr/source/keyboard.conf: Read Succeeded input { kb_layout = us kb_variant = altgr-intl } Config File: /home/adriano/.config/hypr/source/colors.conf: Read Succeeded $wallpaper = /home/adriano/Imágenes/Wallpapers/hotline-miami.jpg $background = 0f1013 $foreground = eac094 $color0 = 0f1013 $color1 = 8C3D45 $color2 = 91444B $color3 = B04A4F $color4 = D05156 $color5 = E45C58 $color6 = E86E52 $color7 = eac094 $color8 = a38667 Config File: /home/adriano/.config/hypr/source/appearance.conf: Read Succeeded env = GTK_THEME,AxWal exec = cd && swww img -t outer --transition-duration 1 --transition-step 255 --transition-fps 60 $(readlink .current.wall) -f Nearest source = ~/.config/hypr/source/colors.conf general { col.active_border = 0xff$color1 col.inactive_border = 0xff$background gaps_in = 5 gaps_out = 10 border_size = 2 layout = dwindle } decoration { blur { enabled = yes size = 5 passes = 3 new_optimizations = yes contrast = 1 brightness = 1 } rounding = 10 drop_shadow = yes shadow_range = 10 shadow_render_power = 2 col.shadow = rgba(0, 0, 0, 0.25) } animations { enabled = yes bezier = myBezier, 0.0, 1.00, 0.0, 1.00 animation = windows, 1, 5, myBezier, slide animation = border, 1, 5, myBezier animation = fade, 1, 5, myBezier animation = workspaces, 1, 5, myBezier, slidefadevert 20% } Config File: /home/adriano/.config/hypr/source/colors.conf: Read Succeeded $wallpaper = /home/adriano/Imágenes/Wallpapers/hotline-miami.jpg $background = 0f1013 $foreground = eac094 $color0 = 0f1013 $color1 = 8C3D45 $color2 = 91444B $color3 = B04A4F $color4 = D05156 $color5 = E45C58 $color6 = E86E52 $color7 = eac094 $color8 = a38667 Config File: /home/adriano/.config/hypr/source/misc.conf: Read Succeeded misc { disable_hyprland_logo = 1 disable_splash_rendering = 1 focus_on_activate = 1 animate_manual_resizes = true allow_session_lock_restore = true } render { direct_scanout = false } dwindle { pseudotile = yes preserve_split = yes } gestures { workspace_swipe = on } ======Config-End======== ```

Description

The cursor is changing its size but only in GTK 4 programs.

How to reproduce

Hover a GTK 4 program like Nautilus ,GNOME Calculator or Bottles.

Crash reports, logs, images, videos

https://github.com/user-attachments/assets/e87c54fe-6617-4a4f-aa89-6a74491522ac

vaxerski commented 2 months ago

gtk4 uses client-side cursors. Refer to https://wiki.hyprland.org/Hypr-Ecosystem/hyprcursor/ and use the internet to see more on theming gtk cursors