Velvet v3 – UI Edition
Содержание
Velvet v3 – Ultimate Interface Edition - клавиатура, уменьшающая необходимость перемещения кисти до минимума за счет изогнутого расположения клавиш и наличия трекбола под большим пальцем. Благодаря изогнутости клавиатуры перемещение пальцев между рядами клавиш происходит заметно проще, а функциональный трекбол, всегда доступный под большим пальцем, практически полностью убирает необходимость перемещения руки к мышке.
Трекбол
У трекбола Velvet UI есть одна интересная особенность - он умеет определять, когда пользователь дотрагивается до шара. В раскладке по умолчанию при кратковременном нажатии на трекбол сработает клик левой кнопки мыши, а при удержании пальца на трекболе активируется специальный слой с клавишами мыши.
На слое мыши находятся остальные клавиши для работы с курсором: правая кнопка мыши (MB2), клик колесом мыши (MB3), для удобства на слое продублирован клик левой кнопки мыши (MB1), а также переключение на режимы скролла (&mo 5) и снайпера (&mo 6). В режиме скролла при кручении трекбола вместо перемещения курсора происходит скроллинг страницы, как по вертикали, так и по горизонтали.
Снайперский режим уменьшает скорость перемещения курсора, позволяя более точно его наводить.
Действие при прикосновении к трекболу
Действие при прикосновении к трекболу можно довольно гибко настраивать, ведь на него можно назначить любое поведение.
По умолчанию на него назначено кастомное поведение &cap_sen
, при кратковременном прикосновении к трекболу производящее клик левой кнопкой мыши, и при удержании пальца активируется слой мыши. Посмотреть подробности поведения или изменить его можно на вкладке Behaviors.
Отключение клика мыши
Чтобы отключить клик левой кнопкой мыши при кратковременном тапе достаточно назначить вместо &cap_sen
поведение &mo 4
. Таким образом слой мыши будет активироваться при прикосновении к трекболу, независимо от длительности прикосновения.
Переназначение поведения при прикосновении к трекболу также доступно и в ZMK Studio.
Добавление задержки перед выключением слоя мыши
С назначенным поведением &mo 4
при каждом переставлении пальца с одного края трекбола на другой происходит деактивация слоя мыши, и если переставлять палец часто, например при интенсивном управлении курсором, то есть ненулевой шанс нажать клавишу, именно в промежуток, когда слой мыши деактивировался. Хотел нажать левую кнопку мыши, а получилась клавиша F… Уменьшить шанс возникновения такой ситуации можно с помощью макросов, ведь в них можно назначить временную паузу между действиями.
Макрос со скриншота, когда пользователь уберет палец с трекбола, подождет небольшую задержку перед отключением слоя мыши, это может помочь уменьшить количество ошибочных нажатий.
С появлением задержки перед выключением слоя могут также появится и случайные нажатия кнопок мыши, ведь перед отключением слоя теперь есть небольшая пауза. Время задержки можно уменьшить в настройках макроса, изменив значение параметров Wait (ms) (по умолчанию 15 мс) и Tap (ms) (по умолчанию 30 мс).
Переключение режимов
Режимы скролл и снайпер активируются на заданных в конфигурации слоях, по умолчанию 5 и 6 соответственно, и если вы хотите использовать эти слои с какой-то другой целью, то можно перенести активацию этих режимов на любой другой слой. О том, как изменить номера слоев для режимов, рассказано в Настройки режима скролла и Настройки снайперского режима.
В раскладке по умолчанию режимы переключаются с помощью поведения &mo
, но переключать режимы можно и любым другим поведением, активирующим слои. Если не хочется удерживать кнопку режим скролла нажатой, то для включения режима можно использовать поведение &tog 5
, тогда при однократном нажатии включится 5 слой вместе с режимом скролла, а при повторном нажатии 5 слой и режим скролла деактивируются.
Также можно сделать и гибридное кастомное поведение, которое при удержании будет включать слой поведением &mo
, а при кратковременном нажатии переключать его поведением &tog
.
Конфигурирование трекбола
Все режимы трекбола можно настроить в файле config/velvet_v3_ui.keymap
, это быстро и удобно можно сделать в интерфейсе GitHub, нажав кнопку Edit this file.
Открываем файл в вашем форке и скроллим в самый низ, ищем строки:
&trackball { cpi = <1000>; };
&trackball_listener {
input-processors = <&zip_xy_scaler 9 20>;
scroller {
layers = <5>;
input-processors =
<&zip_xy_transform INPUT_TRANSFORM_Y_INVERT>,
<&zip_xy_scaler 1 32>,
<&zip_xy_to_scroll_mapper>;
};
sniper {
layers = <6>;
input-processors = <&zip_xy_scaler 1 4>;
};
};
Рассмотрим все доступные настройки.
Чувствительность курсора в обычном режиме
Изменить чувствительность курсора в обычном режиме можно в строке &trackball { cpi = <1000>; };
, значение cpi
задается с шагом в 200, и должно быть не больше 3200.
Дополнительно к параметру cpi
также применяется множитель <&zip_xy_scaler 9 20>
, означающий что итоговая чувствительность будет равна девяти двадцатых от изначального значения cpi
. Это значение также можно изменять.
&trackball_listener {
input-processors = <&zip_xy_scaler 9 20>;
Подробнее о доступных input-processors
можно почитать в документации ZMK: https://zmk.dev/docs/keymaps/input-processors
Настройки режима скролла
Для режима скролла доступны следующие настройки:
scroller {
layers = <5>;
input-processors =
<&zip_xy_transform INPUT_TRANSFORM_Y_INVERT>,
<&zip_xy_scaler 1 32>,
<&zip_xy_to_scroll_mapper>;
};
layers = <5>;
- слои, на которых будет активен режим скролла. После изменения номера слоя надо также поменять и поведение, переключающее на слой с режимом скролла.
<&zip_xy_transform INPUT_TRANSFORM_Y_INVERT>
- инвертирование скроллинга, можно инвертировать как по оси Y, так и по оси X (<&zip_xy_transform INPUT_TRANSFORM_X_INVERT>
), или даже инвертировать обе оси, перечислив параметры через запятую: <&zip_xy_transform INPUT_TRANSFORM_Y_INVERT>, <&zip_xy_transform INPUT_TRANSFORM_Х_INVERT>,
.
<&zip_xy_scaler 1 32>
- скорость прокрутки задается в виде отношения, по умолчанию скорость равна одной тридцать второй. Можно как замедлить прокрутку, изменив значение, например на <&zip_xy_scaler 1 64>
, так и ускорить прокрутку <&zip_xy_scaler 2 32>
.
Настройки снайперского режима
Для снайперского режима доступны следующие настройки:
sniper {
layers = <6>;
input-processors = <&zip_xy_scaler 1 4>;
};
layers = <6>;
- слои, на которых будет активен снайперский режим. После изменения номера слоя надо также поменять и поведение, переключающее на слой с снайперским режимом.
<&zip_xy_scaler 1 4>
- множитель скорости для режима снайпера. По умолчанию в режиме снайпера скорость трекбола уменьшается до одной четвертой.