iMagazine

Konfigurowanie Tap Dance w QMK

15/05/2019, 09:35 · · · 6

Wczoraj opisałem trochę podstaw QMK, służącego do konfigurowania programowalnych klawiatur mechanicznych. Przy okazji zwróciłem uwagę na fakt, że mam problem z funkcją Tap Dance. Dzisiaj udało mi się ją uruchomić…

Funkcja Tap Dance polega na tym, że klawisz zachowuje się inaczej, zależnie od tego, czy naciśniemy go raz, czy dwukrotnie, trochę na wzór podwójnego klika myszką. To oznacza, że jeden klawisz może pełnić więcej niż jedną funkcję. Sam zdecydowałem się, na razie, na dodanie dwóch funkcji do swojej klawiatury:

  1. Uruchomienie Mission Control – ta funkcja schowana jest pod klawiszem F3, ale jako że nie mam tego klawisza na swojej Doro67, to muszę wciskać Fn + 3. To jest niewygodne, jeśli jedną rękę mam na myszce. Postanowiłem więc, że dodam tę funkcję pod klawisz Home.
  2. Uruchomienie funkcji Show Desktop, która jest częścią Mission Control – jej wywołanie wymaga skrótu ⌘F3, czyli + Fn + 3 u mnie. Schowałem ją pod klawiszem PgUP, zaraz pod Home.

Aby uruchomić poprawnie Tap Dance, należy:

  1. Upewnić się, że macie folder ze swoim layoutem w odpowiednim miejscu. W moim przypadku to qmk_firmware/keyboards/doro67/regular/keymaps/moridin.
  2. W powyższym folderze należy utworzyć pusty plik rules.mk i dopisać do niego jedną linijkę: TAP_DANCE_ENABLE = yes. Oczywiście trzeba go zapisać.
  3. Następnie musimy otworzyć plik config.h z folderu /qmk_firmware/keyboards/doro67/regular/keymaps/moridin do edycji. Pod #pragma once należy dodać jedną linijkę, definiującą maksymalny czas trwania podwójnego kliknięcia: #define TAPPING_TERM 200. Ta wartość jest określona w ms.
  4. Na deser otwieramy plik keymap.c z mapą naszej klawiatury.

Należy dodać sekcję //Tap Dance Declarations, w której określamy nazwy naszych klawiszy. W moim przypadku są to TD_MC (od Mission Control) i TD_SD (od Show Desktop). Poniżej trzeba dodać //Tap Dance Definitions. W moim przypadku do TD_MC przypisałem klawisz KC_HOME (klawisz wywoływany po jednym naciśnięciu klawisza Home) oraz KC_F3 (klawisz wywoływany po podwójnym naciśnięciu). Analogicznie postąpiłem z TD_SD, ale tutaj wykorzystałem KC_PGUP oraz LGUI(KC_F3). LGUI to w tym wypadku klawisz . Na koniec pozostaje dodanie TD(TD_MC) i TD(TD_SD) w odpowiednim miejscu na mapie klawiszy.

Teraz pozostało jedynie skompilowanie firmware’u i wgrania go do klawiatury.

Wszystko działa dokładnie tak, jak chciałem i teraz kwestią pozostanie jedynie umiejscowienie tych dodatkowych funkcji w odpowiednim miejscu na klawiaturze. Jak wspominałem, umieściłem je pod klawiszami HomePgUp, ale nie wykluczam przeniesienia ich w inne miejsce.

6

Wojtek Pietrusiewicz

Wydawca, fotograf, podróżnik, podcaster – niekoniecznie w tej kolejności. Lubię espresso, mechaniczne zegarki i zwinne samochody. Niedawno rozpocząłem prowadzenie kursów Lightrooma i fotografii na Pikselowe.pl – zapraszam.


6
Dodaj komentarz

avatar
2 Comment threads
4 Thread replies
3 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Wojtek PietrusiewiczWojtek PietrusiewiczBartłomiejWojtek Recent comment authors
  Subscribe  
najnowszy najstarszy oceniany
Powiadom o
Wojtek
Gość
Wojtek

„Na koniec pozostaje dodanie TD(TD_MC) i TD(TD_SD) w odpowiednim miejscu na mapie klawiszy.” Czy mógłbyś zrobić też zrzut ekranu?
Pozdrawiam

Wojtek Pietrusiewicz
Gość
Wojtek Pietrusiewicz

Czego konkretnie? Masz wszystko w keymap.c powyżej…

Wojtek
Gość
Wojtek

Chodziło mi o to czy wystarczy dodać do pliku keymap.c poniższe wpisy: „Należy dodać sekcję //Tap Dance Declarations, w której określamy nazwy naszych klawiszy. W moim przypadku są to TD_MC (od Mission Control) i TD_SD (od Show Desktop). Poniżej trzeba dodać //Tap Dance Definitions.” czy trzeba coś jeszcze potem dodać?

Bartłomiej
Gość
Bartłomiej

Zamiast ręcznie kopiować pliki do własnego schematu, można skorzystać z helpera znajdującego się w repo z QMK :)

./util/new_keymap.sh 1upkeyboards/1up60hse john

Wojtek Pietrusiewicz
Gość
Wojtek Pietrusiewicz

Oczywiście, co jest w dokumentacji. Chyba nigdzie nie pisałem o ręcznym kopiowaniu. Helper nie tworzy rules.mk.