GNOME Shell Extension

dotfiles に埋まってた GNOME 拡張を GitHub リポジトリに切り出した

TL;DR — dotfiles に埋まっていた GNOME Shell 拡張を独立リポジトリに切り出して GitHub で公開した。uuid を 拡張名@ドメイン 形式に変更し、インストール先ディレクトリ名も合わせる必要がある。

以前の記事で作った IME インジケーター拡張を、dotfiles から独立したリポジトリに切り出した。

背景:GNOME Extensions への公開は見送り

GNOME Extensions に登録しようかと思ったけど、ポリシーを Claude さんに確認してもらって、それを自分なりに解釈した結果、「AI で生成したコードはいいけど、自分で説明できないならリジェクトね」っていうことらしい(たぶん)。

「GNOME + fcitx5 + Mozc + 入力モードが視覚的にわからなくてつらい人」というターゲットの少なさも考えると、ひとまず GitHub に public リポジトリを作ることにした。
そんな見る人もいないからいいよね。俺得だし。

やったこと

リポジトリ自体は空で作ってあったので、ファイルをコピーして移植する作業を Claude Code に任せた。

uuid と metadata.json の整備

dotfiles 版は ime-indicator@local という uuid を使っていた。GNOME 拡張の uuid は慣習的に 拡張名@ドメイン の形式をとるので、[email protected] に変更し、あわせて GitHub リポジトリの URL も追記。

{
  // Before
  "uuid": "ime-indicator@local"
}
{
  // After
  "uuid": "[email protected]",
  "url": "https://github.com/devmasa/gnome-ime-indicator"
}

uuid を変えるとインストール先のディレクトリ名も変わるので、既存環境では入れ直しが必要。まあ自分しか使ってないので問題なし。

Ubuntu + fcitx5 で IME モードをトップバーの色で示す GNOME 拡張を作った(作ってもらった)

TL;DR — Ubuntu + fcitx5 で IME の入力モードをトップバーの色で示す GNOME Shell 拡張を作った。fcitx5-remote を 400ms ポーリングして Main.panel.set_style() で色を切り替えている。→ Github で公開してます

Ubuntu デスクトップで日本語入力してると、いま英語モードなのか日本語モードなのかわからなくなることがよくある。トップバーの右端に「あ」とか「A」は出てるんだけど、作業中は目線が画面中央にあるので全然気づかない。

何回も Ghostty の tmux でプレフィックス打って効かないことが続くの嫌になった。心底嫌になった。

macOS だと入力モード切り替え時に画面上に色付きのバーで今のモードを表示してくれるやつがあったのに…

既製品を探した

Claude さんに相談してみて、GNOME Extensions も漁ったけど、ぴったりのものがない。

  • Kimpanel(extension/261): fcitx5 と連携してトップバーにモード表示できる。でも文字表示なので見づらさは変わらない
  • Input-Method Status Indicator(extension/68): IBus 向けなので fcitx5 環境では微妙
  • カーソル近くに表示するやつ: Linux/GNOME には存在しなかった

そんなとき

「無ければ作ればいいじゃんw」

みたいなノリで Claude 様がおっしゃられたので

「まじっすか、それでお願いします!」

って言ったら10分もかからずにできた。すげーなおい。

俺指示したの「色の指定は外出しファイルにしてリアルタイムに反映できるようにしといて」の雑な1行だけ。

そんな雑な指示によって作られたものが以下です。

作ったもの(作ってもらったもの)

fcitx5 が提供している fcitx5-remote コマンドをポーリングして、返り値に応じてトップバーの色を切り替える GNOME Shell 拡張。

~/.local/share/gnome-shell/extensions/ime-indicator@local/
├── extension.js
├── colors.json
└── metadata.json

metadata.json

{
  "name": "IME Indicator",
  "description": "fcitx5 の入力モードに応じてトップバーの背景色を切り替える",
  "uuid": "ime-indicator@local",
  "shell-version": ["46"],
  "version": 1
}

colors.json

色の設定だけを切り出したファイル。ここを編集すると即時反映される。