Velvet v3 – UI Edition

Содержание

Velvet v3 UI

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

Управление курсором

image

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

image

На слое мыши находятся клавиши для работы с курсором: левая кнопка мыши (MB1), правая кнопка мыши (MB2), клик колесом мыши (MB3), а также переключение на режимы скролла (&mo 5) и снайпера (&mo 6).
Слой мыши активируется при перемещении курсора трекболом, и если в течение 500 милисекунд трекбол находится в неподвижном состоянии, то слой автоматически выключится.

В режиме скролла при кручении трекбола вместо перемещения курсора происходит скроллинг страницы, как по вертикали, так и по горизонтали.


Снайперский режим уменьшает скорость перемещения курсора, позволяя более точно его наводить.


Переключение режимов

Режимы скролл и снайпер активируются на заданных в конфигурации слоях, по умолчанию 5 и 6 соответственно, и если вы хотите использовать эти слои с какой-то другой целью, то можно перенести активацию этих режимов на любой другой слой. О том, как изменить номера слоев для режимов, рассказано в Настройки режима скролла и Настройки снайперского режима.

В раскладке по умолчанию режимы переключаются с помощью поведения &mo, но переключать режимы можно и любым другим поведением, активирующим слои. Если не хочется удерживать кнопку режим скролла нажатой, то для включения режима можно использовать поведение &tog 5, тогда при однократном нажатии включится 5 слой вместе с режимом скролла, а при повторном нажатии 5 слой и режим скролла деактивируются.

Также можно сделать и гибридное кастомное поведение, которое при удержании будет включать слой поведением &mo, а при кратковременном нажатии переключать его поведением &tog.

image

Конфигурирование трекбола

Все режимы трекбола, включая автоматическое переключение на слой мыши, можно настроить в файле config/velvet_v3_ui.keymap, это быстро и удобно можно сделать в веб-интерфейсе GitHub, нажав кнопку Edit this file.

image

Открываем файл в вашем форке и скроллим в самый низ, ищем строки:

&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> - множитель скорости для режима снайпера. По умолчанию в режиме снайпера скорость трекбола уменьшается до одной четвертой.