macOS と Linux の SSH 環境で共通利用するための dotfiles です。設定ファイルはコピーせず、この clone へのシンボリックリンクとして配置します。
最低限 git、bash、zsh、vim が必要です。代表的なディストリビューションでは次のように導入できます。
# Debian / Ubuntu
sudo apt update && sudo apt install git bash zsh vim
# Fedora / RHEL 系
sudo dnf install git bash zsh vim-enhanced
# Arch Linux
sudo pacman -S git bash zsh vim
# Alpine Linux
sudo apk add git bash zsh vimclone 後にインストーラーを実行します。既存の設定がある場合、--backup はそれらを ~/.dotfiles-backup/<日時>/ へ退避してからリンクします。
git clone https://github.com/kmraven/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.sh --backup
./doctor.sh
exec zsh -lGitHub に SSH 鍵を登録済みなら、clone URL は git@github.com:kmraven/dotfiles.git でも構いません。
ログインシェルを恒久的に変更できる環境では、次も実行できます。
chsh -s "$(command -v zsh)"管理されたサーバーで chsh が許可されていない場合は、ログイン後に exec zsh -l を実行するか、ssh -t HOST zsh -l で接続します。
設定は、次のコマンドが未導入でも zsh の起動に失敗しないようになっています。必要な機能だけ各 OS のパッケージマネージャーで追加してください。
| コマンド | 有効になる機能 |
|---|---|
starship |
Starship プロンプト |
yazi, ya |
y 関数とファイルマネージャー |
micromamba |
初期化と conda エイリアス |
pwgen |
12 文字パスワード生成エイリアス |
docker |
dc, dps エイリアス |
g++ |
gpp エイリアス |
git-lfs |
Git LFS フィルター |
latexmk |
.latexmkrc |
Yazi を導入したホストでは、リンク作成後に SSHFS プラグインを取得します。
ya pkg installStarship の記号を正しく表示するには、SSH クライアント側のターミナルに Nerd Font を設定してください。
秘密情報やホスト固有設定は、このリポジトリに追加せず ~/.zshrc.local に記述します。このファイルは .zshrc の最後に読み込まれます。
既定値は環境変数で変更できます。
# micromamba の環境保存先
export MAMBA_ROOT_PREFIX="$HOME/micromamba"JAVA_HOME と DISPLAY がすでに設定されている場合は上書きしません。特に SSH の X11 forwarding で設定された DISPLAY は保持されます。
install.shはmanifest.txtに明記されたファイルだけを扱います。--backupなしでは、内容の異なる既存ファイルや別リンクを上書きしません。doctor.shは依存コマンド、構文、リンク状態、Git TLS 設定を読み取り専用で確認します。tests/test.shは一時 HOME で導入、競合保護、バックアップ、旧形式リンク、削除を検証します。- clone を削除するとリンクが切れるため、不要になった場合は先に
./uninstall.shを実行してください。
更新は clone 内で行います。
cd ~/.dotfiles
git pull --ff-only
./install.sh
./doctor.sh変更後の回帰テストは次で実行できます。
./tests/test.shcd ~/.dotfiles
./uninstall.shこの clone を参照しているリンクだけを削除します。バックアップは自動では復元・削除しません。