Arch Linux auf Deutsch stellen: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K en_DK gemäß Diskussion raus - wer es spezifizieren will, wird schon wissen was zu tun ist ...
 
(61 dazwischenliegende Versionen von 24 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Einleitung==
Hier wird beschrieben, wie man unter Arch Linux ein auf UTF-8 basierendes System mit deutschem Tastaturlayout erhält. Die folgenden Arbeiten müssen als root ausgeführt werden! Wichtig: ALLE Schritte müssen gemacht werden.


Hier wird beschrieben, wie man unter Arch Linux ein auf UTF-8 basierendes System mit deutschem Tastaturlayout erhält.
== Grundkonfiguration==
=== Deutsches Deutsch ===
echo LANG=de_DE.UTF-8 > /etc/locale.conf
echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime


==Konfiguration==
Wenn Akzent-Zeichen wie {{ic|é}}, {{ic|è}}, {{ic|â}} benutzt und z. B. aus {{taste|'}} und {{taste|E}} zusammengesetzt werden sollen, muss {{ic|1=KEYMAP="de-latin1"}} verwendet werden.


Die folgenden Arbeiten müssen als root ausgeführt werden! Wichtig: ALLE Schritte müssen gemacht werden.
=== Schweizerisches Deutsch ===
Für ein System, das auf „schweizerischem Deutsch“ betrieben werden soll, sind geringfügig andere Optionen nötig.


===/etc/rc.conf===
echo LANG=de_CH.UTF-8 > /etc/locale.conf
echo KEYMAP=de_CH-latin1 > /etc/vconsole.conf
ln -s /usr/share/zoneinfo/Europe/Zurich /etc/localtime


/etc/[[rc.conf]] mit einem Editor öffnen (z.B. nano). Und folgendermaßen editieren:
=== Österreichisches Deutsch ===
Österreichische Systeme werden analog dazu wie folgt konfiguriert.


  LOCALE="de_DE.utf8"
echo LANG=de_AT.UTF-8 > /etc/locale.conf
  HARDWARECLOCK="localtime"
echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf
  TIMEZONE=Europe/Berlin
ln -s /usr/share/zoneinfo/Europe/Vienna /etc/localtime
  KEYMAP="de-latin1-nodeadkeys"


*Bezüglich "nodeadkeys" bitte unten "Anmerkung:" beachten; will man doch deadkeys, einfach "de-latin1"
Im Beispiel mit deutschem Tastaturlayout.


Diese Einstellungen sollten für Deutschland gesetzt werden. Für die Schweiz gibt es minimale Änderungen.  
Für alle Varianten: Falls die Tastatureinstellung durch direktes Schreiben der Datei <code>/etc/vconsole</code> nicht funktioniert, mit dem Befehl <code>localectl</code> versuchen (siehe weiter unten).


  LOCALE="de_CH.utf8"
== Hardwareuhr ==
  HARDWARECLOCK="localtime"
Die Hardwareuhr sollte auf die UTC Zeit eingestellt sein, ansonsten könnte es unter Umständen zu Problemen mit Programmen kommen, die als Grundlage die Hardwareuhr verwenden, und UTC voraussetzen.
  TIMEZONE=Europe/Zurich
  KEYMAP="sg-latin1"


===/etc/locale.gen===
timedatectl set-local-rtc 0


/etc/locale.gen wieder in einem Editor öffnen, nun alles auskommentieren und das Kommentierungszeichen (#) vor dem gewünschten Indentifer entfernen. In unserem Fall wäre das:
Die lokale Uhrzeit wird anhand der Zeitzonenangabe (siehe vorheriger Abschnitt) aus der UTC-Zeit berechnet.


  ...
== Locales ==
  de_DE.UTF-8    UTF-8
Damit die [[Locale]]s auch verwendet werden können, müssen diese noch generiert werden. Die gewünschten Locales werden in der Datei {{ic|/etc/locale.gen}} aktiviert. In der Datei befinden sich alle generierbaren Locales. Vor den gewünschten Angaben muss das Kommentarzeichen entfernt werden.
  de_DE  ISO-8859-1
  de_DE@euro      ISO-8859-15
  ...


Wiederum für die Schweiz
de_DE.UTF-8 UTF-8    # Für Deutschland
de_CH.UTF-8 UTF-8    # Für die Schweiz
de_AT.UTF-8 UTF-8    # Für Österreich


  ...
=== Generieren ===
  de_CH.UTF-8    UTF-8
Nach der Konfiguration werden die Locales dann generiert.
  de_CH  ISO-8859-1
  de_DE@euro      ISO-8859-15
  ...


Es empfiehlt sich immer alle, z.B. de_DE, resp. de_CH Locales zu aktivieren, um mögliche Probleme zu vermeiden.
{{hc|locale-gen|
Generating locales...
de_DE.UTF-8... done
Generation complete.}}


Nun führt man den Befehl "locale-gen" aus
Spätestens nach einem Neustart ergibt sich beim Überprüfen nun folgendes Bild.


  [root@Arch niclas]# locale-gen
{{hc|1=locale|2=
  Generating locales...
LANG=de_DE.UTF-8
  de_DE.UTF-8... done
LC_CTYPE="de_DE.UTF-8"
  de_DE.ISO-8859-1... done
LC_NUMERIC="de_DE.UTF-8"
  de_DE.ISO-8859-15@euro... done
LC_TIME="de_DE.UTF-8"
  Generation complete.
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=}}


So in etwa sollte der Output aussehen. Nun neustarten und das System sollte nun auf UTF-8 laufen.
Das Setzen der LC-Variablen kann systemweit in {{ic|/etc/locale.conf}}, oder useraccountbezogen in {{ic|~/.config/locale.conf}} vorgenommen werden.


Nach Eingabe von ''locale'' und einem Neustart des Rechners sollte dann folgendes erscheinen, schweizerdeutsche Version ähnlich:
  export LC_DATE=de_DE.utf8
LANG=de_DE.utf8
  export LC_NUMERIC=de_DE.utf8
  LC_CTYPE="de_DE.utf8"
  export LC_TIME=de_DE.utf8
  LC_NUMERIC="de_DE.utf8"
  export LANG=de_DE.utf8
  LC_TIME="de_DE.utf8"
  LC_COLLATE=C
LC_MONETARY="de_DE.utf8"
LC_MESSAGES="de_DE.utf8"
LC_PAPER="de_DE.utf8"
LC_NAME="de_DE.utf8"
LC_ADDRESS="de_DE.utf8"
LC_TELEPHONE="de_DE.utf8"
LC_MEASUREMENT="de_DE.utf8"
LC_IDENTIFICATION="de_DE.utf8"
LC_ALL=


===X.org===
Nach Änderungen sollte man sich zumindest einmal ab- und wieder anmelden.


====Konfiguration über HAL====
== X.org ==
Seit X.org 7.4 werden Eingabegeräte automatisch erkannt und mit Hilfe des HAL-Daemons konfiguriert. Dabei wird [[evdev]] als Treiber verwendet.
[[X]] nutzt [[udev]] zur Erkennung von Eingabegeräten. Diese können unter {{ic|/etc/X11/xorg.conf.d/}} konfiguriert werden. Ein deutsches Tastaturlayout wird für alle angeschlossenen Tastaturen mit dem Anlegen der Datei {{ic|/etc/X11/xorg.conf.d/00-keyboard.conf}} definiert.


Dazu muss die Datei ''10-keymap.fdi'' nach /etc/hal/fdi/policy kopiert
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "de"
        Option "XkbVariant" "deadgraveacute"
EndSection


  cp /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi /etc/hal/fdi/policy/10-keymap.fdi
Das Schweizer Layout erreicht man mittels {{ic|Option "XkbLayout" "ch"}}. Bei Verwendung einer Tastatur mit Deutschem Layout kann man {{ic|Option "XkbVariant" "de"}} belassen.


und folgendermaßen editiert werden:
Mit der {{ic|Option "XkbVariant" "deadgraveacute"}} werden nur die Gravis ({{ic|`}}) und Akut ({{ic|´}}) Taste als "dead key" behandelt und der Zirkumflex ({{ic|^}}) nicht. Bei einem "dead key" wird erst einen Tastendruck später ein Buchstabe erstellt, womit man {{ic|Café}} anstatt {{ic|Caf´e}} schreibt.


  <merge key="input.xkb.layout" type="string">de</merge>
Anschließend muss X neugestartet werden.


Wenn auch die Keyboard-Variante nodeadkeys gewünscht ist dann:
== localectl ==
Anstatt die Konfigurationsdateien manuell zu bearbeiten, kann auch {{ic|localectl}} genutzt werden.


  <merge key="input.xkb.layout" type="string">de</merge>
=== Aktuelle Einstellungen anzeigen ===
   <merge key="input.xkb.variant" type="string">nodeadkeys</merge>
{{hc|localectl status|2=
System Locale: LANG=de_DE.UTF-8
              LANGUAGE=de_DE
    VC Keymap: de-latin1-nodeadkeys
  X11 Layout: de
    X11 Model: pc105
   X11 Variant: nodeadkeys}}


Anschließend müssen '''hal''' und '''X''' neugestartet werden.
=== Tastaturlayout einstellen ===
==== Deutsches Deutsch ====
localectl --no-convert set-keymap de-latin1-nodeadkeys


====Konfiguration über xorg.conf====
localectl --no-convert set-x11-keymap de pc105 deadgraveacute


Um die alte Konfigurationsmöglichkeit von X.org zu verwenden muss der Datei '''/etc/X11/xorg.conf''' folgendes hinzugefügt werden:
==== Schweizer Deutsch ====
Es scheint, dass die Untersektion {{ic|de_sundeadkeys}} aus dem {{ic|ch}} Key-Mapping mit Update vom 17.02.2021 entfernt wurde. Der bisherige {{ic|localectl}} Befehl meldet:
Failed to set keymap: Specified keymap cannot be compiled, refusing as invalid.
Nachfolgend die aktuellen Befehle:
localectl --no-convert set-keymap de_CH-latin1


  Section "ServerFlags"
  localectl --no-convert set-x11-keymap ch pc106
    Option "AutoAddDevices" "False"
    Option "AutoEnableDevices" "false"
EndSection


Zudem müssen in der Datei die Einträge XkbLayout und XkbVariant angepasst werden.
Allerdings hat das Key-Mapping (nach wie vor?) den Fehler, dass {{ic|AltGr}}{{ic|-1}} einen Bar (|) anstatt des Broken-Bars (¦) produziert.


Section "InputDevice"
Die Einstellungen werden in {{ic|/etc/vconsole.conf}} und {{ic|/etc/X11/xorg.conf.d/00-keyboard.conf}} gespeichert. Manuelle Änderungen an diesen Dateien werden beim nächsten Aufruf von localectl überschrieben.
Identifier    "Keyboard0"
Driver        "keyboard"
Option        "XkbLayout" "de"
Option        "XkbVariant" "nodeadkeys"
EndSection


Die Option {{ic|--no-convert}} verhindert, dass set-keymap auch das Xorg Layout ändert. Beziehungsweise set-x11-keymap das Layout für die Konsole. Mehr Optionen {{ic|man localectl}}.


'''Anmerkung:''' Den Eintrag "Option        "XkbVariant" "nodeadkeys"" sollte man auf jeden Fall weglassen, wenn man auch schon mal Akzente setzen können will (z. B. á à é í ó ú ñ ô usw.). Ohne nodeadkeys kann man diese nämlich ganz einfach eingeben, indem man erst die Akzent-Taste (die zwischen ß und backspace) oder die Tilde betätigt, und dann den gewünschten Buchstaben eintippt.
==Siehe auch==
Nachteil: Ohne nodeadkeys muss man zum eingeben z. B. einer einfachen Tilde ~ diese zweimal drücken, da beim ersten drücken noch gewartet wird, ob nicht doch noch z. B. ein ñ daraus werden sollte ...
* [[Xorg]]
* [[Locale]]


==Tipps und Tricks==
== Weblinks ==
Wer mc nutzt sollte mc-utf8 aus [community] installieren.
* {{wikipedia|ISO_8601|ISO 8601 im Detail}} {{sprache|de}}
* [https://lh.2xlibre.net/locale/de_DE/ ''Locale Helper'' über {{ic|de_DE}}] {{sprache|en}}


[[Kategorie:Lokalisation]]
[[Kategorie:Konfiguration]]

Aktuelle Version vom 9. Juli 2021, 09:13 Uhr

Hier wird beschrieben, wie man unter Arch Linux ein auf UTF-8 basierendes System mit deutschem Tastaturlayout erhält. Die folgenden Arbeiten müssen als root ausgeführt werden! Wichtig: ALLE Schritte müssen gemacht werden.

Grundkonfiguration

Deutsches Deutsch

echo LANG=de_DE.UTF-8 > /etc/locale.conf
echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime

Wenn Akzent-Zeichen wie é, è, â benutzt und z. B. aus ' und E zusammengesetzt werden sollen, muss KEYMAP="de-latin1" verwendet werden.

Schweizerisches Deutsch

Für ein System, das auf „schweizerischem Deutsch“ betrieben werden soll, sind geringfügig andere Optionen nötig.

echo LANG=de_CH.UTF-8 > /etc/locale.conf
echo KEYMAP=de_CH-latin1 > /etc/vconsole.conf
ln -s /usr/share/zoneinfo/Europe/Zurich /etc/localtime

Österreichisches Deutsch

Österreichische Systeme werden analog dazu wie folgt konfiguriert.

echo LANG=de_AT.UTF-8 > /etc/locale.conf
echo KEYMAP=de-latin1-nodeadkeys > /etc/vconsole.conf
ln -s /usr/share/zoneinfo/Europe/Vienna /etc/localtime

Im Beispiel mit deutschem Tastaturlayout.

Für alle Varianten: Falls die Tastatureinstellung durch direktes Schreiben der Datei /etc/vconsole nicht funktioniert, mit dem Befehl localectl versuchen (siehe weiter unten).

Hardwareuhr

Die Hardwareuhr sollte auf die UTC Zeit eingestellt sein, ansonsten könnte es unter Umständen zu Problemen mit Programmen kommen, die als Grundlage die Hardwareuhr verwenden, und UTC voraussetzen.

timedatectl set-local-rtc 0

Die lokale Uhrzeit wird anhand der Zeitzonenangabe (siehe vorheriger Abschnitt) aus der UTC-Zeit berechnet.

Locales

Damit die Locales auch verwendet werden können, müssen diese noch generiert werden. Die gewünschten Locales werden in der Datei /etc/locale.gen aktiviert. In der Datei befinden sich alle generierbaren Locales. Vor den gewünschten Angaben muss das Kommentarzeichen entfernt werden.

de_DE.UTF-8 UTF-8    # Für Deutschland
de_CH.UTF-8 UTF-8    # Für die Schweiz
de_AT.UTF-8 UTF-8    # Für Österreich

Generieren

Nach der Konfiguration werden die Locales dann generiert.

locale-gen
Generating locales...
de_DE.UTF-8... done
Generation complete.

Spätestens nach einem Neustart ergibt sich beim Überprüfen nun folgendes Bild.

locale
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

Das Setzen der LC-Variablen kann systemweit in /etc/locale.conf, oder useraccountbezogen in ~/.config/locale.conf vorgenommen werden.

export LC_DATE=de_DE.utf8
export LC_NUMERIC=de_DE.utf8
export LC_TIME=de_DE.utf8
export LANG=de_DE.utf8

Nach Änderungen sollte man sich zumindest einmal ab- und wieder anmelden.

X.org

X nutzt udev zur Erkennung von Eingabegeräten. Diese können unter /etc/X11/xorg.conf.d/ konfiguriert werden. Ein deutsches Tastaturlayout wird für alle angeschlossenen Tastaturen mit dem Anlegen der Datei /etc/X11/xorg.conf.d/00-keyboard.conf definiert.

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "de"
        Option "XkbVariant" "deadgraveacute"
EndSection

Das Schweizer Layout erreicht man mittels Option "XkbLayout" "ch". Bei Verwendung einer Tastatur mit Deutschem Layout kann man Option "XkbVariant" "de" belassen.

Mit der Option "XkbVariant" "deadgraveacute" werden nur die Gravis (`) und Akut (´) Taste als "dead key" behandelt und der Zirkumflex (^) nicht. Bei einem "dead key" wird erst einen Tastendruck später ein Buchstabe erstellt, womit man Café anstatt Caf´e schreibt.

Anschließend muss X neugestartet werden.

localectl

Anstatt die Konfigurationsdateien manuell zu bearbeiten, kann auch localectl genutzt werden.

Aktuelle Einstellungen anzeigen

localectl status
System Locale: LANG=de_DE.UTF-8
               LANGUAGE=de_DE
    VC Keymap: de-latin1-nodeadkeys
   X11 Layout: de
    X11 Model: pc105
  X11 Variant: nodeadkeys

Tastaturlayout einstellen

Deutsches Deutsch

localectl --no-convert set-keymap de-latin1-nodeadkeys
localectl --no-convert set-x11-keymap de pc105 deadgraveacute

Schweizer Deutsch

Es scheint, dass die Untersektion de_sundeadkeys aus dem ch Key-Mapping mit Update vom 17.02.2021 entfernt wurde. Der bisherige localectl Befehl meldet:

Failed to set keymap: Specified keymap cannot be compiled, refusing as invalid. 

Nachfolgend die aktuellen Befehle:

localectl --no-convert set-keymap de_CH-latin1
localectl --no-convert set-x11-keymap ch pc106

Allerdings hat das Key-Mapping (nach wie vor?) den Fehler, dass AltGr-1 einen Bar (|) anstatt des Broken-Bars (¦) produziert.

Die Einstellungen werden in /etc/vconsole.conf und /etc/X11/xorg.conf.d/00-keyboard.conf gespeichert. Manuelle Änderungen an diesen Dateien werden beim nächsten Aufruf von localectl überschrieben.

Die Option --no-convert verhindert, dass set-keymap auch das Xorg Layout ändert. Beziehungsweise set-x11-keymap das Layout für die Konsole. Mehr Optionen man localectl.

Siehe auch

Weblinks