Lubuntuを使用しています。タッチパッドを切り替える(オンとオフを切り替える)ショートカットを追加したい。
〜/ .config/openbox(私の場合はlubuntu-rc.xml)のxmlファイルを編集する必要があることはわかっています ここで説明されているように および here
FnとF5が押されたときにトリガーするようにしたい(私のDellにはタッチパッドアイコンがあるので、それがx86キーバインドもトリガーすると仮定します、それが問題であればdunno)
私のマシンで
synclient TouchPadOff=1
タッチパッドをオフにし、
synclient TouchPadOff=0
再びオンにします。
コマンド
synclient
オプションなしで、このリストを返します
Parameter settings:
LeftEdge = 300
RightEdge = 1700
TopEdge = 210
BottomEdge = 1190
FingerLow = 12
FingerHigh = 15
MaxTapTime = 180
MaxTapMove = 107
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
EmulateMidButtonTime = 75
EmulateTwoFingerMinZ = 141
EmulateTwoFingerMinW = 7
VertScrollDelta = 48
HorizScrollDelta = 48
VertEdgeScroll = 1
HorizEdgeScroll = 0
CornerCoasting = 0
VertTwoFingerScroll = 1
HorizTwoFingerScroll = 0
MinSpeed = 1
MaxSpeed = 1.75
AccelFactor = 0.0819336
TouchpadOff = 0
LockedDrags = 0
LockedDragTimeout = 5000
RTCornerButton = 2
RBCornerButton = 3
LTCornerButton = 0
LBCornerButton = 0
TapButton1 = 1
TapButton2 = 3
TapButton3 = 0
ClickFinger1 = 1
ClickFinger2 = 1
ClickFinger3 = 0
CircularScrolling = 0
CircScrollDelta = 0.1
CircScrollTrigger = 0
CircularPad = 0
PalmDetect = 0
PalmMinWidth = 10
PalmMinZ = 100
CoastingSpeed = 20
CoastingFriction = 50
PressureMotionMinZ = 15
PressureMotionMaxZ = 80
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
ResolutionDetect = 1
GrabEventDevice = 1
TapAndDragGesture = 1
AreaLeftEdge = 0
AreaRightEdge = 0
AreaTopEdge = 0
AreaBottomEdge = 0
HorizHysteresis = 12
VertHysteresis = 12
ClickPad = 0
ご覧のとおり、「TouchpadOff = 0」という行があります。
私が基本的に求めているのは、srepclientの出力を読み取り、「synclient TochPadOff = 0」または「synclient TochPadOff = 1」を実行するシェルスクリプトの記述方法を教えてくれるgrepと正規表現の操作方法を知っている人です。
これが見つかった場合 非常によく似たスクリプト ですが、grepの部分で苦労しています。
generic toggle script が見つかった場合、情報をgrepする方がきれいだと思います。
私はすでに知っています シェルスクリプトをキーボードショートカットにバインドする方法 その例から。
大いに感謝します。
これは私のために働く:
#!/bin/sh
TOGGLE=$HOME/.toggle
if [ ! -e $TOGGLE ]; then
touch $TOGGLE
synclient TouchPadOff=1 &
else
rm $TOGGLE
synclient TouchPadOff=0 &
fi
exit 0
grep
は必要ないようです。また、Openboxが気に入っているかどうかもわかりません Fn どのrc.xmlでも、 Nivatius 'answer を参照してください。 Fn。私は今まで使ったことがありません Super、 Control、 Alt、そして Shift。そのスクリプトをバインドできます Control+Shift+F5、 例えば。
<keybind key="C-S-F5"> # Toggle touchpad
<action name="Execute"><command>/home/dkb/bin/toggle-touchpad</command></action>
</keybind>
〜/ .config/openbox/lubuntu-rc.xmlに配置したものを次に示します。
<keybind key='XF86TouchpadToggle'>
<action name='Execute'>
<command>bash -c "synclient TouchpadOff=$(expr \( $(synclient | grep TouchpadOff | cut -d = -f 2) + 1 \) % 2)"</command>
</action>
</keybind>
コメントsynclient
(2番目):実際のパラメーターをリストしますgrep
:タッチパッドを参照する行を選択しますcut -d = -f 2
:「=」以降の部分のみを取得しますexpr \( ... + 1 \) %2
:1ずつインクリメントし、2による除算のリマインダを取得します(つまり、0/1を切り替えます)synclient TouchpadOff=
:TouchpadOffを上記の結果に設定しますbash -c "..."
:上記のすべてがbashシェルで実行されていることを確認してください。
このように、別のシェルスクリプトは必要ありません。ただし、必要に応じてすべてを簡単にスクリプトに入れることができます。
私はこの解決策に落ち着きました:
脚本
# This Shell script is PUBLIC DOMAIN. You may do whatever you want with it.
TOGGLE=$HOME/.touchpadtoggle
if [ ! -e $TOGGLE ]; then
touch $TOGGLE
synclient TouchpadOff=1
else
rm $TOGGLE
synclient TouchpadOff=0
fi
設定ファイル
<!-- toggle touchpad with fn key fn+F5 -->
<keybind key="XF86TouchpadToggle">
<action name="Execute">
<command>~/scripts/touchpadtoggle.sh</command>
</action>
</keybind>
もちろん、コマンドのパスは、スクリプトを指す必要があります
Xevを使用して、fn + F5のXFコードを見つけました。
xevを実行し、FnキーとF5を押してポップアップを閉じ、長い出力を上にスクロールしてキーコードを探します。