キーボードの«PowerOff»キーのマッピングを変更する方法は?


15

Ubuntuと互換性があることが証明されているROG G551JM Asusラップトップを購入しました。コンピュータのキーボードは、「パワーオフ」キーが通常のキーであり、通常「終了」キーが見つかる場所に配置されているため、設計が不適切です。そうでなければコンピューターは問題ないので、問題を何らかの方法で「修正」できる、つまりPowerOffボタンを「End」キーに再マップできるという前提で購入しました。

PowerOffボタンが間違っている(ASUS G551JM): ASUS G551JM

通常、«End»キーがあります(ASUS N56VZ): ASUS N56VZ

「PowerOff」ボタンのイベントは、/dev/input/event2: Power Buttonデバイスによって生成されます(レポートさevtestれたevtestとおりEvent: time 1422895638.246142, type 1 (EV_KEY), code 116 (KEY_POWER), value 1)。コード116(次の行の例:)

キーはXサーバーにも表示され、最終的にUbuntuはキーの押下をキーとして識別しPowerOff、「Goodbye user Adam ...」半透明ダイアログボックスを起動して、実際にコンピューターの電源を切る意思を確認します。

問題は、確認ダイアログを表示するルーチンにPowerOffキーを押すことをバインドするバインディングがdconf-editorの下に表示されず、それを見つける場所のヒントがないことです。

PowerOffキーのデフォルトのバインディングを変更(または削除)する場所を教えてください。

それは簡単なものでなければなりません。


編集21.IX.2016:

ダイアログボックスを永続的に無効にする方法があります。電源ボタンのオプションを変更するにはどうすればよいですか?を参照してください。電源ボタンを無効にした後、別の何かに再割り当てできることを願っています。


問題を解決しましたか?ここに回答を投稿すると非常に便利です。
エズ

1
@Ezzeあまりありません(この問題のために別のコンピューターを使用しています)。しかし、キーを押した後に生成されたシャットダウンダイアログを永久に無効にすることができました。OK、答えを更新します。
アダムリツコフスキ

Unix&Linux StackExchange に関する関連質問
エゼ

2
私はそのキーを削除するためにASUSをとても嫌います。HomeそしてEnd、私が最も使用する「メタ」キーです... :(
Matthieu

回答:


10

Ubuntu 18.04 LTSおよびUbuntu 16.04 LTSのASUS N751JKで動作させることができました(どちらの場合もUnityデスクトップ環境と18.04のKDE Plasmaでテスト済み):

  1. まず、「電源オフ」ボタンのアクションをに設定しますnothing

    団結

    Johano Fierraの回答で言及されているように:

    gsettings set org.gnome.settings-daemon.plugins.power button-power "nothing"
    

    またはsudo apt install dconf-tools、プロパティdconf-editorを変更するために使用しorg.gnome.settings-daemon.plugins.powerます(ここで説明しように)。動作させるには再起動またはログアウトが必要です。

    KDE

    移動し、「システム設定」を選択、「電源の管理」タブ「ハードウェア」セクションをしてから選択し、「省エネ」タブを見つけ、スクロールダウンし、「電源ボタンを押すと、」ドロップダウンリストをして、その値を変更し、「実行(Do)何もありません」。変更を有効にするには、「適用」ボタンをクリックします。

    省エネ

  2. xdotoolをインストールします。

    sudo apt install xdotool
    

    これにより、重要なイベントをトリガーできます。

  3. 次のステップは、「電源オフ」ボタンを押して「終了」キーを押すことをトリガーすることです。

    Ubuntu 18.04

    /etc/acpi/events/power次の内容のファイルを作成します。

    event=button/power
    action=/etc/acpi/power.sh "%e"
    

    /etc/acpi/power.sh次の内容のスクリプトを作成します。

    #!/bin/sh
    xdotool key End
    

    実行許可を追加します。

    sudo chmod +x /etc/acpi/power.sh
    

    Ubuntu 16.04

    「電源オフ」ボタンのイベントを処理するために使用されるバックアップACPIスクリプト:

    sudo cp /etc/acpi/powerbtn.sh /etc/acpi/powerbtn.sh.backup
    

    それを編集して、次を見つけます。

    # If logind is running, it already handles power button presses; desktop
    # environments put inhibitors to logind if they want to handle the key
    # themselves.
    

    以下のコードを次のように変更します。

    if pidof systemd-logind >/dev/null; then
        xdotool key End
        exit 0
    fi
    
  4. これらの変更を適用するには、次を実行する必要があります。

    sudo acpid restart
    

    Adamのおかげでacpid、ユーザーがログインしたときに(システムのブート時に)自動的に再起動することができます。そのsudo acpid restartため、再起動後に毎回ターミナルで手動で行う代わりに、次の行を追加します。

    session optional    pam_exec.so /usr/sbin/acpid restart
    

    /etc/pam.d/common-sessionファイルの最後まで。


sudo acpid reload再起動の代わりにどうですか?それはうまくいくでしょうか?
バイトコマンダー

1
acpid restart問題を解決するのはsession optional pam_exec.so /usr/sbin/acpid restart、の最後に行を追加することです/etc/pam.d/common-session。この方法では、ユーザーのログイン直後にacpidが再起動されますが、これで十分です。問題がついに解決しました!!
アダムリツコフスキ16

1
@rtindru、あなたがすべきgsettings set代わりにgsettings get
エゼ

1
Kubuntu 18.04でこの作業を行うには、power.shに実行権限を付与する必要がありました。sudo chmod +x /etc/acpi/power.sh@ Ezze、回答を更新してこれを含めることができます。
LGenzelis

1
@LGenzelis、ありがとう。答えを更新しました。
エズ

4

これでうまくいくはずです。

ターミナルに入る:

gsettings set org.gnome.settings-daemon.plugins.power button-power "nothing"

2
はい!!!しかし、別のことがあります:«end»キーにマッピングする方法は?
アダムリツコフスキ

1
ここに未知の領域を入力しますが、xmodmapファイル構成($ {HOME} /。xmodmap)を作成し、これをキーコード116 = End、またはターミナルに入力するだけでよいと思います:xmodmap -e "keycode 116 = End "
ヨハノフィエラ15

残念ながら、それは役に立ちません。xevコマンドで表示される「電源オフ」ボタンのキャプチャを無効にし、xmodmap再マップを防ぎます。ちなみに、「電源オフ」ボタンのキーコードは異なる場合があります(私のASUS N751JKの場合は124)。
エズ

ボタンをキャプチャする機能を無効にするべきではありませんが、これはどうでしょうか。ターミナルに入力します:(gsettings set org.gnome.settings-daemon.plugins.power button-power "shutdown"ボタンを押すとキャプチャされます)、行を編集/etc/acpi/events/powerbtnしてコメントアウトし、#action=/etc/acpi/powerbtn.shターミナルに入力します:xmodmap -e "keycode 124 = End"これにより、電源ボタンが何もしないようにし、同時に終了キーにマップします。
ヨハノフィエラ16

1
「電源オフ」イベントは、powerbtn.shスクリプトだけでなく(少なくとも)systemd-logindサービスでも処理されます(おそらく、button-power回答で述べた設定を使用します)。if pidof systemd-logind >/dev/null; then... exit 0行を見つけることができます。powerbtn.shこれはsystemd-logind、デスクトップセッションがアクティブなときに、スクリプトが「電源オフ」イベントを単独で処理できることを意味します。正しいことの1つは、button-power値を変更してもキーをキャプチャする機能には影響しませんが、既に何らかのプロセス(systemd-logindまたはその他)でキャプチャされていることです。
エゼ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.