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 839 forks source link

TTY character map corrupts after a while #6546

Open UltraBlackLinux opened 3 months ago

UltraBlackLinux commented 3 months ago

Bug or Regression?

Bug

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 9e781040d9067c2711ec2e9f5b47b76ef70762b3 (props: bump version to 0.41.1). Date: Thu Jun 13 09:54:06 2024 Tag: v0.41.1, commits: 4818 flags: (if any) System Information: System name: Linux Node name: lolcat Release: 6.6.33-1-lts Version: #1 SMP PREEMPT_DYNAMIC Thu, 13 Jun 2024 16:25:55 +0000 GPU information: 0a: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 c5) (prog-if 00 [VGA controller]) os-release: NAME="EndeavourOS" PRETTY_NAME="EndeavourOS" ID="endeavouros" ID_LIKE="arch" BUILD_ID="2024.01.25" ANSI_COLOR="38;2;23;147;209" HOME_URL="https://endeavouros.com" DOCUMENTATION_URL="https://discovery.endeavouros.com" SUPPORT_URL="https://forum.endeavouros.com" BUG_REPORT_URL="https://forum.endeavouros.com/c/general-system/endeavouros-installation" PRIVACY_POLICY_URL="https://endeavouros.com/privacy-policy-2" LOGO="endeavouros" plugins: ======Config-Start====== Config File: /home/maus/.config/hypr/hyprland.conf: Read Succeeded # Useful links # https://www.cssportal.com/css-cubic-bezier-generator/ # https://easings.net/ env = ADW_DISABLE_PORTAL,1 #env = GTK_THEME,Adwita:dark # env = GDK_BACKEND,wayland,x11 # env = QT_QPA_PLATFORM,"wayland;xcb" # env = SDL_VIDEODRIVER,wayland # env = XDG_CURRENT_DESKTOP,Hyprland # env = XDG_SESSION_TYPE,wayland # env = XDG_SESSION_DESKTOP,Hyprland # env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 # exec-once = systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP QT_QPA_PLATFORMTHEME exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY XAUTHORITY XDG_CURRENT_DESKTOP=Hyprland XDG_SESSION_DESKTOP=Hyprland XDG_SESSION_TYPE=wayland QT_QPA_PLATFORM="wayland;xcb" QT_QPA_PLATFORMTHEME exec-once = gnome-keyring-daemon --start --components=secrets exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = systembus-notify exec-once = otd-daemon # # AUTOSTART ----------------------------------- exec-once = waybar exec-once = udiskie -t exec-once = blueman-applet exec-once = wlsunset -S 6:0 -s 18:0 -t 4000 -d 120 exec-once = scc-daemon start exec-once = sleep 3; openrgb --startminimized -p yes exec-once = floorp exec-once = mako exec-once = ~/.config/hypr/hyprland_event_listen.sh exec-once = wl-paste --watch cliphist -max-items 100 store --no-persist #exec-once = wl-paste -p -t text --watch clipman store -P --histpath="~/.local/share/clipman-primary.json" # # exec-once = wl-clip-persist --clipboard both # breaks gtk text selection # #exec-once = sleep 1; ~/Documents/Git/linux-wallpaperengine/deploy/wallengine 2995503379 --screen-root=DVI-D-1 --screen-root=HDMI-A-1 --fps=30 --silent --assets-dir ~/Documents/Git/linux-wallpaperengine/deploy/assets # # exec = ~/.config/hypr/wallpaper.sh exec-once = sleep 1; swww init; sleep 1; while true; do swww img /home/maus/Pictures/wallpapers/$(ls /home/maus/Pictures/wallpapers | shuf -n 1) --transition-fps 30 --transition-type=random --transition-bezier=0,0.84,1,1; sleep 600; done # HARDWARE ----------------------------------- monitor=HDMI-A-1, 1920x1080, 240x150, 1 # res -> preferred monitor=DP-3, 1920x1200, 1920x0, 1 input { kb_layout = de kb_variant = nodeadkeys kb_model = kb_options = compose: rwin-altgr kb_rules = evdev repeat_delay = 400 repeat_rate = 40 numlock_by_default = true follow_mouse = true } cursor { no_warps = true } # VISUALS ----------------------------------- general { gaps_in = 5 gaps_out = 7 border_size = 2 col.active_border = rgb(ff00a0) rgb(209f54) 90deg col.inactive_border = rgba(595959aa) #resize_on_border = true layout = dwindle } decoration { blur { enabled = yes size = 3 passes = 1 new_optimizations = on } rounding = 7 drop_shadow = yes shadow_range = 50 shadow_render_power = 100 col.shadow = rgba(1a1a1aee) } animations { # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more enabled = yes bezier = overshoot, 0.35, 0, 0.9, 0.5 animation = windows, 1, 3, overshoot bezier = linear, 0.12, 0, 0.39, 0 animation = border, 1, 3, linear bezier = quickease, 0.76, 0, 0.24, 1 animation = borderangle, 1, 30, quickease, loop animation = windowsOut, 1, 7, default, popin #animation = border, 1, 10, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = yes preserve_split = yes } misc { enable_swallow = true swallow_regex = ^Alacritty$ focus_on_activate = true new_window_takes_over_fullscreen = 2 } binds { scroll_event_delay = 10 } # WINDOW RULES ---------------------------------- # windowrulev2 = nomaximizerequest, class:.* # You'll probably like this. windowrulev2 = float,class:^(Floorp),title:Firefox — Sharing Indicator windowrulev2 = float,class:^(screenkey)$ windowrulev2 = nofocus,class:^(screenkey)$ windowrulev2 = noanim,class:^(screenkey)$ windowrulev2 = move 0% 90%,class:^(screenkey)$ windowrulev2 = size 100% 10%,class:^(screenkey)$ # BINDS ----------------------------------- $mainMod = SUPER bind = $mainMod, SPACE, exec, fuzzel bind = , F12, exec, alacritty bind = SHIFT, PRINT, exec, grim -g "$(slurp -d)" - | swappy -f - -o - bind = CONTROL SHIFT, PRINT, exec, grim -g "$(slurp -o)" - | swappy -f - -o - bind = $mainMod, Q, killactive bind = $mainMod SHIFT, Q, exec, kill -9 $(hyprctl activewindow | grep -Po "(?<=pid: )\d+") bind = $mainMod, F, togglefloating bind = $mainMod SHIFT, F, fullscreen bind = $mainMod, Tab, cyclenext # change focus to another window bind = $mainMod, Tab, bringactivetotop # bring it to the top bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, S, togglesplit, # vertical or horizontal split # 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 bind = $mainMod SHIFT, N, exec, /home/maus/.config/hypr/move_to_empty_workspace.sh # 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 bind = $mainMod, mouse_down, workspace, m+1 bind = $mainMod, mouse_up, workspace, m-1 bind = $mainMod SHIFT, mouse_down, movetoworkspace, m+1 bind = $mainMod SHIFT, mouse_up, movetoworkspace, m-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:273, movewindow bindm = $mainMod, mouse:272, resizewindow # bind = , mouse:274, exec, ; ======Config-End======== ```

Description

After a while of running hyprland the TTY character map seems to corrupt. The hyprland logs become more and more illegible and tools like tuigreet break the same way.

I'm not entirely sure what could be causing this, but hyprland seems the most likely candidate since it's constantly doing something and also interacts with a tty.

Maybe a buffer overflow somewhere?

It's been happening for months

How to reproduce

Use hyprland?

Crash reports, logs, images, videos

No response

vaxerski commented 3 months ago

it's been happening forever and happens instantenously, but only if I run in release. This could be due to execs, though. Worth noting every app that is execd in config also writes to the same tty