Gibt es eine Möglichkeit, das System abzufragen, um festzustellen, ob die Feststelltaste in der Befehlszeile in terminal.app aktiviert oder deaktiviert ist?
macos
terminal
command-line
Zahnrot
quelle
quelle
Antworten:
Es gibt einen großartigen Befehlszeilencode, der von Stefenk auf Macscripter geschrieben wurde
Mit dem Code von Stefen können Sie cmd, Option, Steuerung, Verschiebung und Feststelltaste erkennen.
In seinem Beitrag stellt er den Code und eine Download-Zip davon zur Verfügung.
Sie können es entweder herunterladen oder mit dem Foundation-Projekt in Xcode erstellen.
Ich habe gerade beide Wege in El Capitan getestet und beide funktionieren.
Der Code, wenn Sie Ihren eigenen in Xcode.app erstellen möchten, lautet:
---------- (Update ->
Wenn Sie es aus Terminal.app kompilieren möchten
Fügen Sie den Code in eine Nur-Text-Datei ein. Ich habe gerade TextEdit.app und ein einfaches Textdokument verwendet.
CD in dasselbe Verzeichnis wie Ihre Datei. Stellen Sie sicher, dass die Erweiterung .m ist (.c ist auch in Ordnung)
Dann renne.
CheckModKeys.m ist Ihre Datei.
CheckModKeys ist der Name der App, die ausgegeben werden soll.
<-)
Um eine Feststelltaste zu erkennen, würde Ihr Befehl ungefähr so aussehen:
Eine 1 oder 0 wird zurückgegeben.
1 für auf
0 für aus
Alle Kredite gehen an Stefen. Ich habe mich nur daran erinnert, dass er diesen Weg bereits 2009 gepostet hat. Und es funktioniert noch heute ..
quelle
gcc -o getmod getmod.c
aber das kehrte zurückgetmod.c:4:5: error: expected expression @autoreleasepool { ^ 1 error generated.
Wenn Sie XQuartz installiert haben und entweder ausgeführt werden oder es Ihnen nichts ausmacht, es zu starten, können Sie Folgendes ausführen:
xset -q
quelle
xset
auf El Capitan kein Standardbenutzerkonto in Bash. Ist dieser Teil einer bestimmten Shell oder etwas, das Sie installieren müssen, damit der Befehl funktioniert?xset
ist ein TeilX11
davon ist nicht standardmäßig installiert. Sie können es hier bekommen: XQuartzxset
ist, dass XQuartz.app geöffnet wird, damit es (`xset) in einem Terminal ausgeführt wird. Für mich ist dies ein unerwünschtes Verhalten, da ich nur ein CLI-Dienstprogramm möchte, das wie jeder andere BSD-Befehl ausgeführt wird.