「ドットファイル」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→ツール: 校正) |
(→ユーザーリポジトリ: 同期) |
||
(同じ利用者による、間の8版が非表示) | |||
2行目: | 2行目: | ||
[[Category:設定管理]] |
[[Category:設定管理]] |
||
[[en:Dotfiles]] |
[[en:Dotfiles]] |
||
+ | [[es:Dotfiles]] |
||
[[pt:Dotfiles]] |
[[pt:Dotfiles]] |
||
+ | [[zh-hans:Dotfiles]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|XDG Base Directory サポート}} |
{{Related|XDG Base Directory サポート}} |
||
10行目: | 12行目: | ||
ユーザー固有のアプリケーション設定は、伝統的に [[Wikipedia:dotfile|ドットファイル]](ファイル名がドットで始まるファイル) に保存されています。変更を追跡し、さまざまなホスト間でドットファイルを同期するために、[[Git]] などの [[バージョン管理システム]] でドットファイルを管理することは一般的な方法です。ドットファイルを管理するには、さまざまな方法があります(例えば、ホームディレクトリでドットファイルを直接追跡する、サブディレクトリに保存する、[[シェル]]スクリプト や[[#他のツール|専用ツール]] でファイルをシンボリックリンク/コピー/生成するなど)。ドットファイルの管理方法とは別に、この記事には、[[#リポジトリ|ドットファイルのリボジトリのリスト]] も含まれています。 |
ユーザー固有のアプリケーション設定は、伝統的に [[Wikipedia:dotfile|ドットファイル]](ファイル名がドットで始まるファイル) に保存されています。変更を追跡し、さまざまなホスト間でドットファイルを同期するために、[[Git]] などの [[バージョン管理システム]] でドットファイルを管理することは一般的な方法です。ドットファイルを管理するには、さまざまな方法があります(例えば、ホームディレクトリでドットファイルを直接追跡する、サブディレクトリに保存する、[[シェル]]スクリプト や[[#他のツール|専用ツール]] でファイルをシンボリックリンク/コピー/生成するなど)。ドットファイルの管理方法とは別に、この記事には、[[#リポジトリ|ドットファイルのリボジトリのリスト]] も含まれています。 |
||
− | == ドットファイルを |
+ | == Git を使ってドットファイルを直接管理する == |
ドットファイルを直接 Git で追跡することの利点は、[[Git]] だけで済み、シンボリックリンクを必要としないことです。デメリットは、[[#ホスト固有の設定|ホスト固有の設定]] では一般的に複数の [[Git#Branching|branches]] に変更をマージする必要があるということです。 |
ドットファイルを直接 Git で追跡することの利点は、[[Git]] だけで済み、シンボリックリンクを必要としないことです。デメリットは、[[#ホスト固有の設定|ホスト固有の設定]] では一般的に複数の [[Git#Branching|branches]] に変更をマージする必要があるということです。 |
||
− | このアプローチを実現する最も |
+ | このアプローチを実現する最も簡単な方法は、[[Git]] リポジトリをホームディレクトリで直接初期化し、デフォルトで {{man|5|gitignore}} パターンの {{ic|*}} を使用してすべてのファイルを無視することです。ただし、この方法には 2 つの欠点があります。ホームディレクトリに他の Git リポジトリがある場合は混乱する可能性があります (たとえば、リポジトリの初期化を忘れた場合、突然 dotfile リポジトリを操作することになります) また、ディレクトリ内のどのファイルが簡単に確認できなくなります。現在のディレクトリは追跡されません (無視されるため) |
− | これらの欠点 |
+ | これらの欠点を避けるための代替方法として、"bare repository and alias method" があります。この方法は、[https://news.ycombinator.com/item?id=11071754 Ask Hacker News: What do you use to manage your dotfiles?] で広く知られるようになったもので、たった3つのコマンドでセットアップが可能です: |
$ git init --bare ~/.dotfiles |
$ git init --bare ~/.dotfiles |
||
22行目: | 24行目: | ||
$ config config status.showUntrackedFiles no |
$ config config status.showUntrackedFiles no |
||
+ | {{note|通常、ドットファイルのパーミッションはすべてデフォルトの設定のままで問題ありませんが、特定のファイルに特定のパーミッションが必要な場合は、別の方法を検討する必要があります。Git はファイルのパーミッションを保存しないためです。}} |
||
− | そうすると、作成した [[エイリアス]] でドットファイルを管理することができます。もし [[Bash]] を使っていてこのエイリアスを bash 補完したい場合は、{{AUR|bash-complete-alias}} をインストールして、エイリアスと次の行を {{ic|~/.bashrc}} に追加してください。 |
||
+ | |||
+ | このドットファイルを使って新しいシステムに複製できます: |
||
+ | |||
+ | $ git clone --bare <git-repo-url> $HOME/.dotfiles |
||
+ | $ alias config='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"' |
||
+ | $ config checkout |
||
+ | $ config config --local status.showUntrackedFiles no |
||
+ | |||
+ | * 上書きされる可能性のあるいくつかのストック設定がすでにある場合は、次のようなエラーが発生します: |
||
+ | :{{bc|<nowiki> |
||
+ | $ config checkout |
||
+ | error: The following untracked working tree files would be overwritten by checkout: |
||
+ | .bashrc |
||
+ | .gitignore |
||
+ | Please move or remove them before you can switch branches. |
||
+ | Aborting |
||
+ | </nowiki>}} |
||
+ | |||
+ | :既存のファイルを書き換える {{ic|$ config checkout -f}} を使用することもできます。または、より安全な方法として、次のスクリプトを使用してすべてのファイルのバックアップを取得し、{{ic|checkout}} を使用することもできます: |
||
+ | :{{bc|<nowiki> |
||
+ | mkdir -p .config-backup && \ |
||
+ | config checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | \ |
||
+ | xargs -I{} mv {} .config-backup/{} |
||
+ | </nowiki>}} |
||
+ | |||
+ | その後、作成した [[エイリアス]] でドットファイルを管理することができます。もし [[Bash]] を使っていてこのエイリアスを bash 補完したい場合は、{{AUR|bash-complete-alias}} をインストールして、エイリアスと次の行を {{ic|~/.bashrc}} に追加してください。 |
||
$ complete -F _complete_alias config |
$ complete -F _complete_alias config |
||
− | bash で補完させるもう一つの方法は、{{ic|~/.bashrc}} に以下を追加することです。(https://askubuntu.com/a/642778] から引用) |
+ | bash で補完させるもう一つの方法は、{{ic|~/.bashrc}} に以下を追加することです。([https://askubuntu.com/a/642778] から引用) |
source /usr/share/bash-completion/completions/git |
source /usr/share/bash-completion/completions/git |
||
__git_complete config __git_main |
__git_complete config __git_main |
||
− | {{Tip|機密情報を誤ってコミットしないようにするには、[https://wiki.archlinux.org/title/Git#Filtering_confidential_information Git#Filtering confidential information]を参照してください。}} |
+ | {{Tip|機密情報を誤ってコミットしないようにするには、[https://wiki.archlinux.org/title/Git#Filtering_confidential_information Git#Filtering confidential information] を参照してください。}} |
== ホスト固有の設定 == |
== ホスト固有の設定 == |
||
60行目: | 88行目: | ||
{| class="wikitable sortable" style="text-align: center;" |
{| class="wikitable sortable" style="text-align: center;" |
||
! 名前 !! パッケージ !! 言語 !! ファイルのグループ化 !! 処理 |
! 名前 !! パッケージ !! 言語 !! ファイルのグループ化 !! 処理 |
||
+ | |- |
||
+ | ! [https://github.com/anishathalye/dotbot dotbot] |
||
+ | | {{Pkg|chezmoi}} || Python || 設定ファイル || {{Grey|No}} |
||
|- |
|- |
||
! [https://github.com/twpayne/chezmoi chezmoi] |
! [https://github.com/twpayne/chezmoi chezmoi] |
||
− | | {{ |
+ | | {{AUR|dotbot}} || Go || ディレクトリベース || Go テンプレート |
|- |
|- |
||
! [https://github.com/kesslern/dot-templater dot-templater] |
! [https://github.com/kesslern/dot-templater dot-templater] |
||
| {{AUR|dot-templater-git}} || Rust || ディレクトリベース || カスタムシンタックス |
| {{AUR|dot-templater-git}} || Rust || ディレクトリベース || カスタムシンタックス |
||
+ | |- |
||
+ | ! [https://github.com/oknozor/toml-bombadil toml-bombadil] |
||
+ | | {{Pkg|toml-bombadil}} || Rust || 設定ファイル || tera |
||
|- |
|- |
||
! [https://deadc0de.re/dotdrop/ dotdrop] |
! [https://deadc0de.re/dotdrop/ dotdrop] |
||
93行目: | 127行目: | ||
! [https://github.com/thoughtbot/rcm rcm] |
! [https://github.com/thoughtbot/rcm rcm] |
||
| {{AUR|rcm}} || Perl || ディレクトリベース (ホストまたはタグによる) || {{Grey|No}} |
| {{AUR|rcm}} || Perl || ディレクトリベース (ホストまたはタグによる) || {{Grey|No}} |
||
+ | |- |
||
+ | ! [https://github.com/sebastiancarlos/yas-bdsm yas-bdsm] |
||
+ | | {{-}} || Shell || ディレクトリベース || {{Grey|No}} |
||
|} |
|} |
||
122行目: | 159行目: | ||
! [https://yadm.io yadm]<sup>(1)</sup> |
! [https://yadm.io yadm]<sup>(1)</sup> |
||
| {{Pkg|yadm}} || Bash || ファイル名ベース<br>(by class/OS/distro/hostname/user)[https://yadm.io/docs/alternates] ||組み込みのテンプレート /Jinja2/ESH [https://yadm.io/docs/templates]<br>(オプション) |
| {{Pkg|yadm}} || Bash || ファイル名ベース<br>(by class/OS/distro/hostname/user)[https://yadm.io/docs/alternates] ||組み込みのテンプレート /Jinja2/ESH [https://yadm.io/docs/templates]<br>(オプション) |
||
+ | |- |
||
+ | ! [https://github.com/justone/dotfiles dfm] |
||
+ | | {{AUR|dfm}} || Perl || リポジトリ的 || {{Grey|No}} |
||
|} |
|} |
||
128行目: | 168行目: | ||
== ユーザーリポジトリ == |
== ユーザーリポジトリ == |
||
+ | {{Note|このテーブルは、ドットファイルの参照/例として使用して下さい。ドットファイルをテーブルに追加する場合は、それらがクリーンでコメントされていて、最新の状態に保たれているかを確認してください。}} |
||
− | {| class="wikitable sortable" |
||
+ | {{Warning|これらのドットファイルは Arch Linux スタッフによって検証されていないため、自己責任で使用してください。}} |
||
− | ! scope="col" | 作者 |
||
+ | |||
− | ! scope="col" | シェル |
||
+ | {| class="wikitable sortable" style="text-align:center" |
||
− | ! scope="col" | WM / DE |
||
+ | ! 作者 || シェル || WM / DE || エディタ || ターミナル || マルチプレクサ || オーディオ || モニター || メール || IRC || ファイルマネージャ || RSS リーダー |
||
− | ! scope="col" | エディタ |
||
− | ! scope="col" | ターミナル |
||
− | ! scope="col" | マルチプレクサ |
||
− | ! scope="col" | オーディオ |
||
− | ! scope="col" | モニター |
||
− | ! scope="col" | メール |
||
− | ! scope="col" | IRC |
||
|- |
|- |
||
− | ! [https:// |
+ | ! [https://github.com/adamperkowski/dwm adamperkowski] |
− | | |
+ | | [[Zsh]] || [[dwm]] || [[Neovim]] || [[Kitty]] || [[tmux]] || [[Mpv]] || custom || || [[WeeChat]] || || |
+ | |- |
||
+ | ! [https://github.com/alfunx/.dotfiles alfunx] |
||
+ | | [[Zsh]] || [[Awesome]] || [[Vim]] || [[Kitty]] || [[tmux]] || [[Ncmpcpp]]/[[Mpd]] || [[アプリケーション一覧/ユーティリティ#タスクマネージャ|Htop]]/lain || [[Thunderbird]] || || || |
||
+ | |- |
||
+ | ! [https://gitlab.com/Ambrevar/dotfiles Ambrevar] |
||
+ | | Eshell || [[EXWM]] || [[Emacs]] || Emacs (Eshell) || Emacs TRAMP + dtach || EMMS || [[Conky]]/[[Dzen]] || mu4e || Circe || || |
||
+ | |- |
||
+ | ! [https://github.com/ask1234560/dotfiles_bspwm ananthu] |
||
+ | | [[Zsh]] || [[Bspwm]] || [[Neovim]] || [[Alacritty]] || || [[Mpv]] || [[アプリケーション一覧/ユーティリティ#タスクマネージャ|Htop]], [[Polybar]] || [[Neomutt]] || [[WeeChat]] || [[Ranger]] || |
||
|- |
|- |
||
! [https://github.com/awalGarg/dotfiles awal] |
! [https://github.com/awalGarg/dotfiles awal] |
||
− | | |
+ | | [[Fish]] || [[i3]] || [[Vim]] || [[St]] || [[tmux]] || || i3status || || The Lounge || || |
|- |
|- |
||
− | ! [https://github.com/ayekat/ |
+ | ! [https://github.com/ayekat/localdir ayekat] |
− | | |
+ | | [[Zsh]] || karuiwm || [[Vim]] || [[Rxvt-unicode]] || [[tmux]] || [[Ncmpcpp]]/[[Mpd]] || karuibar || [[Mutt]] || [[Irssi]] || || |
+ | |- |
||
+ | ! [https://github.com/BachoSeven/dotfiles bachoseven] |
||
+ | | [[Zsh]] || [[Dwm]] [https://github.com/BachoSeven/dwm source] || [[Neovim]] || [[St]] [https://github.com/BachoSeven/st source] || [[tmux]] || [[Ncmpcpp]] || bottom || [[Neomutt]] || [[WeeChat]] || [[Lf]] || [[newsboat]] |
||
|- |
|- |
||
! [https://github.com/bamos/dotfiles bamos] |
! [https://github.com/bamos/dotfiles bamos] |
||
− | | |
+ | | [[Zsh]] || [[i3]]/[[xmonad]] || vim/emacs || rxvt-unicode || [[tmux]] || mpv/cmus || conky/xmobar || mutt || ERC || || |
+ | |- |
||
+ | ! [https://github.com/benmezger/dotfiles benmezger] |
||
+ | | [https://github.com/benmezger/dotfiles zsh/bash] || [https://github.com/benmezger/dotfiles/tree/main/dot_config/i3 i3-gaps] || [https://github.com/benmezger/dotfiles/tree/main/dot_doom.d emacs] || [https://github.com/benmezger/dotfiles/blob/main/dot_Xresources rxvt-unicode]/[https://github.com/benmezger/dotfiles/blob/main/dot_config/alacritty/ alacritty] || [https://github.com/benmezger/dotfiles/blob/main/dot_tmux.conf tmux] || mopidy/ncmpcpp || [https://github.com/benmezger/dotfiles/blob/main/dot_config/i3/status.toml.tmpl i3status-rs] || [https://github.com/benmezger/dotfiles/blob/main/dot_doom.d/ mu4e]/[https://github.com/benmezger/dotfiles/blob/main/dot_config/neomutt neomutt]/[https://github.com/benmezger/dotfiles/blob/main/dot_mbsyncrc.tmpl mbsync] || [https://github.com/benmezger/dotfiles/blob/main/dot_weechat/ weechat] || || |
||
|- |
|- |
||
! [https://github.com/pbrisbin/dotfiles brisbin33] |
! [https://github.com/pbrisbin/dotfiles brisbin33] |
||
− | | [https://github.com/pbrisbin/oh-my-zsh zsh] || [https://github.com/pbrisbin/xmonad-config xmonad] || [https://github.com/pbrisbin/vim-config vim] || rxvt-unicode || |
+ | | [https://github.com/pbrisbin/oh-my-zsh zsh] || [https://github.com/pbrisbin/xmonad-config xmonad] || [https://github.com/pbrisbin/vim-config vim] || rxvt-unicode || [[GNU Screen]] || || dzen || [https://github.com/pbrisbin/mutt-config mutt] || [https://github.com/pbrisbin/irssi-config irssi] || || |
+ | |- |
||
+ | ! [https://gitlab.com/BVollmerhaus/dotfiles BVollmerhaus] |
||
+ | | [https://gitlab.com/BVollmerhaus/dotfiles/-/tree/master/config/fish fish] || [https://gitlab.com/BVollmerhaus/dotfiles/blob/master/config/i3/config i3-gaps] || [https://gitlab.com/BVollmerhaus/dotfiles/blob/master/config/kak/kakrc kakoune] || [https://gitlab.com/BVollmerhaus/dotfiles/-/blob/master/config/kitty/kitty.conf kitty] || || || [https://gitlab.com/BVollmerhaus/dotfiles/blob/master/config/polybar/config polybar] || || || [https://gitlab.com/BVollmerhaus/dotfiles/-/tree/master/config/ranger ranger] || |
||
+ | |- |
||
+ | ! [https://github.com/christian-heusel/dotfiles christian-heusel] |
||
+ | | [[Zsh]] || [[i3]] || [[Neovim]] || [[st]] / [[terminator]] || byobu / [[tmux]] || || [[アプリケーション一覧/ユーティリティ#タスクマネージャ|Htop]] || [[neomutt]]/[[thunderbird]] || [[WeeChat]] || [[nemo]] / [[ranger]] || |
||
+ | |- |
||
+ | ! [https://github.com/CuterThanYou/dotfiles CuterThanYou] |
||
+ | | [[Zsh]] || [[i3]] / [[Hyprland]] || [[Neovim]] || [[Alacritty]] / [[Foot]] || || [[Mpv]] || [[Polybar]] / Yambar || || || [[Lf]] / [[Thunar]] ||[[Newsboat]] |
||
|- |
|- |
||
! [https://github.com/cinelli/dotfiles cinelli] |
! [https://github.com/cinelli/dotfiles cinelli] |
||
− | | |
+ | | [[Zsh]] || dwm || [[Vim]] || termite-git || || pianobar || htop || mutt-kz || weechat || || |
|- |
|- |
||
− | ! [https://github.com/ |
+ | ! [https://github.com/dikiaap/dotfiles dikiaap] |
− | | |
+ | | [[Zsh]] || [[i3]]-gaps || neovim || alacritty || [[tmux]] || || i3blocks || || || nnn || |
|- |
|- |
||
! [https://github.com/Earnestly/dotfiles Earnestly] |
! [https://github.com/Earnestly/dotfiles Earnestly] |
||
− | | |
+ | | [[Zsh]] || [[i3]]/orbment || vim/emacs || termite || [[tmux]] || mpd || conky || mutt || weechat || || |
|- |
|- |
||
! [https://github.com/ErikBjare/dotfiles ErikBjare] |
! [https://github.com/ErikBjare/dotfiles ErikBjare] |
||
− | | |
+ | | [[Zsh]] || [[xmonad]]/[[Xfce|Xfce4]] || [[Vim]] || terminator || [[tmux]] || || xfce4-panel || || weechat || || |
+ | |- |
||
+ | ! [https://github.com/erikw/dotfiles erikw] |
||
+ | | [[Zsh]]/[[Bash]] || DWM/macOS || NeoVim || urxvtc || [[tmux]] || mpd || || mutt || irssi || || |
||
|- |
|- |
||
! [https://github.com/falconindy/dotfiles falconindy] |
! [https://github.com/falconindy/dotfiles falconindy] |
||
− | | |
+ | | [[Bash]] || [[i3]] || [[Vim]] || rxvt-unicode || || ncmpcpp || conky || mutt || || || |
+ | |- |
||
+ | ! [https://github.com/filiparag/dotfiles filiparag] |
||
+ | | [[fish]] || bspwm || [[Vim]] || alacritty || [[tmux]] || mpv, [https://github.com/altdesktop/playerctl playerctl] || htop, polybar || [https://www.nongnu.org/mailnotify/ mail-notification] || || [[PCManFM]] || |
||
+ | |- |
||
+ | ! [https://github.com/Freed-Wu/Freed-Wu Freed-Wu] |
||
+ | | [[zsh]] || [[openbox]] || [[neovim]] || [[wezterm]] || [[tmux]] || [[cmus]] || bottom || [[neomutt]] || [[WeeChat]] || [[neovim]] || [[newsboat]] |
||
+ | |- |
||
+ | ! [https://git.sr.ht/~gardenapple/dotfiles gardenapple] |
||
+ | | [[Zsh]] ([https://git.sr.ht/~gardenapple/dotfiles/tree/main/item/stow/zsh/.zshrc fish-like]) || [[Hyprland]] || [[neovim]] || [[kitty]] || || || [[アプリケーション一覧/ユーティリティ#タスクマネージャ|Htop]] || [[aerc]] || || [[vifm]] || [[Newsboat]] |
||
|- |
|- |
||
! [https://github.com/graysky2/configs/tree/master/dotfiles graysky] |
! [https://github.com/graysky2/configs/tree/master/dotfiles graysky] |
||
− | | |
+ | | [[Zsh]] || Xfce|xfce4 || [[Vim]] || terminal || || ncmpcpp || custom || thunderbird || || || |
|- |
|- |
||
! [https://github.com/hugdru/dotfiles hugdru] |
! [https://github.com/hugdru/dotfiles hugdru] |
||
− | | |
+ | | [[Zsh]] || awesome || neovim || rxvt-unicode || [[tmux]] || || || thunderbird || weechat || || |
|- |
|- |
||
! [https://github.com/insanum/dotfiles insanum] |
! [https://github.com/insanum/dotfiles insanum] |
||
− | | |
+ | | [[Bash]] || herbstluftwm || [[Vim]] || evilvte || [[tmux]] || || dzen || mutt-kz || || || |
|- |
|- |
||
− | ! [https://github.com/ |
+ | ! [https://github.com/isti115/dotfiles isti115] |
+ | | [https://github.com/Isti115/dotfiles/blob/master/.config/powershell/Microsoft.PowerShell_profile.ps1 pwsh] |
||
− | | zsh || xfce4 || vim || rxvt-unicode/yaft || tmux || cmus || xfce4-panel || || irssi |
||
+ | || [https://github.com/Isti115/dotfiles/blob/master/.config/sway/config sway] |
||
+ | || [https://github.com/Isti115/dotfiles/tree/master/.config/nvim neovim] |
||
+ | || [https://github.com/Isti115/dotfiles/blob/master/.config/alacritty/alacritty.yml alacritty] |
||
+ | || [[tmux]] |
||
+ | || [https://github.com/Isti115/dotfiles/tree/master/.config/mpv mpv] / playerctl |
||
+ | || [https://github.com/Isti115/dotfiles/tree/master/.config/waybar waybar] / htop / ytop |
||
+ | || |
||
+ | || |
||
+ | || [https://github.com/Isti115/dotfiles/tree/master/.config/ranger ranger] |
||
+ | || |
||
|- |
|- |
||
− | ! [https:// |
+ | ! [https://hg.sr.ht/~jasonwryan/shiv jasonwryan] |
− | | bash/zsh || dwm || |
+ | | bash/zsh || dwm || [[Vim]] || rxvt-unicode || [[tmux]] || ncmpcpp || custom || mutt || irssi || || |
|- |
|- |
||
! [https://github.com/JDevlieghere/dotfiles/ jdevlieghere] |
! [https://github.com/JDevlieghere/dotfiles/ jdevlieghere] |
||
− | | |
+ | | [[Zsh]] || xmonad || [[Vim]] || terminal || [[tmux]] || || htop || mutt || weechat || || |
|- |
|- |
||
! [https://github.com/jelly/Dotfiles jelly] |
! [https://github.com/jelly/Dotfiles jelly] |
||
− | | |
+ | | [[Zsh]] || [[i3]] || [[Vim]] || termite || [[tmux]] || ncmpcpp || || mutt-kz-git || weechat || || |
+ | |- |
||
+ | ! [https://gitlab.com/jlo62/dotties jl2] |
||
+ | | [[Zsh]] || swayfx || geany || [[foot]] || || || missioncenter, eww (bar) || || srain || [[thunar]] || |
||
+ | |- |
||
+ | ! [https://github.com/markuszoppelt/dotfiles MarkusZoppelt] |
||
+ | | [[Zsh]] || gnome || [[Neovim]] || [[Alacritty]] || [[tmux]] || || || || || || |
||
|- |
|- |
||
! [https://github.com/maximbaz/dotfiles maximbaz] |
! [https://github.com/maximbaz/dotfiles maximbaz] |
||
− | | |
+ | | [[Zsh]] || sway || kakoune || kitty || || || waybar || neomutt || || nnn || |
+ | |- |
||
+ | ! [https://code.mehalter.com/dotfiles mehalter] |
||
+ | | [[Zsh]] || [[i3]]-gaps || neovim || termite || [[tmux]] || cmus || gotop || neomutt || weechat || ranger || |
||
|- |
|- |
||
! [https://github.com/meskarune/.dotfiles meskarune] |
! [https://github.com/meskarune/.dotfiles meskarune] |
||
− | | |
+ | | [[Bash]] || herbstluftwm || [[Vim]] || rxvt-unicode || [[GNU Screen]] || || conky || || weechat || || |
|- |
|- |
||
! [https://github.com/neersighted/dotfiles neersighted] |
! [https://github.com/neersighted/dotfiles neersighted] |
||
− | | |
+ | | [[fish]] || [[i3]] || neovim || alacritty || [[tmux]] || ncmpcpp || || || || || |
+ | |- |
||
+ | ! [https://github.com/nimaipatel/dotfiles nimaipatel] |
||
+ | | [[fish]] || awesome|| neovim || alacritty || || ncmpcpp || || || || || |
||
+ | |- |
||
+ | ! [https://github.com/oibind/dotfiles oibind] |
||
+ | | [[fish]] || awesome || neovim || st || [[tmux]] || || htop-vim || || weechat || lf || |
||
|- |
|- |
||
! [https://github.com/ok100/configs OK100] |
! [https://github.com/ok100/configs OK100] |
||
− | | |
+ | | [[Bash]] || dwm || [[Vim]] || rxvt-unicode || || cmus || conky, dzen || mutt || weechat || || |
|- |
|- |
||
− | ! [https://github.com/ |
+ | ! [https://github.com/orhun/dotfiles orhun] |
− | | |
+ | | [[Bash]] || [[i3]]-gaps || neovim || alacritty || || || i3status || || weechat || tere || |
|- |
|- |
||
− | ! [https://github.com/ |
+ | ! [https://github.com/pablox-cl/dotfiles pablox-cl] |
− | | zsh || |
+ | | zsh (zplug) || [[GNOME]] || neovim || kitty || || || || || || || |
+ | |- |
||
+ | ! [https://github.com/patri9ck/dotfiles patri9ck] |
||
+ | | [[Zsh]] || [[bspwm]] || [[Vim]] || [[kitty]] || || || || || || [[Thunar]] || |
||
+ | |- |
||
+ | ! [https://gitlab.com/peterzuger/dotfiles peterzuger] |
||
+ | | [[Zsh]] || [[i3]]-gaps || emacs || rxvt-unicode || [[GNU Screen]] || moc || htop || || || || |
||
+ | |- |
||
+ | ! [https://gitlab.com/polyzen/dotfiles polyzen] |
||
+ | | [[Zsh]] || [[i3]] || Neovim || Alacritty || [[tmux]] || mpv || i3status,htop || himalaya || || ranger || Newsboat |
||
+ | |- |
||
+ | ! [https://github.com/potamides/dotfiles potamides] |
||
+ | | [[Bash]] || awesome || neovim || termite || [[tmux]] || ncmpcpp || conky,htop || mutt || weechat || ranger || |
||
+ | |- |
||
+ | ! [https://github.com/reisub0/dot reisub0] |
||
+ | | [[fish]] || qtile || neovim || kitty || || mpd || conky || || || || |
||
|- |
|- |
||
! [https://github.com/sistematico/majestic sistematico] |
! [https://github.com/sistematico/majestic sistematico] |
||
− | | zsh/fish/bash || [https://github.com/Airblader/i3 i3 |
+ | | zsh/fish/bash || [https://github.com/Airblader/i3 i3-gaps] || vim/nano || termite || [[tmux]] || ncmpcpp || polybar || mutt || weechat || || |
|- |
|- |
||
− | ! [https:// |
+ | ! [https://git.sr.ht/~thecashewtrader/dotfiles thecashewtrader] |
− | | |
+ | | Eshell || EXWM || Emacs || Emacs (VTerm) || Emacs || Bongo || htop || mu4e || ERC || Dired || Elfeed |
|- |
|- |
||
− | ! [https://github.com/thiagowfx/dotfiles thiagowfx] |
+ | ! [https://github.com/thiagowfx/.dotfiles thiagowfx] |
− | | bash/zsh || i3 || |
+ | | bash/zsh || [[i3]] || [[Vim]] || alacritty || [[tmux]] || playerctl || i3status || || || ranger || |
|- |
|- |
||
− | ! [ |
+ | ! [https://codeberg.org/tplasdio/dotfiles tplasdio] |
+ | | [https://codeberg.org/tplasdio/bash-config bash (ble.sh)] || [https://codeberg.org/tplasdio/awesomewm-config awesome] || [https://codeberg.org/tplasdio/neovim-config neovim] || [https://codeberg.org/tplasdio/dotfiles/src/branch/main/.config/alacritty/alacritty.yml alacritty] || [https://codeberg.org/tplasdio/dotfiles/src/branch/main/.config/byobu/.tmux.conf tmux] || [https://codeberg.org/tplasdio/mpv-config mpv], mpvs || htop || neomutt || weechat || [https://codeberg.org/tplasdio/lf-config lf] || |
||
− | | zsh || subtle || vim || rxvt-unicode || || ncmpcpp || || mutt || irssi |
||
+ | |- |
||
+ | ! [https://github.com/tuurep/dotfiles tuurep] |
||
+ | | [[Bash]] || openbox || neovim || alacritty || [[tmux]] || || polybar || || || || |
||
+ | |- |
||
+ | ! [https://git.sr.ht/~unrealapex/dotfiles unrealapex] |
||
+ | | [[Zsh]] || [[Dwm]] || [[Neovim]] || [[St]] || || [[Ncmpcpp]] || htop || [[Neomutt]] || [[Irssi]] || fff || [[Newsboat]] |
||
|- |
|- |
||
! [https://github.com/vodik/dotfiles vodik] |
! [https://github.com/vodik/dotfiles vodik] |
||
− | | |
+ | | [[Zsh]] || xmonad || [[Vim]] || termite-git || [[tmux]] || ncmpcpp || custom || mutt || weechat || || |
|- |
|- |
||
! [https://github.com/w0ng/dotfiles w0ng] |
! [https://github.com/w0ng/dotfiles w0ng] |
||
− | | |
+ | | [[Zsh]] || dwm || [[Vim]] || rxvt-unicode || [[tmux]] || ncmpcpp || custom || mutt || irssi || || |
|- |
|- |
||
! [https://github.com/whitelynx/dotfiles whitelynx] |
! [https://github.com/whitelynx/dotfiles whitelynx] |
||
− | | fish || i3 || neovim || kitty || || || i3pystatus || || |
+ | | [[fish]] || [[i3]] || neovim || kitty || || || i3pystatus || || || || |
|- |
|- |
||
! [https://git.sr.ht/~whynothugo/dotfiles whynothugo] |
! [https://git.sr.ht/~whynothugo/dotfiles whynothugo] |
||
− | | |
+ | | [[Zsh]] || sway || neovim || alacritty || || mpv || waybar, top || neomutt || || nemo || |
|- |
|- |
||
! [https://github.com/wryonik/dotfiles wryonik] |
! [https://github.com/wryonik/dotfiles wryonik] |
||
− | | |
+ | | [[Zsh]] || i3-gaps-rounded || [[Vim]] || terminator || || cmus || htop, i3blocks, gotop || || || ranger, nautilus || |
− | |||
|} |
|} |
||
2025年1月4日 (土) 14:45時点における最新版
ユーザー固有のアプリケーション設定は、伝統的に ドットファイル(ファイル名がドットで始まるファイル) に保存されています。変更を追跡し、さまざまなホスト間でドットファイルを同期するために、Git などの バージョン管理システム でドットファイルを管理することは一般的な方法です。ドットファイルを管理するには、さまざまな方法があります(例えば、ホームディレクトリでドットファイルを直接追跡する、サブディレクトリに保存する、シェルスクリプト や専用ツール でファイルをシンボリックリンク/コピー/生成するなど)。ドットファイルの管理方法とは別に、この記事には、ドットファイルのリボジトリのリスト も含まれています。
Git を使ってドットファイルを直接管理する
ドットファイルを直接 Git で追跡することの利点は、Git だけで済み、シンボリックリンクを必要としないことです。デメリットは、ホスト固有の設定 では一般的に複数の branches に変更をマージする必要があるということです。
このアプローチを実現する最も簡単な方法は、Git リポジトリをホームディレクトリで直接初期化し、デフォルトで gitignore(5) パターンの *
を使用してすべてのファイルを無視することです。ただし、この方法には 2 つの欠点があります。ホームディレクトリに他の Git リポジトリがある場合は混乱する可能性があります (たとえば、リポジトリの初期化を忘れた場合、突然 dotfile リポジトリを操作することになります) また、ディレクトリ内のどのファイルが簡単に確認できなくなります。現在のディレクトリは追跡されません (無視されるため)
これらの欠点を避けるための代替方法として、"bare repository and alias method" があります。この方法は、Ask Hacker News: What do you use to manage your dotfiles? で広く知られるようになったもので、たった3つのコマンドでセットアップが可能です:
$ git init --bare ~/.dotfiles $ alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' $ config config status.showUntrackedFiles no
このドットファイルを使って新しいシステムに複製できます:
$ git clone --bare <git-repo-url> $HOME/.dotfiles $ alias config='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"' $ config checkout $ config config --local status.showUntrackedFiles no
- 上書きされる可能性のあるいくつかのストック設定がすでにある場合は、次のようなエラーが発生します:
$ config checkout error: The following untracked working tree files would be overwritten by checkout: .bashrc .gitignore Please move or remove them before you can switch branches. Aborting
- 既存のファイルを書き換える
$ config checkout -f
を使用することもできます。または、より安全な方法として、次のスクリプトを使用してすべてのファイルのバックアップを取得し、checkout
を使用することもできます: mkdir -p .config-backup && \ config checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | \ xargs -I{} mv {} .config-backup/{}
その後、作成した エイリアス でドットファイルを管理することができます。もし Bash を使っていてこのエイリアスを bash 補完したい場合は、bash-complete-aliasAUR をインストールして、エイリアスと次の行を ~/.bashrc
に追加してください。
$ complete -F _complete_alias config
bash で補完させるもう一つの方法は、~/.bashrc
に以下を追加することです。([1] から引用)
source /usr/share/bash-completion/completions/git __git_complete config __git_main
ホスト固有の設定
様々なマシンで dotfiles を同期させる際によくある問題が、ホスト固有の設定です。
Git では、すべての共有設定を master ブランチで管理し、個々のマシンにはマシン固有のブランチをチェックアウトすることでこれを解決できます。ホスト固有の設定はマシン固有のブランチにコミットすることができます。共有設定が master ブランチで変更された場合、マシンごとのブランチは更新された master の上にリベースされる必要があります。
シェル設定ファイル のような設定スクリプトでは、条件付きロジックを使用することができます。例えば、Bash スクリプト (すなわち .bashrc
) は、マシン名 (またはタイプ、カスタム変数など) に応じて異なる設定を適用することができます。
if [[ "$(hostname)" == "archlaptop" ]]; then # laptop specific commands here else # desktop or server machine commands fi
同様のことは、.Xresources でも実現できます。[2]
Git ブランチのリベースが面倒だと感じる場合は、ファイルのグループ化 をサポートする ツール や、さらに柔軟性を求めるなら 加工処理 を行うツールを使用するとよいでしょう。
ツール
- ファイルのグループ化
- 設定ファイルを設定グループ (プロファイルまたはパッケージとも呼ばれる) にグループ化する方法です。
処理
- ホストによってカスタマイズできるように、設定ファイルを処理するツールもあります。
名前 | パッケージ | 言語 | ファイルのグループ化 | 処理 |
---|---|---|---|---|
dotbot | chezmoi | Python | 設定ファイル | No |
chezmoi | dotbotAUR | Go | ディレクトリベース | Go テンプレート |
dot-templater | dot-templater-gitAUR | Rust | ディレクトリベース | カスタムシンタックス |
toml-bombadil | toml-bombadil | Rust | 設定ファイル | tera |
dotdrop | dotdropAUR | Python | 設定ファイル | Jinja2 |
dotfiles | dotfilesAUR | Python | No | No |
Dots | dots-managerAUR | Python | ディレクトリベース | カスタム追加ポイント |
dotter | dotter-rsAUR | Rust | 設定ファイル | Handlebars |
dt-cli | dt-cliAUR | Rust | 設定ファイル | Handlebars |
GNU Stow | stow | Perl | ディレクトリベース [3] | No |
Mackup | mackupAUR | Python | アプリケーションごとに自動 | No |
mir.qualia | mir.qualiaAUR | Python | No | カスタムブロック |
rcm | rcmAUR | Perl | ディレクトリベース (ホストまたはタグによる) | No |
yas-bdsm | – | Shell | ディレクトリベース | No |
Git を wrapping するツール
Git に不安がある場合は、バージョン管理システムを (多かれ少なかれ) 抽象化するこれらのツールのいずれかを使用することをお勧めします。
名前 | パッケージ | 言語 | ファイルのグループ化 | 処理 |
---|---|---|---|---|
dotbare | dotbareAUR | Shell (fzf) | リポジトリ的 | No |
dotgit | dotgitAUR | Python | ファイル名ベース | No |
homeshick | homeshick-gitAUR | Bash | リポジトリ的 | No |
homesick | – | Ruby | リポジトリ的 | No |
Pearl | pearl-gitAUR | Python | リポジトリ的 | No |
vcsh | vcsh | Shell | リポジトリ的 | No |
yadm(1) | yadm | Bash | ファイル名ベース (by class/OS/distro/hostname/user)[4] |
組み込みのテンプレート /Jinja2/ESH [5] (オプション) |
dfm | dfmAUR | Perl | リポジトリ的 | No |
ユーザーリポジトリ
作者 | シェル | WM / DE | エディタ | ターミナル | マルチプレクサ | オーディオ | モニター | メール | IRC | ファイルマネージャ | RSS リーダー |
---|---|---|---|---|---|---|---|---|---|---|---|
adamperkowski | Zsh | dwm | Neovim | Kitty | tmux | Mpv | custom | WeeChat | |||
alfunx | Zsh | Awesome | Vim | Kitty | tmux | Ncmpcpp/Mpd | Htop/lain | Thunderbird | |||
Ambrevar | Eshell | EXWM | Emacs | Emacs (Eshell) | Emacs TRAMP + dtach | EMMS | Conky/Dzen | mu4e | Circe | ||
ananthu | Zsh | Bspwm | Neovim | Alacritty | Mpv | Htop, Polybar | Neomutt | WeeChat | Ranger | ||
awal | Fish | i3 | Vim | St | tmux | i3status | The Lounge | ||||
ayekat | Zsh | karuiwm | Vim | Rxvt-unicode | tmux | Ncmpcpp/Mpd | karuibar | Mutt | Irssi | ||
bachoseven | Zsh | Dwm source | Neovim | St source | tmux | Ncmpcpp | bottom | Neomutt | WeeChat | Lf | newsboat |
bamos | Zsh | i3/xmonad | vim/emacs | rxvt-unicode | tmux | mpv/cmus | conky/xmobar | mutt | ERC | ||
benmezger | zsh/bash | i3-gaps | emacs | rxvt-unicode/alacritty | tmux | mopidy/ncmpcpp | i3status-rs | mu4e/neomutt/mbsync | weechat | ||
brisbin33 | zsh | xmonad | vim | rxvt-unicode | GNU Screen | dzen | mutt | irssi | |||
BVollmerhaus | fish | i3-gaps | kakoune | kitty | polybar | ranger | |||||
christian-heusel | Zsh | i3 | Neovim | st / terminator | byobu / tmux | Htop | neomutt/thunderbird | WeeChat | nemo / ranger | ||
CuterThanYou | Zsh | i3 / Hyprland | Neovim | Alacritty / Foot | Mpv | Polybar / Yambar | Lf / Thunar | Newsboat | |||
cinelli | Zsh | dwm | Vim | termite-git | pianobar | htop | mutt-kz | weechat | |||
dikiaap | Zsh | i3-gaps | neovim | alacritty | tmux | i3blocks | nnn | ||||
Earnestly | Zsh | i3/orbment | vim/emacs | termite | tmux | mpd | conky | mutt | weechat | ||
ErikBjare | Zsh | xmonad/Xfce4 | Vim | terminator | tmux | xfce4-panel | weechat | ||||
erikw | Zsh/Bash | DWM/macOS | NeoVim | urxvtc | tmux | mpd | mutt | irssi | |||
falconindy | Bash | i3 | Vim | rxvt-unicode | ncmpcpp | conky | mutt | ||||
filiparag | fish | bspwm | Vim | alacritty | tmux | mpv, playerctl | htop, polybar | mail-notification | PCManFM | ||
Freed-Wu | zsh | openbox | neovim | wezterm | tmux | cmus | bottom | neomutt | WeeChat | neovim | newsboat |
gardenapple | Zsh (fish-like) | Hyprland | neovim | kitty | Htop | aerc | vifm | Newsboat | |||
graysky | Zsh | xfce4 | Vim | terminal | ncmpcpp | custom | thunderbird | ||||
hugdru | Zsh | awesome | neovim | rxvt-unicode | tmux | thunderbird | weechat | ||||
insanum | Bash | herbstluftwm | Vim | evilvte | tmux | dzen | mutt-kz | ||||
isti115 | pwsh | sway | neovim | alacritty | tmux | mpv / playerctl | waybar / htop / ytop | ranger | |||
jasonwryan | bash/zsh | dwm | Vim | rxvt-unicode | tmux | ncmpcpp | custom | mutt | irssi | ||
jdevlieghere | Zsh | xmonad | Vim | terminal | tmux | htop | mutt | weechat | |||
jelly | Zsh | i3 | Vim | termite | tmux | ncmpcpp | mutt-kz-git | weechat | |||
jl2 | Zsh | swayfx | geany | foot | missioncenter, eww (bar) | srain | thunar | ||||
MarkusZoppelt | Zsh | gnome | Neovim | Alacritty | tmux | ||||||
maximbaz | Zsh | sway | kakoune | kitty | waybar | neomutt | nnn | ||||
mehalter | Zsh | i3-gaps | neovim | termite | tmux | cmus | gotop | neomutt | weechat | ranger | |
meskarune | Bash | herbstluftwm | Vim | rxvt-unicode | GNU Screen | conky | weechat | ||||
neersighted | fish | i3 | neovim | alacritty | tmux | ncmpcpp | |||||
nimaipatel | fish | awesome | neovim | alacritty | ncmpcpp | ||||||
oibind | fish | awesome | neovim | st | tmux | htop-vim | weechat | lf | |||
OK100 | Bash | dwm | Vim | rxvt-unicode | cmus | conky, dzen | mutt | weechat | |||
orhun | Bash | i3-gaps | neovim | alacritty | i3status | weechat | tere | ||||
pablox-cl | zsh (zplug) | GNOME | neovim | kitty | |||||||
patri9ck | Zsh | bspwm | Vim | kitty | Thunar | ||||||
peterzuger | Zsh | i3-gaps | emacs | rxvt-unicode | GNU Screen | moc | htop | ||||
polyzen | Zsh | i3 | Neovim | Alacritty | tmux | mpv | i3status,htop | himalaya | ranger | Newsboat | |
potamides | Bash | awesome | neovim | termite | tmux | ncmpcpp | conky,htop | mutt | weechat | ranger | |
reisub0 | fish | qtile | neovim | kitty | mpd | conky | |||||
sistematico | zsh/fish/bash | i3-gaps | vim/nano | termite | tmux | ncmpcpp | polybar | mutt | weechat | ||
thecashewtrader | Eshell | EXWM | Emacs | Emacs (VTerm) | Emacs | Bongo | htop | mu4e | ERC | Dired | Elfeed |
thiagowfx | bash/zsh | i3 | Vim | alacritty | tmux | playerctl | i3status | ranger | |||
tplasdio | bash (ble.sh) | awesome | neovim | alacritty | tmux | mpv, mpvs | htop | neomutt | weechat | lf | |
tuurep | Bash | openbox | neovim | alacritty | tmux | polybar | |||||
unrealapex | Zsh | Dwm | Neovim | St | Ncmpcpp | htop | Neomutt | Irssi | fff | Newsboat | |
vodik | Zsh | xmonad | Vim | termite-git | tmux | ncmpcpp | custom | mutt | weechat | ||
w0ng | Zsh | dwm | Vim | rxvt-unicode | tmux | ncmpcpp | custom | mutt | irssi | ||
whitelynx | fish | i3 | neovim | kitty | i3pystatus | ||||||
whynothugo | Zsh | sway | neovim | alacritty | mpv | waybar, top | neomutt | nemo | |||
wryonik | Zsh | i3-gaps-rounded | Vim | terminator | cmus | htop, i3blocks, gotop | ranger, nautilus |
参照
- gregswiki:DotFiles
- XMonad Config Archive
- dotshare.it
- dotfiles.github.io
- terminal.sexy - ターミナルのカラースキームデザイナー