Untuk penggunaan dalam skrip bash, saya perlu mendapatkan tata letak keyboard gnome yang saat ini digunakan pengguna. Sebagai contoh jika pengguna mengatur tata letak keyboard untuk en-us
, saya memerlukan perintah bash yang mencetak saya ini.
Bagaimana saya bisa mendapatkan informasi itu?
Memperbarui:
setxkbmap -query
sayangnya tidak bekerja. Di bawah ini adalah ouput dengan tata letak en
(perintah pertama) dan de
(perintah kedua) diaktifkan. Beralih tata letak keyboard tampaknya memiliki beberapa hubungan dengan konfigurasi sesi gnome
setxkbmap -query
rules: evdev
model: pc105
layout: us,de
variant: ,
options: terminate:ctrl_alt_bksp,lv3:ralt_switch,grp:alts_toggle
setxkbmap -query
rules: evdev
model: pc105
layout: us,de
variant: ,
options: terminate:ctrl_alt_bksp,lv3:ralt_switch,grp:alts_toggle
Pembaruan2:
setxkbmap -print #with en-us layout
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+de:2+inet(evdev)+level3(ralt_switch_for_alts_toggle):1+level3(ralt_switch_for_alts_toggle):2+group(alts_toggle)+level3(ralt_switch)+terminate(ctrl_alt_bksp)" };
xkb_geometry { include "pc(pc105)" };
};
setxkbmap -print #after switching to german layout
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+de:2+inet(evdev)+level3(ralt_switch_for_alts_toggle):1+level3(ralt_switch_for_alts_toggle):2+group(alts_toggle)+level3(ralt_switch)+terminate(ctrl_alt_bksp)" };
xkb_geometry { include "pc(pc105)" };
};
command-line
keyboard-layout
ftiaronsem
sumber
sumber
Jawaban:
Menurut pertanyaan serupa pada Stackoverflow , berikut ini harus melakukan trik:
Saya tidak dapat memverifikasinya, karena saat ini saya tidak memiliki mesin * nix dengan X yang tersedia (saya tidak di rumah) ...
sumber
xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+us+inet(evdev)" }; xkb_geometry { include "pc(pc105)" }; };
-v
parameter (beberapa kali), yang meningkatkan verbositas dan dengan demikian memberikan lebih banyak informasi. Harus bekerja untuk keduanya,-query
juga-print
. Karena saya tidak memiliki pengaturan multilang, saya tidak dapat memastikan apakah ia memberikan detail yang Anda butuhkan - tetapi dengan 3 kali-v
output di sini terbagi menjadi "aturan yang diterapkan" dan "keymap". Yang terakhir tampaknya menjadi informasi yang lengkap, sehingga bagian pertama dapat memiliki "bagian yang sedang aktif".Untuk Ubuntu 17.10 atau lebih baru
Di Ubuntu 17.10, dengan GNOME, nilai gsettings saat ini tidak berubah ketika Anda beralih sumber input. Sebaliknya ada mru-sumber kunci yang berisi daftar m ost r ecently u sed sumber masukan.
Sumber pertama dalam daftar itu adalah yang sekarang, jadi oneliner untuk mendapatkan tata letak saat ini mungkin terlihat seperti ini:
Harap dicatat bahwa jawaban ini tidak berlaku jika Anda menggunakan Unity pada sistem Ubuntu 17.10. Dengan Unity tetap berfungsi seperti sebelumnya.
sumber
Untuk Ubuntu 13.04 dan lebih rendah
Anda bisa menggunakan
xkblayout-state
alat. Lihat file README.md untuk deskripsi, kompilasi, instalasi dan penggunaan.Perintah berikut akan melakukan apa yang Anda inginkan:
Untuk Ubuntu 13.10 dan lebih tinggi
Ubuntu 13.10 hadir dengan beberapa peningkatan yang baik dalam hal ini, dan Anda dapat menggunakan fungsi bash sederhana berikut:
Perintah berikut ini juga berfungsi di 13.10:
atau:
sumber
Cukup tekan Ctrl+ Alt+ Tdi keyboard Anda untuk membuka Terminal. Saat terbuka, jalankan perintah di bawah ini.
Inilah yang harus Anda lihat
sumber
Dengan menggunakan terminal, saya telah menjalankan uji perubahan antara 'pt' dan 'kita', dan setelah setiap perubahan, saya telah mengumpulkan tata letak keyboard yang digunakan dengan sukses:
Dapatkan tata letak keyboard aktif
setxkbmap -print
grep xkb_symbols
awk -F"+" '{print $2}'
Output yang memiliki tata letak 'us' aktif adalah:
us
Bersihkan di antara tata letak
Lewati tempat ia membaca 'pt', kode bahasa untuk beralih.
Catatan: Saya menggunakan Gnome di Ubuntu 12.04 (Precise Pangolin)
sumber
Untuk Ubuntu 13.10 atau Lebih Baru
(Tidak yakin apakah itu berfungsi di rilis sebelumnya)
Untuk melihat lebih banyak opsi:
sumber