Skip to content

anko9801/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

dotfiles

# インストール
brew install yadm                # macOS
sudo apt install -y yadm         # Ubuntu/Debian  
sudo pacman -S --noconfirm yadm  # Arch Linux

# セットアップ
yadm clone https://github.com/anko9801/dotfiles
yadm status && yadm diff         # 既存設定がある場合は競合確認
yadm reset --hard origin/master  # 必要に応じて既存設定を破棄
yadm bootstrap

コンセプト

新しいマシンでもコマンド一発でいつもの環境を再現したい。理想としてはこんな感じ:

  • らくちん - 1コマンドでセットアップ&管理
  • ミニマル - .config にすべて収納
  • シークレット管理 - SSH 鍵や API キーはパスワードマネージャーで管理、ローカルには置かない
  • マシン差分を吸収 - OS (macOS/Linux/WSL/Windows) やコンテキスト (work/personal) に応じた設定
  • 再現性 - 必要なツールはすべて宣言的に管理、どこでも同じ環境を構築
  • 冪等性 - 何度実行しても既存の設定を壊さない

最も条件を満たすのは Nix かと思いますがガベコレの運用コストが高いので断念。 実装の工夫で冪等性を満たして、宣言的で再現可能にしてみました。

こだわりポイント

  • yadm によるシンプルな管理 - なぜyadm?
  • シェルも収納 - /etc/zsh/zshenv で XDG Base Directory 準拠することで .zshrc も .config に収納
  • 1Passwordで認証管理 - SSH 鍵、GPG 鍵、API トークンを安全に管理 - op/README.md
  • 冪等性 - 冪等なシェルスクリプトのベストプラクティス
  • 宣言的なパッケージ管理 - packages.yamlmise で全プラットフォーム統一管理
  • 顔文字プロンプト - いつもは ╰─(*'-') ❯ エラーが出たら ╰─(*;-;) ❯

Tools

  • Shell: zsh + sheldon
  • Multiplexer: tmux + TPM
  • Editor: Vim + dpp.vim, Neovim + lazy.nvim
  • dev env: mise (Node.js, Go, Rust, Ruby, Deno, Bun)
  • Python: uv, ruff
  • Git: git, delta, gitui, ghq, gibo, git-lfs, gitleaks
  • Modern CLI: bat, eza, ripgrep, fd, fzf, gh, starship, zoxide, atuin, mcfly, duf, dust, tokei, sd, bottom, gomi
  • AI Assistant: Claude Code, Gemini CLI

macOS Specific:

  • Window Manager: yabai + skhd
  • Launcher: Raycast

About

dotfiles and build base settings

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •