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!:
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
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
- Screenkey – hivatalos honlap
- Screenkey – GitLab repó (fő fejlesztés, dokumentáció, README)
- Screenkey Arch Linux csomag
- Screenkey Debian csomagkövető
- Screenkey elérhető csomagolt verziói (Repology)
- slop – ablak-/terület-kijelölő eszköz (GitHub)
- key-mon (Python-alapú kiegészítő eszköz)
- kmcaster (Java-alapú kiegészítő eszköz, GitHub)
-
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ő. ↩
-
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. ↩
-
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. ↩
-
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. ↩
-
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. ↩
-
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. ↩
-
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. ↩
-
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. ↩
-
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á. ↩
