Closed Violettica closed 7 months ago
Hm, this is unexpected, I use this type of configuration daily...
hyprctl version
) ?pypr
logs to understand why the computation isn't correct ?It looks a bit like the computations are done on a "tiny" monitor instead of the correct size... but I don't see a possible root cause yet.
Edit: also provide the output of hyprctl -j clients
and hyprctl -j monitors
please
Output for hyprctl version
is:
Hyprland, built from branch main at commit fcd9d77b642c0cd45cae61cf10ed1924f2e7945b dirty (layout: improve initial size prediction for floating).
Date: Fri Mar 29 01:43:50 2024
Tag: v0.37.1-81-gfcd9d77b
flags: (if any)
Here's pypr.log
, there's a bit of fiddling at the start of it but it should get the point across. Edit: This is with the fromRight
config, FYI. I can provide logs for other animation sets if you think it'll help.
2024-03-29 10:18:09,608 [INFO] ipc :: Logger "ipc" initialized :: common.py:78
2024-03-29 10:18:09,609 [INFO] startup :: Logger "startup" initialized :: common.py:78
2024-03-29 10:18:09,609 [DEBUG] ipc :: notify 3 10000 rgb(ff1010) Trying to run pypr more than once ? :: ipc.py:114
2024-03-29 10:18:09,610 [CRITICAL] startup :: /tmp/hypr/fcd9d77b642c0cd45cae61cf10ed1924f2e7945b_1711732507/.pyprland.sock exists,
is pypr already running ?
If that's not the case, delete this file and run again. :: command.py:409
2024-03-29 10:18:28,573 [INFO] ipc :: Logger "ipc" initialized :: common.py:78
2024-03-29 10:18:28,573 [INFO] startup :: Logger "startup" initialized :: common.py:78
2024-03-29 10:18:28,573 [INFO] pypr :: Logger "pypr" initialized :: common.py:78
2024-03-29 10:18:28,574 [INFO] pypr :: Loading /home/violettica/.config/hypr/pyprland.toml :: command.py:66
2024-03-29 10:18:28,574 [INFO] pyprland :: Logger "pyprland" initialized :: common.py:78
2024-03-29 10:18:28,574 [DEBUG] ipc :: activeworkspace :: ipc.py:75
2024-03-29 10:18:28,575 [DEBUG] ipc :: monitors :: ipc.py:75
2024-03-29 10:18:28,577 [INFO] pyprland :: configured :: command.py:119
2024-03-29 10:18:28,586 [INFO] scratchpads :: Logger "scratchpads" initialized :: common.py:78
2024-03-29 10:18:28,586 [INFO] scratchpads :: configured :: command.py:119
2024-03-29 10:18:28,587 [DEBUG] pypr :: ================================[ initialized ]================================= :: command.py:317
2024-03-29 10:18:31,391 [DEBUG] scratchpads :: [33;1mrun_toggle('volume',)[0m :: command.py:154
2024-03-29 10:18:31,392 [DEBUG] scratchpads :: volume is visible = False :: scratchpads.py:738
2024-03-29 10:18:31,392 [INFO] scratchpads :: Showing volume :: scratchpads.py:789
2024-03-29 10:18:31,394 [DEBUG] ipc :: monitors :: ipc.py:75
2024-03-29 10:18:31,396 [DEBUG] ipc :: keyword ['windowrule float,^(pavucontrol)$', 'windowrule move 200% 150,^(pavucontrol)$', 'windowrule size 902 1203,^(pavucontrol)$'] :: ipc.py:114
2024-03-29 10:18:31,397 [INFO] scratchpads :: volume is not running, starting... :: scratchpads.py:559
2024-03-29 10:18:31,398 [INFO] scratchpads :: scratch volume (pavucontrol) has pid 10797 :: scratchpads.py:578
2024-03-29 10:18:31,398 [INFO] scratchpads :: starting volume :: scratchpads.py:532
2024-03-29 10:18:31,398 [INFO] scratchpads :: ==> Wait for volume spawning :: scratchpads.py:482
2024-03-29 10:18:31,501 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-29 10:18:31,904 [ERROR] scratchpads :: ⚠ Failed spawning volume as proc 10797 :: scratchpads.py:534
2024-03-29 10:18:31,905 [ERROR] scratchpads :: "pavucontrol": The command terminated sucessfully, is it already running? :: scratchpads.py:544
2024-03-29 10:18:31,905 [DEBUG] ipc :: notify 0 5000 rgb(ff1010) The command terminated sucessfully, is it already running? :: ipc.py:114
2024-03-29 10:18:31,907 [DEBUG] ipc :: notify 0 5000 rgb(ff1010) Failed to show scratch "volume" :: ipc.py:114
2024-03-29 10:18:31,919 [ERROR] scratchpads :: Failed to show volume, aborting. :: scratchpads.py:792
2024-03-29 10:18:39,967 [DEBUG] pyprland :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:39,967 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:40,028 [DEBUG] pyprland :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:40,028 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:43,388 [DEBUG] scratchpads :: [33;1mrun_toggle('volume',)[0m :: command.py:154
2024-03-29 10:18:43,388 [DEBUG] scratchpads :: volume is visible = False :: scratchpads.py:738
2024-03-29 10:18:43,388 [INFO] scratchpads :: Showing volume :: scratchpads.py:789
2024-03-29 10:18:43,389 [INFO] scratchpads :: volume is not running, starting... :: scratchpads.py:559
2024-03-29 10:18:43,390 [INFO] scratchpads :: scratch volume (pavucontrol) has pid 10874 :: scratchpads.py:578
2024-03-29 10:18:43,390 [INFO] scratchpads :: starting volume :: scratchpads.py:532
2024-03-29 10:18:43,390 [INFO] scratchpads :: ==> Wait for volume spawning :: scratchpads.py:482
2024-03-29 10:18:43,492 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-29 10:18:43,612 [DEBUG] pyprland :: [30;1mevent_activewindowv2('63267594f820',)[0m :: command.py:154
2024-03-29 10:18:43,896 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-29 10:18:43,897 [INFO] scratchpads :: => volume client (proc:10874, addr:0x63267594f820) detected on time :: scratchpads.py:495
2024-03-29 10:18:43,897 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-29 10:18:43,903 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-29 10:18:43,903 [DEBUG] ipc :: dispatch movetoworkspacesilent special:scratch_volume,address:0x63267594f820 :: ipc.py:114
2024-03-29 10:18:43,905 [DEBUG] pyprland :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:43,906 [DEBUG] ipc :: monitors :: ipc.py:75
2024-03-29 10:18:43,906 [DEBUG] ipc :: dispatch ['moveworkspacetomonitor special:scratch_volume eDP-1', 'movetoworkspacesilent 1,address:0x63267594f820', 'alterzorder top,address:0x63267594f820'] :: ipc.py:114
2024-03-29 10:18:43,908 [DEBUG] pyprland :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:43,909 [DEBUG] ipc :: dispatch resizewindowpixel exact 902 1203,address:0x63267594f820 :: ipc.py:114
2024-03-29 10:18:43,910 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-29 10:18:43,911 [DEBUG] ipc :: dispatch movewindowpixel exact 993 150,address:0x63267594f820 :: ipc.py:114
2024-03-29 10:18:43,917 [DEBUG] ipc :: dispatch focuswindow address:0x63267594f820 :: ipc.py:114
2024-03-29 10:18:43,918 [DEBUG] pyprland :: [30;1mevent_activewindowv2('63267594f820',)[0m :: command.py:154
2024-03-29 10:18:44,119 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('63267594f820',)[0m :: command.py:154
2024-03-29 10:18:44,119 [DEBUG] scratchpads :: [30;1mevent_openwindow('63267594f820,1,pavucontrol,Volume Control',)[0m :: command.py:154
2024-03-29 10:18:44,119 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:44,119 [DEBUG] scratchpads :: (SKIPPED) hide volume because another client is active :: scratchpads.py:637
2024-03-29 10:18:44,119 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:44,119 [DEBUG] scratchpads :: (SKIPPED) hide volume because another client is active :: scratchpads.py:637
2024-03-29 10:18:44,119 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('63267594f820',)[0m :: command.py:154
2024-03-29 10:18:46,777 [DEBUG] scratchpads :: [33;1mrun_toggle('volume',)[0m :: command.py:154
2024-03-29 10:18:46,777 [DEBUG] scratchpads :: volume is visible = True :: scratchpads.py:738
2024-03-29 10:18:46,778 [INFO] scratchpads :: Hiding volume :: scratchpads.py:916
2024-03-29 10:18:46,778 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-29 10:18:46,779 [DEBUG] ipc :: monitors :: ipc.py:75
2024-03-29 10:18:46,784 [DEBUG] ipc :: dispatch movewindowpixel 1263 0,address:0x63267594f820 :: ipc.py:114
2024-03-29 10:18:46,985 [DEBUG] ipc :: dispatch movetoworkspacesilent special:scratch_volume,address:0x63267594f820 :: ipc.py:114
2024-03-29 10:18:46,989 [DEBUG] pyprland :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:46,989 [DEBUG] ipc :: dispatch focuswindow address:0x632675a17e30 :: ipc.py:114
2024-03-29 10:18:46,995 [DEBUG] pyprland :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:46,996 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:46,996 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:57,171 [DEBUG] pyprland :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:57,171 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:57,331 [DEBUG] pyprland :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:18:57,331 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:19:01,828 [DEBUG] pyprland :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:19:01,829 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('632675a17e30',)[0m :: command.py:154
2024-03-29 10:19:01,860 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:19:01,860 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:19:07,890 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:19:07,891 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:19:13,755 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:19:13,755 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:19:14,292 [DEBUG] pyprland :: [30;1mevent_workspace('2',)[0m :: command.py:154
2024-03-29 10:19:14,292 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:19:14,293 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:19:48,944 [DEBUG] pyprland :: [30;1mevent_activewindowv2('632675a17b70',)[0m :: command.py:154
2024-03-29 10:19:48,944 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('632675a17b70',)[0m :: command.py:154
2024-03-29 10:19:48,944 [DEBUG] scratchpads :: [30;1mevent_openwindow('632675a17b70,2,firedragon,File Upload',)[0m :: command.py:154
2024-03-29 10:19:57,649 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:19:57,649 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:19:57,935 [DEBUG] pyprland :: [30;1mevent_activewindowv2('632675a17b70',)[0m :: command.py:154
2024-03-29 10:19:57,935 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('632675a17b70',)[0m :: command.py:154
2024-03-29 10:20:00,545 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:20:00,545 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:20:23,653 [DEBUG] pyprland :: [30;1mevent_activewindowv2('632675a17b70',)[0m :: command.py:154
2024-03-29 10:20:23,653 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('632675a17b70',)[0m :: command.py:154
2024-03-29 10:20:23,653 [DEBUG] scratchpads :: [30;1mevent_openwindow('632675a17b70,2,firedragon,File Upload',)[0m :: command.py:154
2024-03-29 10:20:27,159 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:20:27,160 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:20:36,697 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:20:36,698 [DEBUG] pyprland :: [30;1mevent_workspace('1',)[0m :: command.py:154
2024-03-29 10:20:36,698 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:20:43,611 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:20:43,611 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:20:43,671 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:20:43,671 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:20:49,003 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:20:49,003 [DEBUG] pyprland :: [30;1mevent_workspace('2',)[0m :: command.py:154
2024-03-29 10:20:49,003 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:20:50,098 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:20:50,098 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:20:53,860 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:20:53,861 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:21:01,114 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:21:01,114 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:21:01,183 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:21:01,183 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326752bd310',)[0m :: command.py:154
2024-03-29 10:21:06,528 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:21:06,529 [DEBUG] pyprland :: [30;1mevent_workspace('1',)[0m :: command.py:154
2024-03-29 10:21:06,529 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:21:12,753 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:21:12,753 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:21:12,836 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:21:12,836 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:21:22,404 [DEBUG] pyprland :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
2024-03-29 10:21:22,404 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('6326753ceff0',)[0m :: command.py:154
Output for hypr -j clients
:
[{
"address": "0x6326753ceff0",
"mapped": true,
"hidden": false,
"at": [12, 52],
"size": [2232, 1440],
"workspace": {
"id": 1,
"name": "1"
},
"floating": false,
"monitor": 0,
"class": "footclient",
"title": "hyprctl -j clients | ~",
"initialClass": "footclient",
"initialTitle": "foot",
"pid": 2000,
"xwayland": false,
"pinned": false,
"fullscreen": false,
"fullscreenMode": 0,
"fakeFullscreen": false,
"grouped": [],
"swallowing": "0x0",
"focusHistoryID": 0
},{
"address": "0x6326752bd310",
"mapped": true,
"hidden": false,
"at": [12, 52],
"size": [2232, 1440],
"workspace": {
"id": 2,
"name": "2"
},
"floating": false,
"monitor": 0,
"class": "firedragon",
"title": "[BUG] Scratchpads do not appear in expected locations · Issue #69 · hyprland-community/pyprland — FireDragon",
"initialClass": "firedragon",
"initialTitle": "FireDragon",
"pid": 2738,
"xwayland": false,
"pinned": false,
"fullscreen": false,
"fullscreenMode": 0,
"fakeFullscreen": false,
"grouped": [],
"swallowing": "0x0",
"focusHistoryID": 1
},{
"address": "0x63267594f820",
"mapped": true,
"hidden": false,
"at": [1413, 150],
"size": [1203, 1203],
"workspace": {
"id": -98,
"name": "special:scratch_volume"
},
"floating": true,
"monitor": 0,
"class": "pavucontrol",
"title": "Volume Control",
"initialClass": "pavucontrol",
"initialTitle": "Volume Control",
"pid": 10874,
"xwayland": false,
"pinned": false,
"fullscreen": false,
"fullscreenMode": 0,
"fakeFullscreen": false,
"grouped": [],
"swallowing": "0x0",
"focusHistoryID": 2
}]
Finally, hyprctl -j monitors
. Secondary monitor is unplugged.
[{
"id": 0,
"name": "eDP-1",
"description": "BOE 0x095F",
"make": "BOE",
"model": "0x095F",
"serial": "",
"width": 2256,
"height": 1504,
"refreshRate": 59.99900,
"x": 0,
"y": 0,
"activeWorkspace": {
"id": 1,
"name": "1"
},
"specialWorkspace": {
"id": 0,
"name": ""
},
"reserved": [0, 40, 0, 0],
"scale": 1.00,
"transform": 0,
"focused": true,
"dpmsStatus": true,
"vrr": false,
"activelyTearing": false,
"currentFormat": "XRGB8888",
"availableModes": ["2256x1504@60.00Hz","2256x1504@48.00Hz"]
}]
Hope this helps.
Unfortunately this run isn't valid. You had a "stale" pavucontrol started. Check the errors about pavucontrol failing to start at the beginning... didn't it show in the notifications ? Can you dump the logs again after ensuring you don't have any issue in the runtime (ideal would be a fresh start).
Tip: you can use pypr exit
to cleanly exit and usually exit the scratchpad commands cleanly.
Thanks for the tip, here's some cleaner logs.
2024-03-30 19:14:32,117 [INFO] ipc :: Logger "ipc" initialized :: common.py:78
2024-03-30 19:14:32,118 [INFO] startup :: Logger "startup" initialized :: common.py:78
2024-03-30 19:14:32,118 [INFO] pypr :: Logger "pypr" initialized :: common.py:78
2024-03-30 19:14:32,118 [INFO] pypr :: Loading /home/violettica/.config/hypr/pyprland.toml :: command.py:66
2024-03-30 19:14:32,119 [INFO] pyprland :: Logger "pyprland" initialized :: common.py:78
2024-03-30 19:14:32,119 [DEBUG] ipc :: activeworkspace :: ipc.py:75
2024-03-30 19:14:32,120 [DEBUG] ipc :: monitors :: ipc.py:75
2024-03-30 19:14:32,120 [INFO] pyprland :: configured :: command.py:119
2024-03-30 19:14:32,129 [INFO] scratchpads :: Logger "scratchpads" initialized :: common.py:78
2024-03-30 19:14:32,130 [INFO] scratchpads :: configured :: command.py:119
2024-03-30 19:14:32,130 [DEBUG] pypr :: ================================[ initialized ]================================= :: command.py:317
2024-03-30 19:14:36,377 [DEBUG] scratchpads :: [33;1mrun_toggle('volume',)[0m :: command.py:154
2024-03-30 19:14:36,377 [DEBUG] scratchpads :: volume is visible = False :: scratchpads.py:738
2024-03-30 19:14:36,377 [INFO] scratchpads :: Showing volume :: scratchpads.py:789
2024-03-30 19:14:36,396 [DEBUG] ipc :: monitors :: ipc.py:75
2024-03-30 19:14:36,396 [DEBUG] ipc :: keyword ['windowrule float,^(pavucontrol)$', 'windowrule move 200% 150,^(pavucontrol)$', 'windowrule size 902 1203,^(pavucontrol)$'] :: ipc.py:114
2024-03-30 19:14:36,397 [INFO] scratchpads :: volume is not running, starting... :: scratchpads.py:559
2024-03-30 19:14:36,398 [INFO] scratchpads :: scratch volume (pavucontrol) has pid 88700 :: scratchpads.py:578
2024-03-30 19:14:36,398 [INFO] scratchpads :: starting volume :: scratchpads.py:532
2024-03-30 19:14:36,398 [INFO] scratchpads :: ==> Wait for volume spawning :: scratchpads.py:482
2024-03-30 19:14:36,501 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-30 19:14:36,628 [DEBUG] pyprland :: [30;1mevent_activewindowv2('5d2dac2c4570',)[0m :: command.py:154
2024-03-30 19:14:36,904 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-30 19:14:36,906 [INFO] scratchpads :: => volume client (proc:88700, addr:0x5d2dac2c4570) detected on time :: scratchpads.py:495
2024-03-30 19:14:36,906 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-30 19:14:36,906 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-30 19:14:36,907 [DEBUG] ipc :: dispatch movetoworkspacesilent special:scratch_volume,address:0x5d2dac2c4570 :: ipc.py:114
2024-03-30 19:14:36,909 [DEBUG] ipc :: monitors :: ipc.py:75
2024-03-30 19:14:36,909 [DEBUG] pyprland :: [30;1mevent_activewindowv2('5d2dabc4fb90',)[0m :: command.py:154
2024-03-30 19:14:36,910 [DEBUG] ipc :: dispatch ['moveworkspacetomonitor special:scratch_volume eDP-1', 'movetoworkspacesilent 1,address:0x5d2dac2c4570', 'alterzorder top,address:0x5d2dac2c4570'] :: ipc.py:114
2024-03-30 19:14:36,912 [DEBUG] pyprland :: [30;1mevent_activewindowv2('5d2dabc4fb90',)[0m :: command.py:154
2024-03-30 19:14:36,913 [DEBUG] ipc :: dispatch resizewindowpixel exact 902 1203,address:0x5d2dac2c4570 :: ipc.py:114
2024-03-30 19:14:36,914 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-30 19:14:36,915 [DEBUG] ipc :: dispatch movewindowpixel exact 993 150,address:0x5d2dac2c4570 :: ipc.py:114
2024-03-30 19:14:36,915 [DEBUG] ipc :: dispatch focuswindow address:0x5d2dac2c4570 :: ipc.py:114
2024-03-30 19:14:36,916 [DEBUG] pyprland :: [30;1mevent_activewindowv2('5d2dac2c4570',)[0m :: command.py:154
2024-03-30 19:14:37,118 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('5d2dac2c4570',)[0m :: command.py:154
2024-03-30 19:14:37,118 [DEBUG] scratchpads :: [30;1mevent_openwindow('5d2dac2c4570,1,pavucontrol,Volume Control',)[0m :: command.py:154
2024-03-30 19:14:37,118 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('5d2dabc4fb90',)[0m :: command.py:154
2024-03-30 19:14:37,118 [DEBUG] scratchpads :: (SKIPPED) hide volume because another client is active :: scratchpads.py:637
2024-03-30 19:14:37,118 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('5d2dabc4fb90',)[0m :: command.py:154
2024-03-30 19:14:37,118 [DEBUG] scratchpads :: (SKIPPED) hide volume because another client is active :: scratchpads.py:637
2024-03-30 19:14:37,119 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('5d2dac2c4570',)[0m :: command.py:154
2024-03-30 19:14:39,149 [DEBUG] scratchpads :: [33;1mrun_toggle('volume',)[0m :: command.py:154
2024-03-30 19:14:39,149 [DEBUG] scratchpads :: volume is visible = True :: scratchpads.py:738
2024-03-30 19:14:39,151 [INFO] scratchpads :: Hiding volume :: scratchpads.py:916
2024-03-30 19:14:39,151 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-30 19:14:39,151 [DEBUG] ipc :: monitors :: ipc.py:75
2024-03-30 19:14:39,152 [DEBUG] ipc :: dispatch movewindowpixel 1263 0,address:0x5d2dac2c4570 :: ipc.py:114
2024-03-30 19:14:39,353 [DEBUG] ipc :: dispatch movetoworkspacesilent special:scratch_volume,address:0x5d2dac2c4570 :: ipc.py:114
2024-03-30 19:14:39,356 [DEBUG] pyprland :: [30;1mevent_activewindowv2('5d2dabc4fb90',)[0m :: command.py:154
2024-03-30 19:14:39,356 [DEBUG] ipc :: dispatch focuswindow address: :: ipc.py:114
2024-03-30 19:14:39,356 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('5d2dabc4fb90',)[0m :: command.py:154
2024-03-30 19:14:43,959 [DEBUG] pyprland :: [30;1mevent_activewindowv2('5d2dabc4fb90',)[0m :: command.py:154
2024-03-30 19:14:43,959 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('5d2dabc4fb90',)[0m :: command.py:154
2024-03-30 19:14:44,153 [CRITICAL] pypr :: cancelled :: command.py:323
OK, thank you, here the relevant part is:
dispatch resizewindowpixel exact 902 1203,address:0x5d2dac2c4570
dispatch movewindowpixel exact 993 150,address:0x5d2dac2c4570
I see the size seems correct according to your screen size
>>> 0.4*2256
902.4000000000001
>>> 0.8*1504
1203.2
So it's only about the position, "top" and "bottop" look correct regarding the "up/down" margin. Seems to be something only affecting the X coordinates computation.
Nothing obvious pops to me, I'll review the code checking for some mistakes regarding the position.
About that, if you use the "position" attribute, is it working as expected ? or is it also affected ?
Thanks @fdev31, seems "position" works as expected. Curiously enough, when I removed the "position" attribute after testing the scratchpad started working correctly with its default position. After a pypr exit
to restart the program in debug mode, I went ahead and grabbed the logs for when the scratchpad is behaving.
2024-03-31 12:48:19,304 [INFO] ipc :: Logger "ipc" initialized :: common.py:78
2024-03-31 12:48:19,304 [INFO] startup :: Logger "startup" initialized :: common.py:78
2024-03-31 12:48:19,304 [INFO] pypr :: Logger "pypr" initialized :: common.py:78
2024-03-31 12:48:19,305 [INFO] pypr :: Loading /home/violettica/.config/hypr/pyprland.toml :: command.py:66
2024-03-31 12:48:19,305 [INFO] pyprland :: Logger "pyprland" initialized :: common.py:78
2024-03-31 12:48:19,305 [DEBUG] ipc :: activeworkspace :: ipc.py:75
2024-03-31 12:48:19,307 [DEBUG] ipc :: monitors :: ipc.py:75
2024-03-31 12:48:19,309 [INFO] pyprland :: configured :: command.py:119
2024-03-31 12:48:19,319 [INFO] scratchpads :: Logger "scratchpads" initialized :: common.py:78
2024-03-31 12:48:19,319 [INFO] scratchpads :: configured :: command.py:119
2024-03-31 12:48:19,319 [DEBUG] pypr :: ================================[ initialized ]================================= :: command.py:317
2024-03-31 12:48:21,807 [DEBUG] scratchpads :: [33;1mrun_toggle('volume',)[0m :: command.py:154
2024-03-31 12:48:21,807 [DEBUG] scratchpads :: volume is visible = False :: scratchpads.py:738
2024-03-31 12:48:21,807 [INFO] scratchpads :: Showing volume :: scratchpads.py:789
2024-03-31 12:48:21,809 [DEBUG] ipc :: monitors :: ipc.py:75
2024-03-31 12:48:21,811 [DEBUG] ipc :: keyword ['windowrule float,^(pavucontrol)$', 'windowrule move 200% 150,^(pavucontrol)$', 'windowrule size 902 1203,^(pavucontrol)$'] :: ipc.py:114
2024-03-31 12:48:21,813 [INFO] scratchpads :: volume is not running, starting... :: scratchpads.py:559
2024-03-31 12:48:21,814 [INFO] scratchpads :: scratch volume (pavucontrol) has pid 21392 :: scratchpads.py:578
2024-03-31 12:48:21,814 [INFO] scratchpads :: starting volume :: scratchpads.py:532
2024-03-31 12:48:21,814 [INFO] scratchpads :: ==> Wait for volume spawning :: scratchpads.py:482
2024-03-31 12:48:21,916 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-31 12:48:22,046 [DEBUG] pyprland :: [30;1mevent_activewindowv2('578960bc9e80',)[0m :: command.py:154
2024-03-31 12:48:22,321 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-31 12:48:22,322 [INFO] scratchpads :: => volume client (proc:21392, addr:0x578960bc9e80) detected on time :: scratchpads.py:495
2024-03-31 12:48:22,322 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-31 12:48:22,323 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-31 12:48:22,324 [DEBUG] ipc :: dispatch movetoworkspacesilent special:scratch_volume,address:0x578960bc9e80 :: ipc.py:114
2024-03-31 12:48:22,326 [DEBUG] pyprland :: [30;1mevent_activewindowv2('578960be7830',)[0m :: command.py:154
2024-03-31 12:48:22,327 [DEBUG] ipc :: monitors :: ipc.py:75
2024-03-31 12:48:22,327 [DEBUG] ipc :: dispatch ['moveworkspacetomonitor special:scratch_volume eDP-1', 'movetoworkspacesilent 3,address:0x578960bc9e80', 'alterzorder top,address:0x578960bc9e80'] :: ipc.py:114
2024-03-31 12:48:22,328 [DEBUG] pyprland :: [30;1mevent_activewindowv2('578960be7830',)[0m :: command.py:154
2024-03-31 12:48:22,330 [DEBUG] ipc :: dispatch resizewindowpixel exact 902 1203,address:0x578960bc9e80 :: ipc.py:114
2024-03-31 12:48:22,331 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-31 12:48:22,334 [DEBUG] ipc :: dispatch movewindowpixel exact 1294 150,address:0x578960bc9e80 :: ipc.py:114
2024-03-31 12:48:22,335 [DEBUG] ipc :: dispatch focuswindow address:0x578960bc9e80 :: ipc.py:114
2024-03-31 12:48:22,336 [DEBUG] pyprland :: [30;1mevent_activewindowv2('578960bc9e80',)[0m :: command.py:154
2024-03-31 12:48:22,537 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('578960bc9e80',)[0m :: command.py:154
2024-03-31 12:48:22,537 [DEBUG] scratchpads :: [30;1mevent_openwindow('578960bc9e80,3,pavucontrol,Volume Control',)[0m :: command.py:154
2024-03-31 12:48:22,538 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('578960be7830',)[0m :: command.py:154
2024-03-31 12:48:22,538 [DEBUG] scratchpads :: (SKIPPED) hide volume because another client is active :: scratchpads.py:637
2024-03-31 12:48:22,538 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('578960be7830',)[0m :: command.py:154
2024-03-31 12:48:22,538 [DEBUG] scratchpads :: (SKIPPED) hide volume because another client is active :: scratchpads.py:637
2024-03-31 12:48:22,538 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('578960bc9e80',)[0m :: command.py:154
2024-03-31 12:48:23,677 [DEBUG] scratchpads :: [33;1mrun_toggle('volume',)[0m :: command.py:154
2024-03-31 12:48:23,677 [DEBUG] scratchpads :: volume is visible = True :: scratchpads.py:738
2024-03-31 12:48:23,678 [INFO] scratchpads :: Hiding volume :: scratchpads.py:916
2024-03-31 12:48:23,679 [DEBUG] ipc :: clients :: ipc.py:75
2024-03-31 12:48:23,686 [DEBUG] ipc :: monitors :: ipc.py:75
2024-03-31 12:48:23,692 [DEBUG] ipc :: dispatch movewindowpixel 962 0,address:0x578960bc9e80 :: ipc.py:114
2024-03-31 12:48:23,893 [DEBUG] ipc :: dispatch movetoworkspacesilent special:scratch_volume,address:0x578960bc9e80 :: ipc.py:114
2024-03-31 12:48:23,897 [DEBUG] pyprland :: [30;1mevent_activewindowv2('5789615193a0',)[0m :: command.py:154
2024-03-31 12:48:23,897 [DEBUG] ipc :: dispatch focuswindow address: :: ipc.py:114
2024-03-31 12:48:23,904 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('5789615193a0',)[0m :: command.py:154
2024-03-31 12:48:32,258 [DEBUG] pyprland :: [30;1mevent_activewindowv2('578960be7830',)[0m :: command.py:154
2024-03-31 12:48:32,258 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('578960be7830',)[0m :: command.py:154
2024-03-31 12:48:37,823 [DEBUG] pyprland :: [30;1mevent_activewindowv2('578960be7830',)[0m :: command.py:154
2024-03-31 12:48:37,823 [DEBUG] scratchpads :: [30;1mevent_activewindowv2('578960be7830',)[0m :: command.py:154
2024-03-31 12:48:37,919 [CRITICAL] pypr :: cancelled :: command.py:323
Going to go restart my system and see if it starts misbehaving again.
Edit: I have restarted my system and the scratchpad does not misbehave anymore. While I am grateful that the scratchpad works now, I'm also terribly confused as to why it was misbehaving in the first place.
Output of hyprctl version
is:
Hyprland, built from branch main at commit e1e41e54480282d9bec9957d3c578eb87bc1f2f2 dirty (reenderer: Add 1 border damage to fix number rounding issues (5343)).
Date: Sun Mar 31 15:59:22 2024
Tag: v0.37.1-93-ge1e41e54
flags: (if any)
If it doesn't happen again without complex operations (eg: reloading the config, restarting pypr
without ensuring everything has been closed, etc...) you may chose to close this bug.
In case you see some anomaly that can be explained keep it open to provide more details on the same ticket.
Note: I screwed up a bit the pypr version
command & associated git tags, it's still usable but doesn't display a nice version on releases... hope it doesn't confuse things.
Thank you.
Yeah, I'm not seeing anything new. I'll post an update here if I find anything new, but for now it seems the issue stopped as mysteriously as it started.
Pyprland version 2.0.9-1-g310b15f
Describe the bug Scratchpads spawn in unexpected positions, depending on the animation set. With
fromRight
andfromLeft
, scratchpad spawns in same spot. No animation set is centered properly.To Reproduce Steps to reproduce the behavior:
pyprland.toml
and bind a key to the volume scratchpadscratchpads.volume.animation
field.Expected behavior Window is centered and "hugs" the specified wall of the monitor for each animation set.
null
produces a perfectly centered window.Configuration (provide following files/samples when relevant):
[scratchpads.volume] animation = "fromRight" command = "pavucontrol" class = "pavucontrol" size = "40% 80%" unfocus = "hide" lazy = true
#
Please note not all available settings / options are set here.
For a full list, see the wiki
#
autogenerated = 1 # remove this line to remove the warning
See https://wiki.hyprland.org/Configuring/Monitors/
monitor= eDP-1, 2256x1504@59.99900, 0x0, 1.00
See https://wiki.hyprland.org/Configuring/Keywords/ for more
Execute your favorite apps at launch
exec-once = waybar & hyprpaper & firefox
Add networkmanager applet to tray in waybar
exec-once = nm-applet --indicator
Set keyboard layout
exec-once = .local/bin/garuda-locale.sh
Set monitor values. For own values, please comment with
exec-once = .local/bin/mon.sh
Source a file (multi-file configs)
source = ~/.config/hypr/myColors.conf
For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input { kb_layout = us kb_variant = kb_model = kb_options = compose:ralt kb_rules = numlock_by_default= true follow_mouse = 1
touchpad { natural_scroll = true tap-to-click = true disable_while_typing = true }
}
general {
See https://wiki.hyprland.org/Configuring/Variables/ for more
}
decoration {
See https://wiki.hyprland.org/Configuring/Variables/ for more
}
animations { enabled = true
}
dwindle {
See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
}
master {
See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
}
gestures {
See https://wiki.hyprland.org/Configuring/Variables/ for more
} misc { disable_hyprland_logo = true }
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
See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod SHIFT, R, exec, hyprctl reload bind = $mainMod, 36, exec, footclient bind = $mainMod, T, exec, footclient bind = $mainMod, Q, killactive, bind = $mainMod SHIFT, E, exec, nwgbar bind = $mainMod, N, exec, thunar bind = $mainMod SHIFT, 65, togglefloating, bind = $mainMod, D, exec, wofi --show drun --allow-images bind = $mainMod SHIFT, D, exec, nwg-drawer bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle
Mainmod + Function keys
bind = $mainMod, F1, exec, firedragon bind = $mainMod, F2, exec, claws-mail bind = $mainMod, F3, exec, thunar bind = $mainMod, F4, exec, geany bind = $mainMod, F5, exec, github-desktop bind = $mainMod, F6, exec, gparted bind = $mainMod, F7, exec, inkscape bind = $mainMod, F8, exec, blender bind = $mainMod, F9, exec, meld bind = $mainMod, F10, exec, joplin-desktop bind = $mainMod, F11, exec, snapper-tools bind = $mainMod, F12, exec, galculator
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 to workspace with focused container with ALT + SHIFT + [0-9]
bind = ALT SHIFT, 1, movetoworkspace, 1 bind = ALT SHIFT, 2, movetoworkspace, 2 bind = ALT SHIFT, 3, movetoworkspace, 3 bind = ALT SHIFT, 4, movetoworkspace, 4 bind = ALT SHIFT, 5, movetoworkspace, 5 bind = ALT SHIFT, 6, movetoworkspace, 6 bind = ALT SHIFT, 7, movetoworkspace, 7 bind = ALT SHIFT, 8, movetoworkspace, 8 bind = ALT SHIFT, 9, movetoworkspace, 9 bind = ALT SHIFT, 0, movetoworkspace, 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
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
background
exec-once = wpaperd
status bar
exec-once = waybar layerrule = blur , waybar layerrule = ignorezero , waybar
set volume (laptops only and may or may not work on PCs)
bind = ,122, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% bind = ,123, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% bind = ,121, exec, pactl set-sink-volume @DEFAULT_SINK@ 0%
other bindings
bind = $mainMod, O, exec, firedragon bind = $mainMod, F, fullscreen bind = $mainMod SHIFT, F, fakefullscreen bind = ,232,exec,brightnessctl -c backlight set 5%- bind = ,233,exec,brightnessctl -c backlight set +5% bind = $mainMod SHIFT,C, exec, killall -9 wpaperd && wpaperd
Screenshots:
https://github.com/hyprwm/contrib/blob/main/grimblast/grimblast.1.scd
Print: All outputs
SHIFT+Print: Select area
$mainMod+Print: Current window
$mainMod+Shfit+Print: Current output
bind = ,Print, exec, grimblast save screen && notify-send Screenshot captured bind = SHIFT, Print, exec, grimblast save area && notify-send Selected\ area captured bind = $mainMod, Print, exec, grimblast save active && notify-send Active\ window captured bind = $mainMod SHIFT, Print, exec, grimblast output active && notify-send Output captured
for resizing window
will switch to a submap called resize
bind=$mainMod,R,submap,resize
will start a submap called "resize"
submap=resize
sets repeatable binds for resizing the active window
binde=,right,resizeactive,10 0 binde=,left,resizeactive,-10 0 binde=,up,resizeactive,0 -10 binde=,down,resizeactive,0 10
use reset to go back to the global submap
bind=,escape,submap,reset
will reset the submap, meaning end the current one and return to the global one
submap=reset
to move window
bind = $mainMod SHIFT,up, movewindow, u bind = $mainMod SHIFT,down, movewindow, d bind = $mainMod SHIFT,left, movewindow, l bind = $mainMod SHIFT,right, movewindow, r
other blurings
blurls = wofi blurls = thunar blurls = gedit blurls = gtk-layer-shell # for nwg-drawer blurls = catfish
window rules
windowrule = opacity 0.85 override 0.85 override,^(thunar)$ windowrule = opacity 0.85 override 0.85 override,^(gedit)$ windowrule = opacity 0.85 override 0.85 override,^(catfish)$
window rules with evaluation
windowrulev2 = opacity 0.85 0.85,floating:1
exec-once = mako exec-once =/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = foot --server
experimental(might work might won't)
pre executions (under development)
exec-once=exec xrdb -load ~/.Xresources exec-once=copyq exec-once=wl-paste -t text --watch clipman store exec-once=wl-clipboard-history -t
video play paues bindings
bind=,172,exec,playerctl play-pause bind=,171,exec,playerctl next bind=,173,exec,playerctl previous
Use gtk-settings
exec-once = apply-gsettings
Let systemd have hyprland's instance sig
exec-once = dbus-update-activation-environment --systemd HYPRLAND_INSTANCE_SIGNATURE
Start screen shading.
exec = hyprshade auto
Pyprland time.
exec-once = pypr
bind = $mainMod,V,exec,pypr toggle volume