Ich richte openbox auf meinem Laptop unter Linux Mint 13 ein. Ich möchte, dass meine Feststelltaste als zusätzliche Steuertaste fungiert. Ich habe die erforderlichen Einstellungen in meine ~/.Xmodmap
Datei eingefügt und sie durch Ausführen überprüft
xmodmap ~/.Xmodmap
Es funktioniert richtig.
Wenn ich mich jedoch wieder bei meiner Openbox-Sitzung anmelde, sind diese Schlüsseländerungen nicht vorhanden. Wenn Sie den obigen xmodmap
Befehl ausführen, funktioniert er wieder, aber ich möchte, dass er beim Start automatisch ausgeführt wird.
Interessant ist, dass ich zenity
meiner ~/.config/openbox/autostart
Datei einen Testbefehl wie folgt hinzugefügt habe
zenity --info --text=Hello
Dies erzeugt ein kleines Dialogfenster und wird erst beendet, nachdem der Dialog geschlossen wurde.
Wenn ich mich jetzt wieder bei meiner Openbox-Sitzung anmelde, fungiert die Feststelltaste als Strg-Taste, bis der Zenity-Dialog geschlossen wird. Sobald dieser Dialog geschlossen ist, kehrt die Feststelltaste zu ihrem Standardverhalten zurück.
Ich habe mit Google nichts dazu gefunden, daher bitte ich hier um Hilfe. Habt ihr irgendwelche Ideen, was schief gehen könnte?
Aktualisieren:
Ich habe versucht, dies herauszufinden, und in meinen Experimenten habe ich meine /usr/bin/xmodmap
Datei kopiert /usr/bin/xmodmap_
und durch /usr/bin/xmodmap
das folgende Bash-Skript ersetzt
#!/bin/bash
{
echo '-------'
date
echo xmodmap "$@"
} >> ~/xmodmap-calls
exec /usr/bin/xmodmap_ "$@"
Jedes Mal, wenn ein verdammtes Skript auf dem System ausgeführt wird xmodmap
, lerne ich es kennen.
Damit melde ich mich neu an und finde nur einen Eintrag in meiner ~/xmodmap-calls
Datei, der meinen ausführt ~/.Xmodmap
, der erwartet wird. Also dachte ich xmodmap
, es ist nicht so, dass meine Änderungen überschrieben werden.
Als nächstes führte mich ein bisschen googeln in den setxkbmap
Befehl ein, der anscheinend auch das Gleiche tun kann. Ich habe diese ausführbare Datei auch ersetzt, ähnlich wie oben bei xmodmap. Und ich habe den Täterbefehl bekommen!
setxkbmap -option terminate:ctrl_alt_bksp
Ich habe absolut keine Ahnung, was das bewirkt, aber nach dem Ausführen xmodmap ~/.Xmodmap
(wodurch meine Einstellungen korrekt angewendet wurden) werden meine Änderungen zurückgesetzt, wenn ich den obigen Befehl ausführe! Edit : Das wird wirklich lustig. Nur ein setxkbmap
Befehl ohne Argumente, überschreibt glücklich meine Änderungen durch den xmodmap ~/.Xmodmap
Befehl.
Jetzt muss ich zwei Dinge herausfinden, woher das kommt setxkbmap
und warum und wie man das behebt. Ich bin immer noch im Ermittlungsverfahren, könnte aber ernsthaft Hilfe gebrauchen :)
Update 2
Zum Teufel mit xmodmap
. Ich kann nicht herausfinden, woher das setxkbmap
aufgerufen wird, aber ich habe eine Möglichkeit gefunden, mithilfe des setxkbmap
Befehls meine Feststelltaste als Strg zu verhalten.
setxkbmap -option ctrl:nocaps
Kurz vor dem Start von openbox. Funktioniert hervorragend. Die Feststelltaste bleibt als Strg-Taste erhalten. xmodmap
wird nie ausgeführt.
Ich werde diese Frage hier offen halten, damit jemand, der diese Dinge kennt, einen Einblick geben kann. Auch für Leute, die sich dem nach mir stellen :)
Update 3
Hier ist der Inhalt von mir .config/openbox/autostart
, wie von pedrosaurio angefordert.
#!/bin/bash
# Set the wallpaper.
feh --bg-scale /wall.png
# Set default brightness.
xbacklight -time 1 '=40'
# Compositing.
xcompmgr &
# The panel.
tint2 &
# Start a terminal too.
roxterm &
Soweit ich das beurteilen kann, hat dies nichts mit der Tastatur zu tun. Hier ist auch das Skript, mit dem meine Sitzung gestartet wird: (Von lightdm ausgeführt)
#!/bin/bash
setxkbmap -option ctrl:nocaps
exec openbox-session
quelle
autostart
Datei posten ?Antworten:
Ich hatte ein ähnliches Problem. Es stellte sich heraus, dass es durch ibus verursacht wurde. Ich habe es einfach deinstalliert, da ich seine Dienste nicht benötige.
Ich habe den Schuldigen gefunden, indem ich Ihren Trick verwendet habe, setxkbmap durch ein Skript zu ersetzen, aber ich habe auch hinzugefügt
ps -AF --forest
, um den Aufrufer von setxkbmap zu identifizieren.quelle
Ohne Ihr Autostart-Skript zu kennen, wette ich, dass Sie nicht die richtige Syntax verwenden, indem Sie Ihre Befehle mit dem kaufmännischen Und (
&
) im Hintergrund ausführen lassen .Versuchen Sie, Ihre
.config/openbox/autostart
Datei so zu bearbeiten , dass sie folgendermaßen aussieht:Wenn Sie Zweifel haben, schauen Sie im Openbox-Wiki nach, wie alle Beispiele
&
nach jedem Eintrag aussehen .http://openbox.org/wiki/Help:Autostart
quelle
xmodmap ~/.Xmodmap
in dieser Datei (ohne eine&
, schien nicht notwendig). Ich habexmodmap
(und jetztsetxkbmap
) das Skript aufgerufen, das meine Openbox-Sitzung startet. Kurz vor dem Ausführen führeexec openbox-session
ich densetxkbmap
Befehl aus.sleep 1
Verzögerung hinzufüge , damit diexmodmap
Änderungen übernommen werden, nachdem alles andere geladen wurde, ist dies zwar die meiste Zeit möglich, aber ich fühle mich nicht zu sicher in Bezug auf die Lösung. Ich würde es lieber nicht tun, wenn ich Alternativen habe.sleep
Befehl vermeiden , dennoch&
ist das nach jedem Eintrag notwendig, sonst werden alle Programme nach dem ersten Eintrag überhaupt nicht ausgeführt.&
wird das Blockieren einer App / eines Prozesses blockiert. Ich habe dieses Verhalten mit demzenity
Befehl verwendet, um festzustellen, dass meinexmodmap
Änderungen nachautostart
Abschluss überschrieben werden . Mein Autostart wird jetzt größer und wird gleich in die Frage eingefügt. Es hat jedoch nichts mit der Tastatur zu tun.xmodmap
überschrieben, sobald die Autostart-Datei beendet ist.