Billentyűleütések megjelenítése képernyőfelvételen: a Screenkey

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

Ha valaki oktatóvideót, terminálos bemutatót vagy konfigurációs útmutatót készít, gyakran felmerül az igény, hogy a néző lássa is, milyen billentyűket nyom le a képernyőn látott műveletekhez. Enélkül sok parancssoros vagy billentyűkombinációkra épülő lépés (pl. egy ablakkezelő1 gyorsbillentyűi) nehezen követhető vissza pusztán a képernyő tartalmából. Az utólagos feliratozás elég macerás megoldás és hamar elmegy a kedve az embernek ettől.

Erre a célra a Screenkey a legelterjedtebb Linuxos megoldás: egy kis overlay2 ablakban, valós időben kiírja a lenyomott billentyűket és billentyűkombinációkat. Mivel közvetlenül az X113 alrendszerre épül, és nem igényel semmilyen speciális integrációt az ablakkezelővel, alapból működik csempéző ablakkezelők4 – így a dwm – alatt is.

Ez a cikk végigvezet a telepítésen, a legfontosabb beállításokon, a felvétel közbeni használaton, és azon, mire kell figyelni dwm alatt.

Van videó is!:

https://youtu.be/2R-WVDfucsw

Telepítés

Csomagkezelőből

A legtöbb disztribúción elérhető hivatalos vagy közösségi csomagként:

# Arch / Arch alapú (pl. Manjaro)
sudo pacman -S screenkey

# Debian / Ubuntu / Linux Mint
sudo apt install screenkey

# Fedora / EPEL
sudo dnf install screenkey

# Gentoo
sudo emerge -av x11-misc/screenkey

Ha a fenti disztribúciók egyike sem passzol, a Repology oldalon lekövethető, mely egyéb csomagolt verziók léteznek.

Forrásból

Aki inkább a forráskódból dolgozna, a repó gyökeréből telepítés nélkül is futtatható:

./screenkey

Rendszerbe telepítéshez:

sudo ./setup.py install

Forrásból fordításhoz/futtatáshoz szükséges függőségek Debian/Ubuntu alapon:

sudo apt-get install python3-gi gir1.2-gtk-3.0
sudo apt-get install python3-gi-cairo python3-cairo
sudo apt-get install python3-setuptools python3-babel
sudo apt-get install python3-dbus fonts-font-awesome slop

GNOME alatt még kell hozzá:

sudo apt-get install gir1.2-ayatanaappindicator3-0.1

A program Python 3-ra, PyGObject/GTK 3-ra, Cairo-ra, D-Bus-ra és a slop5 eszközre épül, a multimédiás billentyűk ikonos megjelenítéséhez pedig a FontAwesome betűkészletet használja.

Alapvető használat

Indítás után a Screenkey a rendszertálcában6 jelenik meg egy ikonnal. Innen jobb kattintással érhetők el a beállítások és a kilépés lehetősége is.

Alapértelmezés szerint a program a képernyő felső, középső vagy alsó részén jelenik meg (ez állítható), és csak akkor válik láthatóvá, amikor ténylegesen gépelünk – utána egy beállítható idő elteltével eltűnik.

Beállítási lehetőségek

