Wie kann ich das Tastaturlayout für den Anmeldebildschirm vor der ersten erfolgreichen Anmeldung in CentOS 7 einstellen?

Wie kann ich das Tastaturlayout für den Anmeldebildschirm vor der ersten erfolgreichen Anmeldung in CentOS 7 einstellen?

Mir ist klar, dass durch das Hinzufügen

setxkbmap xxx

Wir können das Tastaturlayout im X-Server ändern. Es kann Logout/Neustart nicht überstehen, also können wir diese Zeile hinzufügen, $HOME/.profileum es verfügbar zu machen, wenn wir uns anmelden, wiediese Fragebeschreibt.

Aber wenn wir das tun, ist das Tastaturlayout vor der Anmeldung immer noch nicht verfügbar. Wenn wir es jetzt verwenden möchten, wie gehen wir vor? Ich verwende GDM auf Centos7.

Was ich versucht habe:

  1. Definieren Sie ein neues Tastaturlayout mit dem Namen symmetriund legen Sie es unter ab /usr/share/X11/xkb/symbols/. Zum Testen können Sie es herunterladenHier.HINWEIS: Ich habe nur das Layout für den X11-Server definiert, noch nicht für die virtuelle Konsole.Vielleicht kann ich es deshalb nicht mit auflisten locatectl list-keymaps, weder mit loadkeys, noch mit Berühren /etc/vconsole.conf.

  2. setxkbmap symmetrium es zu verwenden. Änderungen angewendet. Fügen Sie es ein, /etc/profile.d/symmetri.shum es im Benutzerprofil zu verwenden.

  3. Wenn ich mich abmelde, funktioniert es nicht mehr und ich erhalte die Meldung „QWERTY“.

  4. Ich melde mich mit QWERTY an und verwende danach jetzt Symmetrich, da das Skript bei erfolgreicher Anmeldung ausgelagert wird.

  5. Öffne das Terminal, wechsle zurück zu usby setxkbmap us,

Und dann,

localectl set-x11-keymap symmetri

Diesmal wird das Layout localectl set-keymap symmetriauch nicht geändert.

Antwort1

Sie können verwenden

localectl set-x11-keymap ***

Dies ist dauerhaft für die Konsole und den Desktop, eine detailliertere Konfiguration finden Sie auf der Manpagehttps://www.unix.com/man-page/centos/1/LOCALECTL/

Antwort2

@terdon, Ihre Lösung funktioniert nicht, aber danke für Ihre Hilfe, ich habe mehr gelernt; zuerst habe ich auch vermutet, dass es etwas mit Gnome zu tun hat, aber es stellte sich heraus, dass es nur X11 ist. Und @TimBrandrick, Ihre Lösung sollte in den meisten Fällen funktionieren, aber in meinem Fall nicht, bevor ich mein Tastaturlayout in hinzugefügt habe .../X11/xkb/rules/evdev.xml(und nur für den Fall, .../X11/xkb/rules/evdev.lst, denn laut einigen Quellen lstist die Datei die kompilierte Version von xml, aber ich bezweifle, dass alle Prozesse, die von diesen Dateien abhängen, nur Dateien lesen xml; also füge ich beides hinzu. Tatsächlich xmlenthält mehr Informationen als lst, ist aber lstleichter zu verstehen.)

So habe ich es gemacht:

1. Öffnen Sie .../X11/xkb/rules/evdev.xml.

(Ich lasse den ersten Teil weg, weil er sich zwischen den Distributionen unterscheidet. In CentOS 7 liegt er unter /usr/share/; in Ubuntu <= 8.08 liegt er unter /etc/. 1 Seltsam. )

2. Fügen Sie am Ende der untergeordneten Knoten <layoutList>diesen Teil hinzu:

(ändern Sie es nach Bedarf, es ist nur eine Vorlage)

<layout>
  <configItem>
    <name>symmetri</name>
    <shortDescription>symmetri</shortDescription>
    <description>Symmetri (CN, EN and ES)</description>
    <languageList>
      <iso639Id>us</iso639Id>
    </languageList>
  </configItem>
  <variantList>
    <variant>
      <configItem>
        <name>non-prog</name>
        <shortDescription>non-prog</shortDescription>
        <description>Symmetri for non-programmer (CN, EN and ES)</description>
        <languageList>
          <iso639Id>us</iso639Id>
        </languageList>
      </configItem>
    </variant>
  </variantList>
</layout>

Wenn Ihr Tastaturlayout keine Variante hat, <variantList>kann ein Teil selbstschließend sein, wie: <variantList />.

Hinweis: iso639IdDer Wert sollte mit dem ISO-Standard 639-1 oder 639-2 kompatibel sein. 1 Die vollständige Tabelle finden Sie auch in Referenz 1. Außerdem muss sie Ihren lokalen Einstellungen entsprechen. Ich habe sie English(U.S)als meine Systemsprache festgelegt und trage sie daher ushier ein.

3. Speichern Sie es und öffnen Sie es .../X11/xkb/rules/evdev.lst.

4. Fügen Sie am Ende ! layoutden Namen Ihres Layouts hinzu. Etwa:

symmetri        Symmetri layout (CN, EN and ES)

5. Wenn Ihr Tastaturlayout eine Variante hat, ! variantfügen Sie diese am Ende ebenfalls hinzu.

non-prog        symmetri: non-programmer

Der Name der Variante sollte mit den obigen Informationen in der XML-Datei übereinstimmen. (Während ich teste, localectl list-x11-keymap-variantswirdnurdiese Datei lesen, anstatt die XML zu lesen, sollte ein Fehler/Bug sein.)

6. Sie können dasselbe mit base.xmlund machen base.lst, aber ich habe es zuerst gemacht und es funktioniert nicht.

7. Stellen Sie Ihr Tastaturlayout ein mit:

setxkbmap symmetri

oder verwenden Sie zum Festlegen der Variante:

setxkbmap symmetri -variant non-prog 

localectlkönnen list-x11-keymap-layoutsund list-x11-keymap-variants, aber Sie können damit keine Variante festlegen; nur setxkbmapkönnen.

Mit dieser Einstellungnach dem Neustart und vor der ersten Anmeldung, Sie haben Ihr neues Tastaturlayout(allerdings wird die Variante nicht bestehen bleiben!! Nur das Grundlayout wird bleiben!) Aber nach erfolgreicher Anmeldung übernimmt der Desktop-Manager, und wenn Sie das neue Tastaturlayout nicht in der Datei $HOME/.bashrc/ $HOME/.profile(für Einzelbenutzer)/ /etc/profile.d/xxx.sh/ /etc/profile(für alle Benutzer) konfigurieren, werden Sienichterhalten Sie Ihr neues Tastaturlayout, sobald Sie sich abmelden und wieder anmelden!!!! Diese Änderungen werden alsonurbestehen bleiben, bevor die erste erfolgreiche Anmeldung erfolgt ... Sie müssen .bashrcProfilskripte verwenden, um dem X-Server mitzuteilen: „Nicht nur vor der Anmeldung, sondern auch nach der Anmeldung möchte ich es für alle Benutzer!“ Vorsicht: Mit dieser Änderung bleibt das Layout das geänderte, nicht, auch wenn Sie sich abmelden und den Benutzer ändern qwerty(us).

Wirklich frustrierend … es muss einen einfacheren Weg geben, aber ich kann ihn nicht finden.

Referenzen: (unbedingt lesen)

  1. http://people.uleth.ca/~daniel.odonnell/Blog/custom-keyboard-in-linuxx11

verwandte Informationen