เป็นไปได้โดยการสอบถาม gnome-shell ผ่านทาง JS interface ด้วยgdbus call
( src )
สคริปต์ต่อไปนี้จะสลับกันระหว่างแหล่งอินพุตที่กำหนดค่าสองแหล่ง แก้ไขได้ง่ายหากคุณมีมากกว่านั้น
#!/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
ทำให้สามารถเรียกใช้งานได้ด้วยchmod a+x </path/to/script>
และจากนั้นคุณสามารถผูกกับคีย์ลัดแบบกำหนดเอง:
เปิดการตั้งค่า -> อุปกรณ์ -> แป้นพิมพ์และคลิกปุ่มตัวเลือก ' + ' ที่ด้านล่างเพื่อกำหนดสคริปต์ให้กับทางลัด
(สำหรับ Gnome <3.x: การตั้งค่า -> อุปกรณ์ -> แป้นพิมพ์ -> ทางลัดที่กำหนดเอง )