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] Intermediate overlay which blocks interaction of windows below scratchpad when scratchapad are started with keybindings #149

Open
samtrek opened this issue Nov 6, 2024 · 7 comments
Assignees
Labels
bug Something isn't working hyprland

Comments

@samtrek
Copy link

samtrek commented Nov 6, 2024

Pyprland version
2.4.1

Describe the bug
Intermediate freezing of screen due to a gray overlay of windows below scratchpad when a new scratchpad is started with a keybinding

To Reproduce

  1. remove lazy from scratchpad configs
  2. Start a the scratchpad with the assigned keybinding (these may require multiple start and stop to catch the bug or repeatedly toggle scratchpad )
  3. The window below the scratchpad is grayed out due to an overlay and cannot be interacted with, in a multiple monitor setup, the alternate monitor is not affected.
  4. To remove the gray overlay , repeatedly toggle scratchpads
    Expected behavior
    Their should not be a blank gray overlay blocking interaction with other windows when scratchpads are toggled, or when the are started
@samtrek samtrek added the bug Something isn't working label Nov 6, 2024
@fdev31
Copy link
Collaborator

fdev31 commented Nov 6, 2024

I mostly use multi-monitor setups so it must be something specific to your use case.
Can you be a bit more specific, is it happening with every scratchpad? Any monitor layout or specific conditions etc.... ?

Additionally, try to format your bug report so it can be readable, and provide the logs of the failed scenario along with the explanations.

@samtrek
Copy link
Author

samtrek commented Nov 6, 2024

It also happens on my latpop which is not connected to a monitor, albeit less frequently once in a while when the scratchpad is started from with a keybinding, it shows an overlay which blocks other activities until, another or a couple of scratchpads are called

@samtrek
Copy link
Author

