Closed MatejKafka closed 9 months ago
Any news on this? I would need it to rewire space to shift only on external keyboard
@MatejKafka Sorry for the late reply, I'm not currently doing computer stuff in my free time (great weather outside).
Today, the only way to limit capsicain remapping to a single keyboard is https://github.com/cajhin/capsicain/wiki/Keyword%3A-OPTION#option-processonlyfirstkeyboard
It's not perfect, you have to remember to touch the "relevant" board first, every time you start up or change layers.
Making this configurable via .ini file would be quite easy
//ignore secondary keyboard?
. These identifiers are really ugly, I think there is no guarantee that two boards have different identifiers; it is only safe for different classes of boards (like: internal / USB / Bluetooth).
Not sure if the full 50-digit ID of an external board does not change on reboot.
To see the current hardware ID, press ESC+S (Status).
Ideally, I'd want this to be flexible so that you could define n active boards for each layer.
Maybe offer an inverted option, too (do every board except this ID)
That's all off the top of my head, I might have forgotten something.
If there's anything else you'd need from this feature, reply to this thread.
From a user perspective, you'd look up the hardware ID. Copy the hardware ID (careful because an active selection in console windows blocks the process). Put the ID into your .ini, with a future layer option named (exclusiveDeviceId?).
@arthurmoeller why would you rewire space to shift on a second board? Just curious, I never imagined sth like that.
Thank you for the reply. I will think about it and look into the code.
I will describe my usecase: https://ibb.co/3pndmwd
Better explanation why I want shift as a thumb key here (rabbithole alarm): https://colemakmods.github.io/ergonomic-mods/modifiers.html
there is a new capsicain.exe in the x64 folder, which should implement this feature request. See https://github.com/cajhin/capsicain/wiki/Keyword%3A-OPTION/_edit#option-includedeviceid-searchstring for details
If you try it out, then please let me know how it works for you.
Sorry that I wasnt more helpful with this. I looked at the Code briefly but never coded in C++ only php and js.
Its working exactly as described in the example. Thank you for the effort.
IncludeDeviceID:ven_hpq REWIRE Y Z
_[CONFIG_1] OPTION configName = Example-Config_1 rewire caps lctrl IncludeDeviceID:ven_hpq rewire lshf space IncludeDeviceID:venhpq rewire space lshf rewire ret bsp
Done. You can now restrict mappings to specific keyboards, see wiki OPTION IncludeDeviceID {searchString}
I'd like to use an extra keyboard as a "macro pad", by remapping some keys to the F13-F24 range, while still using another keyboard as a normal keyboard, with separate keymap.
As far as I understand, Interception supports this, but this feature is not exposed by Capsicain. Would it be possible to add it?
Something similar was already discussed in issue #3, but the solution there works around the problem instead of solving it. I'm willing to get my hands dirty and make a PR for this, but it will probably require quite substantial changes to the codebase, so I'd need to discuss it with you first and get some pointers. :)