F1マウスクリックをマップする方法を知っていますF2(F3それぞれ左クリック、中央クリック、右クリック)。
xkbset m # required, but disable keypad
xmodmap -e "keycode 67 = Pointer_Button1 Pointer_Button1"
xmodmap -e "keycode 68 = Pointer_Button2"
xmodmap -e "keycode 69 = Pointer_Button3"
ただし、これには次のものを使用する必要がxkbset m
あります。遅いキーモデル:
キーボードを押すと4カーソルが左に移動します。この機能は必要なく、上記のマッピングのみが必要です。
この問題を解決しようとしていますが、xdotool
押したキー/ドロップしたキー(ドラッグアンドドロップの場合)を処理する方法がわかりません。
xdotool mousedown 1
xdotool mouseup 1
どうやってできるかいいえこのモードを使用するか、すべてのキーボードキーを再マップするには?
キーボードの数字と算術記号はどうですか?
他の解決策がありますか?
Debian(cinnamon)とArchlinux(xfce)に必要な情報、可能であれば非ウィンドウマネージャベースのソリューションが必要です。
編集する:
試験を終えたこのソリューションしかし、ドラッグ&ドロップすることはできませんF1。
存在する~/.xbindkeysrc
:
"xdotool mousedown 1"
F1
"xdotool mouseup 1"
F1 + Release
または:
"xdotool mousedown 1"
m:0x10 + c:67
"xdotool mouseup 1"
m:0x10 + c:67 + Release
それから:
xset -r 67
編集2
試験を終えたモバイル知識ベース
# actkbd configuration file
<keycode ("67")> :key : :xdotool mousedown 1
<keycode ("67")> :rel : :xdotool mouseup 1
葉巻はありません:/
から適応ここ
ベストアンサー1
うわー!
まず:スクリプトを作成しますclick
。
#!/bin/bash
id=$(
xinput list |
awk '/Dell USB Keyboard/{print gensub(/.*id=([0-9]+).*/, "\\1", "1")}'
)
xdotool mousedown $1
while IFS= read -r event; do
if [[ $event == *release* ]]; then
xdotool mouseup $1
exit
fi
done < <(xinput test $id)
次に、ウィンドウマネージャに新しいキーボードショートカットを追加し、それをF1実行するようにマッピングします/path/to/mouse <1|3>
(左側または右クリック)。
願いより;)
これはxbindkeys
WM とは独立して実行できます。
編集する:
なぜこれがArchlinux + xfce 4.12では動作しませんが、Debian9 + Cinnamonでは動作しないのかわかりません。
編集する:
このソリューションはよりうまく機能します。
存在する.bashrc
:
xmodmap -e "keycode 67 = Pointer_Button1 Pointer_Button1"
xmodmap -e "keycode 68 = Pointer_Button2"
xmodmap -e "keycode 69 = Pointer_Button3"
キーボードショートカット:
#!/bin/bash
id=$(
xinput list |
awk '/Dell USB Keyboard/{print gensub(/.*id=([0-9]+).*/, "\\1", "1")}'
)
(
while read event; do
if [[ $event == *release* ]]; then
xkbset -m
exit
fi
done < <(xinput test $id)
) &
xkbset m