A beállítóablak (rendszertálca-ikon → Settings, vagy screenkey --show-settings paranccsal is elérhető, ha nincs tálca) az alábbi főbb opciókat kínálja:

  • Display time – mennyi ideig maradjon látható a szöveg gépelés után (alapértelmezetten 2,5 másodperc).
  • Persistent window – az ablak folyamatosan látható legyen, gépeléstől függetlenül.
  • Screen / Position – melyik monitoron és a képernyő melyik részén (fent/középen/lent, vagy rögzített pozícióban) jelenjen meg.
  • Font / Size – a megjelenítéshez használt betűtípus és méret.
  • Keyboard mode – a billentyűesemények értelmezési módja: Composed (csak a végeredményt mutatja összetett bevitelnél), Translated (billentyűzetkiosztás és módosítók szerinti végeredmény), Raw (a ténylegesen lenyomott billentyűsapka), Keysyms (a szerver által küldött szimbolikus nevek, inkább hibakereséshez).
  • Backspace mode – hogyan hasson a Backspace a már kiírt szövegre (Normal, Baked, Full).
  • Modifiers mode – a módosítóbillentyűk megjelenési formája: hagyományos PC-stílus (Ctrl+A), Mac-szimbólumok, vagy Emacs-stílusú rövid jelölés (C-A).
  • Show Modifier sequences only – csak a módosítóval kombinált billentyűk jelenjenek meg, önálló betűk ne.
  • Always show Shift – a Shift módosító mindig kiíródjon, még ha a nagybetű ezt egyébként egyértelművé is tenné.
  • Compress repeats – az ismétlődő billentyűsorozatok összevonása egy számlálóval. Pld. aaa 6x, azaz hat a betű.
  • Show mouse – az egérgombok megjelenítése a szöveg mellett.
  • Hide duration – az elhalványulási animáció hossza egy gomb felengedése után.

    Billentyűleütések megjelenítése képernyőfelvételen  a Screenkey

    Billentyűleütések megjelenítése képernyőfelvételen a Screenkey

     

    Használat videófelvétel közben

Ki- és bekapcsolás felvétel közben. Ha a felvétel alatt el kell rejteni a kijelzést (például jelszó beírásakor), mindkét Ctrl, mindkét Shift vagy mindkét Alt billentyű egyidejű lenyomásával lehet ki-, majd ugyanezzel visszakapcsolni. Ez teljesen néma váltás: a nézőnek semmi jele nem lesz róla, hogy a kijelzés ki volt kapcsolva.

Egy adott ablakra korlátozás. A Select window/region gombbal kiválasztható, hogy a kijelzés melyik alkalmazásablak fölött jelenjen meg – ehhez a slop eszköznek telepítve kell lennie. Ilyenkor a top/center/bottom pozíció a kiválasztott ablakhoz, nem a teljes képernyőhöz igazodik.

Parancssori pozicionálás. A -g kapcsolóval X11-es geometria7 formátumban is megadható a hely, akár a slop kimenetével kombinálva:

./screenkey -g $(slop -n -f '%g')

Rögzített (fixed) pozicionáláshoz:

./screenkey -p fixed -g $(slop -n -f '%g')

Az értékek százalékban is megadhatók a képernyő méretéhez viszonyítva, például egy vízszintesen középre igazított, a szélesség 90%-át kitöltő, alulról 10%-ra lévő sávhoz:

./screenkey -p fixed -g 90%x10%+5%-10%

Betűtípus-választás. Alapértelmezett a "Sans Bold" (a legtöbb rendszeren ez a DejaVu Sans). Kódolás bemutatásához inkább a "DejaVu Sans Mono Bold" ajánlott, mert jobban megkülönbözteti a hasonló karaktereket (pl. 0 és O, I és l).

Multimédiás billentyűk. A hangerő-, fényerő- és lejátszásgombok szimbólumként való megjelenítéséhez a FontAwesome betűkészlet szükséges (fonts-font-awesome Debian/Ubuntu alatt, ttf-font-awesome Arch alatt).

Screenkey és a dwm

A Screenkey a leírása szerint alapból, külön beállítás nélkül működik bármelyik csempéző ablakkezelővel – a program korábbi, régebbi verziója még igényelt hozzá plusz konfigurációt az ablakkezelő oldalán, de ez már nem szükséges.

Amire dwm alatt érdemes figyelni:

  • Nincs rendszertálca alapból. Ha nincs telepítve és futtatva külön tálca (pl. trayer vagy stalonetray), a beállítások GUI-ja nem lesz elérhető kattintással. Ilyenkor a program parancssori kapcsolókkal állítható be, vagy a screenkey --show-settings paranccsal interaktívan tesztelhetők a beállítások anélkül, hogy tálca kellene hozzá.
  • Áttetszőséghez kompozitor kell. Ha átlátszó hátteret szeretnél a kijelzés mögé, futnia kell egy kompozitornak8 (pl. picom, xcompmgr).
  • Leállítás. Tálcáról jobb klikk → Quit; ha nincs tálca, pkill -f screenkey a terminálból, vagy ha közvetlenül terminálból indítottad, egyszerű Ctrl+C.

