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.75k stars 840 forks source link

Mouse cursor is gigantic on Xwayland windows and some Wayland windows #7349

Closed GOKOP closed 1 month ago

GOKOP commented 1 month ago

Regression?

Yes

System Info and Version

Hyprland, built from branch  at commit 9a09eac79b85c846e3a865a9078a3f8ff65a9259  (props: bump version to 0.42.0).
Date: Wed Aug 7 19:17:10 2024
Tag: v0.42.0, commits: 5069

flags: (if any)

System Information:
System name: Linux
Node name: bialyrzul
Release: 6.10.4-arch2-1
Version: #1 SMP PREEMPT_DYNAMIC Sun, 11 Aug 2024 16:19:06 +0000

GPU information: 
0d:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800 XT] [1002:747e] (rev c8) (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/gogep/.config/hypr/hyprland.conf: Read Succeeded
# monitors
monitor=DP-1,highrr,2265x0,1.13,vrr,2
monitor=DP-2,highrr,0x0,1.13,vrr,2
monitor=,preferred,auto,auto # fallback

# pin workspaces to monitors
workspace = 1, monitor:DP-1
workspace = 2, monitor:DP-1
workspace = 3, monitor:DP-1
workspace = 4, monitor:DP-1
workspace = 5, monitor:DP-1
workspace = 6, monitor:DP-1
workspace = 7, monitor:DP-1
workspace = 8, monitor:DP-1
workspace = 9, monitor:DP-1
workspace = 10, monitor:DP-1

workspace = 11, monitor:DP-2
workspace = 12, monitor:DP-2
workspace = 13, monitor:DP-2
workspace = 14, monitor:DP-2
workspace = 15, monitor:DP-2
workspace = 16, monitor:DP-2
workspace = 17, monitor:DP-2
workspace = 18, monitor:DP-2
workspace = 19, monitor:DP-2
workspace = 20, monitor:DP-2

cursor {
    no_warps = true
}

debug {
    disable_scale_checks = true
}

# Unscale Xwayland
xwayland {
    force_zero_scaling = true
}

exec-once = launchstuff.sh

# Some default env vars.
env = XCURSOR_SIZE,24

# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
    kb_layout = pl
    kb_variant =
    kb_model =
    kb_options = compose:menu
    kb_rules =

    follow_mouse = 1

    touchpad {
        natural_scroll = no
    }

    sensitivity = -0.12
}

general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    gaps_in = 5
    gaps_out = 10
    border_size = 2
    col.active_border = rgba(33ccffff) rgba(00ff99ff) 45deg
    col.inactive_border = rgba(595959ff)

    layout = dwindle
}

decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    rounding = 10

    blur {
        enabled = true
        size = 7
        passes = 2
    }

    drop_shadow = yes
    shadow_range = 15
    shadow_render_power = 4
    col.shadow = rgba(1a1c2aee)
}

animations {
    enabled = yes

    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 3, myBezier
    animation = windowsOut, 1, 3, default, popin 80%
    animation = border, 1, 3, default
    animation = borderangle, 1, 3, default
    animation = fade, 1, 3, default
    animation = workspaces, 1, 3, default, slidevert
}

dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = yes # you probably want this
    force_split = 2
}

master {
    # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
    new_status = master
}

gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    workspace_swipe = off
}

windowrulev2 = bordercolor rgb(7b60ea),xwayland:1
windowrulev2 = monitor 1,class:ferdium

layerrule = blur,rofi

source = ~/.config/hypr/binds.conf

exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP

Config File: /home/gogep/.config/hypr/binds.conf: Read Succeeded
$mainMod = SUPER

#
# Launching programs
#

# terminal emulator
bind = $mainMod, return, exec, termite

# terminal light mode
bind = $mainMod ALT, return, exec, termite -c ~/.config/termite/light

# program launcher
bind = $mainMod, D, exec, rofi -show drun

# more bare bone program launcher
bind = $mainMod SHIFT, D, exec, rofi -show run

# browser
bind = $mainMod, X, exec, qutebrowser
bind = $mainMod SHIFT, X, exec, qutebrowser --temp-basedir --set content.private_browsing true --config-py "$HOME/.config/qutebrowser/config.py"

# ranger
bind = $mainMod, B, exec, termite -e ranger

# torrents
bind = $mainMod CTRL, X, exec, termite -e 'tremc -X'

# snake with square font
bind = $mainMod, N, exec, termite -c ~/.config/termite/snake -e "coolsnake -s 4"

# snake light mode
bind = $mainMod ALT, N, exec, termite -c ~/.config/termite/snake-light -e "coolsnake -s 3"

# restart eww
bind = $mainMod SHIFT, P, exec, eww-restart.sh

# power
bind = $mainMod, end, exec, prompt.sh "Wyłączyć komputer?" "shutdown.sh"
bind = $mainMod SHIFT, end, exec, prompt.sh "Zrestartować komputer?" "shutdown.sh -r"

# audio control
bind = $mainMod, minus, exec, pactl set-sink-volume $(pactl get-default-sink) -5%
bind = $mainMod, equal, exec, pactl set-sink-volume $(pactl get-default-sink) +5%
bind = $mainMod, backspace, exec, pactl set-sink-mute $(pactl get-default-sink) toggle

