Difference between revisions of "Dotfiles"

From ArchWiki
Jump to: navigation, search
m (Added a full stop.)
(Repositories: rm repo dead since 2018/05/29)
 
(170 intermediate revisions by 62 users not shown)
Line 1: Line 1:
{{Lowercase title}}
+
[[Category:Configuration files]]
[[Category:Dotfiles]]
+
[[Category:Configuration management]]
{{Article summary start|Summary}}
+
[[ja:ドットファイル]]
{{Article summary text|This article collects links to many user repositories containing custom configuration files.}}
+
[[pt:Dotfiles]]
{{Article summary end}}
+
{{Related articles start}}
 +
{{Related|XDG Base Directory support}}
 +
{{Related|X resources}}
 +
{{Related articles end}}
 +
This article collects user repositories with custom configuration files, commonly known as ''dotfiles''.
  
'''dotfiles''' are configuration files.
+
== Version control ==
  
== Managing dotfiles with git ==
+
Managing dotfiles with [[version control system]]s such as [[Git]] helps to keep track of changes, share with others, and synchronize dotfiles across various hosts.
A popular way of keeping a centralized copy of your dotfiles is hosting them on github.
+
 
 +
=== Using gitignore ===
 +
 
 +
Keeping a [https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository git directory] inside the home folder allows to directly keep track of changes. It is recommended to selectively add file contents to the index with {{man|1|git-add}}.
 +
 
 +
To prevent untracked files (appearing in commits and removed by {{man|1|git-clean}}), first exclude all files with {{man|5|gitignore}}:
 +
 
 +
{{hc|~/.git/info/exclude|
 +
*}}
 +
 
 +
Then use {{ic|git add -f}}, for example:
 +
 
 +
