Portal/IDB/icon-wiki-portal.png

Portale sulle tastiere del Wiki Debian. Questo portale tratta tutti gli aspetti della configurazione delle tastiere in Debian.

Vedere anche "Input da tastiera" nella guida Debian Reference.

Configurazione di base della tastiera (kernel e X)

Per configurare la tastiera per il kernel Linux e per X è necessario installare keyboard-configuration. È necessario anche il pacchetto console-setup.

Le impostazioni della tastiera sono memorizzate nel file /etc/default/keyboard fornito dal pacchetto keyboard-configuration. Altri pacchetti lo usano per configurare sia il kernel Linux sia il sistema X Window per creare un'esperienza con la tastiera coerente nella console Linux e nel sistema X Window.

La disposizione di tastiera può essere modificata dalla riga di comando:

# dpkg-reconfigure keyboard-configuration
# service keyboard-setup restart
  1. Viene presentato il menu per Modello di tastiera (ciò che *è* la tastiera). Se non si è sicuri, scegliere:

    • "Generica 104 tasti PC" per una tastiera di tipo US con "tasto Windows"
    • "Generica 105 tasti PC" per una tastiera tipo ISO con "tasto Windows" (e tastiera tipo JIS con "tasto Windows")
    • "Generica 104 tasti PC" o "Generica 105 tasti PC" può essere scelta come detto sopra per tastiere più piccole su PC portatili.
  2. Viene presentato il menu per Lingua della tastiera. Se non si è sicuri, scegliere:

    • "Inglese (US)" per tastiere "QWERTY"
    • "Tedesca" per tastiere "QWERTZ"
    • "Francese" per tastiere "AZERTY"
    • "Giapponese" per tastiere "QWERTY" con tasti aggiuntivi pensati per il giapponese.
  3. Viene presentato il menu per Disposizione della tastiera (cosa dovrebbero *fare* i tasti). Se non si è sicuri, scegliere:

    • "Inglese (US)" per disposizione semplice (inglese)
    • "Inglese (internazionale, con tasti muti ?AltGr)" per avere accesso ai caratteri accentati, ecc.

    • "Predefinita" per disposizione semplice (tedesca, francese)
    • "Giapponese" per disposizione semplice (Japanese)
    • "Dvorak", ecc. se le si desidera.

Per applicare le nuove impostazioni, dovrebbe essere sufficiente riavviare il servizio keyboard-setup; se così non è si può provare a riavviare il sistema di input del kernel con udev:

udevadm trigger --subsystem-match=input --action=change

o a riavviare l'intero sistema operativo.

Il kernel Linux e i il sistema X Window elaborano l'input da tastiera in modo indipendente. Il pacchetto keyboard-configuration si occupa della loro configurazione.

Per il sistema X Window, l'input da tastiera è elaborato usando X keyboard Extension (XKB). I dati dalla tastiera risultanti sono passati alle applicazioni X attraverso la connessione X con il protocollo X Input method (XIM).

Configurazione moderna della tastiera (IM)

Il semplice meccanismo di input con tastiera realizzato dalla configurazione descritta sopra non può gestire correttamente alcune lingue, come cinese e giapponese.

L'installazione di una infrastruttura per metodo di input (IM), come ibus (o fcitx5) insieme ai pacchetti correlati permette di gestire tutte le lingue.

Per i sistemi moderni con GUI, l'input da tastiera è elaborato da IM usando i motori IM. Per le applicazioni GTK e Qt, i dati di tastiera risultanti sono passati ad esse attraverso la comunicazione con D-Bus. Per le applicazioni X i dati da tastiera risultanti sono passate ad esse attraverso la connessione X con il protocollo X Input method (XIM). Se il sistema GUI è Wayland, xwayland facilita la connessione X per le applicazioni X.

(Non fare confusione tra IM e XIM.)

