• TypeScript 55.6%
  • Shell 26.6%
  • JavaScript 10.5%
  • Lua 4.9%
  • PowerShell 2.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Zel9278 f7f87e61a1
Some checks failed
test / install.sh placeholder resolution (push) Successful in 8s
test / shellcheck (push) Failing after 4s
test / ai-memory validation (push) Successful in 4s
test / secret scan (push) Successful in 4s
Colour fzf history by whether each command still resolves
Green when the leading command resolves, red when it does not, so
uninstalled tools, typos and host-specific binaries stand out in Ctrl+R.
fzf reads history itself, so the listing is coloured before it and
decoded with --ansi, which means replacing fzf's widget; dedupe, newest
first, query carry-over and multi-select are kept, multi-line entry
restoration is not. Also give FZF_DEFAULT_OPTS an explicit palette.
2026-08-15 08:07:51 +09:00
.config strict-guard: indent wrapped subject lines under their prefix 2026-08-14 19:29:41 +09:00
.github/workflows Add pi support and move home dotfiles into home/ 2026-08-14 10:01:10 +09:00
ai-memory Add pi support and move home dotfiles into home/ 2026-08-14 10:01:10 +09:00
docs Add GitHub Pages installer endpoint 2026-07-31 17:24:13 +09:00
home Colour fzf history by whether each command still resolves 2026-08-15 08:07:51 +09:00
prefs Configure GitHub credential helper and rename user 2026-08-01 23:00:31 +09:00
tests Add pi support and move home dotfiles into home/ 2026-08-14 10:01:10 +09:00
.gitignore Install pi extension deps with pnpm, falling back to npm 2026-08-15 06:17:14 +09:00
AGENTS.md Add pi support and move home dotfiles into home/ 2026-08-14 10:01:10 +09:00
auto-install.sh Ask before installing optional packages 2026-08-02 22:34:12 +09:00
CLAUDE.md Add pi support and move home dotfiles into home/ 2026-08-14 10:01:10 +09:00
install-packages.sh Get Node from pnpm instead of distro packages 2026-08-15 06:08:50 +09:00
install.sh Install pi extension deps with pnpm, falling back to npm 2026-08-15 06:17:14 +09:00
PI.md Add pi support and move home dotfiles into home/ 2026-08-14 10:01:10 +09:00
README.md Get Node from pnpm instead of distro packages 2026-08-15 06:08:50 +09:00

dotfiles

zsh ベースの dotfiles。ベース: https://github.com/Zel9278/new-dotfiles

構成

home/ 以下はそのまま $HOME へ配るファイル。リポジトリルートを読みやすく保つため、実体はここにまとめている。

