3. 34 klawisze w jako podstawowe narzędzie programisty

Dziś zajmiemy się uzupełnieniem o część programową poprzedniego postu opisującego budowę klawiatury z klubu 30% – Ferris Sweep. Postaram się dziś opisać drugą część klawiatury, tą niewizualną, mianowicie układ klawiatury w omawianym uprzednio Ferris Sweep wyposażony w 34 klawisze. Przedstawię tu swoją propozycję układu, która wypracowałem poprzez stosowanie tej klawiatury w codziennej pracy programisty.

Wstęp

Układem klawiatury nazywamy przypisanie konkretnych funkcjonalności do danych fizycznych klawiszy. Oznacza to tyle, iż programuje się daną klawiaturę, aby przesyłała konkretny sygnał do urządzenia przy wciskaniu konkretnych klawiszy.

Zatem układem QWERTY nazywamy taki układ, w którym każdemu klawiszowi na klawiaturze przyporządkowujemy określaną akcję. Można to zaprezentować w postaci odzwierciedlenia, rzeczywistego ułożenia klawiszy wraz z oznaczeniem, jakie funkcjonalności powinien on reprezentować.

W artykule Czy mniej znaczy więcej: Ferris Sweep w akcji opisałem podstawowe funkcjonalności oprogramowania dedykowanego klawiaturom mechanicznym, mianowicie QMK. Są to:

  • Warstwy (ang. layers)
  • Kliknij/Przytrzymaj (ang. Tap/Press)
  • Modyfikatory na standardowych klawiszach (ang. Home Row Mods)
  • Programowalność

Jeżeli powyższe nazwy są dla Ciebie obce, zapraszam do lektury poprzedniego artykułu.

34 klawisze w jako podstawowe narzędzie programisty

Odnalezienie pełnego układu, zajęło mi chwile — obecnie pracuję na 14 iteracji mojego układu. Natomiast sam proces odkrywania tego sprawił, iż znacząco poprawiłem swoją produktywność oraz poznałem swój sposób używania klawiatury. Poniżej przedstawiam swój układ, wraz z krótkim opisem.

Domyślne 34 klawisze – Warstwa 0 (Layer 0)

Domyślna warstwa klawiatury wyporażonej w 34 klawisze

Moja domyślna warstwa to nic innego jak Colemak-DH okrojony do 34 klawiszy, gdzie dolny rząd klawiszy odgrywa rolę opisanych już Home Row Mods. Colemak-DH umieszcza na środkowym wierszu (ang. Home Row) najczęściej występujące z punktu widzenia statystyki klawisze, zatem zdecydowałem się przenieść swoje modyfikatory na dolny wiersz, co bardzo mi odpowiada.

Każdy z kciuków obsługuje dwa klawisze, rozpoczynając od lewego:

  • Klik: Esc / Przytrzymanie: Shift
  • Klik: Backspace / Przytrzymanie: Warstwa 3

Prawy kciuk obsługuje:

  • Klik: Spacja / Przytrzymanie: Warstwa 1
  • Klik: Enter / Przytrzymanie: Warstwa 3

Dzięki takiemu przypisaniu klawiszy mogę pisać nie odrywając nadgarstków. Palce operują na sekcji liter. Kciuki odpowiedzialne są za klawisze najczęściej używane jak spacja, backspace, enter.

Warstwa 1 – 34 klawisze liczb i znaków specjalnych (Layer 1)

Do warstwy 1 przechodzę, przytrzymując, prawym kciukiem, klawisz Spacji z domyślnej warstwy. Co przenosi mnie do warstwy odpowiedzialnej za cyfry i znaki specjalne. Gdy chcę, napisać 1 wystarczy, iż nacisnę kombinację Spacja + A, wydaje się skomplikowane, jednak jestem w stanie to wykonać bez wykonywania jakiegokolwiek przemieszczania palców. Aby wpisać kolejne cyfry, wystarczy, trzymać klawisz Spacji cały czas podczas pisania liter.

Zatem wpisanie 1+1 odpowiada klawiszom: Spacja+ACA, czy to proste?