# change pulseaudio sink
bind = $mainMod CTRL, A, exec, change_audio_sink.sh

# music control
bind = $mainMod CTRL, 2, exec, termite -e ncmpcpp
bind = $mainMod CTRL, 8, exec, mpc toggle
bind = $mainMod CTRL, 9, exec, mpc prev
bind = $mainMod CTRL, 0, exec, mpc next

# mounting
bind = $mainMod, M, exec, easymount.sh
bind = $mainMod SHIFT, M, exec, easyumount.sh

# emoji
bind = $mainMod SHIFT, E, exec, easyemoji.sh
bind = $mainMod SHIFT CTRL, E, exec, easyemoji.sh text
bind = $mainMod SHIFT, f, exec, easyemoji.sh flags

# rofi calc
bind = $mainMod, O, exec, rofi -show calc -modi calc -no-show-match -no-sort

# wallpaper
bind = $mainMod, T, exec, set_wallpaper.sh

# networkmanager dmenu
bind = $mainMod, I, exec, networkmanager_dmenu

# manage remote config
bind = $mainMod SHIFT, G, exec, update_conf.sh
bind = $mainMod CTRL, G, exec, send_conf.sh

# ferdium
bind = $mainMod, Y, exec, ferdium

# translator script
bind = $mainMod, U, exec, translator.sh

# screenshot
bind = ,print, exec, grim -g "$(slurp -d)" - | wl-copy
bind = CTRL, print, exec, grim -o $(hyprctl -j activeworkspace | jq .monitor -r) - | wl-copy

# enable and disable line-in loopback for the Switch
bind = $mainMod, S, exec, toggle_loopback.sh alsa_input.pci-0000_0f_00.4.analog-stereo

# what is this
bind = ,xf86launch1, exec, qutebrowser "https://youtube.com/watch?v=08gnIX5j5GA"

#
# Hyprland controls
#

# quit Hyprland
bind = $mainMod, home, exec, prompt.sh "Wylogować się?" "shutdown.sh -b"

# close window
bind = $mainMod, Q, killactive,

# window states
bind = $mainMod, E, togglefloating,
bind = $mainMod, F, fullscreen,

# 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 focus with mainMod + hjkl keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, 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

bind = $mainMod ALT, 1, workspace, 11
bind = $mainMod ALT, 2, workspace, 12
bind = $mainMod ALT, 3, workspace, 13
bind = $mainMod ALT, 4, workspace, 14
bind = $mainMod ALT, 5, workspace, 15
bind = $mainMod ALT, 6, workspace, 16
bind = $mainMod ALT, 7, workspace, 17
bind = $mainMod ALT, 8, workspace, 18
bind = $mainMod ALT, 9, workspace, 19
bind = $mainMod ALT, 0, workspace, 20

# Move active window to a workspace
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10

bind = $mainMod SHIFT ALT, 1, movetoworkspacesilent, 11
bind = $mainMod SHIFT ALT, 2, movetoworkspacesilent, 12
bind = $mainMod SHIFT ALT, 3, movetoworkspacesilent, 13
bind = $mainMod SHIFT ALT, 4, movetoworkspacesilent, 14
bind = $mainMod SHIFT ALT, 5, movetoworkspacesilent, 15
bind = $mainMod SHIFT ALT, 6, movetoworkspacesilent, 16
bind = $mainMod SHIFT ALT, 7, movetoworkspacesilent, 17
bind = $mainMod SHIFT ALT, 8, movetoworkspacesilent, 18
bind = $mainMod SHIFT ALT, 9, movetoworkspacesilent, 19
bind = $mainMod SHIFT ALT, 0, movetoworkspacesilent, 20

# expand a window
bind = $mainMod CTRL, H, resizeactive, 10 0
bind = $mainMod CTRL, J, resizeactive, 0 10

# contract a window
bind = $mainMod CTRL SHIFT, H, resizeactive, -10 0
bind = $mainMod CTRL SHIFT, J, resizeactive, 0 -10

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

======Config-End========

Description

This started happening after updating to 0.42. The cursor is very large on most Xwayland windows; example would be Gimp. This also happens in some Wayland apps like Pavucontrol. It happens regardless of desktop scaling. I'm using the default cursor you get without configuring anything cursor-related and I would expect it to work flawlessly as it used to

How to reproduce

Hover the mouse over Gimp (for X11 example) or Pavucontrol (for Wayland example)

Crash reports, logs, images, videos

No response

BasitAli commented 1 month ago

I've had this for a while now. What recently fixed it for me was setting this env,

env = XCURSOR_SIZE,24

Adjust according to your liking.

GOKOP commented 1 month ago

No, that's not it. I have that line in my config already and always had. The problem is that in those specific cases the cursor is significantly larger than normally. Changing this variable changes the cursor size overall, so in those cases it's still larger than otherwise. I can set the variable so that the "large cursor" is the size that I normally want it to be, but then the "normal cursor" is tiny.

gulafaran commented 1 month ago

until #7316 is merged, set cursor::sync_gsettings_theme = false in config, and set the size yourself gsettings set org.gnome.desktop.interface cursor-size 24

vaxerski commented 1 month ago

since it's merged, can we close this?

GOKOP commented 1 month ago

Yup, I've tried latest git build and it's fine now