dokumentation/docs/Einrichtung/Linux.md

15 KiB
Raw Blame History

Linux

Vorbemerkungen

Bei allen modernen Systemen sind die Neo-basierten Layouts Neo, Bone und Neoqwertz schon vorinstalliert. Zum Aktivieren reicht es aus, diese in den Tastatureinstellungen auszuwählen.

Bei Problemen gibt es in der FAQ eine Liste der bekannten Probleme unter Linux. Darüber hinaus gibt es mehrere Möglichkeiten, individuelle Hilfe für Neo zu erhalten.

!!! warning "Achtung" Wird Neo nicht systemweit aktiviert, hat man während der Anmeldung möglicherweise noch eine andere Tastaturbelegung. Man sollte also seinen Benutzernamen und sein Passwort sowohl in Qwertz (Login) als auch in Neo (z.B. Bildschirmschoner) eingeben können.

Neo aktivieren: Systemweit/Generisch

Man kann das Standardtastaturlayout des Xorg-Servers mit folgendem Befehl auf das jeweilige Neo-Layout setzen:

=== "Neo" sudo localectl set-x11-keymap --no-convert de pc105 neo === "Bone" sudo localectl set-x11-keymap --no-convert de pc105 bone === "NeoQwertz" sudo localectl --no-convert set-x11-keymap de pc105 neo_qwertz

Jedoch haben einige Desktop-Umgebungen eigene Tastatureinstellungen, die diese Einstellung überschreiben können. Wie man bei bestimmten Desktopumgebungen das Tastaturlayout setzt, wird im nächsten Abschnitt gezeigt.

Die systemweite Einstellung wirkt sich auf die meisten Login-Manager (etwa sddm, lightdm, gdm) aus.

Außerdem kann man temporär das Tastaturlayout des aktuellen Xorg-Servers z.B. durch den Befehl setxkbmap de neo setzen. Bei Desktopumgebungen, die keine eigenen Tastatureinstellungen besitzen, bietet es sich an, diesen Befehl in den Autostart zu packen, um Neo (bzw. Bone oder NeoQwertz) nur für einen Benutzer zu aktivieren je nach Setup z.B. ~/.xsession, ~/.xsessionrc oder ~/.xinitrc.

Neo aktivieren: Desktopumgebungen

Die entsprechenden Boxen können durch Anklicken ausgeklappt werden.

??? info "Gnome (egal ob auf Ubuntu, Debian, Fedora, Arch, OpenSUSE oder …)"

Standardmäßig versteckt Gnome einige selten genutzte Tastaturlayoute in den
Einstellungen.  Daher ist bei Bone und Neoqwertz darauf zu achten, dass man
zunächst im Optimierungen-Programm (`gnome-tweaks`) in der „Tastatur und
Maus“-Sektion „Erweiterte Eingabequellen anzeigen“ aktiviert. Alternativ kann,
falls `gnome-tweaks` nicht installiert ist, diese Einstellung mit dem Befehl
```
gsettings set org.gnome.desktop.input-sources show-all-sources true
```
vorgenommen werden. Bei dem klassischen Neo-Layout kann dieser Schritt übersprungen werden.

![screenshot](images/linux-gnome-1.png)

Dann kann man das gewünschte Layout in den
Gnome-Tastaturlayouteinstellungen (oben rechts in die Ecke klicken, dann
auf „Einstellungen“ und in die „Region und Sprache“-Rubrik wechseln)
setzen: Zunächst auf das große Plus klicken.

![screenshot](images/linux-gnome-2.png)

Anschließend auf "Deutsch" klicken, das gewünschte Layout auswählen und
oben rechts mit „Hinzufügen“ bestätigen

![screenshot](images/linux-gnome-3.png)

Anschließend wahlweise das normale Deutsche Layout rechts mit dem Kreuz
entfernen oder mit dem Griff am linken Rand unter das Neo-Layout ziehen.
Andernfalls funktioniert z.B. die vierte Ebene nicht.  Falls mehrere
Layouts aktiviert sind, kann man zwischen diesen mit `<super>+<space>` oder der
Schaltfläche oben rechts in dem Panel wechseln.

