Есть ли простой способ отключить группу клавиш в сложных модификациях Карабинер-Элементы?
Рассмотрим пример:
При следующем условии
"set_variable": {
"name": "con-1",
"value": 1
}
Я хочу отключить все алфавиты/цифры/символы (или, по крайней мере, большинство из них), кроме a
и b
.
Просто для справки, на этой странице обсуждается, как отключить отдельные клавиши. Применение этого подхода ко многим ключам неэффективно.
Я ценю ваше понимание заранее.
РЕДАКТИРОВАТЬ: я только что добавил две скобки "[ ]" в финальную часть "to":[{ -part, так как их нехватка стала настолько [ошибкой]!
================================================== ========================
Итак, вот «окончательная версия» (некоторые примечания к/из первой попытки добавлены внизу):
... некоторый пример кода, который исключает любой набор текста, кроме букв "a" и "b".
Этот пример работает только в TextEdit (в целях тестирования), но, конечно, вы можете изменить/удалить эти «условия» (в последнем манипуляторе).
– Подготовлено «Исключение», Shft-Ctrl-A
которое устанавливает "none_but_ab"
значение true (1).
– Следующий на очереди Стоп-манипулятор (в первую очередь безопасность); он устанавливается "none_but_ab"
в «0» после удержания «x» 2 сек.
– Обе следующие части выводят наши буквы «а» и «б», исключая их из последующего уничтожения .
– Последний фатальный манипулятор захватывает «любой: key_code» и преобразует его в «none»…
– Будьте осторожны со своим Стоп-механизмом: лучше всего работают одиночные клавиши, модифицированные комбинации могут не сработать!
- Еще несколько идей:
добавив «команда» («сдвиг») к последнему «от», вы можете предотвратить использование ярлыков приложений Cmd (заглавные буквы).
Карабин Эл. может запускаться до входа в систему (Настройки > «Копировать текущую…»); «пароль» будет затронут!
Я также хотел бы знать, как «Shift» можно применить к «любому»: «key_code», заставляя заглавные буквы, или можно ли как-то «выбрать» числа. Что ж, посмотрим…
{ "description": "============= vk_none but a,b ============= ",
"manipulators": [
{
"from": { "key_code": "a",
"modifiers": {
"mandatory": ["left_shift", "left_control"]
} },
"to": [
{ "set_variable": {
"name": "none_but_ab",
"value": 1 } }
],
"type": "basic"
},
{
"from": { "key_code": "x" },
"parameters": { "basic.to_if_held_down_threshold_milliseconds": 2000 },
"to_if_held_down": [
{ "key_code": "x" },
{ "set_variable": {
"name": "none_but_ab",
"value": 0 } }
],
"type": "basic"
},
{ "from": { "key_code": "a" },
"to": [ { "key_code": "a" } ],
"type": "basic" },
{ "from": { "key_code": "b" },
"to": [ { "key_code": "b" } ],
"type": "basic" },
{
"conditions": [
{ "name": "none_but_ab",
"type": "variable_if",
"value": 1 },
{ "bundle_identifiers": [
"^com.apple.TextEdit" ],
"type": "frontmost_application_if"
}
],
"from": { "any": "key_code",
"modifiers": {
"optional": ["any"] }
},
"to": [ { "key_code": "vk_none" } ],
"type": "basic"
}
]
}
(Вот некоторые остатки первого (удаленного) ответа:
note the twisted "any: key_code" part that calls every key, including "modifiers…any"
Interestingly 'from-to' units within
{manipulators: …} Karabiner.json are worked through from top to bottom
, пока один из них не станет исполняемым .
So if you want particular letters (a, b) to work nonetheless, you must call them previously.
Starting value for any variable is "0"
… значения будут «жить», пока карабин работает!
… while experimenting I made my monitor sleep, but when I typed my pw – one letter simply was not recognised. I had to start from an external drive and change my code.
)
Клемсам Ланг
Т_Т
to
должен быть массив: {"условия":[{"имя":"none_but_ab","тип":"variable_if","value":1} ,{"bundle_identifiers":["^com.apple.TextEdit"],"type":"frontmost_application_if"}],"from":{"любой":"key_code","modifiers":{"необязательно":[ "любой"]}},"to":{"key_code":"vk_none"},"type":"основной"}'. Я что-то пропустил?Клемсам Ланг
Т_Т
Nullify_keys.json
здесь , если вам интересно.Клемсам Ланг