Per il sistema GNOME (l'ambiente desktop predefinito in Debian), il pacchetto ibus viene automaticamente installato e attivato. L'input da tastiera deve essere configurato dalla sua GUI Impostazioni -> Tastiera per la configurazione di base. Per una configurazione più complessa, come scambiare BlocMaiusc e Ctrl, è necessario installare e usare gnome-tweak.

Per i sistemi non GNOME, il comando autonomo di configurazione GUI ibus-setup può impostare l'infrastruttura IM per ibus. In questi ambienti desktop, la voce di menu per la loro utilità di configurazione della tastiera o una voce a comparsa che appare quando si clicca sull'icona del vassoio associata può avviare ibus-setup per l'utente.

Per KDE, la configurazione di ibus è in Impostazioni di sistema -> Hardware -> Dispositivi di input/tastiera. L'icona del vassoio è disponibile come kimpanel nel pacchetto plasma-widgets-addons.

Vedere I18n/ibus e I18n/Fcitx5 per ulteriori informazioni.

Strategia di configurazione multi-lingua della tastiera

Esistono 2 strategie per avere una configurazione multi-lingua della tastiera. Mescolare queste 2 strategie per l'input da tastiera crea un sistema non gestibile. Perciò non mescolarle.

Strategia vecchio stile

Chi desidera impostare un singolo ambiente di input da tastiera per più lingue (europee) vecchio stile senza l'infrastruttura per IM, dovrebbe considerare la seguente strategia di configurazione.

Ciò viene offerto per compatibilità all'indietro.

Strategia moderna

Chi desidera impostare più ambienti per input da tastiera commutabili in modo dinamico in un modo moderno per più lingue, dovrebbero considerare la strategia di confirazione seguente.

Notare che l'infrastruttura IM come ibus fornisce la sua funzionalità interna equivalente di X keyboard Extension (XKB) per inserire molti caratteri Unicode per le lingue europee, senza pacchetti per motori aggiuntivi e la sua configurazione è disponibile nel programma GNOME Tweaks in Mouse e tastiera -> Opzioni di disposizione aggiuntive. Vedere più avanti per il metodo non GUI per impostarle.

Ciò viene offerta come direzione per il futuro.

Vedere "IM e XIM" per le attenzioni necessarie per usare IM senza problemi.

Suggerimenti per la configurazione della tastiera

Configurazione manuale della tastiera

Si può modificare manualmente /etc/default/keyboard invece di eseguire dpkg-reconfigure keyboard-configuration.

Questo è un esempio:

# KEYBOARD CONFIGURATION FILE
# Consultare le pagine di manuale keyboard(5) e xkeyboard-config(7).
XKBMODEL="pc105"
XKBLAYOUT="us,de,fr,ua,ru"
XKBVARIANT=""
XKBOPTIONS="grp:alt_shift_toggle"

BACKSPACE="guess"

Nell'ambiente X, questa impostazione della disposizione della tastiera in /etc/default/keyboard può essere scavalcata eseguendo un comando simile a "setxkbmap us,ru -option grp:ctrl_shift_toggle" nel file di configurazione per l'avvio di X ~/.xsessionrc. Notare che ciò ha effetto solamente per l'ambiente X e gli ambienti GUI moderni potrebbero non essere in esecuzione sotto l'ambiente X. Vedere anche:

Come impostare una disposizione di tastiera in initramfs

Deve essere modificata la sezione appropriata in /etc/initramfs-tools/initramfs.conf per avere una disposizione della tastiera localizzata all'avvio:

Per avere la disposizione di tastiera localizzata all'avvio, è necessario modificare il file /etc/initramfs-tools/initramfs.conf:

#
# KEYMAP: [ y | n ]
#
# Carica una mappa di tastiera nello stadio initramfs.
#

KEYMAP=y

Applicare i cambiamenti:

# update-initramfs -u

Abilitare tastiere USB in initramfs

Per avere la gestione di tastiere USB all'avvio initramfs-tools deve includere il modulo usbhid e le sue dipendenze. O il file /etc/initramfs-tools/conf.d/driver-policy deve includere la maggior parte dei moduli, o questi devono essere specificati in un altro file:

#
# MODULES: [ most | netboot | dep | list ]
#
# most - Aggiunge la maggior parte del file system e tutti i driver di dispositivi fisici
#
# dep - Cerca di indovinare quali moduli caricare.
#
# netboot - Aggiunge i moduli base, i moduli di rete, ma salta quelli dei device a blocchi.
#
# list - Include solamente i moduli nell'elenco dei 'moduli aggiuntivi'
#

MODULES=most

Se il file di configurazione sopra citato non è impostato per includere la maggior parte dei moduli, allora è necessario che essi siano specificati nel file /etc/initramfs-tools/modules:

# tastiera USB all'avvio
usbcore
uhci_hcd
ehci_hcd
usbhid

Rendere effettivi i cambiamenti.

# update-initramfs -u

Come attivare dinamicamente le impostazioni per la console Linux

Per attivare le impostazioni modificate in /etc/default/keyboard senza riavviare, eseguire setupcon(1).

 $ sudo setupcon -k -f

Come attivare dinamicamente le impostazioni per X Window (strategia vecchio stile)

Se l'infrastruttura IM non è attiva, si può cambiare la disposizione di tastiera del sistema X Window dal terminale, es.:

 $ setxkbmap it
 $ setxkbmap fr
 $ setxkbmap us

Potrebbe essere particolarmente interessante per le tastiere hardware con disposizione us la variante altgr-intl (questa fornisce una semplice mappatura con AltGr per molti caratteri con umlaut e simboli speciali):

 $ setxkbmap -rules evdev -model evdev -layout us -variant altgr-intl

o

 $ setxkbmap -model pc105 -layout us -variant altgr-intl

Per configurare un semplice tasto per commutare tra più disposizioni di tastiera configurate, vedere l'opzione XkbOptions nella Sezione InputClass da qualche parte all'interno della raccolta di file di configurazione di xorg (vedere [SOLVED] Setxkbmap .xinitrc).

Come gestire dinamicamente la configurazione delle fonti di input dalla riga di comando (strategia moderna)

La configurazione delle fonti di input può essere gestita in modo dinamico usando il comando gsettings, dconf o dconf-editor. Il comando gsettings è il wrapper indipendente dalla piattaforma per il comando dconf specifico di Linux e dconf-editor è un programma con GUI.

Le attuali impostazioni per la fonte di input e la fonte di input XKB possono essere ottenute dalla riga di comando. Ad esempio usando:

 $ gsettings get org.gnome.desktop.input-sources sources
[('xkb', 'us'), ('ibus', 'anthy'), ('ibus', 'mozc-jp')]
 $ gsettings get org.gnome.desktop.input-sources xkb-options
['lv3:ralt_switch', 'compose:rwin']

o

 $ dconf read /org/gnome/desktop/input-sources/sources
[('xkb', 'us'), ('ibus', 'anthy'), ('ibus', 'mozc-jp')]
 $ dconf read /org/gnome/desktop/input-sources/xkb-options
['lv3:ralt_switch', 'compose:rwin']

Queste possono essere modificate a specifici valori. Per esempio:

 $ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('ibus', 'anthy'), ('ibus', 'mozc-jp')]"
 $ gsettings set org.gnome.desktop.input-sources xkb-options "['lv3:ralt_switch', 'compose:rwin']"