![screenshot](images/linux-gnome-4.png)

Außerdem ist es wichtig, dass in der „Tastenkombinationen“-Rubrik bei
„Taste für alternative Zeichen„ **nicht** „Rechte Alt-Taste“ ausgewählt
ist, da sonst die rechte Mod4-Taste zu einer dritten Mod3-Taste
wird.

![screenshot](images/linux-gnome-5.png)

??? info "Cinnamon (egal ob auf Linux Mint, Ubuntu, Debian, Fedora, Arch, OpenSUSE oder …)"

Die Tastatureinstellungen können über das Startmenu geöffnet werden:

![screenshot](images/linux-cinnamon-1.png)

In dem dritten Tab zunächst die erste Ankreuzbox aktivieren, um alle Tastaturbelegungen anzuzeigen.
Dann kann man mit dem Plus unten links Tasataturbelegungen hinzufügen:

![screenshot](images/linux-cinnamon-2.png)

In dem erscheinenden Popup mit Hilfe der Suche das gewünschte Layout auswählen und hinzufügen.

![screenshot](images/linux-cinnamon-3.png)

Anschließend wahlweise das normale Deutsche Layout mit dem Minus-Symbol unten
entfernen oder mit den Pfeilen unter das Neo-Layout (oder die entsprechende Variante) befördern.
Andernfalls funktioniert z.B. die vierte Ebene nicht.

![screenshot](images/linux-cinnamon-4.png)

In den Optionen sollten alle Einstellungen auf den Standards gelassen gewerden (also keine Ankreuzauswählen und bei den Auswahlmöglichkeiten immer "Vorgabe" wählen):

![screenshot](images/linux-cinnamon-5.png)

??? info "KDE Plasma (egal ob auf Ubuntu, Debian, Fedora, Arch, OpenSUSE oder …)" Öffne zunächst die Plasma-Eingabegeräteinstellungen, die in den Systemeinstellungen in der „Hardware“-Kategorie sind.screenshot

Wähle dann in auf der Tastaturseite den „Belegungen“-Reiter an.
Achte darauf, dass in dem rechten obren Bereich keine Einstellungen aktiv sind,
die mit dem Neo-Layout konfliktieren und klicke in der unteren Hälfte auf
„Hinzufügen“.

![screenshot](images/linux-plasma-2.png)

Wähle in dem Belegungs-Dropdown nun „Deutsch“ und in dem Varianten-Dropdown
die gewünschte Variante aus. Bestätige mit „OK“. Eventuelle andere Layouts
sollten entfernt oder unter Neo verschoben werden, um Probleme mit den
höheren Ebenen zu vermeiden.  Anschließend mit „Anwenden“ den Dialog
schließen und neu anmelden.

![screenshot](images/linux-plasma-3.png)

??? info "XFCE (egal ob auf Ubuntu, Debian, Fedora, Arch, OpenSUSE oder …)" Standardmäßig hält sich XFCE an die systemweiten Einstellungen, also muss man nur für XFCE weitere Einstellungen vornehmen, wenn man das Layout nicht global, sondern nur für einen bestimmten Benutzer aktivieren möchte.

Da XFCE wie Gnome auch „exotische“ Tastaturlayouts ausblendet, gehen
wir über die Konsole vor:

=== "Neo (klassisch)"
    ```
    xfconf-query -c keyboard-layout -p "/Default/XkbDisable" -s "false"
    xfconf-query -c keyboard-layout -p "/Default/XkbLayout" -s "de"
    xfconf-query -c keyboard-layout -p "/Default/XkbVariant" -s "neo"
    ```
    Die Einstellung wird sofort aktiv.

=== "Bone"
    ```
    xfconf-query -c keyboard-layout -p "/Default/XkbDisable" -s "false"
    xfconf-query -c keyboard-layout -p "/Default/XkbLayout" -s "de"
    xfconf-query -c keyboard-layout -p "/Default/XkbVariant" -s "bone"
    ```
    Die Einstellung wird sofort aktiv.

