Wiki:Neo unter Linux einrichten/xkbmap

Version 35 (geändert von frank, vor 9 Jahren) (Diff)

Warnung vor Ubuntu 10.04

Neo 2 systemweit verfügbar machen (für alle Benutzer)

Neo ist schon dabei

Seit ca. zwei Jahren ist Neo bei jeder Linux-Distribution dabei. Allerdings bisher nur die ganz alte Version 1 oder „2.0rc1“. Um diese zu aktivieren, schaut man sich am Besten die Beispiele zur Aktivierung an.

Achtung! Benutzer von Ubuntu 10.04 wird vorläufig davon abgeraten, die SVN-Version aufzuspielen, da diese GDM abstürzen lässt. Verwendet stattdessen einfach den bereits enthaltenen Neo-2-Release-Candidate. Siehe dazu auch Ticket 213.

Aktuelle Version von Neo 2 (root-Rechte erforderlich)

Wenn man schon ein Linux-System mit Neo Version 1 bzw. 2.0rc1 hat, dann kann man die entsprechende Dateien einfach durch die aktuellen aus dem SVN ersetzen. Anleitung:

  1. Es ist vielleicht ganz ratsam, vorher noch eine Sicherheitskopie zu erstellen – allerdings bekommt man die Originaldateien auch wieder irgendwo im Internet oder durch De- und Reinstallation des Pakets (heißt meist xkeyboard-config oder ähnlich), das die Dateien enthält:
    tar -C /usr/share/X11/ -czf xkb-sicherung.tgz xkb/symbols/{de,level3,level5,shift} xkb/rules/{base,base.xml,evdev,evdev.xml} xkb/types/level5
    
  2. Die Datei http://neo-layout.org/xkb.tgz herunter laden, zum Beispiel so:
    wget http://neo-layout.org/xkb.tgz
    
  3. Die heruntergeladene Datei an der Stelle /usr/share/X11/ entpacken (dabei werden vier alte Dateien, die in Schritt 1 gesichert wurden, überschrieben). Dies geht zum Beispiel in der Konsole/Terminal so:
    # Möglichkeit 1 (funktioniert überall):
    su -c 'tar -C /usr/share/X11/ -xzf xkb.tgz'     # root-Passwort benötigt
    
    # Möglichkeit 2 (funktioniert bei Ubuntu und ein paar wenigen anderen Systemen):
    sudo tar -C /usr/share/X11/ -xzf xkb.tgz
    

