Skip to content
main
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
ack
 
 
 
 
 
 
 
 
 
 
fzf
 
 
 
 
 
 
i3
 
 
 
 
 
 
npm
 
 
 
 
 
 
 
 
vim
 
 
x
 
 
zsh
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Dotfiles

These are my dotfiles. There are many like them, but these ones are mine. I take my dotfiles very seriously, as any professional programmer should.

For the time being, I’m using git to track my configurations across multiple hosts using branches. These branches has a set of host-specific patches which are continuously rebased on top of the master branch. This provides a sensible backup across hosts, while having tailored configuration for each host.

Most of the configuration is managed by Home Manager. Some legacy configurations are managed by symlinking dotfiles into $HOME using GNU stow.

Install Home Manager

nix-channel --add https://github.com/rycee/home-manager/archive/master.tar.gz home-manager
nix-channel --update

On NixOS you may need to log out and back in for the channel to become available. On non-NixOS you may have to add:

export NIX_PATH=$HOME/.nix-defexpr/channels${NIX_PATH:+:}$NIX_PATH

to your shell.

nix-shell '<home-manager>' -A install

If you do not plan on having Home Manager manage your shell configuration then you must source the

$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh

file in your shell configuration. Unfortunately, in this specific case we currently only support POSIX.2-like shells such as Bash or Z shell.

For example, if you use Bash then add

. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"

Installation

stow --target=$HOME <dir>

I’m mostly using a tiny bash wrapper around stow:

$ ./install <emacs|git|zsh|...>

see:

$ ./install -h

Submodules

I’m using git submodules to track some external dependencies like Doom Emacs, Prezto, fzf (NB: some are personal forks of awesome upstream software, so please check out the origin).

Issues

DNS resolve

Ref this answer, multi-case DNS may cause issues: nslookup finds ip, but ping doesnt

In nsswitch.conf, change the following:

- hosts:          files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns
+ hosts:          files dns

or remove completely:

$ sudo apt remove libnss-mdns

ZSH 5.2 has a broken function in `VCS_INFO_nvcsformats`

## vim:ft=zsh
## Written by Frank Terbeck <ft@bewatermyfriend.org>
## Distributed under the same BSD-ish license as zsh itself.

setopt localoptions noksharrays NO_shwordsplit
local c v rr
local -a msgs ### <-- NB: Comment out this line

if [[ $1 == '-preinit-' ]] ; then
    c='default'
    v='-preinit-'
    rr='-all-'
fi
zstyle -a ":vcs_info:${v:-$vcs}:${c:-$usercontext}:${rrn:-$rr}" nvcsformats msgs
(( ${#msgs} > maxexports )) && msgs[${maxexports},-1]=()
return 0
```

Comment out the line as mentioned in the script above to get paths in the prompt working.