Rövid hibaelhárítás

  • A program nem indul el, vagy hibásan jeleníti meg a billentyűket. Ennek leggyakoribb oka az input method9 beállításainak inkonzisztenciája. Érdemes terminálban ellenőrizni:

    echo XMODIFIERS=$XMODIFIERS
    echo GTK_IM_MODULE=$GTK_IM_MODULE
    echo QT_IM_MODULE=$QT_IM_MODULE

    Ha nincs használatban input method (pl. ibus vagy fcitx), ezeknek üresnek kell lenniük; ha valamelyik fut, mindhárom változónak ugyanarra az input methodra kell mutatnia.

  • Nincs kijelzés a GNOME Terminálban. Ez natív Wayland-alkalmazás, a Screenkey viszont csak X11-es programok bevitelét tudja elkapni. Megoldás: X11-es terminálemulátor használata (pl. xterm, urxvt, mlterm).

Kapcsolódó eszközök

Ha sok egérműveletet is be kell mutatni, vagy folyamatosan látszania kell a módosítóbillentyűk állapotának, a Screenkey mellé (vagy helyette) érdemes megnézni a key-mon vagy az újabb, Java-alapú kmcaster eszközt – mindkettő tud kattintás-kiemelést és folyamatos módosító-kijelzést is.

Szómagyarázat

Hasznos linkek

  1. Ablakkezelő (window manager): az a program, amely az ablakok elhelyezését, méretezését és a köztük való váltást kezeli az asztali környezetben; a dwm egy minimalista, csempéző (tiling) ablakkezelő. ↩

  2. Overlay: a képernyő tartalma fölé rétegzett, más ablakoktól függetlenül megjelenő grafikus elem – itt a billentyűket kiíró kis felirat. ↩

  3. X11 (X Window System): a hagyományos Linuxos grafikus alrendszer, amelyen a legtöbb asztali környezet és ablakkezelő – köztük a dwm – alapul; ezzel szemben áll a Wayland, amely más módon kezeli a bemeneti eseményeket, és amelyet a Screenkey jelenleg nem támogat. ↩

  4. Csempéző (tiling) ablakkezelő: olyan ablakkezelő, amely az ablakokat automatikusan, egymás mellé illesztve, átfedés nélkül rendezi el a képernyőn – ilyen a dwm is. ↩

  5. slop: parancssori segédprogram, amellyel egérrel interaktívan lehet kijelölni egy képernyőterületet vagy ablakot, majd a kijelölés koordinátáit szövegként visszakapni. ↩

  6. Rendszertálca (systray): az a kis ikonsáv (jellemzően a panel sarkában), ahol a háttérben futó alkalmazások ikonjai és gyorsmenüi jelennek meg. ↩

  7. X11 geometria formátum: a SzélességxMagasság+X+Y alakú jelölés, amellyel egy ablak vagy terület méretét és pozícióját lehet megadni; a Screenkey ezt egészíti ki százalékos értékek lehetőségével. ↩

  8. Kompozitor (compositor): olyan háttérprogram, amely az ablakok tartalmát külön rétegekben kezeli, és ez teszi lehetővé például az átlátszóságot vagy az árnyékokat X11 alatt. ↩

  9. Input method (beviteli módszer): az a mechanizmus, amely a billentyűleütéseket tényleges karakterekké alakítja; egyszerű, latin billentyűzeteknél ez közvetlen megfeleltetés, összetettebb íráshoz (pl. kelet-ázsiai nyelvek) viszont külön szolgáltatás (pl. ibus, fcitx) szükséges hozzá. ↩