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.65k stars 903 forks source link

random crash when pressing $mainMod, code:49 #7109

Open noobhacker1 opened 3 months ago

noobhacker1 commented 3 months ago

Regression?

No

System Info and Version

Hyprland, built from branch  at commit 918d8340afd652b011b937d29d5eea0be08467f5  (flake.lock: update).
Date: Tue Jun 25 12:06:02 2024
Tag: v0.41.2, commits: 4886

flags: (if any)

System Information:
System name: Linux
Node name: dybbuk
Release: 6.10.2-zen1-1-zen
Version: #1 ZEN SMP PREEMPT_DYNAMIC Sat, 27 Jul 2024 16:49:32 +0000

GPU information: 
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-H GT1 [UHD Graphics] [8086:9a68] (rev 01) (prog-if 00 [VGA controller])
0000:01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA107 [GeForce RTX 2050] [10de:25ad] (rev a1) (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/dy/.config/hypr/hyprland.conf: Read Succeeded
monitor=,1920x1080@144,0x0,1
monitor=HDMI-A-1,preferred,auto,1,mirror,eDP-1

exec-once = waybar
exec-once = hyprpaper
exec-once = hypridle
exec-once = /usr/lib/polkit-kde-authentication-agent-1
exec-once = swaync
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = copyq --start-server
exec-once = ydotoold

$terminal = foot
$fileManager = thunar
$menu = wofi --show drun

#NVIDIA
env = NVD_BACKEND,direct
env = WLR_DRM_DEVICES,$HOME/.config/hypr/card
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = __GL_THREADED_OPTIMIZATIONS,0

#QT
env = QT_QPA_PLATFORM,wayland
env = QT_QPA_PLATFORMTHEME,qt5ct

# CURSOR
env = inactive_timeout,1
env = XCURSOR_SIZE,24

cursor {
  no_hardware_cursors = true
}

input {
  kb_layout = us,ara
  kb_variant =
  kb_model =
  kb_options = grp:win_space_toggle
  kb_rules =
  repeat_delay = 250
  repeat_rate = 50

  follow_mouse = 1
  sensitivity = 0.6
  accel_profile = flat

  touchpad {
    natural_scroll = true
    scroll_factor = 0.7
    disable_while_typing = true
    }

  sensitivity = 0.3
}

general {

  gaps_in = 1
  gaps_out = 0
  border_size = 1
  resize_on_border = true
  layout = dwindle

  #col.active_border = rgb(000000)
  #col.inactive_border = rgb(000000)

  col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
  col.inactive_border = rgba(595959aa)
  no_border_on_floating = false
}

decoration {

  rounding = 0
  blur {
    enabled = false
    xray = true
    size = 12
    passes = 4
    new_optimizations = true
    }

  drop_shadow = false
}

animations {

  enabled = yes
  first_launch_animation = false

  bezier = quart, 0.25, 1, 0.5, 1
  # bezier = quart,0.05,0.9,0.1,1.1

  animation = windows, 1, 2, quart, slide
  animation = border, 1, 1, quart
  animation = borderangle, 1, 1, quart
  animation = fade, 1, 1, quart
  animation = workspaces, 1, 1, quart
}

dwindle {
  pseudotile = yes
  preserve_split = yes
}
#
# master {
#   new_is_master = true
# }

gestures {
  workspace_swipe = on
}

device {
  name = lenovo-lenovo-legion-m300-rgb-gaming-mouse
  sensitivity = -0.45
}

$touchpad_state = false
device {
  name = elan1203:00-04f3:307a-touchpad
  enabled = $touchpad_state
}

device {
  name = ydotoold-virtual-device-1
  kb_layout = us
  kb_variant =
  kb_options =
  repeat_rate=50
  repeat_delay=50
  enabled = true

}

device {
  name = usb-optical-mouse-
  repeat_rate=50
  repeat_delay=50
  enabled = true

}

misc {
    disable_hyprland_logo=true
    vfr = true
}

debug{
  disable_logs = false
}

# RULES
# 
windowrule = float,^(org.pulseaudio.pavucontrol)$
windowrule = pin,^(org.pulseaudio.pavucontrol)$
windowrule = size 900 500,^(org.pulseaudio.pavucontrol)$

windowrule = float,^(zenity)$
windowrule = pin,^(zenity)$

layerrule = blur,^(gtk-layer-shell)$

windowrule = float,^(org.gnome.Calculator)$

windowrule = float,title:^(.*- Settings)$
windowrule = center,title:^(.*- Settings)$
windowrule = float,title:^(Close Virtual Machine)$
windowrule = center,title:^(Close Virtual Machine)$

windowrule = float,class:^(burp-StartBurp)$
windowrule = center,class:^(burp-StartBurp)$
windowrule = tile,title:^(Burp Suite Professional.*)$
windowrule = tile,title:^(.*Intruder.*)$,class:^(burp-StartBurp)$
windowrule = tile,title:^(Content discovery.*)$#,class:^(burp-StartBurp)$

windowrule = center,float,class:^(org.gnome.FileRoller)$

windowrule = tile,^(de-neemann-digital-gui-Main)$

windowrule = float,title:^(ROG Control)$

# thunar
windowrule = float,title:^(File Operation Progress)$

# FIREFOX
windowrule = float,title:^(Sign in - Google Accounts — Mozilla Firefox)$

# NM
windowrule = float,class:^(nm-connection-editor)$

# WAYDROID
windowrule = float,class:^(Waydroid)$

#RHYTHMBOX
windowrule = float,title:^(*- Lyrics)$

# XFREERPD
windowrule = tile,class:^(xfreerdp)$

# BINDINGS

$mainMod = SUPER

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive, 
bind = $mainMod, M, exit, 
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating, 
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle

# 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

# 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, 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

# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic

# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

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

# SCREENSHOT
bind = $mainMod, Z, exec, grim -g "$(slurp)" ~/Pictures/screenshots/$(date +'%s_grim.png')
bind = $mainMod, X, exec, grim -g "$(slurp)" - | wl-copy

# Screen brightness
bind = , XF86MonBrightnessUp, exec, brightnessctl s +1%
bind = , XF86MonBrightnessDown, exec, brightnessctl s 1%-

#audio
binde = , XF86AudioRaiseVolume, exec, pamixer -i 1 
binde = , XF86AudioLowerVolume, exec, pamixer -d 1 
bind = , XF86AudioMicMute, exec, pamixer --default-source -m
bind = , XF86AudioMute, exec, pamixer -t

#APPS
bind = $mainMod SHIFT, Q, exec, /home/dy/bin/firefox/firefox

bind = , XF86Calculator, exec, gnome-calculator

# TOUCHPAD
bind = $mainMod, code:49, exec, /home/dy/.config/hypr/scripts/touchpad
#bind = , XF86TouchpadToggle, exec, /home/dy/.config/hypr/scripts/touchpad

# TESTING
bind = $mainMod, B, exec, killall waybar || waybar

# SWAYNC
bind = $mainMod, T, exec, swaync-client -t -sw

#YDOTOOL
bind = , mouse:275, exec, $HOME/.config/hypr/scripts/spam_right
bindr = , mouse:275, exec, killall spam_right

bind = Control_L, mouse:275, exec, $HOME/.config/hypr/scripts/spam_right ctrl
bindr = Control_L, mouse:275, exec, killall spam_right

# bind = , mouse:276, exec, ydotool click 42 82

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

Description

i made a small script that toggles my touchpad when i press $mainMod backtick when i click it multiple times (quickly or even with enough time in between) hyprland craches

the script to toggle touchpad:

#!/bin/bash

export STATUS_FILE="$XDG_RUNTIME_DIR/touchpad.status"

enable_touchpad() {
  printf "true" > "$STATUS_FILE"
  hyprctl keyword '$touchpad_state' "true" -r
}

disable_touchpad() {
  printf "false" > "$STATUS_FILE"
  hyprctl keyword '$touchpad_state' "false" -r
}

if ! [ -f "$STATUS_FILE" ]; then
  enable_touchpad
else
  if [ $(cat "$STATUS_FILE") = "true" ]; then
    disable_touchpad
  elif [ $(cat "$STATUS_FILE") = "false" ]; then
    enable_touchpad
  fi
fi

(fn+f10) doesnt get interpreted correctly thats why i did this)

