2017-07-28 12:58:12 +02:00
|
|
|
# .dotfiles
|
2012-06-18 12:04:02 +02:00
|
|
|
|
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/).
|
2012-06-21 17:34:18 +02:00
|
|
|
|
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`.
|
2012-06-18 12:04:02 +02:00
|
|
|
|
2018-03-09 11:25:02 +01:00
|
|
|
I've also written a fair amount of scripts. The highlights include:
|
2013-05-31 19:01:32 +02:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* asciify: convert many non-ASCII characters to their nearest ASCII counterpart.
|
2013-04-13 20:23:47 +02:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* bsdman: read *BSD man pages.
|
2014-02-14 01:49:50 +01:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* crun: quick way to execute C files.
|
2013-05-31 19:01:32 +02:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* dataindex: create index of hierarchies. Useful to keep track of folder content
|
2016-10-14 13:51:40 +02:00
|
|
|
and structure.
|
2014-02-14 01:49:50 +01:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* ediff: diff with Emacs.
|
2013-04-13 20:23:47 +02:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* einfo: info viewer with Emacs.
|
2014-03-22 12:16:20 +01:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* elisp: Emacs Lisp interpreter using Emacs.
|
2014-02-14 01:49:50 +01:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* git-*: some git helper functions for sync and so on.
|
2014-02-14 01:49:50 +01:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* homeinit: initialize a new home configuration, i.e. get needed files, create
|
2017-07-28 12:58:12 +02:00
|
|
|
symlinks, etc.
|
2012-08-01 15:45:33 +02:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* imagemount: a CDEmu/fuseiso wrapper that creates/deletes virtual drives
|
2016-10-14 13:51:40 +02:00
|
|
|
automatically.
|
2014-03-22 12:16:20 +01:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* mover: move and merge folder into destination.
|
2014-03-22 12:16:20 +01:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* pac*: pacman helper functions.
|
2014-03-22 12:16:20 +01:00
|
|
|
|
2016-10-18 07:43:43 +02:00
|
|
|
* pdfctl: PDF manipulation, e.g. extract pages, compress, resize to A4.
|
2013-05-31 19:01:32 +02:00
|
|
|
|
2016-10-14 13:51:40 +02:00
|
|
|
* pkglister: generate lists of installed with pacman, FreeBSD's pkg and tlmgr
|
|
|
|
(TeX Live manager).
|
2013-05-31 19:01:32 +02:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
* tc-video-*: batch conversion of any kind of videos. Using FFmpeg.
|
2012-08-01 15:45:33 +02:00
|
|
|
|
2018-03-09 11:25:02 +01:00
|
|
|
## Setup
|
|
|
|
|
|
|
|
For the list of programs I currently use, see the `.pkglists/` folder.
|
|
|
|
|
|
|
|
Dotfiles can be managed in different ways.
|
|
|
|
|
|
|
|
### Direct versioning
|
2013-05-31 19:01:32 +02:00
|
|
|
|
|
|
|
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.
|
2013-05-31 19:01:32 +02:00
|
|
|
|
2014-11-13 11:48:15 +01:00
|
|
|
cd
|
|
|
|
git init
|
|
|
|
git remote add origin <repo>
|
|
|
|
git fetch
|
|
|
|
git checkout master
|
2013-05-31 19:01:32 +02:00
|
|
|
|
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.
|