/home/amgsk

TrackballをHyprlandでより快適に使う

· amgsk

Kensington SlimBlade Proを例に、Hyprlandとinput-remapperを使用してトラックボールの加速度やスクロール設定をカスタマイズする方法を紹介。

トラックボールは加速をONにして加速度をカスタムに設定することで、より快適な操作感を得ることができる(と思っている)
以下のようにHyprlandの設定ファイルhyprland.confにトラックボールの加速度や感度、スクロール設定を記述する。

ケンジントン公式のデバイスドライバでは、ボタン同時押しの設定が可能だが、当然Linuxでは利用できない。
そのためinput-remapperを使用して、複数ボタン同時押しの操作を実現している。

config例の重要なポイント

  • 加速度のプロファイルをカスタムに設定し、加速度のカーブを細かく調整することで、トラックボールの動きがより自然になるようにしている
  • スクロール方法をon_button_downに設定し、スクロールボタンを指定。トラックボールの特定のボタンを押しながら動かすことでスクロールができるようになる
  • input-remapperを利用する場合、デバイス名が仮想デバイスのものになるため、Hyprlandの設定ファイルでは仮想デバイスの名前を指定する必要がある
  • input-remapperが使用できない状況のために、フォールバックとして通常のデバイス名での設定も記述している

Hyprlandの設定例

nameは実際のデバイス名に合わせて適宜変更する必要がある。
hyprctrl devicesコマンドでデバイス名を確認できる。

hyprland.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Kensington SlimBlade Pro Trackball
# 冗長がやむを得ないので、最低限 加速度/感度/スクロール設定を変数にまとめている
$tb_accel = custom 2 0.0 0.5 1 3
$tb_sens = -0.8
$tb_scroll_factor = 0.5

# こっちはinput remapperが使用できない場合の通常のデバイス指定
device {
    name = kensington-slimblade-pro(2.4ghz-receiver)-kensington-slimblade-pro-trackball(2.4ghz-receiver)
    accel_profile = $tb_accel
    sensitivity = $tb_sens
    natural_scroll = false
    scroll_method = on_button_down
    scroll_button = 275
    scroll_factor = $tb_scroll_factor
}

# こっちはinput remapperによって作成された仮想デバイスの指定
device {
    name = input-remapper-kensington-slimblade-pro(2.4ghz-receiver)-kensington-sl-forwarde
    accel_profile = $tb_accel
    sensitivity = $tb_sens
    natural_scroll = false
    scroll_method = on_button_down
    scroll_button = 275
    scroll_factor = $tb_scroll_factor
}

input-remapperの自動起動とプリセットのロード

Hyprlandの起動時にinput-remapperを自動で起動し、設定済みのプリセットをロードするには、hyprland.confに以下を追記する。

hyprland.conf
1
exec-once = input-remapper-control --command autoload

--command autoloadを指定することで、input-remapper-controlがデーモンを起動し、各デバイスに対して最後に使用したプリセットを自動的にロードしてくれる。

特定のプリセットを明示的にロードしたい場合は、以下のように指定できる。

hyprland.conf
1
exec-once = input-remapper-control --command start --device "Kensington SlimBlade Pro(2.4GHz Receiver)" --preset "プリセット名"

蛇足

トラックボールは物理的な接点があるため、潤滑油が必要である。 定期的に自分の手汗や顔面の油を利用して潤滑するのが良い。天然の油であるため無害だしコストもかからない。