Open Dimentium opened 2 months ago
This is a great idea. I personally switch between two profiles a lot and can see the benefit of being able to only use a single key binding on the base layer rather than having to have two key bindings to swap between profiles.
I would recommend to add a new command, e.g. &bt BT_ALT
(short for alternate), instead of using &bt BT_SEL 255
for this.
You could also extend the code to ensure the previous profile is persisted along side the active profile, so that swapping also works directly after startup.
Hi @caksoylar, Is there anything I need to do with this MR?
I am not making the merge decision for this, but I don't see this being useful without the alias BT_ALT
like @huber-th suggested. Then it also needs to be documented.
@Dimentium I really love the idea of this feature, especially since I switch between two profiles frequently.
Since you mentioned that you're not a developer, I'd be happy to implement the improvements I suggested above as well as document the feature. We can then review the changes together.
What do you think?
BT_LAST_DEV
.I implemented this feature over the weekend for myself, including persisting both profiles to ensure alternating works immediately after startup. You can find the code here. Feel free to copy code as you see fit @Dimentium or I can also create a new PR.
For completeness, the goal of only needing a single key binding to switch between BT profiles can also be achieved using tap-dance.
behaviors {
td_bt: tap_dance_bluetooth {
compatible = "zmk,behavior-tap-dance";
#binding-cells = <0>;
tapping-term-ms = <500>;
bindings = <&bt BT_SEL X>, <&bt BT_SEL Y>;
};
};
related to #767
I'm not a developer, so this implementation is quite basic, but it works perfectly for me.
This update introduces the ability to switch back to the previously active bluetooth profile by passing index 255 to the profile selection function. This feature facilitates quick toggling between two frequently used Bluetooth devices.