-
Notifications
You must be signed in to change notification settings - Fork 55
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
use layoutmsg dispatcher #130
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, and sorry for the late response. I will approve as soon as I get confirmation everything works 😛.
SwapWithMaster(param) => format!("layoutmsg swapwithmaster{sep}{param}"), | ||
FocusMaster(param) => format!("layoutmsg focusmaster{sep}{param}"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just want to ask if you could make sure this works with the binding code found in config.rs:
Line 133 in a8ca325
dispatcher = gen_dispatch_str(binding.dispatcher, false)? |
Since it adds a
sep
(,
). Which when using regular IPC isn't added. This is weird, but it saves a lot of boilerplate.Lines 468 to 470 in a8ca325
pub(crate) fn gen_dispatch_str(cmd: DispatchType, dispatch: bool) -> crate::Result<CommandContent> { | |
use DispatchType::*; | |
let sep = if dispatch { " " } else { "," }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've tried the following with different all the available params:
Dispatch::call(DispatchType::SwapWithMaster(
hyprland::dispatch::SwapWithMasterParam::Child
)).unwrap();
and
Dispatch::call(DispatchType::FocusMaster(
hyprland::dispatch::FocusMasterParam::Master
)).unwrap();
Both seem to work fine, though I haven't figured difference between child
, master
and auto
while running my tests from a terminal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, but I mean creating a keybind with hyprland-rs, as it uses the same dispatcher code, just replaces the formatting because IPC and binds have a different format.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm sorry, I've tried to test it with bindings but was not able to get even the binding from the example working:
hyprland::bind!(SUPER, Key, "t" => ToggleFloating, None).unwrap();
It returns Ok(())
but there is nothing new in hyprctl binds
or an actual behavior.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm sorry, I've tried to test it with bindings but was not able to get even the binding from the example working:
hyprland::bind!(SUPER, Key, "t" => ToggleFloating, None).unwrap();It returns
Ok(())
but there is nothing new inhyprctl binds
or an actual behavior.
I'm sorry if this is too much to ask, but could you maybe add a println to check the command it's generating, and trying it with hyprctl since I'm not on hyprland at the moment. I really only want to merge this, if the binding works, as binding layout commands is pretty essential imo.
With Hyperland v0.30.0 and this lib at v0.3.12 orientation dispatchers for master layout are failing with the following error:
While other dispatchers work just fine. I've tested with
Exec
.The issue seems to be that layout specific discpathers have
layoutmsg
part. Dwindle | Master.Futhermore, some general dispatcher are dublicated in layout specific ones.
cyclenext
is awaylable withlayoutmsg
and without.ps. there are some layout specific dispatchers that are currently missing and they are not part of this PR as of now. I want to figure out if I'm on a right track to fix existing ones.