GNOME 拡張機能 手動インストールの 3 ステップ

1) 拡張機能をダウンロードして解凍
まず GNOME 拡張機能をダウンロードする。extensions.gnome.org には GNOME 拡張機能のカタログがあって、拡張機能ページの中央に「拡張機能のホームページ」が載ってる。WinTile を例に説明すると、「拡張機能のホームページ」として GitHub がリンクされてるから、そこへ行って zip を落とせば OK👍

ダウンロードした zip を解凍して、中に入っている metadata.json
を見ていきます。その前に、お使いの GNOME バージョンを確認しておこう。設定の「このシステムについて」に記載があるよ。

2) metadata.json を開いて中身を確認
解凍したフォルダに入っている metadata.json
をテキストエディタで開くと、shell-version
というのが見つかる。ここには、その拡張機能が対応する GNOME バージョンが記載されてる。使用中の GNOME バージョンが含まれてれば、問題なし。
ちなみに、WinTile の metadata.json
の shell-version
には “42” が書かれてない。これは一見すると、現行の最新版 (そして僕が使用している) GNOME 42 に対応してないように見える。しかし単に shell-version
に “42” を追加するだけで、問題なく動作する。この方法で僕の環境では動作したし、そういうコメントも存在してる。この方法が、どの拡張機能でも通用するかは不明だけど…

metadata.json
に追加して手動インストールせよ、とのコメントもう 1 つ。metadata.json
の uuid
を参照しよう。例えば WinTile なら wintile@...
と書かれてる文字列がそれ (下図参照)。この文字列をコピーしておく。後で使います。

uuid
をハイライトしてる (見づらい…🙇)3) フォルダ名を更新して所定の場所にコピー
コピーした uuid
で、解凍した拡張機能のフォルダ名を上書きする。これは GNOME が拡張機能を認識するために必要だそうだ。

uuid
に変えるフォルダ名を変更後、フォルダを ~/.local/share/gnome-shell/extensions
にコピーする。このディレクトリが無い場合は、作ってね。フォルダ作成の際は、extensions
の綴りに気を付けて。-tions
じゃなくて、-sions
だよ!(1 敗 😂)

コピー後に GNOME からログアウトし、拡張を有効化して再びログインすれば拡張機能が動作するはず!拡張を有効化するには、後述する Gnome 公式の Extensions か 非公式の Extension Manager を使ってね。お疲れ様でした!

公式謹製の Extensions と、非公式の Extension Manager
GNOME 拡張機能を管理するための GNOME 純正アプリ Extensions (日本語名「拡張機能」) がある。拡張機能の手動インストールについて参考にした記事は、作業の最後に Extensions を使って手動インストールした拡張機能を有効化せよと言っている。

Extensions を使うと、手動インストールした GNOME 拡張機能と、組み込みの GNOME 拡張機能 (←何?😅) を管理できる。と言うか、拡張機能を「管理」する機能しかない。extensions.gnome.org を参照して拡張機能を検索したり、検索した拡張機能をインストールしたりする機能は Extensions には無い。Extensions の見た目はこんな↓感じ。

一方で、GNOME 公式ではなく、第三者製の GNOME 拡張機能の管理アプリ Extension Manager もある (リンクは Flathub)。こいつは extensions.gnome.org に掲載されてる拡張機能を検索したり、それをインストールしたりする機能を内蔵しているスグレモノ。ver. 0.4 で互換性検査と適応的 UI を実装したと OMG Ubuntu でも紹介されてる (2022/10/07)。
Extensions Manager は便利そうだけど、僕の目的には合わなそう。今回の僕の目的は、以前もこのブログで紹介した WinTile をインストールすること。しかし WinTile は自身の metadata.json
の shell-version
に 42 を書いてないからか、ツールでのインストールを試みると「お使いの GNOME バージョンには非対応です」とか言われてしまうのよね。