web-dev-qa-db-ja.com

キーボードショートカットを設定してオン/オフを切り替えるにはどうすればよいですか。トラックパッド?

私はubuntu 14.04を使用しています。現在、ラップトップのトラックパッドを無効にするには、「システム設定->マウスとタッチパッド」でオフにします。システム設定のオプションのように、トラックパッドのオンとオフを切り替えるキーボードショートカットを設定できますか?

4
In78

ショートカットキーの下に現在の状態を確認する小さなスクリプトを配置し、その後、他の状態に切り替えることができます。

これは多くの状況で機能します。たとえば、トラックパッドの切り替え、(多くの)インジケータアイコンの表示の切り替えなどです(投稿の「編集」を参照)。

以下のスクリプトはそれを行います:

#!/usr/bin/env python3
import subprocess

key = "org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled"

cmd1 = "/bin/bash", "-c", "gsettings get "+key
new_state = "false" if subprocess.check_output(cmd1).decode("utf-8").strip()  == "true" else "true"
cmd2 = "gsettings set "+key+" "+new_state
subprocess.Popen(["/bin/bash", "-c", cmd2])

使い方

  1. スクリプトを空のファイルにコピーし、toggle_touchpad.pyとして保存します
  2. コマンドを(ターミナルで)実行してテスト実行します:

    python3 /path/to/toggle_touchpad.py
    
  3. すべてが正常に機能する場合は、ショートカットキーの組み合わせに追加します。[システム設定]> [キーボード]> [ショートカット]> [カスタムショートカット]を選択します。 「+」をクリックして、コマンドを追加します。

    python3 /path/to/toggle_touchpad.py
    

これで、ショートカットキーでタッチパッドのオン/オフを切り替える必要があります

説明

タッチパッドは、キーによって有効/無効になります:

org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled

現在の状態を取得するには:

gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled

enabledに設定するには

gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled true

disabledに設定するには:

gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false

ノート

1.カスタムキーボードショートカットで絶対パスを使用する

.desktopファイルのように、~のような相対パスはカスタムキーボードショートカットでは使用できません。また、ターミナルコマンドと同様に、スペースをエスケープする必要があります。

代わりに:

python3 ~/Keyboard\ shortcuts/toggle_touchpad.py

使用:

python3 /home/yourname/"Keyboard shortcuts"/toggle_touchpad.py

2. 15.04のコマンドの使用

バグが原因で(そう思われる)コマンド:

gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled true 

正常に動作しますが、コマンド:

gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false

disableに2回(!!)実行する必要があります...

3.スクリプトのBashバージョン

何らかの理由でbashバージョンを好む人向け:

#!/bin/bash

key="org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled"
current=$(gsettings get $key)

if [ "$current" == "true" ]; then
  gsettings set $key false
else
  gsettings set $key true
fi

toggle_touchpad.shとして保存し、コマンドで実行します

/bin/bash /path/to/toggle_touchpad.sh

編集

上記のスクリプトは、gsettingsコマンドによって実行されるタイプboolean(false/true)のany設定を切り替えるために使用できます。行を変更するだけです:

key = "org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled"

対応するキーによって。

例:

行を次のように変更した場合:

key = "com.canonical.indicator.sound visible"

サウンドインジケータアイコンの表示を切り替えます。

3
Jacob Vlijm