Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] [scratchpads] sometimes(randomely) get pypr integrity check failed #136

Closed
alekgr opened this issue Aug 16, 2024 · 6 comments
Closed
Assignees
Labels
bug Something isn't working

Comments

@alekgr
Copy link

alekgr commented Aug 16, 2024

Pyprland version
2.4.-0-47

Describe the bug
Sometimes I get pypr integrity check failed

To Reproduce
Steps to reproduce the behavior:
Most of time it doesn't happen but sometimes I get the notification
I am not seeing an rythm or reason for it
Looks like it is being generated from command.py

Configuration (provide following files/samples when relevant):

  • pyprland.toml
[pyprland]
plugins = [
  "scratchpads",
  #"lost_windows",
  #"monitors",
  #"shift_monitors",
  #"toggle_dpms",
  "magnify",
  #"expose",
  #"shift_monitors",
  #"workspaces_follow_focus",
]

[workspaces_follow_focus]
max_workspaces = 10

[expose]
include_special = false

[scratchpads.stb]
animation = "fromBottom"
command = "kitty --class kitty-stb sstb"
class = "kitty-stb"
lazy = true
size = "50% 40%"

[scratchpads.stb-logs]
animation = "fromTop"
command = "kitty --class kitty-stb-logs stbLog"
class = "kitty-stb-logs"
lazy = true
size = "50% 40%"

[scratchpads.term]
animation = "fromTop"
command = "kitty --class kitty-dropterm"
class = "kitty-dropterm"
size = "60% 50%"
max_size = "100% 100%"

[scratchpads.ncmpcpp]
animation = "fromTop"
command = "kitty --class kitty-ncmpcpp ncmpcpp"
class = "kitty-ncmpcpp"
size = "90% 80%"
max_size = "100% 100%"


[scratchpads.neomutt1]
animation = "fromTop"
command = "kitty --class='neomutt1' neomutt"
class = "neomutt1"
size = "60% 80%"
max_size = "100% 100%"

[scratchpads.ranger]
animation = "fromTop"
command = "kitty --class ranger  ranger"
class = "ranger"

hyprland

# For a full list, see the wiki
#

#autogenerated = 1 # remove this line to remove the warning

# See https://wiki.hyprland.org/Configuring/Monitors/
#monitor=,preferred,auto,1
monitor=HDMI-A-1, 3840x2160@60, 0x0, 1
monitor=eDP-1, 1920x1080@60, 3840x0, 1

#workspace workspace=HDMI-A-1,1
workspace=1, monitor:HDMI-A-1
workspace=2, monitor:HDMI-A-1
workspace=3, monitor:HDMI-A-1
workspace=4, monitor:HDMI-A-1
workspace=5, monitor:HDMI-A-1
workspace=6, monitor:HDMI-A-1
workspace=7, monitor:HDMI-A-1
workspace=8, monitor:eDP-1
workspace=9, monitor:eDP-1
# See https://wiki.hyprland.org/Configuring/Keywords/ for more

# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox

#exec-once = waypaper --restore
exec-once = swaybg -i /usr/share/hypr/wall2.png
exec-once = waybar
#exec-once = [workspace 6 silent] pypr
exec-once = pypr --debug /tmp/pypr.log
#exec-once = dunst
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
exec-once = wl-paste --type image --watch cliphist store #Stores only image data

#portal
exec-once = portal.sh

# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf

# Set programs that you use
$terminal = kitty
$fileManager = ranger
$menu = tofi-drun --drun-launch=true 
$firefox = firefox
$librewolf = librewolf
$brave     = brave
$chromium = chromium 
$chat	  = weechat
$nvim     = nvim
$graphics 	  = gimp
$graphics2	  = blender
$screenshot	  = grim
$nwg-menu	  = nwg-bar
$paste		  = wl-paste
#$disable_mouse = /usr/local/bin/mouse_toggle.sh; sleep 10
# Some default env vars.
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
env = HYPRCURSOR_THEME,rose-pine-hyprcursor

# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
    kb_layout = us
    kb_variant =
    kb_model =
    kb_options = caps:escape
    kb_rules =

    follow_mouse = 0
    #scroll_method = no_scroll
    touchpad {
        natural_scroll = no
	disable_while_typing = true
    }

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
    float_switch_override_focus = 0
    
    scroll_method = no_scroll 
}

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

    gaps_in = 5
    gaps_out = 30
    border_size = 4
    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)

    layout = dwindle

    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
    allow_tearing = false
    #no_cursor_warps = true
}
decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    rounding = 15
    
    blur {
        enabled = true
        size = 20 
        passes = 1
	xray = true
    }

    drop_shadow = yes
    shadow_range = 4 
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)
    layerrule = blur, notifications
    layerrule = ignorezero, notifications
}

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, 7, myBezier
    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, 6, default
}

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
}

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
}

misc {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers
    disable_hyprland_logo = true
    enable_swallow = false
}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
 device {
    name = epic-mouse-v1
    sensitivity = -0.5
}

# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = float, class:^(Alacritty)$
windowrulev2 = center[1], class:^(Alacritty)$
windowrulev2 = pin, class:^(Alacritty)$
windowrulev2 = stayfocused, class:^(Alacritty)$

windowrulev2 = float,class:^(pavucontrol)$
windowrulev2 = center[1], class:^(Alacritty)$
windowrulev2 = pin,class:^(pavucontrol)$
windowrulev2 = stayfocused,class:^(pavucontrol)$
windowrulev2 = size 30% 40%,class:^(pavucontrol)$
#windowrulev2 = float, class:^(neomutt)$
#windowrulev2 = workspace 7, class:neomutt1


#browsers
#windowrulev2 = float,class:^(Chromium)$
windowrulev2 = float,class:^(org.qutebrowser.qutebrowser)$

#graphics
windowrulev2 = workspace 8, class:^(Gimp-2.10)$
windowrulev2 = workspace 8, class:^(blender)$


#librewolf
windowrulev2 = workspace 7, class:^(LibreWolf)$

#zathura 
windowrulev2 = float,class:^(org.pwmt.zathura)$
windowrulev2 = size 60% 60%, class:^(org.pwmt.zathura)$


#default
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.

# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod  = SUPER
$mainMod4 = CTRL
$mainMod2 = ALT
$mainMod24 = ALT+CTRL

#common commands
bind = $mainMod, C, killactive, 
bind = $mainMod SHIFT, E, exit, 
bind = $mainMod, Space, togglefloating, 
bind = $mainMod, D, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod SHIFT, P, exec, $nwg-menu
bind = $mainMod, S, togglesplit, # dwindle
bind = $mainMod, F, exec, hyprctl dispatch fullscreen 

# my apps
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, A, exec, $brave --ozone-platform-hint=auto
bind = $mainMod, W, exec, $terminal $chat

#untilities
bind = $mainMod, F1, exec, $screenshot -g "$(slurp)" - | wl-copy #copy the screenshot
bind = $mainMod, F2, exec,  cliphist list | tofi | cliphist decode | wl-copy #start tofi with cliphist to choose from 
bind = $mainMod2, h,  exec,  ~/commands/hyperland/reload.sh 
bind = $mainMod2, w,  exec,  killall -SIGUSR2 waybar
bind = $mainMod,  l,  exec,  hyprlock
bind = $mainMod SHIFT, e,  exec,  hyprctl dispatch exit
bind = $mainMod SHIFT, r,  exec,  systemctl reboot
bind = $mainMod SHIFT, s,  exec,  systemctl -i poweroff 

#cycle through the list of windows in the workflow
bind =  $mainMod, Tab, cyclenext

# 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

# 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

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

#pypr scratchpad
bind = $mainMod , N, exec, pypr toggle term
bind = $mainMod,  M, exec, pypr toggle neomutt1
bind = $mainMod,  B, exec, pypr toggle ncmpcpp
bind = $mainMod,  v, exec, pypr toggle volume
bind = $mainMod,  z, exec, pypr zoom
bind = $mainMod,  E, exec, pypr toggle ranger

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

Additional context
Here is a sample of pypr.log with defugging
pypr_sample.log

@alekgr alekgr added the bug Something isn't working label Aug 16, 2024
@fdev31
Copy link
Collaborator

fdev31 commented Aug 16, 2024

Do you get the problem with the stable version (2.4.0) instead of git version?

@fdev31
Copy link
Collaborator

fdev31 commented Aug 16, 2024

I also get this sometimes, it seems to work as expected but throws such errors isn't it?
EDIT: please use --debug /path/to/log/file.log and send the generated log file...

@fdev31
Copy link
Collaborator

fdev31 commented Aug 16, 2024

Would be interesting to see if we also have a line such as:
2024-08-15 14:53:36,502 [DEBUG] pyprland :: �[30;1mevent_activewindowv2('',)�[0m :: command.py:202
When the bug happens again... also the full log file will allow seeing eventual previous problems.

fdev31 added a commit that referenced this issue Aug 16, 2024
@fdev31
Copy link
Collaborator

fdev31 commented Aug 16, 2024

Can you try the latest git version, I think the code was too optimistic, it should work better now.

@fdev31 fdev31 changed the title [BUG] sometimes(randomely) get pypr integrity check failed [BUG] [scratchpads] sometimes(randomely) get pypr integrity check failed Aug 16, 2024
@alekgr
Copy link
Author

alekgr commented Aug 16, 2024

@fdev31 I am using git version, actually all my hyprland using git update verseion.
I see you remove the assert ha. I'll see if I get the error again or not. On top of the ticket there is pypr_sample.log with defugging enabled

@alekgr
Copy link
Author

alekgr commented Aug 19, 2024

I am not seeing any error messages since the patch. Closing ticket ticket

@alekgr alekgr closed this as completed Aug 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants