thrombe / hyprkool

Hyprland plugin to replicate the feel of kde activities and desktop grid layout
MIT License
47 stars 3 forks source link

Binds not working #6

Closed HayyanAzzam closed 4 months ago

HayyanAzzam commented 4 months ago

Hey again, I hope this is not a stupid one like last one, but when i set the commands to binds they simply don't work, when executing them from the terminal emulator they do, just not when they are set to key binds, here are the config:

# Workspaces & "Move to"

bind = $mainMod SHIFT, h, exec, hyprkool move-left -w -c  
bind = $mainMod SHIFT, L, exec, hyprkool move-right -w -c  
bind = $mainMod SHIFT, K, exec, hyprkool move-up -w -c  
bind = $mainMod SHIFT, J, exec, hyprkool move-down -w -c  
bind = $mainMod CTRL, H, exec, hyprkool move-left -c  
bind = $mainMod CTRL, L, exec, hyprkool move-right -c  
bind = $mainMod CTRL, K, exec, hyprkool move-up -c  
bind = $mainMod CTRL, J, exec, hyprkool move-down -c  

And after the last update I'm getting the error "[hyprkool] could not send all bytes across sockets" when executing the commands on the terminal, but again, when set to binds, they simply do nothing.

One other issue I found is that when naming the activities as numbers: activities = ["1", "2", "3", "4", "5", "6", "7", "8", "9"] the command hyprkool daemon -mdoes not move you to a hyprkool activity

thrombe commented 4 months ago

okay. let's see what could be wrong here.

I hope this is not a stupid one like last one

no worries about that :)

after the last update I'm getting the error "[hyprkool] could not send all bytes across sockets"

did you update the hyprkool cli/daemon too? you also need to restart the daemon after you update it. simply run hyprkool daemon and it should stop the earlier one. (hyprkool should somehow notify users about this updating ig)

One other issue I found is that when naming the activities as numbers: activities = ["1", "2", "3", "4", "5", "6", "7", "8", "9"] the command hyprkool daemon -m does not move you to a hyprkool activity

i'll try to debug this in a while.

but when i set the commands to binds they simply don't work

set to binds, they simply do nothing.

huh. i am kinda lost here. try the updating thing (if you didn't) and let me know if it still happens.

thrombe commented 4 months ago

set to binds, they simply do nothing.

okay i believed i have reproduced this. it's pretty funny. so hyprkool move-left -w only works when you have a window focused. and when you use keybinds for this particular command when not focusing a window - it does not do anything. so when you tried to do it using the cli - it worked because a window was focused (the terminal).

can you confirm this?

edit: i'll consider this one as 'works as intended' following the behavior of hyprland's movetoworkspace dispatcher (which is what hyprkool indirectly uses) commit 64d582e won't be merged

HayyanAzzam commented 4 months ago

wait I'm a bit confused now, i reinstalled the cli/daemon, and updated the plugin, but i still have the same issue, here is a vid of it https://drive.google.com/file/d/1RrU0SFOkVwJRcaCYiTLmkvTqsKh7Te5v/view?usp=sharing

btw thanks for giving this project your time, hyprland needed this for a while now

thrombe commented 4 months ago

thanks for giving this project your time, hyprland needed this for a while now

thanks :). i am just happy someone other than me is enjoying hyprkool.

here is a vid of it

huh. that is weird indeed.

can you show me what output is printed by the hyprkool daemon -m command when you press the keybinds?

for me, it prints a bunch of hyprland-rs errors (which is fine) and Ok for each time i press a keybind.

Ok
A unknown event was passed into Hyprland-rs
            PLEASE MAKE AN ISSUE!!
            The event was: workspacev2
....
thrombe commented 4 months ago

if you can enable logging in hyprland itself and get the logs when you press keybinds, it would also be helpful

they look something like this for me.

[LOG] Keybind triggered, calling dispatcher (8, , 107)
[LOG] Executing "hyprkool" move-up -c
[LOG] Process Created with pid 668196
[LOG] Hyprctl: dispatcher workspace : name:issac:(1 1)
[LOG] Destroying workspace ID -1392
Ok
thrombe commented 4 months ago

one thing that comes to mind is that hyprland does something like sh -c <command> source

and depending on how you installed hyprkool, sh might not be able to find hyprkool.

you can try running this in terminal to test that

sh -c "hyprkool"
HayyanAzzam commented 4 months ago

How to enable logging in hyprland ?, do i have to run in debug mode ?

other than that, here : https://drive.google.com/file/d/1k2PjlFyiN3h2K4tZ5KZK7PD53Ge5tYRW/view?usp=sharing

im clicking the binds during the vid, nothing shows from the daemon

thrombe commented 4 months ago

do i have to run in debug mode ?

no :)

set this in hyprland conf

debug {
    disable_logs = false
}

and then get logs from /tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/hyprland.log

thrombe commented 4 months ago

since hyprkool daemon -m does not show anything in the vid when you press keybinds, we know for sure the command is just not getting executed for some reason.

hopefully hyprland logs give us some nice info

HayyanAzzam commented 4 months ago

i hope this is the one, i turned on logging and smashed the binds hyprland.log

thrombe commented 4 months ago

there is no useful information in the logs T-T.

if you have more time to spend on this (i have lots), you can try some of the following and see if there are any interesting results. try setting command to something like.

bind = SUPER, p, exec, hyprkool -h &>> ~/kool.log

bind = SUPER, p, exec, hyprkool move-up -w -c &>> ~/kool.log

bind = SUPER, p, exec, echo "$PATH" &>> ~/kool.log

bind = SUPER, p, exec, echo "$(which hyprkool)" &>> ~/kool.log

which will append the output of the commands to a file ~/kool.log and try to get some more information that way. let me know if you try it and these logs have any useful info.

i will be surprised if this is a hyprkool specific issue at this point. if hyprctl commands still work with the keybinds, hyprkool should work too, as they both use the IPC interface to talk to hyprland.

HayyanAzzam commented 4 months ago

what is your time zone and discord username ?

https://github.com/thrombe/hyprkool/assets/71053124/98519e46-3259-4f07-b54e-e541f682882a

kool.log

HayyanAzzam commented 4 months ago

ok, so looks like there was an issue with hyprland reload, so i tried updating to the latest git version, but hyprkool broke, so i rolled back to the one we were testing in, so if u can try and update the plugin to be compatible with with the latest version, it might fix it

thrombe commented 4 months ago

okay, so it's just that your hyprkool binary is not in $PATH

did you install it using cargo install? cargo stores the installed binaries in ~/.cargo/bin/ and adds the same to your $PATH in ~/.zshrc or ~/.zshenv and for whatever reason, that is not picked up by sh when it is run by hyprland.

so you should be able to do something like this in hyprland.conf. run which hyprkool in your terminal, and copy the absolute path.

$hyprkool = "/absolute/path/to/hyprkool"

bind = $mainMod, h, exec, $hyprkool move-left -c
thrombe commented 4 months ago

but hyprkool broke

can you elaborate on that? are you talking about the command not found thing? i also use the latest git version on my main machine, and everything seems to work fine.

i'd also recommend you to use the master branch directly. all the unstable development happens in the dev branch anyway. any changes or bug fixes that i feel are stable / important are pushed to master branch.

HayyanAzzam commented 4 months ago

I have the line export PATH="$PATH:/home/Hayyan/.cargo/bin" in my .zshrc file, so idk.

but using the absolute path to hyprkool worked, finally, man this plugin is a live changer, thank you for your time, i genuinely appreciate it, give me a sec to test things out and i will close the issue

HayyanAzzam commented 4 months ago

ok, lovely peice of software, i have noticed 2 other bugs, i have my plugin config in a sourced file, not directly in hyprland.conf, and for it to load the file has to get touched, otherwise it will not load, the other thing is cycling through activities is slightly fucked, when reaching the last activity it thinks im still in it after going to another activity and it will refuse to move around after that, but adding -c fixes this issue.

again, thx for this plugin, i hope more ppl find out abt it

thrombe commented 4 months ago

i have my plugin config in a sourced file, not directly in hyprland.conf, and for it to load the file has to get touched

as a plugin hyprkool has no control over this part. all of this is handled by hyprland.

the other thing is cycling through activities is slightly fucked

wow. it was actually completely fked. thanks for that. fixed in 3fd4445