web-dev-qa-db-ja.com

画面ロックで言語レイアウトを変更する

私はXubuntu 14.04.2ユーザーです。ロシア語と英語の2つのキーボードレイアウトがあります。時々ラップトップを閉じてから戻って仕事を続けようとすると、Xubuntuはユーザーのパスワード(英語の文字と数字で構成されるパスワード)の入力を求めます。

ただし、多くの場合、私のキーボードレイアウトはロシア語に設定されており、キーボードの切り替えは機能しません。

ラップトップを再起動して修正する必要があります。

どうすればいいですか?

7
Mister G

私はあなたとまったく同じ問題を抱えており、これを行うことで回避できます:

  • gnome-screensaverを取り除く:

    Sudo apt-get purge gnome-screensaver
    
  • Xスクリーンセーバーをインストールします:

    Sudo apt-get install xscreensaver xscreensaver-data xscreensaver-gl
    

システムがロックする前に英語に切り替えるのを忘れたときはいつでも、 Ctrl+Alt+F1 管理ユーザーとしてログインし、kill -9 xscreensaverすると、再びログインできます!

(これは単なる回避策であり、実際の「解決策」ではありませんが、私にとってはうまく機能し、シャットダウンして再起動するよりも間違いなく優れています)

4
Fabby

Ubuntu 16.04は別のインターフェース名を使用します:

dbus-monitor --session "type=signal,interface=com.canonical.Unity.Session" | 
  while read MSG; do
    LOCK_STAT=`echo $MSG | egrep -o member='.*' | cut -d '=' -f 2`
    if [[ "$LOCK_STAT" == "Locked" ]]; then
        CURRENTL=$(setxkbmap -query | grep layout | awk '{print $2}')
        echo "Locked with current layout ${CURRENTL}"
        setxkbmap us
    fi
    if [[ "$LOCK_STAT" == "Unlocked" ]]; then
        setxkbmap $CURRENTL
        echo -n "Returning to"
        setxkbmap -query | grep layout
    fi
  done
0
user627771

[編集]これは回避策かもしれませんが、現在は他のレイアウト切り替えキーバインディングをいじっています

[オリジナル]これは私にとってはうまくいきましたが、起動時に実行できず、バックグラウンドで実行し続けることができませんでした。

ロック信号を聞き、レイアウトをパスワードの1つに変更します。 (ugい回避策は機能するようですが)

dbus-monitor --session "type=signal,interface=org.gnome.ScreenSaver" | 
  while read MSG; do
    LOCK_STAT=`echo $MSG | grep boolean | awk '{print $2}'`
    if [[ "$LOCK_STAT" == "true" ]]; then
        setxkbmap us
    else
        setxkbmap -option grp:switch,grp:alt_shift_toggle,grp_led:scroll us,il
    fi
  done
0
ozma