Skip to content

Repository files navigation

dotfiles

ホームディレクトリ配下の設定ファイルを、このリポジトリで管理するための dotfiles です。 各設定は Git で追跡し、別環境でも同じ作業環境を再現できるようにします。

方針

  • 設定ファイルの実体はこのリポジトリに置く
  • install.shHOME にシンボリックリンクを作る
  • 既存ファイルは ~/.dotbackup/<timestamp>/ に退避する
  • 管理対象は .linktargets で明示的に指定する

セットアップ

Taskfile のインストール

task の実行には Task が必要です。

# Ubuntu / Debian
curl -1sLf 'https://dl.cloudsmith.io/public/task/task/setup.deb.sh' | sudo -E bash
sudo apt install task

# macOS
brew install go-task

# インストールスクリプト(汎用)
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b ~/.local/bin

Taskfile の設定

  • Taskfile.dist.yaml(配布用 Taskfile)をコピーして自分用のTaskfile.yamlを作成する

  • Taskfile.dist.yaml(gitリポジトリに格納される)は配布用です。新しい機能が追加されると随時更新されます。 こちらをTaskfile.yaml(gitリポジトリに格納されない)にコピーして自分のローカル環境に合うように設定を編集して使用してください。

  • $task で呼び出されるファイルには優先順位があります。

Taskfile 使い方

  • すべてのタスクは Taskfile に定義されています。
  • 必要なタスクを実行してください
  • $ task <タスク名>

dotfiles のリンクスクリプト

install.sh の動作は以下です。

  • .linktargets を上から順に読む
  • 空行と # コメント行は無視する
  • HOME に同名ファイルやディレクトリがあればバックアップする
  • すでに同じリンクが存在する場合は skip する

管理対象

現在のリンク対象は .linktargets で管理しています。

.config/tmux
.config/nvim

対象を増やす場合は .linktargets に 1 行ずつ追加します。

.config/tmux
.config/nvim
.bashrc
.profile

追加したパスは、このリポジトリ直下に存在している必要があります。

フォントの扱い

フォント本体はこのリポジトリには含めません。 必要なフォントはセットアップ時に upstream から取得して ~/.local/share/fonts に配置します。

現在は Nerd Fonts 合成版の HackGen を scripts/install-fonts.sh で導入します。

task fonts:install

スクリプトは ~/.local/share/fonts/HackGen_NF/ に展開し、利用可能なら fc-cache を更新します。 取得元 URL と固定バージョンは scripts/install-fonts.sh で管理します。

更新フロー

  1. 設定を変更・追加する
  2. 対応する設定ファイルをこのリポジトリで更新する
  3. task install:dry-run で対象を確認する
  4. task install で反映する
  5. 必要なら task fonts:install でフォントを導入する
  6. git add git commit git push で保存する

関連ファイル

  • install.sh: バックアップとシンボリックリンク作成
  • .linktargets: リンク対象一覧
  • Taskfile.dist.yml: タスク定義配布用
  • scripts/install-fonts.sh: フォント取得とインストール

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages