- TypeScript 55.6%
- Shell 26.6%
- JavaScript 10.5%
- Lua 4.9%
- PowerShell 2.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
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. |
||
| .config | ||
| .github/workflows | ||
| ai-memory | ||
| docs | ||
| home | ||
| prefs | ||
| tests | ||
| .gitignore | ||
| AGENTS.md | ||
| auto-install.sh | ||
| CLAUDE.md | ||
| install-packages.sh | ||
| install.sh | ||
| PI.md | ||
| README.md | ||
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 経由で自動インストール)
- zsh-autosuggestions — 履歴からの薄い入力候補
- fast-syntax-highlighting — コマンドの色付け
- history-search-multi-word — 履歴検索
- zsh-history-substring-search — ↑↓ で前方一致履歴
- zsh-completions — 追加の補完定義
- powerlevel10k — プロンプトテーマ
- OMZ スニペット: history / git / key-bindings / clipboard / spectrum / sudo(ESC 2回で sudo 付与)
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 には含めない)