Da mein Tastaturlayout nicht zu mir passt, starte ich xmodmap
beim Login. Das Skript trägt den Namen .profile
und wird in Ordnung ausgeführt, unterbricht jedoch die Unity-Schnittstelle.
Ich möchte wissen, wo ich die xmodmap
Zeile platzieren soll, damit sie bei meinem Login ausgeführt wird und nichts kaputt geht.
Ich habe bereits versucht, es in die .bash_login
und .bash_profile
-Dateien zu stellen, ohne Erfolg ( xmodmap
meine Tastatur wird nicht eingestellt).
Welche Möglichkeiten habe ich?
xmodmap
key-binding
Thiago Moraes
quelle
quelle
Antworten:
Der richtige Ort zum Speichern
xmodmap ~/.Xmodmap
(damit Ihre Änderungen beim Start gelesen werden) befindet sich in~/.xinitrc
(siehe Erklärung unten), obwohl Sie denxmodmap
Befehl alternativ als Startelement (/usr/bin/xmodmap /home/user/.Xmodmap
) platzieren könnten . Ich kann für 12.04 (und vermutlich 12.10) sagen, dass diese beiden Alternativen definitiv funktionieren, da sie so oder so gelesen werden, nachdem Sie sich mit eingeloggt habenlightdm
. (Ich habe Return to Right Shift geändert und die Änderung wurde erst wirksam, nachdem ich mein Passwort eingegeben und mich angemeldet hatte.)Bitte beachten Sie: Wenn Sie auf Xfce sind, wird in den offiziellen Xfce-FAQ darauf hingewiesen, dass Sie möglicherweise ein Startelement erstellen müssen, anstatt es zu verwenden
~/.xinitrc
, und dass Sie möglicherweise die Ausführung verzögern müssen, damit diexmodmap
Änderungen nicht von überschrieben werdensetxkbmap
. Sie können eine Verzögerung verwenden, um dies in Ihrem Starteintrag zu erreichen:(Für den Startup-Eintrag müssen absolute Pfade angegeben werden)
Jedes Mal
setxkbmap
, wenn das Tastaturlayout geändert wird, müssen Sie esxmodmap ~/.Xmodmap
im Terminal erneut ausführen .Erstellen
~/.xinitrc
Erstellen Sie eine Datei in Ihrem Home-Ordner
.xinitrc
mit dem Namenund platziere darin:
Ihre
Xmodmap
Datei sollte keine Einträge in demxmodmap -e " "
Stil enthalten, der im Terminal zum vorübergehenden Festlegen der Werte verwendet wird. Es muss Einträge in diesem Format haben:Es ist oft verwirrend, welche der verschiedenen
X
Dateien (wie z. B..xprofile
,.xinitrc
usw.) beim Start gelesen werden,.xinitrc
scheint aber unter 12.04 noch gelesen zu werden, wohingegen sie von sich aus gelesen werden.Xmodmap
oder.xinputrc
nicht.quelle
xmodmap -e '...
, das richtige Format fürxmodmap .Xmodmap
mit abrufen könnenxmodmap -pke
, wodurch das aktuelle Mapping ausgedruckt wird. Sie sollten dies jedoch auf die Zeilen beschränken, die für die vorgenommenen Änderungen gelten.Ich verwende ElementaryOS (mit seinem GNOME-basierten Fenstermanager) und habe mithilfe von
xdg
Autostart-Skripten eine Lösung gefunden . Viele Fenstermanager verwenden xdg, daher gehe ich davon aus, dass dieser Ansatz auch in anderen Umgebungen funktioniert. Zumindest sollte es mit GNOME funktionieren.xdg führt Skripte
~/.config/autostart
beim Anmelden in einer X-Sitzung aus. Fügen Sie das folgende Skript hinzu, um xmodmap config beim Anmelden zu laden~/.config/autostart/xmodmap.desktop
:Melden Sie sich dann ab und wieder an, und Ihre Xmodmap-Konfiguration sollte geladen worden sein.
Wenn es nicht funktioniert, versuchen Sie, xmodmap im Terminal auszuführen, um festzustellen, ob xmodmap sich beschwert:
Wenn Sie keine Fehlermeldung erhalten, führen Sie zum Debuggen den folgenden Befehl aus:
quelle
~/.xinitrc
Datei fehlgeschlagen war. Wie hxpax betonte, können Mint-Benutzer (wahrscheinlich die meisten / alle von Debian abgeleiteten Linuxe) einen GUI-Dialog verwenden, um Autostart-Einträge hinzuzufügenMain Menu --> Preferences --> Startup Applications
.Ich habe gerade nicht die Unity-Oberfläche vor mir, aber versuche, auf die Anwendungsschaltfläche im Launcher zu klicken, und tippe dann startup ein. Es sollte eine App namens Startup Applications (oder eine solche) geben. Klicken Sie darauf und fügen Sie Ihren xmodmap-Befehl hinzu (z
xmodmap /home/thiago/.Xmodmap
. B. ).quelle
xmodmap .Xmodmap
Auf Mint 17/18 kann ich das erreichen, indem ich meine Skripte mit einer Verzögerung von 1 Sekunde in die Startup-Anwendung starte.
Da Mint 18 von Ubuntu 1604 abgeleitet ist, können Sie das Gleiche tun oder zuerst das Startup Application Managing Panel installieren, wenn es nicht vorhanden ist.
Ich hoffe es hilft.
quelle
Ich hatte nicht viel Freude mit den oben genannten Vorschlägen (die .bashrc-Option war nicht wirklich brauchbar, da sie xmodmap auf jedem neuen Terminal ausführt)
Ich habe ein Skript berührt, das
xmodstartup.sh
in meinem privaten Ordner aufgerufen wurdemit gespart habe ich es dann gemacht
sudo chmod +x xmodstartup.sh
dann habe ich einfach die ausführbare Datei zum Fenster "Startanwendungseinstellungen" von gnome hinzugefügt. bish bosh, Englisches Layout y Español on
altgr
:)quelle
Das Einfügen von xmodmap-Änderungen in
~/.bashrc
oder unterbricht/etc/bash.bashrc
nichts.Der einzige Nachteil ist, dass man nach jedem Start ein Terminal öffnen muss, um es zu aktivieren.
quelle