「ドットファイル」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「http://www.gnu.org/」を「https://www.gnu.org/」に置換)
 
(4人の利用者による、間の19版が非表示)
1行目: 1行目:
[[Category:ドットファイル]]
+
[[Category:設定ファイル]]
  +
[[Category:設定管理]]
 
[[en:Dotfiles]]
 
[[en:Dotfiles]]
  +
[[es:Dotfiles]]
  +
[[pt:Dotfiles]]
  +
[[zh-hans:Dotfiles]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|XDG Base Directory サポート}}
 
{{Related|XDG Base Directory サポート}}
  +
{{Related|X resources}}
 
{{Related articles end}}
 
{{Related articles end}}
この記事では''ドットファイル''という名前で周知されているカスタム設定ファイルのユーザーリポジトリを収集しています。
 
   
  +
ユーザー固有のアプリケーション設定は、伝統的に [[Wikipedia:dotfile|ドットファイル]](ファイル名がドットで始まるファイル) に保存されています。変更を追跡し、さまざまなホスト間でドットファイルを同期するために、[[Git]] などの [[バージョン管理システム]] でドットファイルを管理することは一般的な方法です。ドットファイルを管理するには、さまざまな方法があります(例えば、ホームディレクトリでドットファイルを直接追跡する、サブディレクトリに保存する、[[シェル]]スクリプト や[[#他のツール|専用ツール]] でファイルをシンボリックリンク/コピー/生成するなど)。ドットファイルの管理方法とは別に、この記事には、[[#リポジトリ|ドットファイルのリボジトリのリスト]] も含まれています。
== バージョン管理 ==
 
   
  +
== Git を使ってドットファイルを直接管理する ==
[[Git]] などのバージョン管理ソフトウェアでドットファイルを管理することで、変更を記録したり他のユーザーとファイルを共有したり、複数のホスト間でドットファイルを同期することができます。
 
   
  +
ドットファイルを直接 Git で追跡することの利点は、[[Git]] だけで済み、シンボリックリンクを必要としないことです。デメリットは、[[#ホスト固有の設定|ホスト固有の設定]] では一般的に複数の [[Git#Branching|branches]] に変更をマージする必要があるということです。
=== gitignore を使う ===
 
   
  +
このアプローチを実現する最も簡単な方法は、[[Git]] リポジトリをホームディレクトリで直接初期化し、デフォルトで {{man|5|gitignore}} パターンの {{ic|*}} を使用してすべてのファイルを無視することです。ただし、この方法には 2 つの欠点があります。ホームディレクトリに他の Git リポジトリがある場合は混乱する可能性があります (たとえば、リポジトリの初期化を忘れた場合、突然 dotfile リポジトリを操作することになります) また、ディレクトリ内のどのファイルが簡単に確認できなくなります。現在のディレクトリは追跡されません (無視されるため)
ホームディレクトリに [https://git-scm.com/blog/2010/04/11/environment.html git ディレクトリ] を作成することで変更を直接記録することができます。インデックスに追加するファイルは [http://git-scm.com/docs/git-add git add] で選択することを推奨します。
 
   
  +
これらの欠点を避けるための代替方法として、"bare repository and alias method" があります。この方法は、[https://news.ycombinator.com/item?id=11071754 Ask Hacker News: What do you use to manage your dotfiles?] で広く知られるようになったもので、たった3つのコマンドでセットアップが可能です:
変更が追跡されないファイルが生じないように ([http://git-scm.com/docs/git-clean git clean] で削除されます)、まずは [http://git-scm.com/docs/gitignore gitignore] で全てのファイルを除外してください:
 
   
  +
$ git init --bare ~/.dotfiles
{{hc|~/.git/info/exclude|
 
  +
$ alias config='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
*}}
 
  +
$ config config status.showUntrackedFiles no
   
  +
{{note|通常、ドットファイルのパーミッションはすべてデフォルトの設定のままで問題ありませんが、特定のファイルに特定のパーミッションが必要な場合は、別の方法を検討する必要があります。Git はファイルのパーミッションを保存しないためです。}}
それから {{ic|git add -f}} で追跡したいファイルだけを追加します:
 
   
  +
このドットファイルを使って新しいシステムに複製できます:
$ git add -f ~/.config/*
 
   
  +
$ git clone --bare <git-repo-url> $HOME/.dotfiles
最後に変更を [http://git-scm.com/docs/git-commit commit] してください:
 
  +
$ alias config='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"'
  +
$ config checkout
  +
$ config config --local status.showUntrackedFiles no
   
  +
* 上書きされる可能性のあるいくつかのストック設定がすでにある場合は、次のようなエラーが発生します:
$ git commit -a
 
  +
:{{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>
* {{App|[[etckeeper]]|システム全体の設定が存在する {{ic|/etc}} をバージョン管理します。バージョン管理ソフトウェアが無視するパーミッションやモードを記録することで動作します。様々な SCM システムをバックエンドとして使用可能。フックを使用することでシステムがアップグレードされる前にリポジトリに変更を自動的にコミットできます。|http://joeyh.name/code/etckeeper/|{{Pkg|etckeeper}}}}
 
  +
mkdir -p .config-backup && \
* {{App|GNU Stow|リポジトリのドットファイルから {{ic|$HOME}} ツリーにシンボリックリンクを作成します。詳しくは [http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html] を見てください。|https://www.gnu.org/software/stow/|{{Pkg|stow}}}}
 
  +
config checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | \
* {{App|Pearl|ドットファイルやプラグイン、プログラムあるいは git から入手できるあらゆるコードのパッケージマネージャ。システム間でパッケージを簡単に共有・同期することができ、すぐに使える状態にできます。|https://github.com/pearl-core/pearl|{{AUR|pearl-git}}}}
 
  +
xargs -I{} mv {} .config-backup/{}
* {{App|vcsh|全てのドットファイルをひとつのリポジトリで管理するのではなく、様々なモジュール (Emacs の設定や zsh の設定など) を別々のリポジトリに分割することで管理を分けることができます。git でしか動作しません。|https://github.com/RichiH/vcsh|{{AUR|vcsh}}}}
 
  +
</nowiki>}}
* {{App|yadm|ひとつの Git リポジトリを使って複数のシステムでファイルを管理します。特定の OS やホストで別のファイルを使うようにすることができます。機密情報を暗号化することでリポジトリに安全に保存することが可能。|https://github.com/TheLocehiliosan/yadm|{{AUR|yadm}}{{Broken package link|パッケージが存在しません}}}}
 
* {{App|homeshick|[[Bash]] で書かれた git ドットファイル同期ツール。|https://github.com/andsens/homeshick|{{AUR|homeshick-git}}}}
 
* {{App|dotbot|ドットファイルリポジトリの git サブモジュールとしてインストールすることができるミニマルなドットファイルマネージャ。|https://github.com/anishathalye/dotbot|}}
 
   
  +
その後、作成した [[エイリアス]] でドットファイルを管理することができます。もし [[Bash]] を使っていてこのエイリアスを bash 補完したい場合は、{{AUR|bash-complete-alias}} をインストールして、エイリアスと次の行を {{ic|~/.bashrc}} に追加してください。
=== 複数のマシンでドットファイルを管理する ===
 
   
  +
$ complete -F _complete_alias config
共有する設定をマスターブランチで管理して、マシンごとのブランチを作成することで、カスタマイズを加えながら様々なマシンのドットファイルを管理するという方法があります。特定のマシンの設定は専用のブランチにコミットし、共通設定はマスターブランチに追加します。そしてマスターを更新したら各マシンのブランチをリベースします。
 
   
  +
bash で補完させるもう一つの方法は、{{ic|~/.bashrc}} に以下を追加することです。([https://askubuntu.com/a/642778] から引用)
また、特定のマシンの設定を特殊なコメントブロックに記述して [https://pypi.python.org/pypi/mir.qualia/ qualia] を使って自動的にアンコメントさせるという方法もあります。この方法は手間が少ない上にマージによる衝突が発生しません。
 
   
  +
source /usr/share/bash-completion/completions/git
=== 機密情報 ===
 
  +
__git_complete config __git_main
   
  +
{{Tip|機密情報を誤ってコミットしないようにするには、[https://wiki.archlinux.org/title/Git#Filtering_confidential_information Git#Filtering confidential information] を参照してください。}}
ときとして、ソフトウェアはパスワードを平文で設定ファイルに保存することがあります。そのような場合、git clean フィルターを利用することで機密情報を間違ってコミットする危険を減らすことができます。例えば、以下の .gitattributes ファイルは “some-dotfile” ファイルにフィルターを適用します:
 
   
  +
== ホスト固有の設定 ==
<pre>
 
# .gitattributes
 
some-dotfile filter=remove-pass
 
</pre>
 
   
  +
様々なマシンで dotfiles を同期させる際によくある問題が、ホスト固有の設定です。
“some-dotfile” ファイルが git にチェックインされた場合、git は “remove-pass” フィルターを実行します。フィルターは {{ic|.git/config}} に以下のように定義してください:
 
   
  +
[[Git]] では、すべての共有設定を master ブランチで管理し、個々のマシンにはマシン固有のブランチをチェックアウトすることでこれを解決できます。ホスト固有の設定はマシン固有のブランチにコミットすることができます。共有設定が master ブランチで変更された場合、マシンごとのブランチは更新された master の上にリベースされる必要があります。
<pre>
 
[filter "remove-pass"]
 
clean = "sed -e 's/^password=.*/#password=TODO/'"
 
</pre>
 
   
  +
[[コマンドラインシェル#設定ファイル|シェル設定ファイル]] のような設定スクリプトでは、条件付きロジックを使用することができます。例えば、[[Bash]] スクリプト (すなわち {{ic|.bashrc}}) は、マシン名 (またはタイプ、カスタム変数など) に応じて異なる設定を適用することができます。
== リポジトリ ==
 
   
  +
if <nowiki>[[ "$(hostname)" == "archlaptop" ]];</nowiki> then
{| class="wikitable sortable"
 
  +
# laptop specific commands here
! scope="col" | 作者
 
  +
else
! scope="col" | シェル
 
  +
# desktop or server machine commands
! scope="col" | WM / DE
 
  +
fi
! scope="col" | エディタ
 
  +
! scope="col" | ターミナル
 
  +
同様のことは、[[.Xresources]] でも実現できます。[https://jnrowe.github.io/articles/tips/Sharing_Xresources_between_systems.html]
! scope="col" | マルチプレクサ
 
  +
! scope="col" | オーディオ
 
  +
Git ブランチのリベースが面倒だと感じる場合は、''ファイルのグループ化'' をサポートする [[#Tools|ツール]] や、さらに柔軟性を求めるなら ''加工処理'' を行うツールを使用するとよいでしょう。
! scope="col" | モニター
 
  +
! scope="col" | メール
 
  +
== ツール ==
! scope="col" | IRC
 
  +
  +
;ファイルのグループ化
  +
:設定ファイルを設定グループ (プロファイルまたはパッケージとも呼ばれる) にグループ化する方法です。
  +
処理
  +
:ホストによってカスタマイズできるように、設定ファイルを処理するツールもあります。
  +
  +
{| class="wikitable sortable" style="text-align: center;"
  +
! 名前 !! パッケージ !! 言語 !! ファイルのグループ化 !! 処理
 
|-
 
|-
! [https://bitbucket.org/ambrevar/dotfiles Ambrevar]
+
! [https://github.com/anishathalye/dotbot dotbot]
  +
| {{Pkg|chezmoi}} || Python || 設定ファイル || {{Grey|No}}
| zsh || awesome || emacs || rxvt-unicode || || cmus || htop/vicious || mutt ||
 
  +
|-
  +
! [https://github.com/twpayne/chezmoi chezmoi]
  +
| {{AUR|dotbot}} || Go || ディレクトリベース || Go テンプレート
  +
|-
  +
! [https://github.com/kesslern/dot-templater dot-templater]
  +
| {{AUR|dot-templater-git}} || Rust || ディレクトリベース || カスタムシンタックス
  +
|-
  +
! [https://github.com/oknozor/toml-bombadil toml-bombadil]
  +
| {{Pkg|toml-bombadil}} || Rust || 設定ファイル || tera
  +
|-
  +
! [https://deadc0de.re/dotdrop/ dotdrop]
  +
| {{AUR|dotdrop}} || Python || 設定ファイル || Jinja2
  +
|-
  +
! [https://github.com/jbernard/dotfiles dotfiles]
  +
| {{AUR|dotfiles}} || Python || {{Grey|[https://github.com/jbernard/dotfiles/pull/24 No]}} || {{Grey|No}}
  +
|-
  +
! [https://github.com/EvanPurkhiser/dots Dots]
  +
| {{AUR|dots-manager}} || Python || ディレクトリベース || カスタム追加ポイント
  +
|-
  +
! [https://github.com/SuperCuber/dotter dotter]
  +
| {{AUR|dotter-rs}} || Rust || 設定ファイル || Handlebars
  +
|-
  +
! [https://dt.cli.rs dt-cli]
  +
| {{AUR|dt-cli}} || Rust || 設定ファイル || Handlebars
  +
|-
  +
! [https://www.gnu.org/software/stow/ GNU Stow]
  +
| {{Pkg|stow}} || Perl || ディレクトリベース [http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html] || {{Grey|No}}
  +
|-
  +
! [https://github.com/lra/mackup Mackup]
  +
| {{AUR|mackup}} || Python || アプリケーションごとに自動 || {{Grey|No}}
  +
|-
  +
! [https://github.com/darkfeline/mir.qualia mir.qualia]
  +
| {{AUR|mir.qualia}} || Python || {{Grey|No}} || カスタムブロック
  +
|-
  +
! [https://github.com/thoughtbot/rcm rcm]
  +
| {{AUR|rcm}} || Perl || ディレクトリベース (ホストまたはタグによる) || {{Grey|No}}
  +
|-
  +
! [https://github.com/sebastiancarlos/yas-bdsm yas-bdsm]
  +
| {{-}} || Shell || ディレクトリベース || {{Grey|No}}
  +
|}
  +
  +
=== Git を wrapping するツール ===
  +
  +
[[Git]] に不安がある場合は、バージョン管理システムを (多かれ少なかれ) 抽象化するこれらのツールのいずれかを使用することをお勧めします。
  +
  +
{| class="wikitable sortable" style="text-align:center;"
  +
! 名前 !! パッケージ !! 言語 !! ファイルのグループ化 !! 処理
  +
|-
  +
! [https://github.com/kazhala/dotbare dotbare]
  +
| {{AUR|dotbare}} || Shell ({{Pkg|fzf}}) || リポジトリ的 || {{Grey|No}}
  +
|-
  +
! [https://github.com/kobus-v-schoor/dotgit dotgit]
  +
| {{AUR|dotgit}} || Python || ファイル名ベース || {{Grey|No}}
  +
|-
  +
! [https://github.com/andsens/homeshick homeshick]
  +
| {{AUR|homeshick-git}} || Bash || リポジトリ的 || {{Grey|No}}
  +
|-
  +
! [https://github.com/technicalpickles/homesick homesick]
  +
| {{-}} || Ruby || リポジトリ的 || {{Grey|No}}
  +
|-
  +
! [https://github.com/pearl-core/pearl Pearl]
  +
| {{AUR|pearl-git}} || Python || リポジトリ的 || {{Grey|No}}
  +
|-
  +
! [https://github.com/RichiH/vcsh vcsh]
  +
| {{Pkg|vcsh}} || Shell || リポジトリ的 || {{Grey|No}}
  +
|-
  +
! [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>(オプション)
  +
|-
  +
! [https://github.com/justone/dotfiles dfm]
  +
| {{AUR|dfm}} || Perl || リポジトリ的 || {{Grey|No}}
  +
|}
  +
  +
# [[GPG]] または OpenSS による機密ファイルの暗号化をサポートします。 [https://yadm.io/docs/encryption]
  +
  +
== ユーザーリポジトリ ==
  +
  +
{{Note|このテーブルは、ドットファイルの参照/例として使用して下さい。ドットファイルをテーブルに追加する場合は、それらがクリーンでコメントされていて、最新の状態に保たれているかを確認してください。}}
  +
{{Warning|これらのドットファイルは Arch Linux スタッフによって検証されていないため、自己責任で使用してください。}}
  +
  +
{| class="wikitable sortable" style="text-align:center"
  +
! 作者 || シェル || WM / DE || エディタ || ターミナル || マルチプレクサ || オーディオ || モニター || メール || IRC || ファイルマネージャ || RSS リーダー
  +
|-
  +
! [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 || sakura || tmux || || i3status || || The Lounge
+
| [[Fish]] || [[i3]] || [[Vim]] || [[St]] || [[tmux]] || || i3status || || The Lounge || ||
  +
|-
  +
! [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
+
| [[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 || screen || || dzen || [https://github.com/pbrisbin/mutt-config mutt] || [https://github.com/pbrisbin/irssi-config irssi]
+
| [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://github.com/bstaletic bstaletic]
+
! [https://gitlab.com/BVollmerhaus/dotfiles BVollmerhaus]
| [https://github.com/bstaletic/dotfiles/blob/master/.zshrc zsh] || [https://github.com/bstaletic/dotfiles/blob/master/dwm/config.h dwm] || [https://github.com/bstaletic/dotfiles/blob/master/.vimrc vim] || terminator || screen || [https://github.com/bstaletic/blob/master/.ncmpcpp/config ncmpcpp] || [https://github.com/bstaletic/dotfiles/blob/master/.conkyrc conky] || ||
+
| [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
+
| [[Zsh]] || dwm || [[Vim]] || termite-git || || pianobar || htop || mutt-kz || weechat || ||
 
|-
 
|-
! [https://github.com/drkh5h/dotfiles drkhsh]
+
! [https://github.com/dikiaap/dotfiles dikiaap]
| zsh || dwm || vim || st || screen || cmus || conky || mutt || weechat
+
| [[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
+
| [[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/xfce4 || vim || terminator || tmux || || xfce4-panel || || weechat
+
| [[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 ||
+
| [[Bash]] || [[i3]] || [[Vim]] || rxvt-unicode || || ncmpcpp || conky || mutt || || ||
 
|-
 
|-
! [https://github.com/graysky2/configs/tree/master/dotfiles graysky]
+
! [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]] ||
| zsh || xfce4 || vim || terminal || || ncmpcpp || custom || thunderbird ||
 
 
|-
 
|-
  +
! [https://github.com/Freed-Wu/Freed-Wu Freed-Wu]
! [http://code.gtmanfred.com/cgit/dotfiles.git/tree/?h=tower gtmanfred]
 
| zsh || dwm || vim || termite-git || tmux || mpd || conky || mutt || weechat
+
| [[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]
  +
| [[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
+
| [[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 ||
+
| [[Bash]] || herbstluftwm || [[Vim]] || evilvte || [[tmux]] || || dzen || mutt-kz || || ||
 
|-
 
|-
! [https://github.com/izmntuk/archiso/tree/testing/configs/alter/airootfs/ izmntuk]
+
! [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://bitbucket.org/jasonwryan/shiv/src jasonwryan]
+
! [https://hg.sr.ht/~jasonwryan/shiv jasonwryan]
| bash/zsh || dwm || vim || rxvt-unicode || tmux || ncmpcpp || custom || mutt || irrsi
+
| 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
+
| [[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
+
| [[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]
  +
| [[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 || screen || || conky || || weechat
+
| [[Bash]] || herbstluftwm || [[Vim]] || rxvt-unicode || [[GNU Screen]] || || conky || || weechat || ||
 
|-
 
|-
 
! [https://github.com/neersighted/dotfiles neersighted]
 
! [https://github.com/neersighted/dotfiles neersighted]
| zsh || i3 || vim || rxvt-unicode || tmux || ncmpcpp || htop || mutt || irssi
+
| [[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
+
| [[Bash]] || dwm || [[Vim]] || rxvt-unicode || || cmus || conky, dzen || mutt || weechat || ||
 
|-
 
|-
! [https://github.com/pid1/dotfiles pid1]
+
! [https://github.com/orhun/dotfiles orhun]
| zsh || dwm || neovim || termite || tmux || || custom || mutt || weechat
+
| [[Bash]] || [[i3]]-gaps || neovim || alacritty || || || i3status || || weechat || tere ||
 
|-
 
|-
! [https://github.com/polyzen/dotfiles polyzen]
+
! [https://github.com/pablox-cl/dotfiles pablox-cl]
| zsh || i3 || vim || termite || tmux || || i3status || || weechat
+
| zsh (zplug) || [[GNOME]] || neovim || kitty || || || || || || ||
 
|-
 
|-
! [https://bitbucket.org/swalladge/dotfiles swalladge]
+
! [https://github.com/patri9ck/dotfiles patri9ck]
| zsh/bash || i3 || neovim/vim || termite || tmux || || i3status || ||
+
| [[Zsh]] || [[bspwm]] || [[Vim]] || [[kitty]] || || || || || || [[Thunar]] ||
 
|-
 
|-
! [https://github.com/thiagowfx/dotfiles thiagowfx]
+
! [https://gitlab.com/peterzuger/dotfiles peterzuger]
| bash/zsh || i3 || vim/emacs || rxvt-unicode || || ncmpcpp || i3blocks || ||
+
| [[Zsh]] || [[i3]]-gaps || emacs || rxvt-unicode || [[GNU Screen]] || moc || htop || || || ||
 
|-
 
|-
! [http://hg.subtle.de/dotfiles/file unexist]
+
! [https://gitlab.com/polyzen/dotfiles polyzen]
| zsh || subtle || vim || rxvt-unicode || || ncmpcpp || || mutt || irssi
+
| [[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]
  +
| zsh/fish/bash || [https://github.com/Airblader/i3 i3-gaps] || vim/nano || termite || [[tmux]] || ncmpcpp || polybar || mutt || weechat || ||
  +
|-
  +
! [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]
  +
| 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] ||
  +
|-
  +
! [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
+
| [[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
+
| [[Zsh]] || dwm || [[Vim]] || rxvt-unicode || [[tmux]] || ncmpcpp || custom || mutt || irssi || ||
 
|-
 
|-
! [https://github.com/Wintervenom/Configuration Wintervenom]
+
! [https://github.com/whitelynx/dotfiles whitelynx]
  +
| [[fish]] || [[i3]] || neovim || kitty || || || i3pystatus || || || ||
| bash || herbstluftwm ||vim || rxvt-unicode || screen ||mpd ([https://github.com/Wintervenom/Scripts/tree/master/audio/mpd mpc-utils]) || [https://github.com/Wintervenom/Scripts/blob/master/wm/herbstluftwm/hlwm-dzen2https://github.com/wolfcore/dotfiles hlwm-dzen2] || mutt || weechat
 
 
|-
 
|-
! [https://github.com/wolfcore/dotfiles wolfcore]
+
! [https://git.sr.ht/~whynothugo/dotfiles whynothugo]
| bash || dwm || vim || rxvt-unicode || tmux || cmus || custom || || weechat
+
| [[Zsh]] || sway || neovim || alacritty || || mpv || waybar, top || neomutt || || nemo ||
 
|-
 
|-
! [https://github.com/xfausto/dotfiles xfausto]
+
! [https://github.com/wryonik/dotfiles wryonik]
| zsh || dwm || vim || st || || ncmpcpp || conky || ||
+
| [[Zsh]] || i3-gaps-rounded || [[Vim]] || terminator || || cmus || htop, i3blocks, gotop || || || ranger, nautilus ||
|-
 
! [https://github.com/zendeavor zendeavor]
 
| [https://github.com/zendeavor/config-stuff/tree/sandbag/zsh zsh] || [https://github.com/zendeavor/config-stuff/blob/sandbag/i3/config i3] || [https://github.com/zendeavor/dotvim/tree/sandbag vim] || [https://github.com/zendeavor/config-stuff/blob/sandbag/X11/Xresources#L14 rxvt-unicode] || [https://github.com/zendeavor/config-stuff/tree/sandbag/tmux tmux] || [https://github.com/zendeavor/config-stuff/blob/sandbag/ncmpcpp/config ncmpcpp] || [https://github.com/zendeavor/config-stuff/blob/sandbag/i3/i3status.conf i3status] || || [https://github.com/zendeavor/config-stuff/tree/kiwi/weechat weechat]
 
 
 
|}
 
|}
   
176行目: 359行目:
 
* [http://dotshare.it dotshare.it]
 
* [http://dotshare.it dotshare.it]
 
* [https://dotfiles.github.io/ dotfiles.github.io]
 
* [https://dotfiles.github.io/ dotfiles.github.io]
  +
* [https://terminal.sexy/ terminal.sexy] - ターミナルのカラースキームデザイナー

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 はファイルのパーミッションを保存しないためです。

このドットファイルを使って新しいシステムに複製できます:

$ 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
ヒント: 機密情報を誤ってコミットしないようにするには、Git#Filtering confidential information を参照してください。

ホスト固有の設定

様々なマシンで 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
  1. GPG または OpenSS による機密ファイルの暗号化をサポートします。 [6]

ユーザーリポジトリ

ノート: このテーブルは、ドットファイルの参照/例として使用して下さい。ドットファイルをテーブルに追加する場合は、それらがクリーンでコメントされていて、最新の状態に保たれているかを確認してください。
警告: これらのドットファイルは Arch Linux スタッフによって検証されていないため、自己責任で使用してください。
作者 シェル 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

参照