=== "Neo/Qwertz"
    ```
    xfconf-query -c keyboard-layout -p "/Default/XkbDisable" -s "false"
    xfconf-query -c keyboard-layout -p "/Default/XkbLayout" -s "de"
    xfconf-query -c keyboard-layout -p "/Default/XkbVariant" -s "neo_qwertz"
    ```
    Die Einstellung wird sofort aktiv.

Installation der Compose-Dateien

Die Funktionalität der Tote-Tasten-Sequenzen wird durch die Compose-Datei gesteuert. Dies ist bei Linux unabhängig vom Tastaturlayout. Das bedeutet, dass man auch mit aktiviertem Neo-Layout standardmäßig nur den eingeschränkten Funktionsumfang der Standard-Compose-Datei zu verfügung hat. Die Neo-Compose-Datei ist jedoch mit

wget "https://neo-layout.org/download/XCompose" -O ~/.XCompose

schnell nachinstalliert. Zum Übernehmen der Änderungen neu anmelden.

Die Neo-Compose-Datei ist modular aufgebaut. So kann man einfach mit Hilfe der Quelldateien im Git-Repo einzelne Features nach belieben (de-)aktivieren. Siehe auch Erzeugbare Zeichen mit Compose.

Installation der Konsolen-Keymap

Die „alte“ Linux-Konsole benutzt nicht die gewöhnlichen Tastaturlayouts der graphischen Benutzeroberfläche. Seit der Version 2.4.0 sind Konsolenkeymaps für Neo, Bone, NeoQwertz und AdNW in upstream kbd enthalten, jedoch paketieren noch recht wenige Distributionen diese. Also müssen meist die Neo-Keymaps nachinstalliert werden. Die Installation kann mit den Befehlen in den blauen Kästen geschehen.

Alternativ kann man die Keymaps manuell an den entsprechenden Stellen platzieren

Distribution Keymap-Verzeichnis
Arch /usr/share/kbd/keymaps
Debian und Nachfahren /usr/share/keymaps
Fedora /usr/lib/kbd/keymaps
OpenSUSE /usr/share/kbd/keymaps

Anschließend kann man die Keymaps mit sudo loadkeys -u neo, sudo loadkeys -u bone bzw. sudo loadkeys -u neoqwertz laden. Die permanente Aktivierung erfolgt in der Regel über localectl, bei Debian-Derivaten funktioniert dies jedoch nicht.

??? info "Arch Linux" === "Neo (klassisch)" sudo loadkeys -u neo sudo localectl set-keymap --no-convert neo

=== "Bone"
    ```
    sudo loadkeys -u bone
    sudo localectl set-keymap --no-convert bone
    ```

=== "Neo/Qwertz"
    ```
    sudo loadkeys -u neoqwertz
    sudo localectl set-keymap --no-convert neoqwertz
    ```

??? info "Debian-Derivat (Debian, Ubuntu, Linux Mint, Pop!OS, …)" === "Neo (klassisch)" Auf der Konsole sudo dpkg-reconfigure keyboard-configuration ausführen und in dem erscheinenden Dialog Neo auswählen.

=== "Bone"
    Die Installation erfolgt mit
    ```
    sudo mkdir -p /usr/share/keymaps
    wget "https://neo-layout.org/download/console.tar.xz" -O - | \
    sudo tar -C /usr/share/keymaps/ -xJ
    ```
    Dann muss man `KMAP=/usr/share/keymaps/neo/bone.map` in die `/etc/default/keyboard` hinzufügen und
    anschließend als root `setupcon` auf der Konsole ausgeführen. Die Einstellung
    bleibt über Neustarts hinweg aktiv.

