ノートパソコンのキーボードが時々機能しない

ノートパソコンのキーボードが時々機能しない

USBキーボードを接続し、次のコマンドを実行する汚れた解決策があります。

setxkbmap -rules evdev -layout us -model evdev

その後、私のキーボードが動作しました。

この回避策はUSBキーボードがある場合にのみ機能しますが、これはほとんど発生せず、ラップトップを再起動する必要があります。以下を追加して、システムが起動したときに自動的にコマンドを実行しようとしました。

set -e

if [ "${1}" = "resume" ] && [ "${2}" != "standby" ]; then
        setxkbmap -rules evdev -layout us -model evdev
fi
exit 0

to: /etc/apm/event.d/enable_xkb ただし、これは機能しません。私の考えでは、適切なユーザーが実行していないからです。

したがって、この質問に対する答えは2つあります。 1) システムが起きた後に上記のスクリプトを実行するにはどうすればよいですか?動作させることができれば、単にコンピュータをスリープ状態にし、目覚めさせてキーボードを再び動作させることができます。 2)(優先)実際にこの問題をどのように解決できますか?

回答が必要な状況の詳細 2) この質問のランダムな性質により、この質問がいつ始まったのかは不明です。私はそれがDebian Unstableに存在し、テスト中ですが、安定していないことを知っています。現在、Arch Linuxにも存在しますが、2012年11月以前には存在しません。私のシステムはLenovo w520です。

また、注:これは少しheisenbugなので、数日間動作するまで答えを受け取ることはできません。

追加の説明:これが発生すると、tty#に切り替えることができないため、コンソールは機能しません。また、「乾いた象を育てるのは退屈だ」コンボも試してみましたが、それも機能しませんでした。キーボード機能が動作しているときにこれが動作することを確認します。非常にランダムで、時には数日経ってもキーボードは機能しません。

ベストアンサー1

スクリプトが回復フックを介して機能しないのは、どのXサーバーと通信するのかわからないためです。環境変数を設定する必要DISPLAYがあります。XAUTHORITYバラより他のユーザーのデスクトップからrootとしてグラフィカルプログラムを起動できますか?もっと説明したい。

以下は、すべてのアクティブ・モニターで必須コマンドを実行するシェルの断片です。

if [ "${1}" = "resume" ] && [ "${2}" != "standby" ]; then
  for p in $(ps -C Xorg -o pid=); do
    </proc/$p/cmdline awk -v RS='\0' '/^:[0-9]$/ {print} $0=="-auth" {getline; print}' | {
        read DISPLAY; export DISPLAY
        read XAUTHORITY && export XAUTHORITY || unset XAUTHORITY
        setxkbmap -rules evdev -layout us -model evdev
     }
  done
fi

おすすめ記事