ファイル 内容
home/.zshrc .zshrc.d/*.zsh を番号順に読み込むローダー
home/.zshrc.d/00-env.zsh 環境変数 / PATH
home/.zshrc.d/40-completion.zsh 補完の強化(メニュー選択・大文字小文字無視・色付け)
home/.zshrc.d/50-zinit.zsh zinit のブートストラップとプラグイン定義
home/.zshrc.d/60-keybinds.zsh キーバインド(単語移動・Home/End・Ctrl+X Ctrl+E)
home/.zshrc.d/70-man-colors.zsh man ページの色付け
home/.zshrc.d/80-fzf.zsh fzf 統合(Ctrl+R / Ctrl+T / Alt+C)
home/.zshrc.d/90-yazi.zsh yazi 統合(y で終了時にそのディレクトリへ cd)
home/.zshrc.d/99-alias.zsh エイリアス(eza / fastfetch があればそちらを使用)
home/.zshrc.d/99-auto-cdls.zsh cd 後に自動で ls
home/.zshrc.d/99-p10k.zsh powerlevel10k 設定の読み込み
home/.zshrc.d/99-local.zsh ~/.zshrc.local を読み込み(管理外のローカル設定用)
home/.gitconfig git のユーザー情報・エイリアス・便利設定
home/.vimrc vim の最小限の見やすい設定
home/.p10k.zsh powerlevel10k の設定(p10k configure で生成)
.config/fastfetch/config.jsonc fastfetch の表示設定(ff コマンド)
.config/bat/config bat のテーマ設定
.config/nvim/ Neovim 設定(LazyVim ベース)
.config/yazi/yazi.toml yazi 設定(実行ファイルをターミナルで直接起動。KIOの "launching executables is not allowed" 回避)
.config/pi/ pi coding agent の設定(settings.json / カスタムプロバイダの models.json)
ai-memory/ Codex・Claude・pi で共有する分類型の作業コンテキスト・判断メモ
AGENTS.md / CLAUDE.md / PI.md AI が ai-memory/ を参照・更新するためのリポジトリ指示
prefs/tone.md AI の口調ルール(全エージェントが起動直後に読む)
prefs/privacy.md メモリへ保存してよい情報の境界
asciinema ターミナル操作の録画・再生・共有(alias: arec / aplay / aupload / astream)
install.sh $HOME と ~/.codex / ~/.claude / ~/.pi/agent にシンボリックリンクを張る(既存ファイルはバックアップ)
tests/test-install.sh install.sh のパス展開・冪等性・秘密漏れの検証(GitHub Actions でも実行)
auto-install.sh 新規マシン用ブートストラップ(clone → install)

AI Memory

ai-memory/AGENTS.md を正本にして、メモをトピック・種類ごとのMarkdownに分けて管理する。 索引の更新と検証は、Linux/macOSでは ai-memory/tools/*.sh、Windowsでは ai-memory/tools/*.ps1 を使う。 個人メモ、生成索引、Obsidian設定はGit管理外。install.sh はCodex、Claude Code、piのグローバル入口だけを ~/.dotfiles へリンクする。 口調とプライバシーのルールは prefs/tone.md と prefs/privacy.md に置き、各エージェントの入口ファイルから参照する。

プラグイン(zinit 経由で自動インストール)

git の主なエイリアス・設定

コマンド 内容
git lg グラフ付きの見やすいログ
git st / git co / git sw / git br status -sb / checkout / switch / branch
git dc / git unstage staged の diff / add の取り消し
push.autoSetupRemote git push だけで upstream 設定
fetch.prune / rerere 消えたブランチ参照を掃除 / コンフリクト解消を記憶

asciinema のエイリアス

asciinema がインストールされている場合だけ、次のエイリアスを有効にする。

コマンド 内容
arec ターミナル録画(asciinema rec)
aplay 録画再生(asciinema play)
aupload 録画アップロード(asciinema upload)
astream ライブ配信(asciinema stream)

録画は arec demo.cast のように保存し、再生は aplay demo.cast で行う。録画ファイルはdotfilesへコミットしない。

Nix のエイリアス

nix がインストールされている場合だけ、次のエイリアスを有効にする。

コマンド 内容
nx パッケージを実行(nix run)
nsh 一時的なパッケージ環境(nix shell)
nxd 開発シェル(nix develop)
nxb flakeをビルド(nix build)
nfu flakeの依存関係を更新(nix flake update)
ngc 古いNix世代を削除(nix-collect-garbage -d)

依存ツール(任意)

このdotfilesが使うコマンドラインツールを、検出したパッケージマネージャーから導入できる。

~/.dotfiles/install-packages.sh

対応しているパッケージマネージャーは dnf (Fedora)、apt-get (Debian / Ubuntu)、pacman (Arch) 。Debian / Ubuntuでは fzf と Neovim を GitHub Releases の最新版バイナリから導入し、取得できない場合は apt 版へフォールバックする。Archで paru が無い場合は、AURから paru を導入するか確認してから進む。

APTではNeovimを公式GitHub Releasesの最新版として ~/.local/bin に導入する。標準リポジトリに無い fastfetch / yazi も、対応アーキテクチャなら公式GitHub Releasesの .deb をダウンロードして導入する。それ以外のパッケージは警告を表示してスキップする。

pi はどのディストリでもパッケージ化されていないため、pnpmで導入する(root不要)。pnpmが無い場合は公式インストーラで先に導入し、失敗時は corepack にフォールバックする。Nodeが無い/古い場合は pnpm env use -g lts で現在のLTSを用意する。バージョンは固定。どれも成立しない環境では警告を出してスキップし、他のパッケージの導入は続行する。

Nodeはディストリのパッケージ(nodejs / npm)を使わず、pnpmに一本化している。Debian/Ubuntuの npm は eslint・webpack・babel・tap など約400パッケージを引き連れてくるうえ、nodejs は18でpiの要求する22に届かないため、大きな依存ツリーを入れた上で結局新しいNodeを別途取得することになっていた。

Fedoraで手動実行する場合:

sudo dnf install -y asciinema fzf eza fastfetch bat neovim ripgrep fd-find yazi
  • fzf: Ctrl+R で曖昧履歴検索、Ctrl+T でファイル挿入、Alt+C でディレクトリ移動
  • eza: モダンな ls(インストールされている場合自動で ls 系エイリアスが切り替わる)
  • fastfetch: システム情報表示(ff / nf / sf)
  • bat: シンタックスハイライト付き cat
  • neovim + ripgrep + fd-find: LazyVim 本体と検索系ツール
  • yazi: ターミナルファイルマネージャ(マウス対応)。y で起動すると終了時のディレクトリに移動できる
  • asciinema: ターミナル操作の録画・再生・共有(arec / aplay / aupload / astream)
  • pi: コーディングエージェント。pnpmで $PNPM_HOME へ導入(設定は .config/pi/)
  • Nix: パッケージ管理と再現可能な開発環境(nx / nsh / nxd / nxb / nfu / ngc)

yazi の主な操作

キー 動作
h j k l / マウス 移動(クリック・スクロール・ダブルクリックも可)
Enter 開く / ディレクトリに入る
Space 選択(複数可) → y=コピー x=切り取り p=貼り付け
a 新規作成 / r リネーム / d ゴミ箱
Tab タブ追加
~ でヘルプ、q 終了

Neovim (LazyVim)

EDITOR=nvim。リーダーキーは Space。主な操作:

キー 動作
Space Space ファイル曖昧検索
Space e ファイルツリー表示切替
Space s g 全文検索(live grep)
Space , 開いているバッファ(タブ)切替
gd / K 定義ジャンプ / ホバーでドキュメント
Space c a コードアクション(LSP)
Space g g lazygit風Git UI
Ctrl / ターミナル表示切替
Space q q 終了
  • 初回起動時にプラグイン・LSP・tree-sitter parser が自動インストールされる
  • カスタマイズは lua/plugins/ にファイルを追加(例: example.lua 参照)

インストール

新しいマシンではこれ一発:

bash <(curl -sL https://raw.githubusercontent.com/Zel9278/new-dotfiles/main/auto-install.sh)

実行時に任意パッケージを導入するか確認する。後から導入する場合は ~/.dotfiles/install-packages.sh を実行する。

手動の場合:

git clone <このリポジトリのURL> ~/.dotfiles
~/.dotfiles/install.sh
exec zsh          # 初回起動時に zinit がプラグインを自動インストール
p10k configure    # プロンプトの見た目を対話的に設定

install.sh は通常のdotfilesに加えて、次のAIエージェント入口も作成する。入口ファイルには、実際の DOTPATH に解決した ai-memory/AGENTS.md の canonical 参照が書き込まれる。

~/.codex/AGENTS.md
~/.claude/CLAUDE.md
~/.pi/agent/AGENTS.md

既存の実ファイルは .bak.<日時> に退避する。Yuki InferenceなどCodexのユーザー固有設定は、dotfilesには含めず ~/.codex/config.toml で管理する。

pi coding agent

install.sh は .config/pi/settings.json と .config/pi/models.json を ~/.pi/agent/ へリンクする。 APIキーは models.json に環境変数名(例 $PIPI_API_KEY)で書き、値は ~/.zshrc.local に置いてdotfilesには含めない。 認証情報(auth.json)、モデルキャッシュ、セッションログはGit管理外。

テスト

bash tests/test-install.sh

使い捨ての HOME に向けて install.sh を実行し、次を検証する。実際のホームは変更しない。

  • テンプレートの {{DOTPATH}} がすべて実パスに展開されていること
  • 生成された入口が参照する絶対パスがすべて実在すること
  • 読み込み順の節に、cwd依存で壊れる裸の相対パスがないこと
  • 再実行しても .bak が増えないこと(冪等)
  • models.json のAPIキーが環境変数参照のままで、リテラルの鍵がないこと

GitHub Actions(ubuntu-latest)ではこれに加えて shellcheck、ai-memory の索引検証、個人メモと認証ファイルが追加されていないかを確認する。

Tips

  • touch ~/.dotfiles.verbose で .zshrc.d の読み込みログを表示(rm で無効化)
  • プラグイン更新: zinit update --all
  • reload で zsh を再起動(設定反映)
  • 補完は Tab でメニュー表示 → 矢印キーで選択
  • Ctrl+X Ctrl+E でコマンドラインをエディタで編集
  • マシン固有の設定は ~/.zshrc.local に書く(dotfiles には含めない)