Hal ini dimungkinkan dengan menanyakan gnome-shell melalui antarmuka JS-nya dengan gdbus call
( src ).
Skrip berikut akan bergantian antara dua sumber input yang dikonfigurasi. Mudah untuk dimodifikasi jika Anda memiliki lebih banyak.
#!/usr/bin/env bash
cur_idx=$(
gdbus call \
--session \
--dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
"imports
.ui.status
.keyboard
.getInputSourceManager()
.currentSource
.index" |
cut -d"'" -f2
)
next_idx=$(( 1 - $cur_idx ))
gdbus call \
--session \
--dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
"imports
.ui
.status
.keyboard
.getInputSourceManager()
.inputSources[$next_idx]
.activate()" \
&> /dev/null
Jadikan itu dapat dieksekusi chmod a+x </path/to/script>
dan Anda kemudian dapat mengikatnya ke tombol pintasan khusus:
Buka Pengaturan -> Perangkat -> Keyboard dan klik tombol pilihan ' + ' di bagian bawah untuk menetapkan skrip ke beberapa pintasan
(Untuk Gnome <3.x: Pengaturan -> Perangkat -> Keyboard -> Pintasan Khusus ).