「ドットファイル」の版間の差分
(翻訳) |
(関連記事) |
||
2行目: | 2行目: | ||
[[en:Dotfiles]] |
[[en:Dotfiles]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
− | {{ |
+ | {{Related|XDG Base Directory サポート}} |
{{Related articles end}} |
{{Related articles end}} |
||
この記事では''ドットファイル''という名前で周知されているカスタム設定ファイルのユーザーリポジトリを収集しています。 |
この記事では''ドットファイル''という名前で周知されているカスタム設定ファイルのユーザーリポジトリを収集しています。 |
2016年10月22日 (土) 17:05時点における版
この記事ではドットファイルという名前で周知されているカスタム設定ファイルのユーザーリポジトリを収集しています。
バージョン管理
Git などのバージョン管理ソフトウェアでドットファイルを管理することで、変更を記録したり他のユーザーとファイルを共有したり、複数のホスト間でドットファイルを同期することができます。
gitignore を使う
ホームディレクトリに git ディレクトリ を作成することで変更を直接記録することができます。インデックスに追加するファイルは git add で選択することを推奨します。
変更が追跡されないファイルが生じないように (git clean で削除されます)、まずは gitignore で全てのファイルを除外してください:
~/.git/info/exclude
*
それから git add -f
で追跡したいファイルだけを追加します:
$ git add -f ~/.config/*
最後に変更を commit してください:
$ git commit -a
他のツール
- etckeeper — システム全体の設定が存在する
/etc
をバージョン管理します。バージョン管理ソフトウェアが無視するパーミッションやモードを記録することで動作します。様々な SCM システムをバックエンドとして使用可能。フックを使用することでシステムがアップグレードされる前にリポジトリに変更を自動的にコミットできます。
- GNU Stow — リポジトリのドットファイルから
$HOME
ツリーにシンボリックリンクを作成します。詳しくは [1] を見てください。
- Pearl — ドットファイルやプラグイン、プログラムあるいは git から入手できるあらゆるコードのパッケージマネージャ。システム間でパッケージを簡単に共有・同期することができ、すぐに使える状態にできます。
- vcsh — 全てのドットファイルをひとつのリポジトリで管理するのではなく、様々なモジュール (Emacs の設定や zsh の設定など) を別々のリポジトリに分割することで管理を分けることができます。git でしか動作しません。
- yadm — ひとつの Git リポジトリを使って複数のシステムでファイルを管理します。特定の OS やホストで別のファイルを使うようにすることができます。機密情報を暗号化することでリポジトリに安全に保存することが可能。
- homeshick — Bash で書かれた git ドットファイル同期ツール。
- dotbot — ドットファイルリポジトリの git サブモジュールとしてインストールすることができるミニマルなドットファイルマネージャ。
複数のマシンでドットファイルを管理する
共有する設定をマスターブランチで管理して、マシンごとのブランチを作成することで、カスタマイズを加えながら様々なマシンのドットファイルを管理するという方法があります。特定のマシンの設定は専用のブランチにコミットし、共通設定はマスターブランチに追加します。そしてマスターを更新したら各マシンのブランチをリベースします。
また、特定のマシンの設定を特殊なコメントブロックに記述して qualia を使って自動的にアンコメントさせるという方法もあります。この方法は手間が少ない上にマージによる衝突が発生しません。
機密情報
ときとして、ソフトウェアはパスワードを平文で設定ファイルに保存することがあります。そのような場合、git clean フィルターを利用することで機密情報を間違ってコミットする危険を減らすことができます。例えば、以下の .gitattributes ファイルは “some-dotfile” ファイルにフィルターを適用します:
# .gitattributes some-dotfile filter=remove-pass
“some-dotfile” ファイルが git にチェックインされた場合、git は “remove-pass” フィルターを実行します。フィルターは .git/config
に以下のように定義してください:
[filter "remove-pass"] clean = "sed -e 's/^password=.*/#password=TODO/'"
リポジトリ
作者 | シェル | WM / DE | エディタ | ターミナル | マルチプレクサ | オーディオ | モニター | メール | IRC |
---|---|---|---|---|---|---|---|---|---|
Ambrevar | zsh | awesome | emacs | rxvt-unicode | cmus | htop/vicious | mutt | ||
awal | fish | i3 | vim | sakura | tmux | i3status | The Lounge | ||
bamos | zsh | i3/xmonad | vim/emacs | rxvt-unicode | tmux | mpv/cmus | conky/xmobar | mutt | ERC |
brisbin33 | zsh | xmonad | vim | rxvt-unicode | screen | dzen | mutt | irssi | |
bstaletic | zsh | dwm | vim | terminator | screen | ncmpcpp | conky | ||
cinelli | zsh | dwm | vim | termite-git | pianobar | htop | mutt-kz | weechat | |
drkhsh | zsh | dwm | vim | st | screen | cmus | conky | mutt | weechat |
Earnestly | zsh | i3/orbment | vim/emacs | termite | tmux | mpd | conky | mutt | weechat |
ErikBjare | zsh | xmonad/xfce4 | vim | terminator | tmux | xfce4-panel | weechat | ||
falconindy | bash | i3 | vim | rxvt-unicode | ncmpcpp | conky | mutt | ||
graysky | zsh | xfce4 | vim | terminal | ncmpcpp | custom | thunderbird | ||
gtmanfred | zsh | dwm | vim | termite-git | tmux | mpd | conky | mutt | weechat |
hugdru | zsh | awesome | neovim | rxvt-unicode | tmux | thunderbird | weechat | ||
insanum | bash | herbstluftwm | vim | evilvte | tmux | dzen | mutt-kz | ||
izmntuk | zsh | xfce4 | vim | rxvt-unicode/yaft | tmux | cmus | xfce4-panel | irssi | |
jasonwryan | bash/zsh | dwm | vim | rxvt-unicode | tmux | ncmpcpp | custom | mutt | irrsi |
jdevlieghere | zsh | xmonad | vim | terminal | tmux | htop | mutt | weechat | |
jelly | zsh | i3 | vim | termite | tmux | ncmpcpp | mutt-kz-git | weechat | |
meskarune | bash | herbstluftwm | vim | rxvt-unicode | screen | conky | weechat | ||
neersighted | zsh | i3 | vim | rxvt-unicode | tmux | ncmpcpp | htop | mutt | irssi |
OK100 | bash | dwm | vim | rxvt-unicode | cmus | conky, dzen | mutt | weechat | |
pid1 | zsh | dwm | neovim | termite | tmux | custom | mutt | weechat | |
polyzen | zsh | i3 | vim | termite | tmux | i3status | weechat | ||
swalladge | zsh/bash | i3 | neovim/vim | termite | tmux | i3status | |||
thiagowfx | bash/zsh | i3 | vim/emacs | rxvt-unicode | ncmpcpp | i3blocks | |||
unexist | zsh | subtle | vim | rxvt-unicode | ncmpcpp | mutt | irssi | ||
vodik | zsh | xmonad | vim | termite-git | tmux | ncmpcpp | custom | mutt | weechat |
w0ng | zsh | dwm | vim | rxvt-unicode | tmux | ncmpcpp | custom | mutt | irssi |
Wintervenom | bash | herbstluftwm | vim | rxvt-unicode | screen | mpd (mpc-utils) | hlwm-dzen2 | mutt | weechat |
wolfcore | bash | dwm | vim | rxvt-unicode | tmux | cmus | custom | weechat | |
xfausto | zsh | dwm | vim | st | ncmpcpp | conky | |||
zendeavor | zsh | i3 | vim | rxvt-unicode | tmux | ncmpcpp | i3status | weechat |