Amazon:スマイルSALE(5/31 9:00〜 6/23 23:59)

【Linux】Ubuntu22.04でMacBookのトラックパッドをMacなみに使えるようにする(libinput-gestures)

10 min

こんにちは。ナミレリです。2012年モデルのMacBook Air (13-inch, Mid 2012)を蘇らせるべく最新のUbuntuである22.04LTSをインストールし普通に使えるまでの設定をしていく、今回は【トラックパッド編】としてMacBook AirのトラックパッドをUbuntu22.04でMacなみに使えるようにしていきます。

また、MacBook AirでUbuntuを快適に使うをテーマにした記事はこれまでに下記の記事がありますのでぜひ合わせてご覧ください。

1.インストール編→2.日本語入力編→3.初期設定編→4.デスクトップカスタマイズ編→5.command+c、command+vでコピペ編と記事を書いてきました。

  1. STEP

    Ubuntuのインストール編

  2. STEP

    Ubuntuの日本語入力編

  3. STEP

    Ubuntuの初期設定編

  4. STEP

    Ubuntuのデスクトップカスタマイズ編

  5. STEP

    Ubuntuでcommand+c、command+vでコピペ編

  6. STEP

    トラックパッドをMacなみに使えるようにする

    今回がこの記事です。

この記事のMac環境(Ubuntu22.04LTSをインストールしたMacbook Air)

MacBook Air (13-inch, Mid 2012) 

Ubuntu22.04LTS

Parallels 19 for Macの無料トライアル もありますので、ぜひダウンロードして試してみてください。M1/M2/M3のMac上で快適にMacやUbuntu、Windowsが動作します。
NEW Parallels Desktop 19 for Mac

Parallels Desktop 19 for Macは、M1/M2/M3のMac上で快適にMacやUbuntu、Windowsが動作します。

14日間の無料トライアルもありますので、ぜひダウンロードして試してみてください。

はじめに:libinput-gesturesとは?

この記事ではMacのトラックパッドジェスチャーの使い勝手に可能な限り近づけるためにlibinput-gesturesを使ってみます。libinput-gesturesの開発者が実現したかったことは、トリプルスワイプのアップ/ダウンを使用してワークスペースを切り替え、トリプルスワイプを使用してブラウザで後方/前方に移動すること、だったそうです。これが開発の動機だったようです。

従って、ibinput-gesturesは3本指または4本指のジェスチャーを設定することができるソフトウェアです。libinput-gesturesは1本指、2本指のジェスチャーは設定することはできません。1本指と2本指のジェスチャーはubuntu22.04のデフォルトの状態でほぼ不都合はないので、3本指と4本指のジェスチャー設定のために、libinput-gesturesを使っていきます。

Amazonの読み放題・聴き放題

kindle unlimited 読み放題
200万冊以上が読み放題

Audible
12万以上の対象作品が聴き放題

libinput-gesturesで出来ること

libinput-gesturesで出来ることは、3本指スワイプで9種類、4本指スワイプで9種類、ピンチで4種類で合計22のジェスチャーとなると思います。ubuntu22.04で4本指スワイプが可能になれば普段使いのモチベが上がりますね。

3本指スワイプ
up
down
left
right
left_up
left_down
right_up
right_down
hold on
表:3本指スワイプ
4本指スワイプ
up
down
left
right
left_up
left_down
right_up
right_down
hold on
表:4本指スワイプ
ピンチ
in
out
clockwise(時計回り)
anticlockwise(反時計回り)
表:ピンチ

Macのトラックパッドジェスチャーとlibinput-gesturesで今回やりたいことのまとめ

デフォルト状態のMacのトラックパッドジェスチャーとlibinput-gesturesで今回やりたいことをまとめました。赤線の下記の4点を設定することが今回の目標です。この4点がUbuntuで使えるようになれば普段使いにおいてほとんどストレスなく使うことができると思います。

トラックパッド
ジェスチャー
Macでの動作
(設定している動作)
libinput-gestures
でやりたいこと
1本指でタップタップでクリック
2本指でタップ右クリック
2本指でピンチ拡大/縮小
2本指でダブルタップスマートズーム
2本指で回転回転
2本指で左右にスクロールページ間をスワイプ
4本指で左右にスワイプフルスクリーンアプリケーション間
をスワイプ
ワークスペースを
切り替えるように
2本指で右端から左へスワイプ通知センターを表示
4本指で上にスワイプミッションコントロール開いているアプリを
一覧表示するように
4本指で下にスワイプアプリケーションExposeそのアプリを
一覧表示するように
親指と3本指でピンチインLaunchpad全てのアプリを表示
するように
親指と3本指でピンチアウトデスクトップを表示デスクトップを
表示するように
3本指のドラッグアイテムをドラッグする