o

 $ dconf write /org/gnome/desktop/input-sources/sources "[('xkb', 'us'), ('ibus', 'anthy'), ('ibus', 'mozc-jp')]"
 $ dconf write /org/gnome/desktop/input-sources/xkb-options "['lv3:ralt_switch', 'compose:rwin']"

Possono essere reimpostati usando gsettings reset ... o dconf reset ....

Come creare una scorciatoia ad una tastiera personalizzata per selezionare una particolare fonte di input

Per GNOME si può creare una scorciatoia da tastiera personalizzata per selezionare in modo deterministico una particolare sorgente di input assegnado il comando con Impostazioni -> Tastiera -> Scorciatoie da tastiera (invece di usare la commutazione con Super-SPACE). Ad esempio, come spiegato altrove, il comando seguente seleziona la prima fonte di input:

gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval  "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()"

Configurazione della tastiera per tasti Cancella all'indietro e Canc e tipo di terminale

Una buona analisi della situazione complicata riguardo la configurazione della tastiera per i tasti Cancella all'indietro e Canc e il tipo di terminale è disponibili in /usr/share/doc/xterm/README.Debian.

La mappa di tastiera predefinita in Debian per xterm è il comportamente come terminale in stile DEC VT 220 che è coerente con la console virtuale Linux. Ciò libera Ctrl-H dall'azione per cancellare all'indietro e permette di usarlo per altri scopi in programmi come Vim.

Come usare il terminale kitty con IM

L'emulatore di terminale basato su GPU kitty non usa X, GTK, né la libreria Qt, ma usa la libreria Wayland. Per poter attivare l'IM per inserire alcuni caratteri per il cinese o il giapponese è necessario seguire quanto scritto in /usr/share/doc/kitty/README.Debian.

Vista d'insieme dell'input da tastiera

Ecco una panoramica della situazione dell'input da tastiera in Debian.

Per poter evitare confusione sotto sono descritte sia la situazione storica più semplice, sia la più complicata situazione attuale.

Situazione storica dell'input da tastiera

Prima dell'introduzione del supporto per Wayland in Debian, la situazione dell'input da tastiera poteva essere riassunta in questo modo:

Situazione attuale dell'input da tastiera (alla data del 2022)

