【Arch+niri+chezmoi】開発環境現状確認 2026-02

投稿日: 最終更新日:

ツイート GitHubで見る

はじめに

Arch Linuxを常用するようになってから約4ヶ月が経過しました。春の長期休暇を機にdotfilesをNixに移行しようとしているので、一旦現状の環境の振り返りをしたいと思います。

デスクトップ環境の概況

マシン・OS

物理端末: Lenovo ThinkPad T480s

2025-09-21に東京ラジオデパート3FのAKIBA JUNKSにて9000JPYで購入しました。SSDがなかったのでヨドバシカメラにて512GBのNVMe SSDを5000JPYで購入し挿入しました。いわゆるAIバブルの影響でここ数ヶ月のところ各種半導体製品が著しく値上がりしており、今ヨドバシのサイトを確認したところ同商品が18000JPYになっていました。あのタイミングで購入できたことを幸運に思います。

MMAの合宿中にUbuntuをインストールしている様子↓

現在はキーボードを †US Backlit† に換装して使用しています。

OS: Arch Linux

工学研究部の先輩から強くおすすめされていたため導入しました。当初はMcbeEringiさんのdotfilesにあったsetup.shを叩いて生やした環境をそのまま使用していましたが、11月末の調布祭後ごろに再びインストールして自力での環境構築を試みました。現状割と安定して動作しています。

当初使用していたArch+Hyprland+McbeEringi dotfiles の環境↓

ウィンドウマネージャ: niri

横方向に無限にスクロールできるタイル型ウィンドウマネージャです。あなた氏に紹介されて入れてみたら快適だったので使い続けています。

推奨セットアップにDank Material Shellというデスクトップシェルが入っていたのでこれも使っています。いい感じのステータスバーを特段の設定なしで出してくれるのでありがたいです。

Dank Material Shellのいい感じのステータスバー

環境のセットアップ

dotfiles管理: chezmoi

各種設定ファイルを単一のGitリポジトリで管理でき、それらをコマンド一発で自動でホームディレクトリ以下に配置してくれます。chezmoi init ctes091xするとctes091x/dotfilesがGitHubからクローンされ、~/.local/share/chezmoi/に置かれます。ここにあるファイルを編集してchezmoi applyを実行すると、自動で適切な位置にコピーされます。

外部ファイルやGitリポジトリをネット上から取得し、これらを自動で配置することも可能です。.chezmoiexternal.tomlに種別・URL・更新間隔を記述すると、chezmoi applyするときにそれらのファイル類が取得・配置されます。

# 記述例。vim-plugのスクリプトをGitHubから取得する
[".local/share/nvim/site/autoload/plug.vim"]
  type = "file"
  url = "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim"
  refreshPeriod = "168h"

一般ユーザー権限でも導入できるため、solやCEDの端末にもインストールして使用しています。

chezmoi, pronounced /ʃeɪ mwa/ (shay-mwa)

カラースキーム: Catppuccin Mocha

各種ソフトのカラースキームをCatppuccinで統一しています。思いつくおよそあらゆるソフトウェアのテーマファイルがGitHubにあるので、これを先述のchezmoiで取得・適用しています。

ターミナル・シェル

ターミナルエミュレータ: foot

当初はniriの推奨になっていたAlacrittyを使用していましたが、名無し。さんのプロフィールを画像付きで表示したかったため、Sixelフォーマットによる画像表示に対応したfootに乗り換えました。

Sixelによって画像を表示したfootの画面

Catppuccin Mochaテーマを適用しています。Sauce Code Pro Nerd Fontを使用しており、Neovimやtmuxのステータスラインをいい感じに表示できています。

シェル: zsh

Oh My Zshでテーマとプラグインの管理を行っています。プロンプトテーマはre5et、プラグインはzsh-autosuggestionsのみを導入しています。

ターミナルマルチプレクサ: tmux

tmuxのCatppuccinテーマにいい感じのステータスバーの設定が同梱されていたため、これをそのまま使用しています。CPU使用率やバッテリー残量を表示するためのプラグインはchezmoiの外部リポジトリ取得機能を用いてGitHubから落としています。TPMはいらない子

画面分割のショートカットがVimと逆だったので入れ替えて使用しています。

bind v split-window -h -c '#{pane_current_path}'
bind h split-window -v -c '#{pane_current_path}'

ソフトウェア

エディタ: Neovim

冬期休暇頃にVimから移行し、これにあたって設定をLuaに書き換えました。

プラグインマネージャはVimの頃からの惰性でvim-plugを使用しています。ステータスラインはlualine、ファイラーはFernを使用しています。

Neovimでこの記事を編集している様子

Vimでテトリスをやりまくっていたおかげでhjklキーによるカーソル移動にはかなり慣れられましたが、このスクリプトはNeovimでは正常に動作しないため、これをやるためだけに今もVimを残しています。

日本語入力: fcitx5-skk

夏期休暇半ば頃からSKKを使用しています。デフォルトの設定では\を押してしまうと区点入力モードに移行して身動きが取れなくなってしまうため、~/.config/libskk/rules/default/keymap/default.json"\\"のフィールドを消去することでこれを無効化しました。デフォルトのファイルを上書きするの良くないかもしれない

ランチャー: fuzzel

niriの推奨セットアップにあったのでそのまま入れました。catppuccinテーマを適用しています。Dank Material Shellにも組み込みのランチャーがありますが、ショートカットキー一発で開くオプションを見つけられていないため、主としてfuzzelを使用しています。

リソースモニタ: btop

いい感じのTUIでジョブ管理やリソースの監視ができます。catppuccinテーマを適用しています。

Gitクライアント: lazygit

いい感じのTUIでGitリポジトリの操作ができます。catppuccinテーマは適用していませんが、ターミナル自体のカラーテーマ設定によってそれらしく表示されています。

おわりに

とりあえず今後環境を移行したあとで過去を振り返り懐かしむに足るだけの情報は残せたと思うので、ここからNix+home-managerへの移行を頑張っていきたいと思います。