それでは早速、libinput-gesturesをインストールし設定していきます。

libinput-gesturesのインストール

事前準備:inputグループに追加

タッチパッドデバイスを読み取る権限を持つには、下記のコマンドでinputグループに自分自身を追加します。


sudo gpasswd -a $USER input

grep input /etc/group
input:x:107:ubuntu-user

事前準備:再起動する

inputグループに自分自身を追加したら、一旦再起動します。


sudo shutdown -r now

事前準備:wmctrlとxdotoolのインストール

wmctrlは、Xのウィンドウを制御するためソフトウェアです。例えばデスクトップを一覧表示したり、すべてのウィンドウを一覧表示したり、ウィンドウを移動したりサイズ変更できたりします。

xdotoolは、マウスやキーボードのアクションをエミュレートするソフトウェアです。man xdotoolによると「command-line X11 automation tool」と表示されるだけあって、主に自動化に活用できるソフトウェアです。

この2つのソフトウェアとlibinput-toolsaptでインストールします。


sudo apt update
sudo apt upgrade

sudo apt install wmctrl xdotool
sudo apt install libinput-tools

libinput-gesturesのインストール

ホームディレクトリにgitでソースコードを取得し、make installします。


cd $HOME
git clone https://github.com/bulletmark/libinput-gestures.git
cd libinput-gestures
sudo make install
'libinput-gestures-setup' -> '/usr/bin/libinput-gestures-setup'
'libinput-gestures' -> '/usr/bin/libinput-gestures'
'libinput-gestures.service' -> '/usr/lib/systemd/user/libinput-gestures.service'
'libinput-gestures.desktop' -> '/usr/share/applications/libinput-gestures.desktop'
'libinput-gestures.svg' -> '/usr/share/icons/hicolor/128x128/apps/libinput-gestures.svg'
'libinput-gestures.conf' -> '/etc/libinput-gestures.conf'
install: ディレクトリ '/usr/share/doc/libinput-gestures' を作成しています
'README.md' -> '/usr/share/doc/libinput-gestures/README.md'
gtk-update-icon-cache: Cache file created successfully.

起動と自動起動ONのコマンド


libinput-gestures-setup autostart start
#上記コマンドで起動します。

libinput-gestures-setup autostart
#上記コマンドで次回以降のログインで自動起動します。

停止と自動起動OFFのコマンド


libinput-gestures-setup stop
#上記コマンドで停止します。

libinput-gestures-setup autostop
#上記コマンドで次回以降のログインで自動起動をOFFにします。

libinput-gesturesの再起動とステータス確認


libinput-gestures-setup restart
#上記コマンドでlibinput-gesturesが再起動します。(設定ファイルの再読込時に使います)

libinput-gestures-setup status
#上記コマンドでlibinput-gesturesの起動状態等のステータスを確認できます。

libinput-gesturesの設定ファイルについて

/etc/libinput-gestures.confに設定ファイルがありますので、~/.config/libinput-gestures.confにコピーしこのファイルを編集し設定をカスタマイズします。~/.config/libinput-gestures.confの設定内容が優先されます。

今回はデフォルトの設定は一旦破棄して、シンプルにやりたいジェスチャーのみを設定していきますので、空の~/.config/libinput-gestures.confを作っておきます。


touch ~/.config/libinput-gestures.conf

Amazonの読み放題・聴き放題

kindle unlimited 読み放題
200万冊以上が読み放題

Audible
12万以上の対象作品が聴き放題

やりたいことと具体策

libinput-gesturesでやりたいことのおさらいです。このやりたいことに対してどのように設定するかの具体策をまとめていきます。結論から先にお伝えすると3番の「そのアプリを一覧表示する」は実現できませんでした。5番は実現できますが使い勝手はいまいちです・・・

