Bagaimana cara mengganti keyboard dari baris perintah?


65

Bagaimana cara mengubah tata letak keyboard dari baris perintah? Misalnya, saya ingin beralih dari Bahasa Inggris ke Bahasa Ibrani. Saya dapat melakukannya dari lightdm dengan ikon kecil di sudut layar saya.

Jawaban:


43

Dari terminal

Bahasa Inggris ke Bahasa Ibrani dan sebaliknya dengan Alt+Shift

setxkbmap -option grp:alt_shift_toggle us,il

Anda dapat melihat semua alias lokal dengan perintah ini

cat /etc/locale.alias

Info lebih lanjut tentang setxkbmap secara manual

man setxkbmap

Informasi tentang cara mengaturnya saat boot: wiki.gentoo.org/wiki/Keyboard_layout_switching
Adriano P

52

Anda dapat menemukan semua kartu kunci yang berbeda di lokasi berikut:

/usr/share/keymaps/i386/
/usr/share/kbd/keymaps/i386/
/usr/share/X11/xkb/symbols/

Untuk mengubah tata letak keyboard (mis. Ke Spanyol) di baris perintah Linux, ketikkan perintah berikut:

loadkeys es

Untuk X:

setxkbmap es

Untuk membuat perubahan sistem ini luas, dengan asumsi Anda menggunakan Ubuntu, Anda dapat menggunakan yang berikut:

sudo dpkg-reconfigure console-setup

Ini memiliki efek pada tty1, tty2, dll, tetapi tidak ada efek di X. Saya ingin melakukannya di X, dengan cara yang sama seperti switcher keyboard di lightdm bekerja.
Eyal

Saya menambahkan perintah dalam jawaban, apakah ini yang Anda cari?
Dr_Bunsen

IYA! Terima kasih. Juga, dapatkah Anda memperbarui jawaban Anda untuk menyebutkan loadkeys, dieja dengan 's'?
Eyal

2
ya saya akan, dan tidak, terima kasih. Tandai saja dipecahkan sehingga semua orang tahu.
Dr_Bunsen

untuk pengguna redhat, berikut adalah bagian-bagian yang berharga: /usr/share/X11/xkb/symbols/dansetxkbmap es
Peter Butkovic

13

Ubuntu 13.10 atau Lebih Baru

Ini berfungsi lebih baik daripada setxkbmap dengan indikator tata letak keyboard Gnome / Unity.

gsettings set org.gnome.desktop.input-sources current 0

0 adalah indeks tata letak (0 tata letak standar atau atas). Layout diindeks mulai dari 0.

Agar mudah digunakan, buat alias.


2
Jawaban ini lebih unggul karena itu benar-benar mengubah indikator. Apa yang saya cari.
Ainar-G

1
Terima kasih. gunakan jawaban Anda juga di sini: askubuntu.com/a/984981/6193
Alexey

3
Ini tidak berfungsi pada GNOME 3.26. Dikatakan "Kunci ini sudah usang dan diabaikan".
hugomg

@hugomg, saat ini saya belum memiliki akses ke gnome yang lebih baru. tetapi Anda dapat mencoba menggunakan dconf-editoralat dan periksa /org/gnome/desktop/. mereka mungkin mengganti nama saja.
user.dz

12
setxkbmap us,il -option "lv3:ralt_alt,grp:alt_shift_toggle"

perintah ini memungkinkan Anda beralih antara Bahasa Inggris dan Bahasa Ibrani hanya melalui right alt+ shiftdan menyelamatkan Anda dari left alt+ shift.


3

Tampaknya tidak ada alat CLI standar, tetapi xkb-switch adalah alat open-source kecil untuk melakukan pekerjaan itu. Baru saja mengujinya dengan Ubuntu 16.04.4 LTS dan berfungsi dengan sempurna.

$ xkb-switch       # display current group
ua
$ xkb-switch -l    # list groups
us
ua
$ xkb-switch -s us # switch to a named group
$

Ini terlihat lebih baik daripada solusi lain karena setxkbmap <name>mengacaukan semua opsi, dan setxkbmap -layout <name>, meskipun mempertahankan opsi, ia masih gagal untuk mengubah indikator taskbar atau grp_ledjika diatur.


Peringatan

Jika ~/.config/kxkbrcpenggunaan Anda LayoutLoopCount(mis. Diatur ke kurang dari jumlah total tata letak yang tercantum dalam LayoutList), seperti ini:

LayoutList=us,ua,th,de
LayoutLoopCount=2
Options=grp_led:scroll,grp:rwin_switch,compose:menu,lv3:ralt_switch,
        nbsp:level2,grp:rctrl_toggle,misc:typo

