Version 9 (modified by Hendrik, 17 years ago) ( diff )

--

Neo für BSD-Systeme

FreeBSD

Von Haus aus bringt FreeBSD Unterstützung für Neo 1.0 in Xorg mit. Für die Konsole und für Neo 2 in X muss also ein Treiber installiert werden.

Neo auf der Konsole

Für FreeBSD an der Konsole muss die Treiberdatei neo.kbd mit folgendem Befehl geladen werden:

kbdcontrol -l neo.kbd

Um das Layout permanent zu verwenden, lohnt es sich als root-Benutzer die Datei neo.kbd in das Verzeichnis für Keymaps zu plazieren:

cp neo.kbd /usr/share/syscons/keymaps/

Trägt man dann noch

keymap="neo"

in /etc/rc.conf ein, sollte vom nächsten Boot an immer das richtige Layout verwenden werden.

Probleme

Achtung: Momentan funktionieren die Modifier noch nicht richtig, das ehemalige AltGr erzeugt jedoch M3 sodass grundlegende Aufgaben der Systemadministration möglich sind.

Neo unter X: Xkb

Es ist möglich die de-Datei des Linux-Treibers in FreeBSD zu installieren. Der Standardordner hierfür ist in den meisten Fällen /usr/local/share/X11/xkb/symbols oder /usr/share/X11/xkb/symbols.

Probleme

Auch hier ergeben sich Probleme mit den Modifiern und bisher scheinen nur Ebene 1 und 2 verfügbar zu sein.

Neo unter X: Xmodmap

Auch das Laden von neo_de.xmodmap (im Verzeichnis linux/) ist möglich, aber es ergeben sich ähnliche Probleme wie bei Xkb.

OpenBSD

Vorbereitung

Ohne eine Installation die UTF-8 verwendet kann es zu schwer zu definieren Problemen beim Testen der Layouts (unter X) kommen. Ein erster Schritt sollten also die folgenden Variablen in .profile und .cshrc sein:

  export LANG=de_DE.UTF-8
  export LC_ALL=de_DE.UTF-8

Ein relativ guter Testkandidat der auf den meisten Systemen verfügbar sein sollte ist Firefox. In der Addresszeile kann schnell überprüft werden ob

  1. B. überhaupt irgendwelche Zeichen von Ebene 4 und 6 dargestellt werden

können. Xterm dagegen wird kaum hilfreiche Informationen liefern.

Konsole mit Wscons

Benötigte Dateien: unix/openbsd

Der OpenBSD-Kernel verwendet das aus NetBSD stammende wscons. Um ein neues Layout verwenden zu können muss es erst im Quellcode eingebunden werden. Dabei wird zunächst ein Layout in wsksymdef.h definiert und dann werden die vordefinierten Zeichen den passenden Tasten des Layouts in wskbdmap_mfii.c zugeordnet. In wskbdmap_mfii.c werden dabei (ähnlich wie unter FreeBSD) Tasten mit Normal,Shifted, AltGr und Shifted-AltGr definiert. Eine Umlegung von AltGr ermöglicht also die Verwendung von bis zu 4 Ebenen, wobei es sinnvoll scheint entweder 4 und 5 oder 5 und 6 auszuschliessen.

Aktueller Stand: Noch unvollständig, wer Zeit hat kann gerne helfen.

Neo unter X: Xkb

Theoretisch sollte die de-Datei auch unter OpenBSD funktioneren, da Xorg auch hier Standard ist. Abgesehen von Fehlermeldungen für dead_psili dead_dasia, die durch NoSymbol ersetzt werden können, funktioniert die xkb-Datei momentan nicht (r1774).

Aktueller Stand: Funktioniert nicht, wer Zeit hat kann gerne helfen.

Neo unter X: Xmodmap

Benötigte Dateien: neo_de.xmodmap

Unter Umständen muss Zeile 79 auskommentiert werden, der Fehler liess sich nicht konsisten rekonstruieren. Ebenen 1–6 sind theoretisch alle verwendbar wenn 79 nicht auskommentiert wurde, aber mehrere Zeichen, besonders die griechischen Zeichen, führen zu interessanten Fehlern.

Aktueller Stand: Funktioniert größtenteils, wer Zeit hat kann gerne helfen.

NetBSD

Konsole mit wscons

Benötigte Dateien: unix/netbsd

NetBSD bietet die Möglichkeit, mapfiles zu laden (siehe /etc/wscons.conf). Der Syntax dieser Files ist der für xmodmap sehr ählich, die Tasten sind aber anders durchnummeriert als unter X.

[1] http://cvsweb.netbsd.org/cgi-bin/cvsweb.cgi/src/sys/dev/pckbport/wskbdmap_mfii.c

Neo unter X: Xkb