Eine fehlerfreie Version (siehe #141), die weniger aktuell ist, kann so heruntergeladen und installiert werden (beides in einem Schritt):

# Möglichkeit 1 (funktioniert überall):
su -c 'wget http://wiki.neo-layout.org/export/1802/linux/X/de -O /usr/share/X11/xkb/symbols/de'

# Möglichkeit 2 (funktioniert bei Ubuntu und ein paar wenigen anderen Systemen):
sudo wget http://wiki.neo-layout.org/export/1802/linux/X/de -O /usr/share/X11/xkb/symbols/de

Für alle Benutzer (bereits bei der Anmeldung) Neo einstellen

Wer nicht einem der vielen einfachen Beispiele für eine systemweite (schon bei der Anmeldung und Passworteingabe) Aktivierung von Neo folgen will oder kann (weil das benutzte System zu alt ist), kann Neo auch manuell aktivieren:

xorg.conf ändern

Am schönsten ist es, wenn man zwischen Neo und QWERTZ mittels Drücken der Rollentaste (Scroll-Lock) wechseln kann. Dazu trägt man folgendes in seine /etc/X11/xorg.conf ein:

Section "InputDevice"
        Identifier  "Keyboard0"                             # heißt manchmal anders, hier nur ein Beispiel
        Driver      "kbd"
        Option      "XkbModel" "pc105"                      # es gibt manchmal auch Tastaturen mit nur 104 Tasten
        Option      "XkbLayout" "de,de"                     # zwei verschiedene Belegungen, aber beide sind Varianten der de-Belegung
        Option      "XkbVariant" "basic,neo"                # QWERTZ als Standard, Neo als zweite Belegung
        Option      "XkbOptions" "grp:sclk_toggle,grp_led:scroll"  # Drücken von Scroll-Lock wechselt zwischen neo und qwertz, Scroll-LED zeigt Wechsel an
EndSection

Man sollte, falls man den betreffenden Rechner nicht alleine nutzt, die XkbVariant in der Reihenfolge basic,neo (also QWERTZ als Standard, Neo als Zweitbelegung) schreiben, um unbedarften Mitnutzern des Rechners nicht vor den Kopf zu stoßen: „Hä, ich kann mein Passwort nicht eingeben“. Wenn man also Neo schreiben will, drückt man kurz die Rollentaste (Scroll-Lock) und los geht’s mit Neo. Nochmal Rollen und man ist wieder bei QWERTZ.

10-x11-input.fdi erstellen

Ab X.org 7.3 werden Tastatur und Maus nicht mehr nur von /etc/X11/xorg.conf bestimmt, sondern standardmäßig von HAL (Hardware Abstraction Layer). Um gleiche Einstellungen wie in obiger /etc/X11/xorg.conf vorzunehmen erstellt man in /etc/hal/fdi/policy/ (FIXME für andere Distributionen) eine Datei namens 10-x11-input.fdi mit folgendem Inhalt:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
  <match key="info.capabilities" contains="input.keys">
  	<merge key="input.x11_driver" type="string">evdev</merge>
  	<merge key="input.x11_options.XkbModel" type="string">evdev</merge>
  	<merge key="input.x11_options.XkbLayout" type="string">de,de</merge>
  	<merge key="input.x11_options.XkbVariant" type="string">basic,neo</merge>
  	<merge key="input.x11_options.XkbOptions" type="string">grp:sclk_toggle,grp_led:scroll</merge>
  </match>
  </device>
</deviceinfo>

Zum Teil findet man noch Hinweise und Beispiele mit den Keys: input.xkb.model, input.xkb.layout, input.xkb.options, …, diese sind jedoch in der Regel veraltet, siehe hierzu auch den folgenden Abschnitt.

10-x11-input.fdi-Vorlage kopieren

Ich weiß nicht, wie allgemeingültig dies ist, aber bei mir (Debian Lenny) führte Obiges zu qwerty, während dieses Tutorial den rechten Weg wies:

Zunächst eine Vorlage der 10-x11-input.fdi kopieren:

sudo cp /usr/share/doc/hal/examples/10-x11-input.fdi /etc/hal/fdi/policy/

In dieser dem keyboard-Abschnitt Folgendes hinzufügen (dies sollte in Bezug auf input.xkb.model, input.xkb.layout, input.xkb.options, input.x11_options, … den übrigen Zeilen ähneln):

<merge key="input.xkb.layout" type="string">de</merge>
<merge key="input.xkb.variant" type="string">neo</merge>

Das Wechseln mit Rollen sollte mit Folgendem o. Ä. klappen, ist aber ungetestet:

<merge key="input.xkb.layout" type="string">de, de</merge>
<merge key="input.xkb.variant" type="string">basic, neo</merge>
<merge key="input.xkb.options" type="string">grp:sclk_toggle,grp_led:scroll</merge>

Das Resultat sieht dann z. B. wiefolgt aus:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.mouse">
      <merge key="input.x11_driver" type="string">mouse</merge>
      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
        <merge key="input.x11_driver" type="string">evdev</merge>
      </match>
    </match>

    <match key="info.capabilities" contains="input.keys">
      <merge key="input.x11_driver" type="string">keyboard</merge>
      <merge key="input.xkb.layout" type="string">de</merge>
      <merge key="input.xkb.variant" type="string">neo</merge>
      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux">
        <merge key="input.x11_driver" type="string">evdev</merge>
      </match>
    </match>
  </device>
</deviceinfo>

Wenn der Treiber Probleme macht…

Manchmal aktivieren sich unter Gnome automatisch einige Tastaturoptionen, die mit Neo nicht kompatibel sind. Sollte Neo also nicht wie erwartet funktionieren, kann dieser Befehl weiterhelfen:

setxkbmap de neo -option

Testen: Zwischen QWERTZ und Neo umschalten

Um die Funktionalität zu testen, kann folgender Einzeiler benutzt werden

setxkbmap -layout de,de -variant basic,neo -option -option grp:sclk_toggle -option grp_led:scroll

Dies bewirkt, dass die Tastaturbelegung durch Drücken der Rollen-Taste (Scroll-Lock) zwischen QWERTZ und Neo wechselt. (Dies geht scheinbar nur, wenn Num-Lock nicht aktiviert ist)


Neo-Einrichtung unter Linux
Neo-Einrichtung auf anderen Systemen
Hauptseite