Apakah ada cara untuk menanyakan sistem untuk mengetahui apakah caps lock aktif atau tidak aktif dari baris perintah di terminal.app?
Apakah ada cara untuk menanyakan sistem untuk mengetahui apakah caps lock aktif atau tidak aktif dari baris perintah di terminal.app?
Jawaban:
Ada kode baris perintah hebat yang ditulis oleh Stefenk di Macscripter
Kode Stefen memungkinkan Anda mendeteksi cmd, opsi, kontrol, shift, dan caps lock.
Dalam postingannya ia menyediakan kode dan zip unduhannya.
Anda dapat mengunduhnya atau membuat sendiri di Xcode menggunakan proyek dasar.
Saya baru saja menguji kedua cara di El Capitan dan keduanya bekerja.
Kode jika Anda ingin membuat sendiri di Xcode.app adalah:
#import <Carbon/Carbon.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
unsigned int modifiers = GetCurrentKeyModifiers();
if (argc == 1)
printf("%d\n", modifiers);
else {
int i, result = 1;
for (i = 1; i < argc; ++i) {
if (0 == strcmp(argv[i], "shift"))
result = result && (modifiers & shiftKey);
else if (0 == strcmp(argv[i], "option"))
result = result && (modifiers & optionKey);
else if (0 == strcmp(argv[i], "cmd"))
result = result && (modifiers & cmdKey);
else if (0 == strcmp(argv[i], "control"))
result = result && (modifiers & controlKey);
else if (0 == strcmp(argv[i], "capslock"))
result = result && (modifiers & alphaLock);
}
printf("%d\n", result);
}
}
return 0;
}
---------- (perbarui ->
Jika Anda ingin mengompilasinya dari Terminal.app
Masukkan kode ke dalam file teks biasa. Saya baru saja menggunakan TextEdit.app dan dokumen teks biasa.
cd ke direktori yang sama dengan file Anda. Pastikan ekstensi tersebut .m (.c juga akan baik-baik saja)
Lalu lari.
gcc -framework Carbon CheckModKeys.m -o CheckModKeys
CheckModKeys.m adalah file Anda.
CheckModKeys adalah nama aplikasi yang akan dikeluarkan.
<-)
Untuk mendeteksi caps lock, perintah Anda akan terlihat seperti:
/Users/UserName/MyFolder/CheckModKeys capslock
1 atau 0 akan dikembalikan.
1 untuk on
0 untuk off
Semua kredit jatuh ke tangan Stefen. Saya baru ingat dia memposting ini kembali pada tahun 2009. Dan masih berfungsi hari ini ..
gcc -o getmod getmod.c
tetapi itu kembali getmod.c:4:5: error: expected expression @autoreleasepool { ^ 1 error generated.
Jika Anda menginstal XQuartz dan menjalankan atau tidak keberatan meluncurkannya, Anda dapat menjalankan:xset -q
Keyboard Control:
auto repeat: on key click percent: 0 LED mask: 00000000
XKB indicators:
00: Caps Lock: off 01: Num Lock: off 02: Shift Lock: off
03: Group 2: off 04: Mouse Keys: off 05: Scroll Lock: off
xset
di El Capitan menggunakan akun pengguna default di bash. Apakah ini bagian dari shell tertentu atau sesuatu yang harus Anda instal agar perintahnya berfungsi?
xset
adalah bagian X11
yang tidak diinstal secara default. Anda bisa mendapatkannya di sini: XQuartz
xset
itu menyebabkan XQuartz.app untuk membukanya (`xset) berjalan di Terminal. Bagi saya ini adalah perilaku yang tidak diinginkan karena saya hanya ingin utilitas CLI yang berjalan seperti perintah BSD lainnya.