Saya bertanya-tanya apakah ada alat baris perintah, yang mengembalikan tata letak keyboard saat ini.
Saya telah XkbLayout
mengatur untuk us, ru
.
Pembaruan: setxkbmap
mengembalikan pengaturan tata letak, bukan tata letak yang dipilih. Misalnya:
$ setxkbmap -print | grep xkb_symbols
xkb_symbols { include "pc+us+ru:2+inet(evdev)+capslock(grouplock)+terminate(ctrl_alt_bksp)" };
Ini akan mengembalikan hasil yang sama tidak peduli apa tata letak saat ini.
Jawaban:
Mungkin ini tergantung pada versi, tetapi pada mesin saya yang menggunakan
setxkbmap
1.3.0 perintah berikut berfungsi:Perhatikan bahwa tergantung pada kebutuhan Anda, mungkin tidak berguna untuk mengetahui hanya tata letak: misalnya varian Dvorak dari tata letak AS sangat berbeda dari QWERTY default. The
-query
pilihan untuksetxkbmap
memberikan kedua tata letak dan varian, sebagai bidang yang berbeda:sumber
-query
telah ditambahkan di setxkbmap 1.2.0setxkbmap -print -verbose 10
setxkbmap -model pc104 -layout cz,us -variant ,dvorak
Ada xkb-switch yang dijelaskan sebagai berikut:
https://github.com/ierton/xkb-switch
Atau, mengikuti saran nozimica, Anda dapat menggunakan:
Dari utas ini di papan Arch Linux: https://bbs.archlinux.org/viewtopic.php?pid=539406
sumber
xkb-switch
berfungsi dengan baik, tapi saya harap ada solusi yang lebih portabelsetxkbmap
tidak menampilkan tata letak yang sedang aktif saat lebih dari satu tata letak ditentukan.Ya ADA alat baris perintah yang melakukan apa yang Anda inginkan! Saya baru saja menemukannya 10 menit yang lalu :)
Lihat di sini: https://github.com/nonpop/xkblayout-state
tidak persis apa yang Anda inginkan (itu tidak menghasilkan akhir baris, jadi tambahkan
; echo
jika Anda perlu). jalankan alat tanpa parameter untuk bantuan.sumber
Gunakan ini untuk mendapatkan kode untuk tata letak saat ini:
Ini mungkin perlu dikonversi ke formulir yang Anda inginkan, seperti:
sumber
00000002
meskipun tata letak saya adalah "USA Dvorak internasional". Bahasa tidak cukup ...00001004
pada mesin saya.Pendekatan lain yang lebih sederhana, karena posisi tetap dari output
xset -q
perintah, adalah ini:Mencetak
00000002
atau00001002
tergantung pada tata letak keyboard Anda saat ini.sumber
c59-66
.Pada sistem yang lebih baru, Anda dapat menggunakan
localectl status
Sebagai contoh akan menunjukkan kepada Anda hal berikut:
sumber
Jawaban sejauh ini tidak berhasil untuk saya. Saya menggunakan
setkbmap
dengan dua tata letak bahasa Inggris dan ceko sehingga setiap-print
atau-query
akan selalu mengembalikan keduanya. Menerima status LED untukxset -q
tidak berfungsi karena yang menunjukkan status semua led keyboard.Sejauh ini yang terbaik adalah dengan cepat menulis utilitas kecil ini: https://gist.github.com/fikovnik/ef428e82a26774280c4fdf8f96ce8eeb
dan kompilasi menggunakan
gcc -I/usr/include getxkblayout.c -lX11 -lxkbfile
sumber
Anda dapat menggunakannya
xkbprint
untuk mencetak tata letak saat ini.Misalnya untuk mencetak tata letak saat ini sebagai penggunaan PDF
yang menghasilkan:
sumber
Dari Goosfrabaa di forum Arch Linux :
Ini berfungsi dengan baik di sini, dan mencetak
us(dvorak-intl)
(ditampilkan sebagai "USA Dvorak internasional" di menu pilihan keyboard GNOME).sumber
$ setxkbmap -v
>>Trying to build keymap using the following components: | keycodes: evdev+aliases(qwerty) | types: complete | compat: complete+ledscroll(group_lock) | symbols: pc+us+hu:2+inet(evdev)+group(alt_shift_toggle)+compose(rwin)+terminate(ctrl_alt_bksp) | geometry: pc(pc105)
dalam hal ini saya mendapat setiap "kita"Sebagian jawaban: Pada KDE , Anda tampaknya bisa mendapatkan tata letak keyboard saat ini melalui
qdbus
perintah:Saya memiliki beberapa tata letak yang dikonfigurasikan, tetapi hanya menampilkan satu yang sedang digunakan.
Diuji pada Kubuntu 18.04 (qdbus versi 4.8.7). Mungkin ada solusi berbasis d-bus lain untuk lingkungan non-Qt, tapi saya tidak tahu tentang mereka.
sumber
sumber
Anda dapat gunakan:
sumber
latam
.xkb_symbols
nilai tidak tergantung pada tata letak yang dipilih, saya selalu mendapatkan 'kita'