keyd

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Keyd and the translation is 100% complete.
Other languages:
This article is a stub. Please help out by expanding it - how to get started.
Resources

A keyd egy olyan szolgáltatás amelyet arra használnak, hogy a billentyűzet gombjainak elrendezését újra lehessen szervezni. Mind az Xorg, mind a Wayland támogatásával lehetővé teszi a felhasználó számára, hogy alkalmazásonként és globálisan is leképhesse a billentyűgombokat.

Telepítés

Emerge

A keyd jelenleg csak a GURU ebuild szoftvercsomag-tárolóban érhető el.

Ha az átfedés (overlay) nincs engedélyezve, akkor futtassa a következő parancsot:

root #eselect repository enable guru
root #emaint sync -r guru

Az átfedés (overlay) aktiválása után a keyd telepíthetővé válik:

root #emerge --ask app-misc/keyd

Használat

Van egy globális beállításfájl a /etc/keyd/default.conf elérési úton, amely meghatározza a "rétegeket". Ezek billentyűcsomagok, amelyek egymás után vagy a réteget aktiváló gombokkal egyidejűleg aktiválhatók.

Az alkalmazásonkénti használathoz külön beállítás található a ~/.config/keyd/app.conf elérési úton, amely alkalmazásonként határozza meg a rétegeket. Ezekben a rétegekben további billentyűket határozhat meg a globális beállításokhoz. A billentyű itt dupla formát is felvehet, például <layer>.<key>.

A globális beállítás a "keyd service" aktiválásával lép életbe.

A keyd a "keyd-application-mapper" szkripttel együtt kerül terjesztésre, amely az ablakos környezetben való használatra szolgál. A szkript használatához a felhasználónak engedélyre van szüksége a "keyd group" számára, amelyet a következő parancs segítségével lehet megadni:

root #usermod -aG keyd orbanviktor

Beállításesetek alkalmazásonkénti használathoz

Három billentyűgomb, mint például az Alt + Shift + v

Itt két előre meghatározott réteg van: Az alt és a shift. Létre kell hoznia egy globális kombinált réteget "[alt+shift]" néven, amelyet ezt követően rétegnévként használhat.

FILE .config/keyd/app.conf
alt+shift.v = C-end

Kettő művelet egy billentyűgombon

Ha több billentyűgombot kell lenyomni, akkor használhatja a "macro" műveletet, ahol több kifejezést szóközzel lehet elválasztani.

Ha valamilyen belső műveletre van szükség, például "clear()", akkor keresse a "clearm()" műveletet, amely a "clear()" hívása előtt végrehajtja a kifejezést.

Akkordok

Az "oneshot()" művelettel valósítható meg, például a "Ctrl+x billentyűgomb kombinációja":

control.x = oneshot(<gloval layer with some key>)

Másik réteg törlése

Kizárólag a "clearm()" működik a jelenlegi stabil verzióban, amely minden réteget megszakít.

Biztonsági aggályok

Amikor egy felhasználó hozzáférést kap a keyd csoporthoz, és ezáltal a /run/keyd.socket fájlhoz, amely lehetővé teszi a rendszerszintű billentyűküldést, ez egy biztonsági rést hoz létre, amelyet a felhasználói környezetben található rosszindulatú programok kihasználhatnak. Ez potenciálisan magasabb szintű root hozzáférést eredményezhet. Ez a sérülékenység minden uinput-alapú alkalmazást érint, amelyek lehetővé teszik tetszőleges billentyűk küldését a felhasználói térből.

Wayland biztonság

Ha a szkriptet root felhasználóként futtatjuk a Wayland környezeti változókkal, akkor ez a sérülékenység megszüntethető.

user $sudo --preserve-env=WAYLAND_DISPLAY,XDG_RUNTIME_DIR /usr/bin/keyd-application-mapper

Ehhez a parancshoz adjon sudo jogosultságot a jelenlegi felhasználó számára:

CODE Basic /etc/sudoers syntax
orbanviktor ALL=(root) SETENV:NOPASSWD:/usr/bin/keyd-application-mapper

Másolja a felhasználói beállítást a rendszergazda root könyvtárába:

root #mkdir -p /root/.config/keyd
root #cp /home/orbanviktor/.config/keyd/app.conf /root/.config/keyd/app.conf

Vonja vissza az jogosultságokat a felhasználó "keyd" csoportból történő eltávolítás segítségével.

root #gpasswd -d orbanviktor keyd

Példa az Emacs billentyűgombok beállítására a Firefox számára

FILE .config/keyd/app.confFirefox számára
[firefox-esr|*]
# Firefox
alt.x = C-l
alt.a = C-pageup
alt.e = C-pagedown
control.s = C-f
# - Firefox built-in:
# control.[ - back
# control.] - forward
# F3 - search forward
# shift.F3 - search backward
 
# - enter, escape
control.g = clearm(escape)
control.m = enter
# - begin, end of string
control.a = home
control.e = end
# - edit
control.h = backspace
control.d = delete
control.l = left
control.f = right
control.n = down
control.k = up
alt.l = C-left
alt.f = C-right
control.slash = C-z
# - scroll
alt.v = pageup
control.v = pagedown
alt.z = up
control.z = down
# - copy, paste
control.w = clearm(C-x)
alt.w = clearm(C-c)
control.y = clearm(C-v)
alt.c = C-v
# - selection mode - remember: C+h and C+d don't work with
control.space = toggle(shift)
control.c = clearm(C-c)
 
# - select all
control.x = oneshot(control_x)
FILE /etc/keyd/default.confGlobálisan
[ids]
*
 
# - Firefox copy text
[control+alt]
w = C-w
 
[alt+shift]
dot = C-end
comma = C-home
 
[control_x]
h = C-a

További olvasnivaló a témában