Najlepiej przekonać się samemu zatem: Sprawdź to sam. I napisz na swojej klawiaturze 1+1, a następnie przytrzymaj klawisz Spacja i napisz ACA (małymi literami), które Twoim zdaniem jest wygodniejsze?

Warstwa 2 – Warstwa FN (Layer 2)

Warstwa 2 w moim przypadku w moim przypadku odpowiada za klawisze F1 – F12, których potrzebuje używając IntelliJ. Dla przykładu klawiszowi F12 odpowiada u mnie sekwencja Enter+M.

Dzięki temu nie muszę odrywać rąk od swojej klawiatury, spróbuj nacisnąć F12 na swojej klawiaturze bez odrywania rąk, wygodne?

Sytuacja się robi ciekawa, gdy musisz wcisnąć np: Alt+Shift+F12 – w moim przypadku na standardowej klawiaturze po prostu rozjeżdżają mi się ręce.

Na moim Ferris Sweep wystarczy, iż przytrzymam Enter+Z+C+M. Na pierwszy rzut oka może wydawać się, iż jest to o jeden klawisz więcej. Nie mniej jednak tutaj klawisze są naciskane niejako domyślnie.

Nie przenośmy palców na klawisze, lecz klawisze pod nasze palce.

Warstwa 3 – 34 klawisze z nawiasami oraz nawigacją i (Layer 3)

Warstwa 3. Aktywowana z wyjściowej pozycji lewego kciuka — Backspace. Chyba najczęściej używana przez mnie warstwa po domyślnej. Lewa ręka obsługuje wszelkiego rodzaju nawiasy oraz Tab. Prawa natomiast zmienia środkowy wiersz klawiszy, gdzie naturalnie spoczywają palce mojej prawej dłoni, w strzałki.

Gdy chcę wcisnąć strzałkę w dół. Zamiast odrywać rękę, szukać sekcji odwróconego T ze strzałkami, wcisnąć klawisz i powrócić do pozycji wyjściowej, wystarczy nacisnąć Backspace+N.

TAK, jest to o jeden klawisz więcej, jednak sprawdź co Twoim zdaniem jest wygodniejsze i szybsze. Odrywanie ręki szukanie klawiszy, czy wciśnięcie każdą z dłoni, jednego.

Warstwa 4 – 34 klawisze multimedialne oraz obsługa myszy (Layer 4)

Ostatnia z warstw to klawisze multimedialne plus sterowanie kursorem myszki. Tak, QMK pozwala na sterowanie kursorem myszki przy pomocy klawiatury. Do warstwy 4 dostaję się poprzez jednoczesne naciśnięcie lewym kciukiem Backspace i prawym Spacji. Następnie palce lewej dłoni obsługują takie funkcje jak: sterowanie głośnością, wyciszenie, stop, start muzyki czy przeskakiwanie pomiędzy piosenkami. Prawa dłoń steruje ruchami myszki, jak i bardziej zaawansowanymi jej funkcjami.

Podsumowanie

Ferris Sweep niewątpliwie należy do tych klawiatur, których efektywne używanie wymaga pewnego przestawienia, choćby ze względu na swoje tylko 34 klawisze. Idealnie odnajduje się tu powtarzana już maksyma o przemieszczaniu klawiszy pod palce, nie palców pod klawisze.

34 klawisze, taka ilość zmusza do efektywnego wykorzystywania warstw i klawiszy podwójnego przeznaczenia. Nie miej jednak chyba nie muszę przekonywać nikogo związanego ściśle z programowaniem, jak i pisaniem, że najefektywniejsze są skróty klawiaturowe. To właśnie dzięki nim możemy osiągać poszczególne funkcje bez odrywania rąk od klawiatury. Weźmy choćby klasyczną akcję jak kopiowanie. Zamiast kursora myszy, prawo-kliku możemy użyć CMD+C. Szybciej? Dla mnie tak! Ferris Sweep przenosi idee skrótów klawiaturowych na nowy poziom. Próg wejścia? Oczywiście jest, jednak powyższy układ stosuję w swoich dwóch podstawowych klawiaturach (Domowej: Dactyl Manuform oraz Mobilnej: Ferris Sweep) i muszę przyznać, że pewne kombinacje klawiszy są dla mnie już intuicyjne i nawet nie muszę się zastanawiać jakie klawisze nacisnąć.

