명령 줄에서 gnome 3의 키보드 레이아웃을 변경하는 방법 echo $lang;

gnome 3.22.1을 사용하고 있지만 3.18부터 문제가 발생합니다.

그 전에 (정확한 버전을 기억하지 못함) xkb-witch를 사용하여 키보드 레이아웃을 전환 할 수있었습니다 . 간단히 X.org 바인딩을 사용하는 간단한 응용 프로그램입니다.

xkb-switch를 실행하면 3.18 이후에 키보드 레이아웃이 그놈으로 전환되지 않습니다. 추가 조사에 따르면 레이아웃 전환은 작동하지만 매우 짧은 시간 동안 이루어집니다.

이 스크립트를 실행하면 :

for i in $(seq 1000); do
  lang=$(xkb-switch -s ru; xkb-switch);
  if [[ "$lang" == "ru" ]]; then
    echo $lang;
  fi;
done

운이 좋으면 3에서 20 개의 “성공적인”레이아웃 전환을 얻을 수 있습니다.

이 문제를 인터넷 검색 한 후 다음과 같은 조언을합니다 .

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

설정이 변경되지만 레이아웃은 동일하게 유지됩니다.

레이아웃을 변경하는 하나의 “해킹”방법을 찾았습니다.

setxkbmap us,ru
setxkbmap ru,us

그러나 그놈 쉘은 그 변화를 인식하지 못하고 레이아웃 표시기에 잘못된 언어를 보여줍니다.

이 문제에 대해 게시했습니다 (죄송합니다, 평판이 충분하지 않음, https : //bbs.archlinux.org/viewtopic.php? pid = 1657582 https : //github.com/ierton/xkb-switch/issues/15), 그러나 좋은 답변을 얻는 데 운이 없었습니다.

그리고이 시점에서 나는 붙어 있습니다. 나는 그놈 쉘 코드에서 문제를 식별 할만 큼 숙련되지 않았습니다. 그것이 그것이 (gnome shell ‘s) 문제인지 확실하지 않습니다.

내가 원하는 것은 터미널에서 키보드 레이아웃을 전환 하는 그놈 인식 방법입니다. 누군가 올바른 방향으로 나를 가리킬 수 있습니까? 이것을 버그로 제출해야합니까 (특히 키보드 레이아웃을 gsettings를 통해 변경할 수 없다는 사실)?



답변

gnome-shell은 모든 변수에 액세스 할 수있는 DBus의 JS eval 인터페이스를 노출하므로 다음 명령을 사용하면 가능합니다.

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()"

0 번째 레이아웃 등을 활성화합니다.

신용.


그리고 이것은 주석에서 마지막으로 사용한 입력 방법으로 전환하는 방법입니다.

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()"

답변

입력 방법으로 IBus를 사용하는 경우 (기본값 일 수 있음) 다음 ibus명령을 사용하여 입력을 변경할 수 있습니다 .

# Set the layout to US English
ibus engine xkb:us::eng
# Set the input method to Japanese Mozc IME
ibus engine mozc-jp
# Set the layout to Russian
ibus engine xkb:ru::rus

ibus list-engine명령으로 사용 가능한 모든 레이아웃을 볼 수 있습니다 .

이 접근 방식은 언어 표시기를 변경 하지는 않지만 안정적으로 작동하지만 유의해야합니다 .


답변

사용 gsettings.

설정 org.gnome.desktop.input-sources.sources받는 리스트, “[]”당신이 사용할 수 있도록 X 서버 없이 키보드 구성을 그놈 쉘 은 이전과 같이 할 수있을 수 있도록, 그것을 구성하려고합니다.

$ gsettings set org.gnome.desktop.input-sources sources '[]'

답변

나는 당신이 시도해야한다고 생각 sudo dpkg-reconfigure keyboard-configuration


답변

이전에 마우스를 사용하여 해당 입력 방법을 설정하지 않은 경우에도 명령 행에서 입력 방법을 설정하고 전환 할 수 있습니다.

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'ru')]"

드보락 us+dvorak( Dvorak)의 경우 (또는 gb+dvorak영국에있는 경우 등) 사용하십시오.