スタンバイまたは再起動後にカスタムキーボードレイアウトがデフォルトにリセットされる


11

自分用にキーボードレイアウトを設計しました。実行するxmodmapと問題なく動作しますが、スタンバイまたは再起動後、レイアウトはqwertyに戻ります。

どうすればデフォルトとして設定できますか?私のOSはXFCE4を搭載したDebian Wheezyです。


同じ問題、xfce4を使用したdebian jessieがあります。
John Lawrence Aspden 14

回答:


6

RAMにサスペンドした後、このarchlinuxフォーラムのスレッドXmodmap Resetを確認してください。スレッドにはいくつかの例がありxmodmap、一時停止が解除されるたびにセットアップを実行する電源管理サブシステムを介してトリガーされるフックをセットアップする方法を示します。

次のスクリプトのような名前で保存されます/etc/pm/sleep.d/11suspendmein /bin/su - meを実際のユーザー名に変更します)。

#!/bin/bash
case $1 in
    hibernate)
        echo "Hey guy, we are going to suspend to disk!"
        ;;
    suspend)
        echo "Oh, this time we're doing a suspend to RAM. Cool!"
        ;;
    thaw|resume)
        echo "oh, suspend is over, we are in $1 phase..."
            # Set Display #
    DISPLAY=:0.0 ; export DISPLAY
    /bin/su - me -c "sleep 3; /usr/bin/xmodmap /home/me/.xmodmaprc" &
        ;;
    *)  echo "somebody is calling me totally wrong."
        ;;
esac

3

序論:廃止されたxmodmapコマンドではなく、XKB(xkbcomp)を使用してください。

その後、~/.xsessionスクリプトから設定を変更できます。個人的に私は持っています:

setxkbmap -types local -print | \
  sed -e '/xkb_symbols/s/"[[:space:]]/+local&/' > $HOME/.xkb/keymap/custom
xkbcomp -w0 -I$HOME/.xkb -R$HOME/.xkb keymap/custom $DISPLAY

私の~/.xsessionファイルに、私のXKB設定が~/.xkb/symbols/local~/.xkb/types/localファイルに入れられます。これにより、Xログインごとに設定が変更されます。

残念ながら、これらの設定は中断/再開後に失われます。回避策があります。それらを保存し、/etc/pm/sleep.dディレクトリ内のスクリプトを使用してpm-utilsで復元します。あなたが必要があるかもしれません

xhost +si:localuser:root

~/.xsessionrootにはxauth情報がないため、スクリプト内で。例を示しました(XKBの場合):https ://bugs.debian.org/cgi-bin/bugreport.cgi ? bug=633849#92


~/.xsessionここでは再開後に呼び出されていません。なぜなのかご存知ですか?
brauliobo

@brauliobo ~/.xsessionは、Xセッションが開始したときだけ、再開後に実行されることはありません。xhost +si:localuser:rootこのときだけ行う必要があります。
vinc17

この情報をありがとうございました。xmodmapカスタムキーマップをロードするよりも新しい方法があるとは思いもしませんでした。それもずっとうまくいくようです。私の場合(XUbuntu 18.04)、サスペンド/レジュームでも存続しているようです。
トビア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.