samtrek commented Nov 6, 2024

  • The log

       ipc - Logger "ipc" initialized // common.py:205
                startup - Logger "startup" initialized // common.py:205
                   pypr - Logger "pypr" initialized // common.py:205
                   pypr - Loading /home/samtrek/.config/hypr/pyprland.toml // command.py:114
               pyprland - Logger "pyprland" initialized // common.py:205
               pyprland - version // ipc.py:102
               pyprland - activeworkspace // ipc.py:102
               pyprland - monitors // ipc.py:102
               pyprland - configured // command.py:179
            scratchpads - Logger "scratchpads" initialized // common.py:205
            scratchpads - monitors (CACHE HIT) // ipc.py:99
            scratchpads - keyword ['windowrule float,^(thunar)$', 'windowrule workspace special:scratch_thunar silent,^(thunar)$', 'windowrule move 200% 377,^(thunar)$', 'windowrule size 504 270,^(thunar)$'] // ipc.py:145
            scratchpads - thunar is not running, starting... // __init__.py:266
            scratchpads - scratch thunar (thunar) has pid 3276405 // __init__.py:287
            scratchpads - starting thunar // __init__.py:238
            scratchpads - ==> Wait for thunar spawning // __init__.py:192
            scratchpads - clients // ipc.py:102
            scratchpads - clients // ipc.py:102
            scratchpads - clients // ipc.py:102
            scratchpads - clients // ipc.py:102
            scratchpads - clients // ipc.py:102
            scratchpads - clients // ipc.py:102
            scratchpads - => thunar client (proc:3276405, addr:0x5d4cd0a971e0) detected on time // __init__.py:203
            scratchpads - keyword windowrule unset,^(thunar)$ // ipc.py:145
            scratchpads - configured // command.py:179
         toggle_special - Logger "toggle_special" initialized // common.py:205
         toggle_special - configured // command.py:179
          menus adapter - Logger "menus adapter" initialized // common.py:205
         shortcuts_menu - Logger "shortcuts_menu" initialized // common.py:205
         shortcuts_menu - configured // command.py:179
                   pypr - ================================[ initialized ]================================= // command.py:381
               pyprland - event_activewindowv2('5d4cd088f950',) // command.py:202
               pyprland - active_window = 0x5d4cd088f950 // pyprland.py:78
            scratchpads - event_activewindowv2('5d4cd088f950',) // command.py:202
            scratchpads - event_openwindow('5d4cd0a971e0,special:scratch_thunar silent,thunar,Downloads - Thunar',) // command.py:202
            scratchpads - clients // ipc.py:102
            scratchpads - dispatch movetoworkspacesilent special:scratch_thunar,address:0x5d4cd0a971e0 // ipc.py:145
            scratchpads - run_toggle('yazi',) // command.py:202
            scratchpads - visibility_check: ('', '') == ('6: \uf120', 'DVI-I-2') // __init__.py:472
            scratchpads - yazi visibility: False and False // __init__.py:498
            scratchpads - Showing yazi // __init__.py:575
            scratchpads - scratch yazi ([term_classed] yazi -e yazi ~/) has pid 3285933 // __init__.py:287
            scratchpads - ==> Wait for yazi spawning // __init__.py:192
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - clients // ipc.py:102
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - => yazi client (proc:3285933, addr:0x5d4cd0a80e90) detected on time // __init__.py:203
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - dispatch movetoworkspacesilent special:scratch_yazi,address:0x5d4cd0a80e90 // ipc.py:145
               pyprland - event_activewindowv2('5d4cd088f950',) // command.py:202
               pyprland - active_window = 0x5d4cd088f950 // pyprland.py:78
            scratchpads - monitors // ipc.py:102
            scratchpads - dispatch resizewindowpixel exact 504 270,address:0x5d4cd0a80e90 // ipc.py:145
            scratchpads - clients // ipc.py:102
            scratchpads - dispatch ['moveworkspacetomonitor special:scratch_yazi DVI-I-2', 'movetoworkspacesilent 6: \uf120 \uf0c7,address:0x5d4cd0a80e90', 'alterzorder top,address:0x5d4cd0a80e90'] // ipc.py:145
            scratchpads - dispatch ['movewindowpixel exact 2156 377,address:0x5d4cd0a80e90'] // ipc.py:145
            scratchpads - dispatch focuswindow address:0x5d4cd0a80e90 // ipc.py:145
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - dispatch pin address:0x5d4cd0a80e90 // ipc.py:145
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
            scratchpads - event_openwindow('5d4cd0a80e90,6: \uf120,yazi,kitty',) // command.py:202
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
            scratchpads - event_activewindowv2('5d4cd088f950',) // command.py:202
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
            scratchpads - event_closewindow('5d4cd0a80e90',) // command.py:202
               pyprland - event_activewindowv2('5d4cd088f950',) // command.py:202
               pyprland - active_window = 0x5d4cd088f950 // pyprland.py:78
            scratchpads - event_activewindowv2('5d4cd088f950',) // command.py:202
            scratchpads - run_toggle('yazi',) // command.py:202
            scratchpads - visibility_check: ('6: \uf120', 'DVI-I-2') == ('6: \uf120', 'DVI-I-2') // __init__.py:472
            scratchpads - yazi visibility: True and True // __init__.py:498
            scratchpads - clients // ipc.py:102
            scratchpads - Showing yazi // __init__.py:575
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - scratch yazi ([term_classed] yazi -e yazi ~/) has pid 3286909 // __init__.py:287
            scratchpads - ==> Wait for yazi spawning // __init__.py:192
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - clients // ipc.py:102
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - => yazi client (proc:3286909, addr:0x5d4cd0a80e90) detected on time // __init__.py:203
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - dispatch movetoworkspacesilent special:scratch_yazi,address:0x5d4cd0a80e90 // ipc.py:145
               pyprland - event_activewindowv2('5d4cd088f950',) // command.py:202
               pyprland - active_window = 0x5d4cd088f950 // pyprland.py:78
            scratchpads - monitors // ipc.py:102
            scratchpads - dispatch resizewindowpixel exact 504 270,address:0x5d4cd0a80e90 // ipc.py:145
            scratchpads - clients // ipc.py:102
            scratchpads - dispatch ['moveworkspacetomonitor special:scratch_yazi DVI-I-2', 'movetoworkspacesilent 6: \uf120 \uf0c7,address:0x5d4cd0a80e90', 'alterzorder top,address:0x5d4cd0a80e90'] // ipc.py:145
            scratchpads - dispatch ['movewindowpixel exact 2156 377,address:0x5d4cd0a80e90'] // ipc.py:145
            scratchpads - dispatch focuswindow address:0x5d4cd0a80e90 // ipc.py:145
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - dispatch pin address:0x5d4cd0a80e90 // ipc.py:145
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
            scratchpads - event_openwindow('5d4cd0a80e90,6: \uf120,yazi,kitty',) // command.py:202
            scratchpads - event_activewindowv2('5d4cd088f950',) // command.py:202
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
            scratchpads - run_toggle('yazi',) // command.py:202
            scratchpads - visibility_check: ('6: \uf120', 'DVI-I-2') == ('6: \uf120', 'DVI-I-2') // __init__.py:472
            scratchpads - yazi visibility: True and True // __init__.py:498
            scratchpads - clients // ipc.py:102
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - Hiding yazi // __init__.py:785
            scratchpads - dispatch ['movewindowpixel 564 0,address:0x5d4cd0a80e90'] // ipc.py:145
            scratchpads - dispatch pin address:0x5d4cd0a80e90 // ipc.py:145
            scratchpads - dispatch movetoworkspacesilent special:scratch_yazi,address:0x5d4cd0a80e90 // ipc.py:145
               pyprland - event_activewindowv2('5d4cd088f950',) // command.py:202
               pyprland - active_window = 0x5d4cd088f950 // pyprland.py:78
            scratchpads - event_activewindowv2('5d4cd088f950',) // command.py:202
            scratchpads - run_toggle('yazi',) // command.py:202
            scratchpads - visibility_check: ('6: \uf120', 'DVI-I-2') == ('6: \uf120', 'DVI-I-2') // __init__.py:472
            scratchpads - yazi visibility: False and False // __init__.py:498
            scratchpads - Showing yazi // __init__.py:575
            scratchpads - clients // ipc.py:102
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - monitors // ipc.py:102
            scratchpads - dispatch resizewindowpixel exact 504 270,address:0x5d4cd0a80e90 // ipc.py:145
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - dispatch ['moveworkspacetomonitor special:scratch_yazi DVI-I-2', 'movetoworkspacesilent 6: \uf120,address:0x5d4cd0a80e90', 'alterzorder top,address:0x5d4cd0a80e90'] // ipc.py:145
            scratchpads - dispatch ['movewindowpixel exact 2156 377,address:0x5d4cd0a80e90'] // ipc.py:145
            scratchpads - dispatch focuswindow address:0x5d4cd0a80e90 // ipc.py:145
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - dispatch pin address:0x5d4cd0a80e90 // ipc.py:145
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
            scratchpads - event_closewindow('5d4cd0a80e90',) // command.py:202
               pyprland - event_activewindowv2('5d4cd088f950',) // command.py:202
               pyprland - active_window = 0x5d4cd088f950 // pyprland.py:78
            scratchpads - event_activewindowv2('5d4cd088f950',) // command.py:202
            scratchpads - run_toggle('yazi',) // command.py:202
            scratchpads - visibility_check: ('6: \uf120', 'DVI-I-2') == ('6: \uf120', 'DVI-I-2') // __init__.py:472
            scratchpads - yazi visibility: True and True // __init__.py:498
            scratchpads - clients // ipc.py:102
            scratchpads - Showing yazi // __init__.py:575
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - scratch yazi ([term_classed] yazi -e yazi ~/) has pid 3288152 // __init__.py:287
            scratchpads - ==> Wait for yazi spawning // __init__.py:192
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - clients // ipc.py:102
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - => yazi client (proc:3288152, addr:0x5d4cd0a80e90) detected on time // __init__.py:203
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - dispatch movetoworkspacesilent special:scratch_yazi,address:0x5d4cd0a80e90 // ipc.py:145
               pyprland - event_activewindowv2('5d4cd088f950',) // command.py:202
               pyprland - active_window = 0x5d4cd088f950 // pyprland.py:78
            scratchpads - monitors // ipc.py:102
            scratchpads - dispatch resizewindowpixel exact 504 270,address:0x5d4cd0a80e90 // ipc.py:145
            scratchpads - clients // ipc.py:102
            scratchpads - dispatch ['moveworkspacetomonitor special:scratch_yazi DVI-I-2', 'movetoworkspacesilent 6: \uf120 \uf0c7,address:0x5d4cd0a80e90', 'alterzorder top,address:0x5d4cd0a80e90'] // ipc.py:145
            scratchpads - FAILED b'okError in moveActiveToWorkspaceSilent, invalid valueok' // ipc.py:166
            scratchpads - dispatch ['movewindowpixel exact 2156 377,address:0x5d4cd0a80e90'] // ipc.py:145
            scratchpads - dispatch focuswindow address:0x5d4cd0a80e90 // ipc.py:145
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - dispatch pin address:0x5d4cd0a80e90 // ipc.py:145
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
            scratchpads - event_openwindow('5d4cd0a80e90,6: \uf120,yazi,kitty',) // command.py:202
            scratchpads - event_activewindowv2('5d4cd088f950',) // command.py:202
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
            scratchpads - run_toggle('yazi',) // command.py:202
            scratchpads - visibility_check: ('6: \uf120', 'DVI-I-2') == ('6: \uf120', 'DVI-I-2') // __init__.py:472
            scratchpads - yazi visibility: True and True // __init__.py:498
            scratchpads - clients // ipc.py:102
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - Hiding yazi // __init__.py:785
            scratchpads - dispatch ['movewindowpixel 564 0,address:0x5d4cd0a80e90'] // ipc.py:145
            scratchpads - dispatch pin address:0x5d4cd0a80e90 // ipc.py:145
            scratchpads - dispatch movetoworkspacesilent special:scratch_yazi,address:0x5d4cd0a80e90 // ipc.py:145
               pyprland - event_activewindowv2('',) // command.py:202
               pyprland - no active window // pyprland.py:74
            scratchpads - event_activewindowv2('',) // command.py:202
            scratchpads - run_toggle('yazi',) // command.py:202
            scratchpads - visibility_check: ('6: \uf120', 'DVI-I-2') == ('6: \uf120', 'DVI-I-2') // __init__.py:472
            scratchpads - yazi visibility: False and False // __init__.py:498
            scratchpads - Showing yazi // __init__.py:575
            scratchpads - clients // ipc.py:102
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - monitors // ipc.py:102
            scratchpads - dispatch resizewindowpixel exact 504 270,address:0x5d4cd0a80e90 // ipc.py:145
            scratchpads - clients (CACHE HIT) // ipc.py:99
            scratchpads - dispatch ['moveworkspacetomonitor special:scratch_yazi DVI-I-2', 'movetoworkspacesilent 6: \uf120,address:0x5d4cd0a80e90', 'alterzorder top,address:0x5d4cd0a80e90'] // ipc.py:145
               pyprland - event_activewindowv2('5d4cd088f950',) // command.py:202
               pyprland - active_window = 0x5d4cd088f950 // pyprland.py:78
            scratchpads - dispatch ['movewindowpixel exact 2156 377,address:0x5d4cd0a80e90'] // ipc.py:145
            scratchpads - dispatch focuswindow address:0x5d4cd0a80e90 // ipc.py:145
               pyprland - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - active_window = 0x5d4cd0a80e90 // pyprland.py:78
            scratchpads - dispatch pin address:0x5d4cd0a80e90 // ipc.py:145
            scratchpads - event_activewindowv2('5d4cd088f950',) // command.py:202
            scratchpads - event_activewindowv2('5d4cd0a80e90',) // command.py:202
               pyprland - event_activewindowv2('5d4cd088f950',) // command.py:202
               pyprland - active_window = 0x5d4cd088f950 // pyprland.py:78
            scratchpads - event_activewindowv2('5d4cd088f950',) // command.py:202
    