How to reproduce

press $mainMod, code:49, exec, $HOME/.config/hypr/scripts/touchpad multiple times

Crash reports, logs, images, videos

hyprlandCrashReport6917.txt

vaxerski commented 3 months ago

try on git

noobhacker1 commented 3 months ago

@vaxerski sry am kine noob, do u mean try hyprland-git? if so, i just tried and still same issue

vaxerski commented 3 months ago

can you compile hyprlang in debug and then get a debug stacktrace? https://wiki.hyprland.org/Crashes-and-Bugs/#obtaining-a-debug-stacktrace

hyprlang: https://github.com/hyprwm/hyprlang

noobhacker1 commented 3 months ago

@vaxerski idk if thats what ure looking for but here u go gdb.txt

vaxerski commented 3 months ago

something is corrupted here, try launching hyprland with HYPRLAND_NO_CRASHREPORTER=1

noobhacker1 commented 3 months ago

something is corrupted here, try launching hyprland with HYPRLAND_NO_CRASHREPORTER=1

inside of coresumpctl?

vaxerski commented 3 months ago

no, launch hyprland with that env

noobhacker1 commented 3 months ago

@vaxerski then what? post log? hyprcrash.log

bruh plz give me detailed answers 😭

vaxerski commented 3 months ago

launching hyprland with that env should give you a non-corrupt debug stacktrace when it crashes