Strasznie intryguje mnie, czy Ty lubisz eksperymentować u układem klawiatury w celu poprawy efektywności? Podziel, proszę się swoimi doświadczeniami.

Pozdrawiam.

Bartosz

6 comments

    od dawna podobal mi sie ferris. Planowalem zbudowac sobie orginalnego ferrisa, ale nie moglem nigdzie dostac pewnych czesci.
    Ostatecznie tez zamowilem ferrisa sweep i poki czekam na czesci chcialem sobie potestowac rozne layouty na mojej obecnej klawiaturze – lily58.
    Problem polega na tym, ze korzystam z tiling window managera, ktory mocno bazuje na klawiszu GUI. Za kazdym razem jak robie rolling (naciskam nastepny klawisz zanim puszcze poprzedni) na klawiszach z funkcja “gui jak trzymam, ‘z’ jak naciskam”, to koncze na jakiejs kombinacji. Ze zmiana warstw tego problemu nie mam – trzeba przytrzymac przez te kilkaset milisekund. Musze ten problem rozwiazac w sofcie zanim przyjdzie mi klawiatura do zlozenia.
    Jedna z moich ulubionych modyfikacji, jaka zrobilem to ta, ze backspace ma pojedyncza funkcje, ale wcisniety razem z shiftem daje delete (key override feature w qmk).

      Cześć,
      Dziękuje za komentarz. W sprawie home row mods jest fajny artykuł: https://precondition.github.io/home-row-mods, z niego dowiedziałem się że jest kilka dodatkowych funkcji wartych rozważenia. Jak: IGNORE_MOD_TAP_INTERRUPT, TAPPING_TERM, TAPPING_FORCE_HOLD jak i Permissive Hold, oraz sam czas w którym definiuje się czy to już klik czy przytrzymanie. Możliwe, że jakaś kombinacja tych zmiennych pozwoli Ci rozwiązać Twój problem. Sam używam TWM, a raczej nakładki która pozwala mi zarządzać oknami z klawiatury i problemów większych nie doświadczyłem.
      Ciekawi mnie jakiego TWM używasz?
      Osobiście również używam Tailing Window

    Dzieki za odpowiedz. Na szczescie juz sobie poradzilem z tym problemem, wlasnie przy uzyciu tych parametrow. Spodziewam sie, ze w ciagu tygodnia dostane swojego ferrisa i uda mi sie go zlozyc jak najszybciej.
    Wczesniej korzystalem z i3-wm, ale jakis czas temu przesiadlem sie na awesomewm.
    Teraz jedynym problemem, ktorego sie obawiam ze swoim ferrisem to przelaczanie pomiedzy workspace’ami. Teraz bede potrzebowal przynajmniej 3 klawiszy – GUI + zmiana layera + numer. Kombinowalem jeszcze z warstwa, na ktorej mialem klawisze zdefiniowane jako LGUI(1) itd, czyli 1 z wcisnietym GUI, ale to troche komplikowalo obsluge – zeby zmienic workspace na inny i otworzyc na nim terminal musialem wciskac zmiane warstwy, numer workspace, potem osobno GUI + zmiana warstwy (enter mam na innej) + enter – za duzo kombinacji. Na zwyklej klawiaturze to GUI + numer + enter.
    Predzej czy pozniej znajde jakies sensowne rozwiazanie – chyba pozmieniam kilka skrotow i zrobie dedykowana wartswe do obslugi wszystkich operacji na oknach.

      Podzielisz się zdjęciem gotowego Ferrisa?

    Cześć, udostępnisz może plik qmk do tej klawiatury?

      Cześć,
      Nie ma problemu, wyślę Ci go na maila wraz z opisem. Potrzebujesz QWERTY, czy Colemak Mod-DH?

Dodaj komentarz