Ungerades Verhalten mit Ubuntu 16.04-Startanwendungen

1294
nicorellius

Ich habe mehrere Startanwendungen:

user@host:~$ ls -l .config/autostart/ . . . . . . XXX.desktop . . . YYY.desktop . . . ZZZ.desktop . . . setxkbmap.desktop 

Dazu gehört ein Befehl zum Deaktivieren der Feststelltaste:

setxkbmap -option caps:none

Wenn ich versuche, diese Startbefehle mit zu bearbeiten sleep, scheinen sie nicht zu funktionieren:

sleep 20; setxkbmap -option caps:none

oder...

sleep 20 && setxkbmap -option caps:none

Zweitens: Wenn ich den sleep-Befehl von allen Startbefehlen entferne und dann den Caps Lock-Befehl zum Deaktivieren an die Spitze der Liste setze, funktioniert er nicht, aber die anderen ...

Alle Befehle, die im Terminal außerhalb von Startanwendungen ausgeführt werden, funktionieren einwandfrei. Daher bin ich nicht sicher, warum sie beim Booten nicht funktionieren.

AKTUALISIEREN

Basierend auf @ Xen2050s Antwort habe ich die von ihm vorgeschlagenen Methoden in eine praktikable Lösung umgewandelt. Für zwei der Startbefehle verwende ich dieses Formular:

bash -c "sleep 20; specific_command"

Und die anderen habe ich als Standardstartbefehle hinterlassen. Dies ist in Ordnung, da der Computer schneller startet und der Befehl zum Deaktivieren der Feststelltaste dauerhaft funktioniert.

UPDATE 2

Hat einige zusätzliche Nachforschungen angestellt und herausgefunden, dass dies xkbwahrscheinlich die beste Methode zum Deaktivieren der Feststelltaste ist. Da es sich bei dieser Frage um Startanwendungen handelte, ist die akzeptierte Antwort gültig. Wenn jedoch noch jemand anderes nach dem Deaktivieren der Feststelltaste auf Ubuntu 16.04 sucht, finden Sie hier einige nützliche Tipps:

Ich habe mit dem Editieren gearbeitet /usr/share/X11/xkb/symbols/pc, aber ich denke, dass die Verwendung von Benutzerüberschreibungen wahrscheinlich der richtige Weg ist, um dies zu tun (wie @quixotic vorgeschlagen):

Lassen Sie das Terminal erkennen, dass PageUp und PageDown anderen Tasten zugeordnet sind

1
GNOME mag es, xkb-Einstellungen selbst zu übernehmen, daher müssen Sie entweder [GNOME davon überzeugen, Ihre Einstellungen zu verwenden] (http://unix.stackexchange.com/questions/66624/where-is-xkb-getting-its-configuration ) oder [GNOME davon überzeugen, die Tastatureinstellungen allein zu lassen] (http://askubuntu.com/a/582498). Zum Anpassen von xkb-Layouts oder Optionen ist es besser, [Benutzerdateien zu erstellen als Systemdateien zu ändern] (http://superuser.com/questions/1133476/make-terminal-recognize-pageup-and-pagedown-wem-remapped-to- verschiedene Tasten / 1168603 # 1168603). quixotic vor 7 Jahren 1
@quixotic Danke für Ihre Ressourcen. Ich werde das untersuchen. nicorellius vor 7 Jahren 0

1 Antwort auf die Frage

1
Xen2050

Ich denke, dass .desktop-Dateien ihre Exec=Befehle nicht in einer vollständigen / regulären Shell ausführen. Wenn Sie also mehrere Befehle verwenden möchten, müssen Sie explizit eine Shell mit diesen Befehlen ausführen. Zum Beispiel sollten diese funktionieren:

Exec=sh -c "sleep 5; notify-send test-delay" 

Oder in deinem Fall:

Exec=sh -c "sleep 20; setxkbmap -option caps:none" 
Vielen Dank für die Antwort und die Tipps ... Ich habe es versucht, und es scheint, dass einer meiner Startbefehle mit dieser Methode arbeitet, allerdings mit einer kleinen Ausnahme. Ich verwende: `bash -c" sleep 20; specific_command "`. Zwei andere Startbefehle werden jedoch auf ihre "Standardwerte" zurückgesetzt, die bei der Installation festgelegt wurden. Der Befehl `setxkbmap` funktioniert jedoch immer noch nicht, wenn die anderen Benutzer den Befehl` sleep` verwenden (oder in der Shell ausgeführt werden, wie Sie vorgeschlagen haben). nicorellius vor 7 Jahren 0
Hmm, vielleicht fehlen Einstellungen oder die falsche Pwd? Ich habe eine .desktop-Datei ausprobiert, die einige Befehle in bash an eine Datei erinnert, und das `env` ist im Grunde das gleiche wie in einem Terminal, aber ohne TERM = und es läuft in ~ / .config / autostart, während` set` hat verschiedene SHELLOPTS & TERM = dumm und viele Funktionen sind nicht vorhanden. Versuchen Sie, stdout & stderr in Dateien umzuleiten, wenn Meldungen hilfreich sind, oder führen Sie das `bash -c" stuff "` in einem Terminal aus, das sehr ähnliche Einstellungen hat und die Ausgabe leichter zu sehen ist. Xen2050 vor 7 Jahren 0
PS, dass "setxkbmap caps: none" einige Schritte zur Beseitigung von Capslock erfordert. Ich verwende setxkbmap nicht regelmäßig, daher bin ich mir nicht sicher, warum es nicht funktionieren sollte. Meinen Sie auch, dass die beiden anderen Startbefehle nicht die neuen Einstellungen / new Exec = line beibehalten? Ich dachte, Sie meinen, sie würden mit den Standardeinstellungen laufen, aber wenn die .desktop-Datei nicht ordnungsgemäß gespeichert wird, versuchen Sie, sie zu bearbeiten, während Sie bei einem anderen Konto angemeldet sind (selbst bei einer Live-Iso-Datei usw.). Einige meiner Einstellungen bleiben jedoch unverändert bin eingeloggt, insbesondere Desktopeinstellungen Xen2050 vor 7 Jahren 1
Danke @ Xen2050 für die zusätzlichen Informationen. Was verwenden Sie zum Deaktivieren der Feststelltaste? Ich glaube, Sie haben im Allgemeinen recht, denn nach ein paar Neustarts, als ich dachte, dass die Dinge funktionieren würden, sehe ich meine verdammte Feststelltaste ... Derzeit ist der einzige reproduzierbare Weg, den ich erreicht habe, etwas Funktionierendes, das Einschlafen der `setxkbmap caps: none` erst nach den anderen Befehlen. Dies ist jedoch schlecht, da die Feststelltaste beim Anmelden funktionsfähig ist (scheint Sekunden nach dem Einloggen deaktiviert zu sein, z. B. Login-Shell). Dies ist einer der Gründe, weshalb ich möchte, dass sie überhaupt deaktiviert wird. nicorellius vor 7 Jahren 0
Meine Feststelltaste beginnt "aus" und ich mache nichts Besonderes, um sie zu deaktivieren. Ich musste die Manpage lesen und eine Weile herumspielen, um meinen Feststelltaster wieder zu aktivieren, nachdem ich den Befehl "caps: none" ohne eingefügt hatte wirklich wissen, was es tun würde (es sah sicher genug aus ;-) Vielleicht möchten Sie den Befehl früher ausführen, bevor Sie sich anmelden. Diese Qs haben einige Möglichkeiten, Dinge beim Start auszuführen: https://askubuntu.com/questions/228304/ How-Do-I-Run-A-Skript beim Start Xen2050 vor 7 Jahren 0