Tôi đang sử dụng gnome 3.22.1 nhưng vấn đề tồn tại từ 3.18.
Trước đó (không nhớ phiên bản chính xác) Tôi đã có thể chuyển đổi bố cục bàn phím bằng xkb-witch , ứng dụng đơn giản sử dụng các ràng buộc X.org dưới mui xe.
Sau 3.18 nếu bạn chạy xkb-switch, bố cục bàn phím sẽ không được chuyển sang gnome. Nghiên cứu sâu hơn đã chỉ ra rằng chuyển đổi bố cục đang hoạt động, nhưng trong một khoảng thời gian rất ngắn.
Nếu bạn chạy tập lệnh này:
for i in $(seq 1000); do
lang=$(xkb-switch -s ru; xkb-switch);
if [[ "$lang" == "ru" ]]; then
echo $lang;
fi;
done
Bạn sẽ nhận được từ 3 đến 20 chuyển đổi bố cục "thành công", tùy thuộc vào mức độ may mắn của bạn.
Sau khi giải quyết vấn đề này, tôi có lời khuyên sau :
gsettings set org.gnome.desktop.input-sources current 0
Cài đặt đang được thay đổi, nhưng bố cục vẫn giữ nguyên.
Tôi đã tìm thấy một phương pháp "hacky" để thay đổi bố cục:
setxkbmap us,ru
setxkbmap ru,us
nhưng shell gnome không nhận thức được sự thay đổi đó và hiển thị ngôn ngữ sai trong chỉ báo bố cục.
Tôi đã đăng về vấn đề này (xin lỗi, không đủ danh tiếng, https: //bbs.archlinux.org/viewtopic.php? Pid = 1657582 https: //github.com/ierton/xkb-switch/issues/15), nhưng không có may mắn nhận được bất kỳ câu trả lời tốt.
Và tại thời điểm này tôi bị mắc kẹt. Tôi không đủ kỹ năng để xác định vấn đề trong mã shell gnome. Tôi thậm chí không chắc đó là vấn đề (vỏ gnome).
Những gì tôi muốn là một cách nhận biết gnome để chuyển bố cục bàn phím từ thiết bị đầu cuối. Ai đó có thể chỉ cho tôi đi đúng hướng? Tôi có nên gửi lỗi này không (đặc biệt là bố cục bàn phím có thể thay đổi thông qua gsinstall)?
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager()._mruSources[1].activate()"