4 ms·
Huh, an idea would be physical buttons that a program listens to, and when you hit the key, the program sends a message to the OS to switch the keyboard layout
by netsharc 4mo ago
Huh, an idea would be physical buttons that a program listens to, and when you hit the key, the program sends a message to the OS to switch the keyboard layout to a particular one. So an Elgato Stream Deck or Razer Stream Controller.
So you'd have a button for each keyboard layout, and you'd just have to form the habit of smashing the key for e.g. Russian before typing a message in Russian.
For a more complicated solution, I suppose it'd be possible to detect which USB device sent a signal, and use this to detect which keyboard you're using. Maybe there'd need to be a workaround, like hitting Caps Lock on and off so the app has time to react and change the OS keyboard layout, before you type.
- notpushkin 4mo agoI’ve mapped Caps Lock to EN and Shift + Caps Lock to RU. Really stopped thinking about “what keyboard layout is on rn”, just subconsciously press Caps every time I start typing something in English. Pretty easy to replicate with Karabiner on macOS (and on Linux it’s supported out of the box). If you really want a dedicated keyboard though yeah, would be a bit harder but might be possible to do something with Karabiner as well. The device_if condition might work here: https://karabiner-elements.pqrs.org/docs/json/complex-modifications-manipulator-definition/conditions/device/ https://karabiner-elements.pqrs.org/docs/json/complex-modifi... Edit: this might work but I haven’t tried: { "manipulators": [ { "type": "basic", "from": { "any": "key_code", "modifiers": { "optional": ["any"] } }, "to": [ { "select_input_source": { "language": "^ja$" } }, { "from_event": true } ], "conditions": [ { "type": "device_if", "identifiers": [{ "vendor_id": 1111, "product_id": 2222 }] } ] } ] }
- netsharc 4mo agoI asked Google Gemini to write me an AutoHotkey script to do the Caps Lock / Shift Caps Lock for layout 1 or 2 respectively, it works well!