番号トラックパッドジェスチャーlibinput-gesturesでやりたいこと
14本指で左右にスワイプワークスペースを切り替える
24本指で上にスワイプ開いているアプリを一覧表示する
34本指で下にスワイプそのアプリを一覧表示する
4親指と3本指でピンチイン全てのアプリを表示する
5親指と3本指でピンチアウトデスクトップを表示する
表:libinput-gesturesでやりたいことまとめ

【1】4本指で左右にスワイプ→ワークスペースを切り替える

設定ファイルにおける[internal]はwmctrlを呼び出して使っている内部コマンドです。

4本指で左にスワイプするとワークスペースが右に移動し(例えばワークスペース1から2へ)、4本指で右にスワイプするとワークスペースが左に移動(ワークスペースを2から1へ)するように設定します。


vi ~/.config/libinput-gestures.conf
gesture swipe left 4    _internal ws_up
gesture swipe right 4   _internal ws_down

パラメータ意味
swipeスワイプジェスチャーを指定
left左にスワイプされた場合、
4かつ、4本指でスワイプされた場合、
_internal ws_upwmctrlを使用し次のワークスペースを移動する

libinput-gesturesが再起動し動作を確認してください。libinput-gesturesを再起動するのは下記のコマンドです。


libinput-gestures-setup restart
#libinput-gesturesを再起動し設定ファイルを再読込します

【1】「4本指で左右にスワイプ→ワークスペースを切り替える」が実現しました。

【2】4本指で上にスワイプ→開いているアプリを一覧表示する

Ubuntuのキーボードショートカットに用意されている「アクティビティ画面を表示する」を「4本指で上にスワイプ」に割り当て目的を実現してみます。

Ubuntuのアクティビティ画面はこんな画面です。

アクティビティ画面
アクティビティ画面

アクティビティ画面を表示する、のキーボードショートカットを変更する

[設定]→[キーボード]→[ショートカットの表示とカスタマイズ]をクリックします。

[キーボードショートカット]ウィンドウの[システム]をクリックすると下記画面になります。

キーボードショートカットのシステム
キーボードショートカットのシステム

[アクティビティ画面を表示する]がデフォルトではSuper(command) + Sになっていますが、私は上記のようにAlt(option) + Sに変更しています。

上記の変更理由は下記の記事で記載していますが、commandcontrolに変更しているため、commandを使う主要なショートカットキーをoptionに変更してるためです。

それでは、4本指で上にスワイプした時に、このAlt(option) + Sの動作である[アクティビティ画面を表示する]が実行されるように設定します。


vi ~/.config/libinput-gestures.conf
gesture swipe up 4      xdotool key alt+s

libinput-gestures-setup restart
#libinput-gesturesを再起動し設定ファイルを再読込します

パラメータ意味
swipeスワイプジェスチャーを指定
up上にスワイプされた場合、
4かつ、4本指でスワイプされた場合、
alt+salt+sを実行する

設定後、libinput-gesturesが再起動し動作を確認します。

【2】「4本指で上にスワイプ→開いているアプリを一覧表示する」が実現しましたが、この設定では何もせずにswipe downした場合に元の画面に戻らないのが難点。画面上をクリックすれば済むのでしばらくこれで運用してみます。

【3】(実現できていない)4本指で下にスワイプ→そのアプリを一覧表示する

「4本指で下にスワイプ→そのアプリを一覧表示する」は結論から先にお伝えすると実現することができていません。当初はMacのアプリケーションウィンドウを表示する、のようにはできなくても、下の画像のように「アクティブなアプリケーション内のウィンドウを切り替える」のショートカットキーを割り当てることで実現しようと思っていました。

アクティブなアプリケーション内のウィンドウを切り替える
アクティブなアプリケーション内のウィンドウを切り替える

アクティブなアプリケーション内のウィンドウを切り替えるのショートカットキーはAlt(option)+TABに設定しているのでswipe downに設定しましたが、結果は単にウィンドウがスイッチするだけで、上記画像のようにアプリケーション内のウィンドウを一覧表示することはできませんでしたAlt(option)を押している状態を作ることができれば出来そうですが、libinput-gesturesやxdotoolではそういった設定項目がありませんでした。

結果【3】「4本指で下にスワイプ→そのアプリを一覧表示する」は実現できていません後日他のトラックパッドジェスチャーソフトウェアも試してみるつもりです。

2022年10月リリース予定のUbuntu22.10では同一アプリの複数ウィンドウが実装されるようです。

