Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

foot's glitched scrollbar

Open bvr-yr opened this issue 1 year ago • 6 comments

Hyprland Version

System/Version info
Hyprland, built from branch main at commit 79a139c9495568f69dd995bce1ca579247a98a17  (flake.lock: update).
Date: Mon Apr 15 23:57:27 2024
Tag: v0.39.0-12-g79a139c9, commits: 4456

flags: (if any)


System Information:
System name: Linux
Node name: Arch-ASUS
Release: 6.6.27-1-lts
Version: #1 SMP PREEMPT_DYNAMIC Sat, 13 Apr 2024 11:50:59 +0000


GPU information: 
00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller [8086:0416] (rev 06) (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:
  hyprexpo by Vaxry ver 1.0

Bug or Regression?

Bug

Description

see https://github.com/hyprwm/Hyprland/discussions/4858#discussioncomment-8610673 for video

scrollbar indicator (as well as URL-labels when shown, Ctrl+o in default foot conf) seems to be treated specially. as, you won't believe, it is affected by Hyprland's rounding setting. which shouldn't happen I suppose

maybe this could help to investigate the root cause

as mentioned in discussion, force_introspection = 1 eliminates glitches for me, but it's likely a strange coincidence on my end

How to reproduce

to properly reproduce you need pad value to be greater than default 0 and probably some larger font size than default 8

try launching

foot --config=/dev/null --override=pad=8x8

and zoom with Ctrl+= or Ctrl+MouseUp

then just print some long stuff and scroll

Crash reports, logs, images, videos

No response

bvr-yr avatar Apr 16 '24 11:04 bvr-yr

the scrollbar really shouldnt be a subsurface...

vaxerski avatar Apr 16 '24 14:04 vaxerski

Can replicate.

BeyondMagic avatar Apr 16 '24 17:04 BeyondMagic

the scrollbar really shouldnt be a subsurface...

report upstream? I'm afraid the answer might be like "Hyprland problem, it works in sway"

bvr-yr avatar Apr 18 '24 09:04 bvr-yr

Good for tracking it down to the pad setting. I can replicate as well, and here's my config:

[main]
font=PragmataPro Mono:size=13
pad=4x4 center

1player avatar Apr 18 '24 09:04 1player

I noticed the glitch disappeared for the windows in which I set a theme with theme.sh. But that causes foot to have a slightly higher cpu usage. I don't know If this observation will help you guys debug the problem, but It might serve a temporary fix for some.


hyprland v37.1, foot v1.16.1 -pgo +ime +graphemes -assertions

NikkSaan avatar Apr 18 '24 19:04 NikkSaan

I am experiencing glitched scrollbars, as well. +1

VehementHam avatar May 19 '24 16:05 VehementHam

This seems to be fixed with latest hyprland, for me, it works well:

hyprland-git: v0.40.0-146-ga54ab301 foot -v: 1.17.2 +pgo +ime +graphemes -assertions

rtgiskard avatar Jun 02 '24 14:06 rtgiskard

nothing changed for me on 3fd6c1b30e5397432c4640286efaf52a6891f71c foot version: 1.17.2-31-g0bf5a7e9 (May 24 2024, branch 'master') +pgo +ime +graphemes -assertions

@rtgiskard did u use extra padding and larger font?

bvr-yr avatar Jun 04 '24 18:06 bvr-yr

nothing changed for me on 3fd6c1b foot version: 1.17.2-31-g0bf5a7e9 (May 24 2024, branch 'master') +pgo +ime +graphemes -assertions

@rtgiskard did u use extra padding and larger font?

For me, the pad is always pad=4x2, I do have the same problem before, but not find any glitch recently, the foot version is v1.7.2 from archlinux official since 2024-04-21, and I switched to hyprland since 2024-05-01.

The glitch is there for several days, then I just get used to it, and recently find no glitch at all. Both a54ab301, dd274b72 works well for me. Test with the reproduce steps above.

my foot.ini:

[main]
title=~
initial-window-mode=windowed
initial-window-size-pixels=720x840
pad=4x2
dpi-aware=no
font=Comic Shanns Mono:size=12, LXGW WenKai Mono:size=12:weight=semibold
bold-text-in-bright=palette-based
box-drawings-uses-font-glyphs=no

[url]
uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()

[scrollback]
lines=1024
multiplier=2.0
indicator-position=relative

[cursor]
style=block
blink=yes

[csd]
size=20
button-width=16
border-width=1
color=ff2e2e2e
button-color=ffd0d0d0


[colors]
alpha=1

foreground=00ee00
background=000000

regular0=000000
regular1=aa0000
regular2=00aa00
regular3=aa5400
regular4=0000aa
regular5=aa00aa
regular6=00aaaa
regular7=aaaaaa

bright0=545454
bright1=ff5454
bright2=54ff54
bright3=ffff54
bright4=5454ff
bright5=ff54ff
bright6=54ffff
bright7=ffffff


[key-bindings]
scrollback-up-page=Shift+Page_Up
scrollback-down-page=Shift+Page_Down
scrollback-up-line=Shift+Up
scrollback-down-line=Shift+Down

clipboard-copy=Control+Shift+c XF86Copy
clipboard-paste=Control+Shift+v XF86Paste
primary-paste=Shift+Insert

search-start=Control+slash
show-urls-launch=Control+Shift+l

font-increase=Control+plus Control+equal
font-decrease=Control+minus
font-reset=Control+0
fullscreen=F11
# prompt-prev=Control+Shift+z
# prompt-next=Control+Shift+x

[search-bindings]
find-prev=Control+p
find-next=Control+n


# vim: ft=dosini
System/Version info Hyprland, built from branch makepkg at commit dd274b7273ab404e0f71707199144ec9064f248f (log: log with local timezone). Date: Tue Jun 4 22:19:25 2024 Tag: v0.40.0-157-gdd274b72, commits: 4763

flags: (if any)

System Information: System name: Linux Node name: rt Release: 6.9.1-gskd Version: #1 SMP PREEMPT_DYNAMIC Sat, 18 May 2024 12:07:02 +0000

GPU information: c7:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev c2) (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/giskard/.config/hypr/hyprland.conf: Read Succeeded

ref: https://wiki.hyprland.org/Configuring

source = hypr.d/00_core.conf source = hypr.d/01_env.conf source = hypr.d/02_exec.conf source = hypr.d/04_bind.conf source = hypr.d/07_rule.conf source = hypr.d/20_plugin.conf

debug { # debug switch, may cause performance issue #overlay = true disable_logs = false disable_time = false }

vi: ts=4 syntax=hypr :

Config File: /home/giskard/.config/hypr/hypr.d/00_core.conf: Read Succeeded

monitor

monitor = , preferred, auto, auto monitor = DP-2, preferred, auto, 1.5

desk

monitor = DP-1, preferred, 0x0, auto monitor = HDMI-A-1, preferred, 1920x0, auto

input { repeat_rate = 70 repeat_delay = 400

# focus: cursor vs keybord, click to change keybord focus
follow_mouse = 2 # bug: click foot <> firefox, may not work
float_switch_override_focus = 0
mouse_refocus = true

touchpad {
	natural_scroll = true
	disable_while_typing = true

	#tap-and-drag = true
	#clickfinger_behavior = true
}

}

general { gaps_in = 2 gaps_out = 7

border_size = 0		# special workspace will
# border color, skipped by border_size=0
col.active_border = rgba(8000ffce) rgba(40ff00ce) 48deg
col.inactive_border = rgba(404040ac)

resize_on_border = true			# allow resize without keyboard
extend_border_grab_area = 12	# as gaps_in is only 2, ..

layout = dwindle

}

decoration { blur { enabled = true

	size = 4
	passes = 1
	noise = 0.04

	popups = true
}

# enable shadow: for float window with border_size=0
drop_shadow = true
shadow_range = 7
shadow_offset = 0, 0

rounding = 4

}

animations { enabled = true

bezier = mwin, 0.07, 0.9, 0.1, 1.07

animation = windows, 1, 7, mwin
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 4, default
animation = specialWorkspace, 1, 4, default, fade

}

gestures { workspace_swipe = true workspace_swipe_fingers = 3 workspace_swipe_distance = 200 workspace_swipe_touch = true }

layout

dwindle { #pseudotile = true preserve_split = true }

group { groupbar { #enabled = false

	font_family = LXGW WenKai
	font_size = 8

	height = 10
	render_titles = false

}

}

xwayland { force_zero_scaling = true }

misc { # hyprctl reload on save config disable_autoreload = false

font_family = LXGW WenKai

disable_hyprland_logo = true
force_default_wallpaper = -1
disable_splash_rendering = true

# swallow terminal on open gui
#enable_swallow = true
#swallow_regex = foot

#animate_mouse_windowdragging = true
#focus_on_activate = true
new_window_takes_over_fullscreen = 2

mouse_move_enables_dpms = true
key_press_enables_dpms = true

vfr = true

}

Config File: /home/giskard/.config/hypr/hypr.d/01_env.conf: Read Succeeded #: xdg spec env = XDG_CURRENT_DESKTOP, Hyprland env = XDG_SESSION_DESKTOP, Hyprland env = XDG_SESSION_TYPE, wayland

#: toolkit backend env = GDK_BACKEND, wayland,x11,* env = QT_QPA_PLATFORM, wayland;xcb env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1

#: fcitx env = XMODIFIERS, @im=fcitx #env = GTK_IM_MODULE, fcitx env = QT_IM_MODULE, fcitx env = QT_IM_MODULES, wayland;fcitx env = GLFW_IM_MODULE, fcitx

#: cursor (foot, ..) env = HYPRCURSOR_THEME, Bibata-Modern-Classic env = HYPRCURSOR_SIZE, 22 env = XCURSOR_THEME, Bibata-Modern-Classic env = XCURSOR_SIZE, 22 env = GTK_THEME, Adwaita-dark

#: i18n env = LANG, zh_CN.UTF-8 env = LC_MESSAGES, zh_CN.UTF-8

#: firefox: wayland, touch gesture env = MOZ_ENABLE_WAYLAND, 1 env = MOZ_USE_XINPUT2, 1

#: disable xwayland #env = WLR_XWAYLAND, /dev/null

Config File: /home/giskard/.config/hypr/hypr.d/02_exec.conf: Read Succeeded

https://wiki.hyprland.org/Configuring/Advanced-config/

exec-once: execute only on launch

exec: execute on each reload

init env

exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1

component

exec-once = hypridle exec-once = hyprpaper exec-once = waybar exec-once = fcitx5 -d exec-once = systemctl restart --user foot-server.socket

deadbeef cleanup

exec-once = rm -f $HOME/.config/deadbeef/running

Config File: /home/giskard/.config/hypr/hypr.d/04_bind.conf: Read Succeeded $mod = SUPER

generic

bind = $mod, T, exec, footclient bind = $mod, N, exec, xdg-open ~ bind = $mod, L, exec, loginctl lock-session bind = $mod, R, exec, $(pidof -q wofi) && pkill wofi || wofi

bind = $mod, Q, killactive, bind = $mod Ctrl, M, exit,

screenshot

bind = , Print, exec, ~/.config/hypr/script/utils.sh shot monitor bind = Ctrl, Print, exec, ~/.config/hypr/script/utils.sh shot -a monitor bind = $mod, Print, exec, ~/.config/hypr/script/utils.sh shot display bind = Ctrl $mod, Print, exec, ~/.config/hypr/script/utils.sh shot -a display bind = Alt, Print, exec, ~/.config/hypr/script/utils.sh shot window bind = Ctrl Alt, Print, exec, ~/.config/hypr/script/utils.sh shot -a window bind = Shift, Print, exec, ~/.config/hypr/script/utils.sh shot region bind = Ctrl Shift, Print, exec, ~/.config/hypr/script/utils.sh shot -a region

layout: dwindle

bind = $mod, P, pseudo bind = $mod, J, togglesplit bind = $mod, Space, togglefloating, bind = $mod, Space, centerwindow,

workspace: special

bind = $mod, S, togglespecialworkspace, magic bind = $mod Shift, S, movetoworkspace, special:magic

bind = $mod, H, movetoworkspacesilent, special:hide bind = $mod Ctrl, H, togglespecialworkspace, hide

tag for tag rules

bind = $mod Ctrl, 1, tagwindow, hide

window fullscreen toggle

bind = $mod, Up, fullscreen, 1 bind = $mod Shift, Up, fullscreen, 0

workspace/window move

bind = $mod, Left, workspace, -1 bind = $mod, Right, workspace, +1 bind = $mod Shift, Left, movetoworkspace, -1 bind = $mod Shift, Right, movetoworkspace, +1 bind = $mod Shift, Down, movetoworkspace, +0

window resize

bind = $mod Ctrl, Left, resizeactive, -20 0 bind = $mod Ctrl, Right, resizeactive, 20 0 bind = $mod Ctrl, Up, resizeactive, 0 20 bind = $mod Ctrl, Down, resizeactive, 0 -20

window switch

bind = Ctrl, Tab, swapnext, bind = Alt, Tab, cyclenext,

mouse: workspace switch

bind = $mod, mouse_down, workspace, e+1 bind = $mod, mouse_up, workspace, e-1

mouse: window resize

bindm = $mod, mouse:272, movewindow bindm = $mod, mouse:273, resizewindow

monitor brightness

bind = , XF86MonBrightnessDown, exec, ddcutil setvcp 0x10 - 5 bind = , XF86MonBrightnessUp, exec, ddcutil setvcp 0x10 + 5

volume

bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bind = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle bind = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 7%+ bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 7%-

player

bind = , XF86AudioPlay, exec, playerctl play-pause bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioPrev, exec, playerctl previous bind = , XF86audiostop, exec, playerctl stop

Config File: /home/giskard/.config/hypr/hypr.d/07_rule.conf: Read Succeeded

layers: launchers, bars, wallpapers, ..

layerrule = blur, wofi layerrule = blur, waybar layerrule = blur, ironbar

blur sway notifications

layerrule = blur, swaync-control-center layerrule = blur, swaync-notification-window layerrule = ignorezero, swaync-control-center layerrule = ignorezero, swaync-notification-window

special workspace: override border

workspace = special:magic, border:true, bordersize:2 workspace = special:hide, border:true, bordersize:2

bind a named workspace to the monitor

workspace = name:ex, monitor:HDMI-A-1, default:true

auto float windows

windowrule = float, ^(com.gabm.satty)$ windowrule = float, ^(org.pipewire.Helvum)$ windowrule = float, ^(com.github.wwmm.easyeffects)$ windowrule = float, ^(io.github.celluloid_player.Celluloid)$ windowrule = float, ^(blueman-manager)$ windowrule = float, ^(deadbeef)$ windowrule = float, ^(gthumb)$ windowrule = float, ^(org.remmina.Remmina)$

with tags

windowrulev2 = opacity 0.1, tag:hide

Config File: /home/giskard/.config/hypr/hypr.d/20_plugin.conf: Read Succeeded #bind = $mod, x, hyprexpo:expo, toggle

plugin { hyprexpo { columns = 4 gap_size = 20 bg_col = rgb(111111) workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1

	enable_gesture = true # laptop touchpad, 4 fingers
	gesture_distance = 300 # how far is the "max"
	gesture_positive = true # positive = swipe down. Negative = swipe up.
}

hyprbars {
	# example config
	bar_height = 20
	bar_color = rgba(000000cc)

	bar_title_enabled = false
	bar_part_of_window = true
	bar_button_padding = 5

	# example buttons (R -> L)
	# hyprbars-button = color, size, on-click
	hyprbars-button = rgba(ff404088), 20, 󰖭, hyprctl dispatch killactive
	hyprbars-button = rgba(eeee1188), 20, , hyprctl dispatch fullscreen 1
}

}

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

rtgiskard avatar Jun 05 '24 09:06 rtgiskard

Well, it's still there, but only for scroll cursor moved passive:

. open a foot window, run tail -f /run/user/1000/hypr/*/hyprland.log, then scroll up with mouse so that the scroll cursor is displayed . open another window, move your mouse around (to generate more logs output for the above tail), you will see the scroll cursor get moved up with some lightly glitch (but much better) . if just scroll in current foot window, I can't reproduce any glitch like what it was.

rtgiskard avatar Jun 05 '24 10:06 rtgiskard

some progress on 8412ffcc42012888757cd00a004871e8bc353cf2

now I can observe glitches only on tiled windows

bvr-yr avatar Jun 12 '24 07:06 bvr-yr

I used to be affected from this bug but everything has been working fine for a while (if I had to guess since 0.42).

Steven-- avatar Sep 11 '24 23:09 Steven--

closing then

vaxerski avatar Sep 12 '24 17:09 vaxerski

Can confirm this issue does still happen for me. I'll open a new discussion.

fxzzi avatar Apr 14 '25 19:04 fxzzi