maka xkb-switchhanya akan membiarkan Anda beralih di antara tata letak di grup saat ini.


Meminta kunci layar

Saya perhatikan komentar Anda:

Tepat sebelum screensaver saya menyala, saya ingin beralih ke bahasa Inggris sehingga akan mudah untuk mengetik kata sandi saya ketika saya kembali.

Inilah tepatnya tujuan saya, jadi inilah jawabannya:
Untuk melakukan itu, Anda hanya perlu membungkusnya menjadi skrip kait untuk dbus-monitorsuka dibahas di sini .


3

Menggunakan gsettings di 18.04+ dengan Gnome, Anda dapat menambahkan tata letak keyboard dan beralih di antaranya dari baris perintah atau dari sakelar tata letak keyboard di desktop.

1.Tampilkan tata letak dan opsi keyboard:

$ gsettings list-recursively org.gnome.desktop.input-sources
org.gnome.desktop.input-sources show-all-sources false
org.gnome.desktop.input-sources xkb-options ['terminate:ctrl_alt_bksp']
org.gnome.desktop.input-sources per-window false
org.gnome.desktop.input-sources current uint32 1
org.gnome.desktop.input-sources mru-sources @a(ss) []
org.gnome.desktop.input-sources sources [('xkb', 'es'), ('xkb', 'no')]

2. Menambahkan tata letak keyboard:

$ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'no'),('xkb','gr')]"
$ gsettings get org.gnome.desktop.input-sources sources
[('xkb', 'es'), ('xkb', 'no'), ('xkb', 'gr')]

3.Mengubah tata letak keyboard saat ini dari baris perintah:

$ gsettings set org.gnome.desktop.input-sources current 1

Karena kami sekarang memiliki 3 bahasa yang berbeda, kami memiliki tiga pilihan dari 0 hingga 2, dengan 1 menjadi Bahasa Spanyol, 2 menjadi Bahasa Norwegia dan 3 menjadi Bahasa Yunani. Dengan demikian, pengaturan arus ke 1 di atas menjadikan Norwegia tata letak keyboard saat ini.

4.Listing semua kemungkinan tata letak keyboard:

cat //usr/share/X11/xkb/rules/base.lst

5.Mengubah tata letak keyboard dengan pintasan keyboard:

Pintasan keyboard sudah dikonfigurasikan sebelumnya untuk mengubah tata letak keyboard. Pintasan saat ini:

$ gsettings get org.gnome.desktop.wm.keybindings switch-input-source
['<Super>space']

Pintasan baru dapat ditetapkan dengan menggunakan set gsetting, tetapi berhati-hatilah untuk tidak menggunakan pintasan yang sudah digunakan. Untuk membuat daftar semua pintasan yang digunakan:

$ gsettings list-recursively org.gnome.desktop.wm.keybindings
org.gnome.desktop.wm.keybindings cycle-windows-backward ['<Shift><Alt>Escape']
org.gnome.desktop.wm.keybindings minimize ['<Super>h']
org.gnome.desktop.wm.keybindings move-to-workspace-7 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-8 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-9 @as []
org.gnome.desktop.wm.keybindings move-to-monitor-left ['<Super><Shift>Left']
...

Ini adalah jawaban yang paling komprehensif, pujian untuk ini.
Julien Chappuis

1

Untuk Ubuntu 18.04 + Gnome jawaban lain tidak berfungsi untuk saya, tetapi ini berhasil:

gdbus call --session --dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
 "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"

Argumen dalam "inputSources [0]" adalah indeks tata letak keyboard, sama seperti untuk solusi gsettings.

Ditemukan di linux StackExchange .


-1

Hanya karena penasaran, mengapa Anda melakukan itu? Mengapa Anda membuka terminal dan mereka mengetik perintah untuk mengganti tata letak keyboard Anda saat Anda bisa melakukannya dengan cara pintas keyboard yang sederhana! Dengan asumsi Anda menggunakan Ubuntu, itu berjalan sebagai Windows+Space


2
Ini tampaknya lebih berupa komentar dan lebih sedikit jawaban.
WinEunuuchs2Unix

Tepat sebelum screensaver saya menyala, saya ingin beralih ke bahasa Inggris sehingga akan mudah untuk mengetik password saya ketika saya mendapatkan kembali.
Eyal

juga berguna untuk membuat pintasan keyboard khusus
Vassilis

Ini tidak berfungsi di Ubuntu 16.04 di kotak virtual.
Juha Untinen
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.