Velvet v3 – UI Edition
Содержание

Velvet v3 – Ultimate Interface Edition - клавиатура, уменьшающая необходимость перемещения кисти до минимума за счет изогнутого расположения клавиш и наличия трекбола под большим пальцем. Благодаря изогнутости клавиатуры перемещение пальцев между рядами клавиш происходит заметно проще, а функциональный трекбол, всегда доступный под большим пальцем, практически полностью убирает необходимость перемещения руки к мышке.
Управление курсором

Главная особенность Velvet UI - встроенный трекбол, находящийся под большим пальцем, при поворотах трекбола перемещается курсор мыши и временно активируется специальный слой с клавишами мыши.

На слое мыши находятся клавиши для работы с курсором: левая кнопка мыши (MB1), правая кнопка мыши (MB2), клик колесом мыши (MB3), а также переключение на режимы скролла (&mo 5) и снайпера (&mo 6).
Слой мыши активируется при перемещении курсора трекболом, и если в течение 500 милисекунд трекбол находится в неподвижном состоянии, то слой автоматически выключится.
В режиме скролла при кручении трекбола вместо перемещения курсора происходит скроллинг страницы, как по вертикали, так и по горизонтали.
Снайперский режим уменьшает скорость перемещения курсора, позволяя более точно его наводить.
Переключение режимов
Режимы скролл и снайпер активируются на заданных в конфигурации слоях, по умолчанию 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_auto_mouse 4 500>, <&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_auto_mouse 4 500>, <&zip_xy_scaler 9 20>;
Подробнее о доступных input-processors можно почитать в документации ZMK: https://zmk.dev/docs/keymaps/input-processors
Настройка переключения на слой мыши
Фрагмент <&zip_auto_mouse 4 500> отвечает за автоматическую активацию слоя мыши, рассмотрим доступные настройки:
- 4 - номер автоматически активируемого слоя, если вы измените раскладку слой мыши окажется с другим порядковым номером, то просто измените это значение;
- 500 - время, на которое активируется слой мыши.
Если вы хотите выключить автоматическую активацию слоя мыши, то просто удалите фрагмент
<&zip_auto_mouse 4 500>,
Чтобы избежать случайных активаций слоя мыши при печати, в течение 800 милисекунд после нажатия клавиш слой мыши активироваться не будет, это время также можно настроить в фрагменте, находящемся выше в файле config/velvet_v3_ui.keymap.
zip_auto_mouse: zip_auto_mouse {
compatible = "zmk,input-processor-temp-layer";
#input-processor-cells = <2>;
require-prior-idle-ms = <800>;
excluded-positions = <>;
};
Если хотите увеличить или уменьшить этот порог, отредактируйте значение require-prior-idle-ms.
Подробнее о настройках автоматической активации слоя мыши можно почитать в документации ZMK
Настройки режима скролла
Для режима скролла доступны следующие настройки:
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_X_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> - множитель скорости для режима снайпера. По умолчанию в режиме снайпера скорость трекбола уменьшается до одной четвертой.