L'introduzione del supporto per Wayland a Debian ha cambiato la situazione dell'input da tastiera. (Sono avvenuti anche altri cambiamenti, come l'introduzione di systemd e GTK4)

Dato che il supporto per Wayland è un'attività in fase di lavoro, fare riferimento alla pagina del wiki su Wayland per la situazione aggiornata e i dettagli.

La situazione attuale (maggio 2022) di Debian 10 buster/stable e Debian 11/bookworm/testing per l'input da tastiera può essere riassunta come segue:

Risoluzione di problemi

Cambiare la configurazione dell'IM

Per evitare problemi causati da cache di libreria, ecc. si dovrebbe riavviare il sistema quando si fanno modifiche alla configurazione dell'infrastruttura per IM (metodo di input). (Riavviare la sessione del desktop può essere sufficiente nella maggior parte dei casi, ma il riavvio è più sicuro.)

IM e XIM

Quelli che seguono sono suggerimenti per l'infrastruttura per metodo di input (IM) e i problemi con il protocollo XIM.

Caso con infrastruttura per metodo di input attivata

Quando è installata e attivata una infrastruttura IM come ibus, le applicazioni per X puro (client XIM che sono stati progettati per ottenere l'input da tastiera dal server X attraverso la connessione X meccanismo XIM), come xterm e rxvt-unicode non comunicano direttamente con il server X per l'input da tastiera. Un'infrastruttura per IM, come ibus gestisce invece l'effettivo input da tastiera e passa i dati elaborati ai client X usando il protocollo XIM dal suo demone come ibus-daemon.

Sfortunatamente, la combinazione di ibus con client XIM è difettosa per alcune (rare) sequenze da tastiera per inserire caratteri non ASCII. Sono stati segnalati bug persistenti riguardo questa combinazione, come discusso in Red Hat Bugzilla – Bug 2013610 e altrove.

Rimanere il più possibile con una configurazione sicura.

I programmi GTK e Qt correttamente configurati con im-config non usano il protocollo XIM per comunica re con ibus-daemon e sono immuni a questi fastidiosi bug di questa combinazione.

Per gli emulatori di terminale, usare uno qualsiasi di quelli moderni che usano GTK o Qt:

Per emacs considerare l'uso di emacs-nox in emulatori di terminale moderni o emacs-gtk. (Cioè evitare emacs-lucid se è attivato ibus. I bug di emacs-gtk sembrano essere risolti.)

Per i programmi come gitk, considerare l'idea di evitare il più possibile di digitare sequenze problematiche per caratteri non ASCII.

Caso con infrastruttura per metodo di input disattivata

Se non si ha necessità delle funzionalità moderne di un'infrastruttura per IM, come ibus, si può far sì che i client X comunichino direttamente con il server X configurato con X Keyboard Extension (XKB) disabilitando ibus con un comando tipo:

 $ im-config -n none

Questa soluzione può non funzionare in alcuni ambienti desktop se scavalcano im-config. È degno di nota come GNOME possa rientrare in questa tipologia.

Tastiera 109 giapponese

Per la tastiera per PC giapponesi, si seleziona il modello "Generica 105 tasti PC" e la tipologia di tastiera per lingua "Giapponese"/"日本語". Perciò si dovrebbe avere:

XKBMODEL="pc105"
XKBLAYOUT="ja"

(Non preoccuparsi del complicato problema del nome di nazione e lingua.)

Importante è la variante della disposizione di tastiera.

Probabilmente si ha una tastiera giapponese per PC moderna prodotta dopo il 2000 che ha sopra i tasti i nuovi simboli tipo OADG 109A. Anche in questo caso è una buona idea selezionare la semplice disposizione "Giapponese" / "日本語", si dovrebbe considerare di impostare:

XKBVARIANT=""

Questo per il beneficio pratico di un più facile accesso a "~". Le sottili differenze tra queste varianti sono:

Invece il motivo per usare 105 tasti e non 109 è che i 4 tasti aggiuntivi sono usati solamente per l'input giapponese e non sembrano essere tenuti di conto dato che non hanno effetto sulle mappature di tastiera.

Per la storia da OADG 109 a OADG 109A, vedere JISキーボード.

GNOME molto vecchi (non è un problema alla data del 2022)

La disposizione della tastiera poteva essere cambiata in Impostazioni -> Regione & lingua -> Fonti di input. È anche possibile cambiarla dalla CLI usando dconf/gsettings, aggiungendo chiavi a /org/gnome/desktop/input-sources/sources. Per i rilasci più vecchi di stretch (inizialmente rilasciata nel 2018), queste disposizioni includono lingue e dialetti poco diffusi, oltre a configurazioni molto specifiche, e sono state normalmente nascoste nell'interfaccia di configurazione grafica per stretch (quando era testing?).

L'unico modo per renderle visibili è abilitare l'impostazione corrispondente in gconf:

$ gsettings set org.gnome.desktop.input-sources show-all-sources true

Per ulteriori informazioni su questo aspetto vedere https://bugzilla.gnome.org/show_bug.cgi?id=682240.


CategoryPortal | CategoryHardware