これは、「自然なスクロール」、つまり「反転スクロール」を取得して、USBマウスとトラックポイントを備えたシステム全体のすべてのアプリケーションで動作することです。この問題は、12.04以来、多くの回避策でうまく機能していたので気が狂いました。
buntu Studio 18.04(xfce 4.12 desktop)を使用していますが、Preferencesに「Natural Scrolling」オプションがあります。ブラウザーやファイルマネージャー、テキストエディターなどでも期待どおりに動作します。ただし、xfce4-terminalとmousepad(テキストエディター)およびその他のアプリでは、まだ「不自然なスクロール」です。
このトピックの開発状況は誰でも知っていますか?何か不足していますか?
最初からやり直し、これらすべての回避策をテストする前に、どんな助けも歓迎します。
Ubuntu Studio 18.04.1 with xfce 4.12 4.15.0-20-lowlatency#21-Ubuntu SMP PREEMPT
IIRCデフォルト(x)ubuntuアプリ全体でさえ一貫性のない「逆スクロール」動作は、GTK2とGTK3の異なるスクロール処理によるものでした。それがまだ当てはまるかどうかわかりません。
とにかく、「古いxinputトリック」がまだ機能していることがわかりました(xUbuntu 18.04.1、xinputバージョン1.6.2)。そして、再起動を持続させる方法。
テスト/一時的な解決策
現在使用可能なすべてのポインターとキーボードをリストします。
xinput list
次のようなものが表示されます。
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Laser Mouse id=9 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=12 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=13 [slave keyboard (3)]
問題のポインターのid
を選択し、そのすべてのデバイスプロパティを一覧表示します。
xinput list-props 12
Device 'TPPS/2 IBM TrackPoint':
Device Enabled (143): 1
Coordinate Transformation Matrix (145): 1.000000, ...
libinput Natural Scrolling Enabled (281): 1
libinput Natural Scrolling Enabled Default (282): 0
libinput Scroll Methods Available (283): 0, 0, 1
libinput Scroll Method Enabled (284): 0, 0, 1
libinput Scroll Method Enabled Default (285): 0, 0, 1
libinput Button Scrolling Button (286): 2
...
これが必要なものです:libinput Natural Scrolling Enabled (281)
「現在のセッションで」「TPPS/2 IBM TrackPoint」で自然なスクロールをグローバルに有効にするには、最初に「マウスとタッチパッド」の設定でオフにします。
以下の2行のいずれかを入力し、Enterを押します。 (両方とも同じことを行います。プロパティの読み取りまたは書き込みには、その名前全体(!)またはIDを使用できるためです)
xinput set-prop 12 "libinput Natural Scrolling Enabled" 1
xinput set-prop 12 "281" 1
次に、システム設定を使用して自然な圧縮が機能しないアプリケーションでテストします。
永続的な解決策
上記のテストがマシンで機能した場合、小さなスタートアップスクリプトを使用してセッションにログインするたびに変更を適用できます。 deviceName
に一致するスクリプト部分は、 ボタンマップに関するこの回答 by @zerobandwidthからのものです。
以下のコードをnatural_scrolling.sh
としてホームディレクトリまたは/any/path/youLike
に保存します
#!/bin/bash
# Find all xinput devices whose name matches any of the arguments passed here,
# then set the Natural Scrolling' property to '1' regardless of its
# current state.
# expect multiple arguments, store them as array
deviceNames="$@"
# exit if no argument is passed
if [ "$deviceNames" = "" ]; then
echo "No argument received, exiting."
echo "Call this script with argument(s) like 'Logitech' that match"
echo "any of your attached pointer devices."
exit 1
fi
for deviceName in $deviceNames
do
deviceId=$(xinput --list | awk -v search="$deviceName" \
'$0 ~ search {match($0, /id=[0-9]+/);\
if (RSTART) \
print substr($0, RSTART+3, RLENGTH-3)\
}'\
)
# set device-specific property (works i.e for 'TrackPoint' & 'Logitech')
xinput set-prop $id "libinput Natural Scrolling Enabled" 1
done
スクリプトを実行可能にする:
chmod +x natural_scrolling.sh
Unique(!)device_name
文字列を引数として呼び出します:
/any/path/youLike/natural_scrolling.sh Logitech TrackPoint
それをスタートアップアプリケーションに追加します。つまり、xfceのSession&Startupプリファレンスを使用して、ログアウトして再度ログインしてテストします。
残念ながら、コメントするほどの評判はありませんので、これを回答として追加する必要があります。これにつまずいた人にとって、上記のコードには非常に小さなエラーがあります。最後から2番目の行:
xinput set-prop $id "libinput Natural Scrolling Enabled" 1
読むべき:
xinput set-prop $deviceId "libinput Natural Scrolling Enabled" 1
また、私はLogitech Ultrathin Mouseを使用していますが、誰が何を知っているのか、マウスとキーボードの両方として接続しているため、xinput list
に2回表示されます。したがって、出力をhead -1
にパイピングして、最初のエントリ(この場合は常にマウス)に返されるものを制限します。
...
print substr($0, RSTART+3, RLENGTH-3)\
}' | head -1 \
)
...