$ git add -f ~/.config/*
 +
 
 +
And commit the changes with {{man|1|git-commit}}:
 +
 
 +
$ git commit -a
 +
 
 +
{{Tip|To avoid accidentally commiting confidential information, see [[Git#Filtering confidential information]].}}
 +
 
 +
=== Other tools ===
 +
 
 +
* {{App|dotdrop|A tool to manage your dotfiles across different hosts and saving them to git without duplicates.|https://github.com/deadc0de6/dotdrop|{{AUR|dotdrop}}}}
 +
* {{App|dotfiles|A tool to make managing your dotfile symlinks in $HOME easy, allowing you to keep all of them in a single directory.|https://github.com/jbernard/dotfiles|{{AUR|dotfiles}}}}
 +
* {{App|dotgit|A comprehensive solution to managing your dotfiles.|http://github.com/Cube777/dotgit|{{AUR|dotgit}}}}
 +
* {{App|dots|A portable tool for managing a single set of dotfiles in an organized fashion.|https://github.com/EvanPurkhiser/dots|{{AUR|dots-manager}}}}
 +
* {{App|[[etckeeper]]|Intended to version-control system-wide configuration in /etc. Works by keeping track of permissions and modes which version-control software often ignores. Can use various SCM systems as a backend. Hooks can auto-commit changes to the repository before a system-upgrade.|http://etckeeper.branchable.com/|{{Pkg|etckeeper}}}}
 +
* {{App|GNU Stow|Can be used to symlink dotfiles from a repository into the $HOME tree. See [http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html] for more information.|http://www.gnu.org/software/stow/|{{Pkg|stow}}}}
 +
* {{App|homeshick|git dotfiles synchronizer written in bash.|https://github.com/andsens/homeshick|{{AUR|homeshick-git}}}}
 +
* {{App|homesick|Your home directory is your castle. Don't leave your dotfiles behind.|https://github.com/technicalpickles/homesick|{{AUR|homesick}}}}
 +
* {{App|mackup|a small Python utitlity to keep your application settings in sync.|https://github.com/lra/mackup|{{AUR|mackup}}}}
 +
* {{App|Pearl|Package manager for dotfiles, plugins, programs and any form of code accessible via git. Allow to easily share and sync packages across systems and have them ready to work out of the box.|https://github.com/pearl-core/pearl|{{AUR|pearl-git}}}}
 +
* {{App|rcm|Can be used to symlink dotfiles from a repository into the $HOME tree.|https://github.com/thoughtbot/rcm|{{AUR|rcm}}}}
 +
* {{App|vcsh|Allows separating differents modules (e.g., Emacs config vs. zsh config) into individual repositories which can be maintained separately, as opposed to keeping all dotfiles in a single repository. Works with git only.|https://github.com/RichiH/vcsh|{{AUR|vcsh}}}}
 +
* {{App|yadm|Manages files across systems using a single Git repository. Provides a way to use alternate files on a specific OS or host. Supplies a method of encrypting confidential data so it can safely be stored in your repository.|https://github.com/TheLocehiliosan/yadm|{{AUR|yadm-git}}}}
 +
 
 +
=== Maintaining dotfiles across multiple machines ===
 +
 
 +
{{Style|This section needs a rewrite}}
 +
 
 +
One way of maintaining dotfiles across various machines across various hosts while still allowing for per-host customizations, is by maintaining a master-branch for all shared configuration, while each individual machine has a machine-specific branch checked out. Host-specific configuration can be committed to the machine-specific branch; as shared configuration is added to the master-branch, the per-machine branches are then rebased on top of the updated master.
 +
 
 +
The drawback on having some of the configuration files in multiple branches is that you have to remember to maintain and synchronize changes. Use conditional logic to minimize the number of machine specific files. For example, bash scripts (i.e. {{ic|.bashrc}}) can apply different configuration depending on the machine name (or type, custom variable, etc.):
 +
 
 +
if <nowiki>[[ "$(uname -n)" == "archlaptop" ]];</nowiki> then
 +
    # laptop specific commands here
 +
else
 +
    # desktop or server machine commands
 +
fi
 +
 
 +
Another approach is to manage machine-specific configuration with tools based on template engines, e.g. [https://pypi.python.org/pypi/mir.qualia/ qualia] or [https://github.com/deadc0de6/dotdrop Dotdrop]. This approach requires less manual work and doesn't cause merge conflicts.
  
 
== Repositories ==
 
== Repositories ==
  
{| class="wikitable sortable" border="1" cellpadding="1" cellspacing="0"
+
{| class="wikitable sortable" style="text-align:center"
! scope="col" | Author
+
! Author || Shell (Shell framework) || WM / DE || Editor || Terminal || Multiplexer || Audio || Monitor || Mail || IRC
! scope="col" | Shell
+
|-
! scope="col" | WM / DE
+
! [https://github.com/alfunx/.dotfiles alfunx]
! scope="col" | Editor
+
| zsh || awesome || vim || kitty || tmux || ncmpcpp/mpd || htop/lain || thunderbird ||
! scope="col" | Terminal
+
|-
! scope="col" | Multiplexer
+
! [https://github.com/Ambrevar/dotfiles Ambrevar]
! scope="col" | Audio
+
| zsh || awesome || emacs || rxvt-unicode || || cmus || htop/vicious || mutt ||
! scope="col" | Monitor
+
|-
! scope="col" | Mail
+
! [https://github.com/awalGarg/dotfiles awal]
! scope="col" | IRC
+
| fish || i3 || vim || st || tmux || || i3status || || The Lounge
 +
|-
 +
! [https://github.com/ayekat/dotfiles ayekat]
 +
| zsh || karuiwm || vim || rxvt-unicode || tmux || ncmpcpp/mpd || karuibar || mutt || irssi
 +
|-
 +
! [https://github.com/bamos/dotfiles bamos]
 +
| zsh || i3/xmonad || vim/emacs || rxvt-unicode || tmux || mpv/cmus || conky/xmobar || mutt || ERC
 
|-
 
|-
 
! [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 || screen || || dzen || [https://github.com/pbrisbin/mutt-config mutt] || [https://github.com/pbrisbin/irssi-config irssi]
 +
|-
 +
! [https://gitlab.com/BVollmerhaus/dotfiles BVollmerhaus]
 +
| bash || [https://gitlab.com/BVollmerhaus/dotfiles/blob/master/config/i3/config i3-gaps] || [https://gitlab.com/BVollmerhaus/dotfiles/blob/master/config/kak/kakrc kakoune] || rxvt-unicode || || || [https://gitlab.com/BVollmerhaus/dotfiles/blob/master/config/polybar/config polybar] || thunderbird ||
 
|-
 
|-
 
! [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/dikiaap/dotfiles dikiaap]
 +
| zsh || i3-gaps || neovim || alacritty || tmux || || i3blocks || ||
 +
|-
 +
! [https://github.com/Earnestly/dotfiles Earnestly]
 +
| zsh || i3/orbment || vim/emacs || termite || tmux || mpd || conky || mutt || weechat
 +
|-
 +
! [https://github.com/ErikBjare/dotfiles ErikBjare]
 +
| zsh || xmonad/xfce4 || vim || terminator || tmux || || xfce4-panel || || weechat
 
|-
 
|-
 
! [https://github.com/falconindy/dotfiles falconindy]
 
! [https://github.com/falconindy/dotfiles falconindy]
Line 36: Line 108:
 
| zsh || xfce4 || vim || terminal || || ncmpcpp || custom || thunderbird ||
 
| zsh || xfce4 || vim || terminal || || ncmpcpp || custom || thunderbird ||
 
|-
 
|-
! [http://code.gtmanfred.com/cgit/dotfiles.git/tree/?h=tower gtmanfred]
+
! [https://github.com/hugdru/dotfiles hugdru]
| zsh || dwm || vim || termite-git || tmux || mpd || conky || mutt || weechat
+
| zsh || awesome || neovim || rxvt-unicode || tmux || || || thunderbird || weechat
 +
|-
 +
! [https://github.com/insanum/dotfiles insanum]
 +
| bash || herbstluftwm || vim || evilvte || tmux || || dzen || mutt-kz ||
 +
|-
 +
! [https://bitbucket.org/jasonwryan/shiv/src jasonwryan]
 +
| bash/zsh || dwm || vim || rxvt-unicode || tmux || ncmpcpp || custom || mutt || irssi
 +
|-
 +
! [https://github.com/JDevlieghere/dotfiles/ jdevlieghere]
 +
| zsh || xmonad || vim || terminal || tmux || || htop || mutt || weechat
 +
|-
 +
! [https://github.com/jelly/Dotfiles jelly]
 +
| zsh || i3 || vim || termite || tmux || ncmpcpp || || mutt-kz-git || weechat
 
|-
 
|-
! [https://bitbucket.org/jasonwryan/eeepc/src jasonwryan]
+
! [https://github.com/maximbaz/dotfiles maximbaz]
| bash/zsh || dwm || vim || rxvt-unicode || tmux || ncmpcpp || custom || mutt || irrsi
+
| zsh || i3-gaps || neovim || kitty || || || py3status || thunderbird ||
 
|-
 
|-
! [http://github.com/meskarune/.dotfiles meskarune]
+
! [https://github.com/meskarune/.dotfiles meskarune]
 
| bash || herbstluftwm || vim || rxvt-unicode || screen || || conky || || weechat
 
| bash || herbstluftwm || vim || rxvt-unicode || screen || || conky || || weechat
 
|-
 
|-
Line 51: Line 135:
 
| bash || dwm || vim || rxvt-unicode || || cmus || conky, dzen || mutt || weechat
 
| bash || dwm || vim || rxvt-unicode || || cmus || conky, dzen || mutt || weechat
 
|-
 
|-
! [http://hg.subtle.de/dotfiles/file unexist]
+
! [https://github.com/pablox-cl/dotfiles pablox-cl]
| zsh || subtle || vim || rxvt-unicode || || ncmpcpp || || mutt || irssi
+
| zsh (zplug) || gnome3 || neovim || kitty || || || || ||
 +
|-
 +
! [https://github.com/reisub0/dot reisub0]
 +
| bash || awesome || neovim || termite || || 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.sitilge.id.lv/sitilge/dotfiles sitilge]
 +
| zsh || awesome ||neovim || termite || || || || thunderbird ||
 +
|-
 +
! [https://github.com/swalladge/dotfiles swalladge]
 +
| zsh/bash || i3 || neovim/vim || termite || tmux || cmus || i3pystatus || mutt ||
 +
|-
 +
! [https://github.com/SyfiMalik/cfg SyfiMalik]
 +
| zsh || i3 || vim || rxvt-unicode || tmux || ncmpcpp/mpd || polybar || mutt || weechat
 +
|-
 +
! [https://github.com/thiagowfx/dotfiles thiagowfx]
 +
| bash/zsh || i3 || vim/emacs || rxvt-unicode || || ncmpcpp || i3blocks || ||
 
|-
 
|-
! [http://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
 
|-
 
|-
! [http://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
 
|-
 
|-
! [http://github.com/Wintervenom/Configuration Wintervenom]
+
! [https://github.com/whitelynx/dotfiles whitelynx]
| 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
+
| fish || i3 || neovim || kitty || || || i3pystatus || ||
 
|-
 
|-
! [http://github.com/wolfcore/dotfiles wolfcore]  
+
! [https://github.com/Wintervenom/Configuration Wintervenom]
 +
| 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-dzen2 hlwm-dzen2] || mutt || weechat
 +
|-
 +
! [https://github.com/wolfcore/dotfiles wolfcore]  
 
| bash || dwm || vim || rxvt-unicode || tmux || cmus || custom || || weechat
 
| bash || dwm || vim || rxvt-unicode || tmux || cmus || custom || || weechat
|-
 
! [https://github.com/xfausto/dotfiles xfausto]
 
| zsh || dwm || vim || st || || ncmpcpp || conky || ||
 
 
|-
 
|-
 
! [https://github.com/zendeavor zendeavor]
 
! [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]
 
| [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]
 
|-
 
|-
 +
 
|}
 
|}
  
 
== See also ==
 
== See also ==
* [http://mywiki.wooledge.org/DotFiles Dotfiles - Greg's Wiki]
+
 
* [http://www.haskell.org/haskellwiki/Xmonad/Config_archive XMonad Config Archive]
+
* [[gregswiki:DotFiles]]
 +
* [http://wiki.haskell.org/Xmonad/Config_archive XMonad Config Archive]
 
* [http://dotshare.it dotshare.it]
 
* [http://dotshare.it dotshare.it]
* [http://dotfiles.org dotfiles.org] - [http://techie.cat/all-contents-from-dotfiles-org/ Copy of contents]
+
* [https://dotfiles.github.io/ dotfiles.github.io]
 +
* [https://terminal.sexy/ terminal.sexy] - Terminal color scheme designer

Latest revision as of 17:09, 13 January 2019

This article collects user repositories with custom configuration files, commonly known as dotfiles.

Version control

Managing dotfiles with version control systems such as Git helps to keep track of changes, share with others, and synchronize dotfiles across various hosts.

Using gitignore

Keeping a git directory inside the home folder allows to directly keep track of changes. It is recommended to selectively add file contents to the index with git-add(1).

To prevent untracked files (appearing in commits and removed by git-clean(1)), first exclude all files with gitignore(5):

~/.git/info/exclude
*

Then use git add -f, for example:

$ git add -f ~/.config/*

And commit the changes with git-commit(1):

$ git commit -a
Tip: To avoid accidentally commiting confidential information, see Git#Filtering confidential information.

Other tools

  • dotdrop — A tool to manage your dotfiles across different hosts and saving them to git without duplicates.
https://github.com/deadc0de6/dotdrop || dotdropAUR
  • dotfiles — A tool to make managing your dotfile symlinks in $HOME easy, allowing you to keep all of them in a single directory.
https://github.com/jbernard/dotfiles || dotfilesAUR
  • dotgit — A comprehensive solution to managing your dotfiles.
http://github.com/Cube777/dotgit || dotgitAUR
  • dots — A portable tool for managing a single set of dotfiles in an organized fashion.
https://github.com/EvanPurkhiser/dots || dots-managerAUR
  • etckeeper — Intended to version-control system-wide configuration in /etc. Works by keeping track of permissions and modes which version-control software often ignores. Can use various SCM systems as a backend. Hooks can auto-commit changes to the repository before a system-upgrade.
http://etckeeper.branchable.com/ || etckeeper
  • GNU Stow — Can be used to symlink dotfiles from a repository into the $HOME tree. See [1] for more information.
http://www.gnu.org/software/stow/ || stow
  • homeshick — git dotfiles synchronizer written in bash.
https://github.com/andsens/homeshick || homeshick-gitAUR
  • homesick — Your home directory is your castle. Don't leave your dotfiles behind.
https://github.com/technicalpickles/homesick || homesickAUR
  • mackup — a small Python utitlity to keep your application settings in sync.
https://github.com/lra/mackup || mackupAUR
  • Pearl — Package manager for dotfiles, plugins, programs and any form of code accessible via git. Allow to easily share and sync packages across systems and have them ready to work out of the box.
https://github.com/pearl-core/pearl || pearl-gitAUR
  • rcm — Can be used to symlink dotfiles from a repository into the $HOME tree.
https://github.com/thoughtbot/rcm || rcmAUR
  • vcsh — Allows separating differents modules (e.g., Emacs config vs. zsh config) into individual repositories which can be maintained separately, as opposed to keeping all dotfiles in a single repository. Works with git only.
https://github.com/RichiH/vcsh || vcshAUR
  • yadm — Manages files across systems using a single Git repository. Provides a way to use alternate files on a specific OS or host. Supplies a method of encrypting confidential data so it can safely be stored in your repository.
https://github.com/TheLocehiliosan/yadm || yadm-gitAUR

Maintaining dotfiles across multiple machines

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements. See Help:Style for reference.Tango-edit-clear.png

Reason: This section needs a rewrite (Discuss in Talk:Dotfiles#)

One way of maintaining dotfiles across various machines across various hosts while still allowing for per-host customizations, is by maintaining a master-branch for all shared configuration, while each individual machine has a machine-specific branch checked out. Host-specific configuration can be committed to the machine-specific branch; as shared configuration is added to the master-branch, the per-machine branches are then rebased on top of the updated master.

The drawback on having some of the configuration files in multiple branches is that you have to remember to maintain and synchronize changes. Use conditional logic to minimize the number of machine specific files. For example, bash scripts (i.e. .bashrc) can apply different configuration depending on the machine name (or type, custom variable, etc.):

if [[ "$(uname -n)" == "archlaptop" ]]; then
    # laptop specific commands here
else
    # desktop or server machine commands
fi

Another approach is to manage machine-specific configuration with tools based on template engines, e.g. qualia or Dotdrop. This approach requires less manual work and doesn't cause merge conflicts.

Repositories

Author Shell (Shell framework) WM / DE Editor Terminal Multiplexer Audio Monitor Mail IRC
alfunx zsh awesome vim kitty tmux ncmpcpp/mpd htop/lain thunderbird
Ambrevar zsh awesome emacs rxvt-unicode cmus htop/vicious mutt
awal fish i3 vim st tmux i3status The Lounge
ayekat zsh karuiwm vim rxvt-unicode tmux ncmpcpp/mpd karuibar mutt irssi
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
BVollmerhaus bash i3-gaps kakoune rxvt-unicode polybar thunderbird
cinelli zsh dwm vim termite-git pianobar htop mutt-kz weechat
dikiaap zsh i3-gaps neovim alacritty tmux i3blocks
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
hugdru zsh awesome neovim rxvt-unicode tmux thunderbird weechat
insanum bash herbstluftwm vim evilvte tmux dzen mutt-kz
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
maximbaz zsh i3-gaps neovim kitty py3status thunderbird
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
pablox-cl zsh (zplug) gnome3 neovim kitty
reisub0 bash awesome neovim termite mpd conky
sistematico zsh/fish/bash i3-gaps vim/nano termite tmux ncmpcpp polybar mutt weechat
sitilge zsh awesome neovim termite thunderbird
swalladge zsh/bash i3 neovim/vim termite tmux cmus i3pystatus mutt
SyfiMalik zsh i3 vim rxvt-unicode tmux ncmpcpp/mpd polybar mutt weechat
thiagowfx bash/zsh i3 vim/emacs rxvt-unicode ncmpcpp i3blocks
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
Wintervenom bash herbstluftwm vim rxvt-unicode screen mpd (mpc-utils) hlwm-dzen2 mutt weechat
wolfcore bash dwm vim rxvt-unicode tmux cmus custom weechat
zendeavor zsh i3 vim rxvt-unicode tmux ncmpcpp i3status weechat

See also