Ubuntu

Ubuntu 初期設定メモ:日本語入力・CapsLock・HackGen フォント

TL;DR — Ubuntu を入れたら最初にやること3つ:fcitx5+Mozc で日本語入力、CapsLock → Ctrl リマップ、HackGen Nerd Font インストール。

ふと思い出したけど、MacBook Pro 2015 Mid に Ubuntu 24.04 を入れてから安定するまでの道のりはひどかった…

それ書いて満足してたんだけど、一番先にやってた日本語入力のあれこれを記事にしてなかったので、やったこと3つをここに書いておく。

ちなみにデスクトップは全然いじってなくて壁紙変えたくらいなので、標準の Ubuntu デスクトップ環境です。

設定1:日本語入力(fcitx5 + Mozc)

Ubuntu のデフォルト IME は IBus なんだけど、IBus+Mozc は動作が不安定なことがある(変換がもたつく、日本語にすると直接入力モードが選択されてデフォルト英字になるなど)。

頭来たので、fcitx5 に乗り換えた。

インストール

sudo apt remove --purge ibus-mozc ibus-table
sudo apt install -y fcitx5 fcitx5-mozc fcitx5-configtool
im-config -n fcitx5

Ctrl+Space の競合を解消

GNOME が Ctrl+Space を入力ソース切り替えとして横取りしているので無効化する。

gsettings set org.gnome.desktop.wm.keybindings switch-input-source "[]"

これで fcitx5 が Ctrl+Space を受け取れるようになる。

あとは fcitx5-configtool を起動して Mozc を追加し、トリガーキーに Ctrl+Space を割り当てれば完了。

npm グローバル管理から mise に移行したら npm キャッシュにハマった話

TL;DR — mise の npm バックエンドで @latest が存在しないバージョンに解決される場合、mise cache clear で mise の versions host キャッシュを消すと直る。

npm でグローバル管理していたツールを mise に移行しようとしたら、キャッシュ問題でちょっとハマったので記録しておく。

移行対象

$ npm list -g --depth=0
├── @playwright/[email protected]   ← 新しいやつ(旧: playwright-cli)
├── @tobilu/[email protected]
├── @playwright/[email protected]
└── [email protected]

今回 mise に移行したのは @playwright/cli@tobilu/qmd の2つ。

@playwright/cli の移行でハマった

まず Deprecated なパッケージを入れてしまう

まず playwright-cli(旧・Deprecated)と @playwright/cli(新)を間違えて Deprecated の方を mise に入れてしまった。mise unuse で無効化してから改めてやり直し。

そしたら謎のエラーが出た。

$ mise use --global npm:@playwright/cli@latest
npm error code ETARGET
npm error notarget No matching version found for @playwright/[email protected].

@latest を指定しているのに 0.262.0 という存在しないバージョンを引いてくる。なにそれ。

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

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

余ったMacBook Pro 2015でUbuntuを動かすまでの地獄

TL;DR — MacBook Pro 2015 の Apple SSD は Linux で 4MB 超の DMA 転送でバイナリが壊れる問題がある。max_sectors_kb=1024 の udev ルールと GRUB の ATA パラメータ追加で解決できる。

はじめに

先日 Windows 11 のノートPCを手に入れた。会社でも WSL で Ubuntu 使ってるので喜び勇んで WSL をセットアップして満足。うちでも開発できる環境ができた。
それはそれでいいんだけど、それまでメインで使っていた MacBook Pro 2015 は完全に引退となった。

macOS はとっくに更新できなくなっているし、このまま眠らせておくのも勿体ない。

OpenClaw

最近、猫も杓子も OpenClaw という世の中の流れになっているらしい。中国ではセットアップするサービスに行列が出来たとか何とか。
自宅サーバーに置いてローカルで動き、WhatsApp や Telegram など使い慣れたチャットアプリから操作できる。メール管理やカレンダー操作、ファイル操作まで自動化できるというやつですね。 面白そうだし、試してみようかなーと思ったけど、いざ調べてみたら結構セキュリティやばそう。

  • RCE 脆弱性(CVE-2026-25253、CVSS 8.8)が報告されており、認証なしで公開されているインスタンスが世界に 42,000 件以上
  • プラグインマーケットプレイス(ClawHub)の約 12% が悪意あるスキル
  • メール・カレンダー・購入・ファイルと権限が広すぎるので、侵害されたときの被害が大きい

いや、これ普通にやったらやばいだろ。

nanoclaw

で、他のないかなと探していたら、nanoclaw を見つけた。コンテナで隔離して動かせる設計になっているし、これならホストへの影響も最小限になりそう。

ということで、MacBook Pro 2015 に Ubuntu を入れて、その上で nanoclaw をコンテナで動かすことにしたんだけど、そこからはまりまくった。