=== "Neo/Qwertz"
    Die Installation erfolgt mit
    ```
    sudo mkdir -p /usr/share/keymaps
    wget "https://neo-layout.org/download/console.tar.xz" -O - | \
    sudo tar -C /usr/share/keymaps/ -xJ
    ```
    Dann muss man `KMAP=/usr/share/keymaps/neo/neoqwertz.map` in die `/etc/default/keyboard` hinzufügen und
    anschließend als root `setupcon` auf der Konsole ausgeführen. Die Einstellung
    bleibt über Neustarts hinweg aktiv.

??? info "Fedora" === "Neo (klassisch)" sudo loadkeys -u de-neo sudo localectl set-keymap --no-convert de-neo

=== "Bone"
    ```
    wget "https://neo-layout.org/download/console.tar.xz" -O - | \
    sudo tar -C /usr/lib/kbd/keymaps/ -xJ

    sudo loadkeys -u bone
    sudo localectl set-keymap --no-convert bone
    ```

=== "Neo/Qwertz"
    ```
    wget "https://neo-layout.org/download/console.tar.xz" -O - | \
    sudo tar -C /usr/lib/kbd/keymaps/ -xJ

    sudo loadkeys -u neoqwertz
    sudo localectl set-keymap --no-convert neoqwertz
    ```

??? info "OpenSUSE" === "Neo (klassisch)" sudo loadkeys -u de-neo sudo localectl set-keymap --no-convert de-neo

=== "Bone"
    ```
    wget "https://neo-layout.org/download/console.tar.xz" -O - | \
    sudo tar -C /usr/share/kbd/keymaps/ -xJ

    sudo loadkeys -u bone
    sudo localectl set-keymap --no-convert bone
    ```

=== "Neo/Qwertz"
    ```
    wget "https://neo-layout.org/download/console.tar.xz" -O - | \
    sudo tar -C /usr/share/kbd/keymaps/ -xJ

    sudo loadkeys -u neoqwertz
    sudo localectl set-keymap --no-convert neoqwertz
    ```

!!! warning "Hinweis" Bei vollverschlüsselten Systemen ist darauf zu achten, dass das Tastaturlayout beim Starten schon vor der Passphrasenabfrage gesetzt wird. Bei Arch Linux z.B. muss dafür in /etc/mkinitcpio.conf der sd-vconsole-Hook vor dem sd-encrypt-Hook eingefügt werden und bei Debian muss man die KEYMAP-Einstellung in der etc/initramfs-tools/initramfs.conf aktivieren. Dann jeweils das Initramfs neu generieren (mit mkinitcpio -p linux bzw update-initramfs -u).

Bei anderen Distribution verläuft die Installation vermutlich ähnlich. Bei Problemen kannst du dich jederzeit an uns wenden.

Persönliches Tastaturlayout konfigurieren

Durch Änderung der xkb-Dateien können bestehende Layouts angepasst oder ein neues eigenes Layout auf vorhandener Basis erstellt werden.

Erstellen eines eigenen Layouts

!!! missing "Fehlend" Hier fehlen weitere Beispiele zum Erstellen eines eigenen Layouts mit Hilfe von xkbcomp.

Siehe auch:
https://unix.stackexchange.com/questions/202883/create-xkb-configuration-from-xmodmap.

Änderung von xkb-Dateien

Anstatt ein neues Layout zu erstellen, kann es für geringfügige Änderungen sinnvoller sein, die xkb-Dateien direkt anzupassen. Diese Änderungen erfordern allerdings Rootrechte. Außerdem kann es vorkommen, dass Änderungen direkt in /usr/share/X11/xkb nach einem Systemupdate wieder überschrieben werden.

Ändern von NeoQwertz zur Variante mit Eszett unten

Die Änderungen erfolgen in der Datei /usr/share/X11/xkb/symbols/de:

  • suche nach dem Abschnitt neo_qwertz_base
  • vertausche die IDs der Tastendefinitionen von AE11 und AB10

Anschließend müssen die xkb-Dateien erneut eingelesen werden (alternativ den Rechner neu starten) Unter Debian erfolgt dies mit sudo dpkg-reconfigure xkb-data. Danach erneut das Tastaturlayout auswählen über setxkbmap de neo_qwertz, schon sind die vertauschten Tasten gültig.