Achtung: Diese Anleitung wird nicht so gut gewartet wie die für Linux. Bevor man anfängt, sollte man sich eine Kopie von /usr/X11R7/lib/X11/xkb machen. Man sollte in der Lage sein, von der Konsole aus mit dieser Kopie den Ausgangszustand wiederherzustellen. Unter X mit einer zerschossenen Tastaturbelegung könnte das nämlich schwierig werden.

Neo lässt sich mit NetBSD ähnlich wie unter Linux betreiben. Die folgenden Instruktionen funktionieren für NetBSD-current/i386 auf ungefähr dem Stand von NetBSD-5.0, mit Xorg aus dem Basissystem (also nicht aus pkgsrc).

Zuerst holt man sich http://neo-layout.org/xkb.tgz) und entpackt es. Dann kopiert man die Dateien (als root) an ihren Platz.

tar xzf xkb.tgz
cd xkb
su
umask 022
cp symbols/de /usr/X11R7/lib/X11/xkb/symbols/pc
cp symbols/level5 /usr/X11R7/lib/X11/xkb/symbols
cp symbols/level3 /usr/X11R7/lib/X11/xkb/symbols
cp symbols/shift /usr/X11R7/lib/X11/xkb/symbols
cp types/level5 /usr/X11R7/lib/X11/xkb/types
cp compat/neo_mods /usr/X11R7/lib/X11/xkb/compat
cd /usr/X11R7/lib/X11/xkb/symbols
ln -s pc/latin
ln -s keypad kpdl
rm de
ln -s pc/de

Man ergänzt /usr/X11R7/lib/X11/xkb/types/complete, um types/level5 einzubinden. Die geänderte Datei sieht so aus:

default xkb_types "complete" {
    include "basic"
    include "mousekeys"
    include "pc"
    include "iso9995"
    include "extra"
    include "level5"
};

Man erweitert level5_lock in /usr/X11R7/lib/X11/xkb/compat/neo_mods zu:

partial xkb_compatibility "level5_lock"  {
    virtual_modifiers NumLock,LevelFive;
    interpret ISO_Level5_Lock {
        action = LockMods(modifiers = NumLock);
    };
    interpret ISO_Level5_Shift {
        action = SetMods(modifiers = LevelFive);
    };
};

Man ergänzt /usr/X11R7/lib/X11/xkb/compat/complete, um compat/neo_mods einzubinden. Die geänderte Datei sieht so aus:

default xkb_compatibility "complete"  {
    include "basic"
    augment "iso9995"
    augment "mousekeys"
    augment "accessx(full)"
    augment "misc"
    augment "xfree86"
    augment "neo_mods"
};

Um die Modifikatoren bekannt zu machen sucht man in /usr/X11R7/lib/X11/xkb/rules/xorg diese Zeile:

! option        =       symbols

und schreibt diese darunter:

  shift:both_capslock                =       +shift(both_capslock)
  shift:lshift_both_capslock         =       +shift(lshift_both_capslock)
  shift:rshift_both_capslock         =       +shift(rshift_both_capslock)
  shift:both_capslock_cancel         =       +shift(both_capslock_cancel)
  shift:lshift_both_capslock_cancel  =       +shift(lshift_both_capslock_cancel)
  shift:rshift_both_capslock_cancel  =       +shift(rshift_both_capslock_cancel)
  shift:both_shiftlock               =       +shift(both_shiftlock)
  shift:lshift_both_shiftlock        =       +shift(lshift_both_shiftlock)
  shift:rshift_both_shiftlock        =       +shift(rshift_both_shiftlock)
  lv3:caps_switch                    =       +level3(caps_switch)
  lv3:bksl_switch                    =       +level3(bksl_switch)
  lv3:lsgt_switch                    =       +level3(lsgt_switch)
  lv3:caps_switch_latch              =       +level3(caps_switch_latch)
  lv3:bksl_switch_latch              =       +level3(bksl_switch_latch)
  lv3:lsgt_switch_latch              =       +level3(lsgt_switch_latch)
  lv5:lsgt_switch_numlock            =       +level5(lsgt_switch_numlock)
  lv5:ralt_switch_numlock            =       +level5(ralt_switch_numlock)
  lv5:lwin_switch_numlock            =       +level5(lwin_switch_numlock)
  lv5:rwin_switch_numlock            =       +level5(rwin_switch_numlock)
  lv5:lsgt_switch_numlock_cancel     =       +level5(lsgt_switch_numlock_cancel)
  lv5:ralt_switch_numlock_cancel     =       +level5(ralt_switch_numlock_cancel)
  lv5:lwin_switch_numlock_cancel     =       +level5(lwin_switch_numlock_cancel)
  lv5:rwin_switch_numlock_cancel     =       +level5(rwin_switch_numlock_cancel)

Siehe auch


Neo-Einrichtung auf anderen Systemen
Hauptseite

Note: See TracWiki for help on using the wiki.