@fdev31
Copy link
Collaborator

fdev31 commented Nov 6, 2024

Can you also provide your config?
It's only when lazy=false ?

@fdev31
Copy link
Collaborator

fdev31 commented Nov 6, 2024

I am afraid I can't reproduce it, did you test different hyprland versions to see if the problem depends on it?

@fdev31 fdev31 added the hyprland label Nov 6, 2024
@samtrek
Copy link
Author

samtrek commented Nov 6, 2024

I found out that the bug can be replicated if process_tracking = false is set in the config, and the overlay does not appear when not set at all, tested for kitty and foot (thinking maybe it was terminal related issue)

[scratchpads.btop]
animation = "fromLeft"
command = "kitty --class btop -e btop"
match_by = "class"
class = "btop"
size = "499px 414px"
max_size = "1920px 100%"
position = "2% 59%"
process_tracking = false

I am using the btop example because it can be easily closed (simply with a q) and restarted (good for rapid testing), compared to using a simple floating term example, because the bug is not consistent, it may not appear at launch of a new scratchpad at times

@samtrek
Copy link
Author

samtrek commented Nov 12, 2024

I am afraid I can't reproduce it, did you test different hyprland versions to see if the problem depends on it?

newer versions of hyprland did not fix the issue, were you able to detect the bug with the config I gave above?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working hyprland
Projects
None yet
Development

No branches or pull requests

2 participants