In short order, I was trying to add universal shortcuts like there is in Omacarhy, except it's bound to ctrl and not meta/super, as well as sticky keys. With the 1st one I'd end up with a loop occurring with what I was using for input simulation, that being dotool, as there was no way to blacklist devices from triggering the keybinds. So I added a few features in my fork.
the features are mostly in the keybinds for now, as I needed it for some of my scripts mostly. All of it being in this line for keybinds under rc.xml's keyboard section
<keybind key="" layoutDependent="" onRelease="" allowWhenLocked="" toggleable="yes" enabled="no" id="sticky_8" device...
In short order, I was trying to add universal shortcuts like there is in Omacarhy, except it's bound to ctrl and not meta/super, as well as sticky keys. With the 1st one I'd end up with a loop occurring with what I was using for input simulation, that being dotool, as there was no way to blacklist devices from triggering the keybinds. So I added a few features in my fork.
the features are mostly in the keybinds for now, as I needed it for some of my scripts mostly. All of it being in this line for keybinds under rc.xml's keyboard section
<keybind key="" layoutDependent="" onRelease="" allowWhenLocked="" toggleable="yes" enabled="no" id="sticky_8" deviceBlacklist="device A,device B" conditionCommand="echo $STICKY_KEYS" conditionValues="true">
- layoutDependent, onRelease, and allowWhenLocked are from mainline
- toggleable, id, and enabled all culminate for a command toggled keybind via
--[enable|disable|toggle]-keybind <id>sent to the labwc executable - deviceBlacklist prevents some devices from triggering the keybind. I also added a device whitelist, but I haven't pushed it yet to the remote repo
- I also added conditionCommand and conditionValues that can make it only trigger if a command output's a certain value, it's in the repo already but the documentation on it is somewhat incomplete but enough to infer how to use it.
for anyone wondering on the ordering of the logic, it checks: device whitelist (not in repo yet) -> device blacklists -> command toggle -> command conditional.
A few other things I added were a script that fires when you reconfigure labwc, named 'reconfigure' in the config. Lets me reload my waybar themes and wallpaper a lot easier. I don't think a lot of compositors can execute commands on reload, maybe hyprland but that's all I know of... There's also a global blacklist but it was a side effect of testing features, not something I personally need, but someone might need it... <blacklistDevice name=""> under the keyboard section.
repo is here: https://github.com/FyreX-opensource-design/labwc you'll need to compile it yourself and move the labwc and labnag executables somewhere to use it. I plan on getting this onto the AUR but I cannot for the life of me figure out the public and private keys I need to upload it... so even if I got the PKGBUILD working (which I didn't) I couldn't get it on there...