When multiple windows of the same app are opened (even if some are minimised) clicking on an app icon in the dock now presents a dynamic overview of rather than, as before, a near-dock pop-over of window thumbnails. It’s a subtle UX tweak that, I find, is far more in keeping with the way the way the rest of the desktop behaves.

https://www.omgubuntu.co.uk/2022/08/ubuntu-22-10-release-new-features

【2022年11月追記】
2022年10月リリースのUbuntu22.10では、同一アプリの複数ウィンドウの切り替えが実装されました。Dockのアプリアイコンをクリックすると同一アプリのウィンドウ一覧になります。

【4】親指と3本指でピンチイン→全てのアプリを表示する

気を取り直して親指と3本指でピンチイン→全てのアプリを表示するを実現してみます。Ubuntuのキーボードショートカットに用意されている「すべてのアプリケーションを表示する」を「ピンチイン」に割り当てトライしてみます。

すべてのアプリケーションを表示する、のキーボードショートカットを変更する

[設定]→[キーボード]→[ショートカットの表示とカスタマイズ]をクリックします。

[キーボードショートカット]ウィンドウの[システム]をクリックすると下記画面になります。

キーボードショートカットのシステム
キーボードショートカットのシステム

上の画像ではすべてのアプリケーションを表示する、にAlt + Aを割り当てています。

それでは、ピンチインした時に、このAlt(option) + Aの動作である[すべてのアプリケーションを表示する]が実行されるように設定します。


vi ~/.config/libinput-gestures.conf
gesture pinch in        xdotool key alt+a

libinput-gestures-setup restart
#libinput-gesturesを再起動し設定ファイルを再読込します

パラメータ意味
pinchピンチジェスチャーを指定
inピンチインの場合、
alt+aalt+aを実行する

設定後、libinput-gesturesが再起動し動作を確認します。

【4】「親指と3本指でピンチイン→全てのアプリを表示する」が実現しました

【5】親指と3本指でピンチアウト→デスクトップを表示する

Ubuntuのキーボードショートカットに用意されている「すべての通常のウィンドウを隠す」を「ピンチアウト」に割り当て目的を実現してみます。

すべての通常のウィンドウを隠す、のキーボードショートカットを変更する

[設定]→[キーボード]→[ショートカットの表示とカスタマイズ]をクリックします。

[キーボードショートカット]ウィンドウの[ナビゲーション]をクリックすると下記画面になります。

キーボードショートカットのシステム
キーボードショートカットのシステム

上の画像ではすべてのアプリケーションを表示する、にCtrl + Alt + Dを割り当てています。

それでは、ピンチアウトした時に、このCtrl + Alt + Dの動作である[すべての通常のウィンドウを隠す]が実行されるように設定します。


vi ~/.config/libinput-gestures.conf
gesture pinch out       xdotool key alt+control+d

libinput-gestures-setup restart
#libinput-gesturesを再起動し設定ファイルを再読込します

パラメータ意味
pinchピンチジェスチャーを指定
outピンチアウトの場合、
alt+control+dalt+control+dを実行する

設定後、libinput-gesturesが再起動し動作を確認します。

【5】親指と3本指でピンチアウト→デスクトップを表示する」が実現しました。再度ピンチアウトすると元のウィンドウが表示されますが、Macと挙動が異なりやや使いにくいです。慣れの問題もありますが。

最後に

最後まで読んでいただきありがとうございます。今回の【Linux】Ubuntu22.04でMacBookのトラックパッドをMacなみに使えるようにする(libinput-gestures)はいかがでしたでしょうか。

「4本指で下にスワイプ」で「そのアプリを一覧表示する」ことが実現できませんでしたが、gnome-extensionsや次期Ubuntuでそういった機能が追加されることを期待もします。

この記事がみなさんのMacとLinuxライフに少しでもお役に立てたら幸いです。

MacやLinux、Pythonなど技術系のkindle本も豊富にあります。詳しくはこちらから。

初めてkindle unlimited 読み放題をご利用の方は30日間の無料で体験できます。
期間終了後は月額980円で、いつでもキャンセルできます。
200万冊以上が読み放題。お好きな端末で利用可能です。

【特集】快適なデスクトップ環境を構築する

定番おすすめ記事

MacBook Air (13-inch, Mid 2012)を蘇らせるべく最新のUbuntuである22.04LTSをインストールし普通に使えるまでの設定します。

カテゴリー:
関連記事