ambevar-dotfiles/readme.org

63 lines
1.8 KiB
Org Mode
Raw Normal View History

2017-07-28 12:58:12 +02:00
# .dotfiles
2014-11-13 11:48:15 +01:00
## Overview
2013-01-12 10:18:41 +01:00
2017-07-28 12:58:12 +02:00
I use of Emacs for almost everything, including my window manager (EXWM). See
my [Emacs pro-tips](http://ambrevar.bitbucket.io/emacs/).
2017-07-28 12:58:12 +02:00
As such, the more-or-less advanced configurations of my former favourite Unix
programs are gone (Awesome, cmus, fish, fzf, Mutt, newsbeuter, ranger, urxvt,
zathura, zsh). You can search for them before the git commit `README: The Big
Emacs Shift`.
## Setup
2014-03-22 12:16:20 +01:00
For the list of programs I currently use, see the `.pkglists/` folder.
The `homeinit` script fully bootstraps a user profile with required files,
folders, symlinks applications.
The `homeclean` script removes trash files, caches and warns if critically
private data is found (e.g. PGP keys).
The `homesync` script updates the package lists, prints the status of all known
projects and optionally pushes the unmerged changes upstream.
2018-03-09 11:25:02 +01:00
As for managing a dotfiles repository, there are various approaches.
2018-03-09 11:25:02 +01:00
### Direct versioning
Git makes it possible to use your home folder as a git repo, thus versioning
2014-11-13 11:48:15 +01:00
all files directly.
2014-11-13 11:48:15 +01:00
cd
git init
git remote add origin <repo>
git fetch
git checkout master
2018-03-09 11:25:02 +01:00
### GNU Stow
[GNU Stow](https://www.gnu.org/software/stow/) lets you symlink a project's
files to an arbitrary folder.
The simplest setup would be to clone the dotfiles to, say, `~/dotfiles` then run
cd ~/dotfiles
stow .
This has several advantages over direct versioning:
- Subfolders in home are not subject to being included into the dotfiles git
repository. This is especially relevant for projects under a version control
system other than git.
- No need for a `.gitignore`.
- Simplified file control (add/remove/etc.).
- You can fine-tune which program configuration to synchronize on a per-system basis.
- You can manage several configurations for the same programs.