I use nix and home manager to manage my applications and dotfiles.
I use zsh
as my main shell, customized using oh-my-zsh
.
This repository contains user configuration deployed using the helpful tool Home Manager. The organisation of my nix files are based on Hugo Reeves' blog post. In order to setup a new home space, simply add a home.nix file similar to this one.
{ config, pkgs, ... }:
{
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
imports = [
./machine/t460.nix
./user/awright-personal.nix
./role/xmonad-laptop.nix
];
}
- Programs contains default setting for various programs & tools.
- Machines contains configuration specific to a given machine.
- Users contains configuration specific to a given user, think git config etc.
- Roles contains the bulk of the configuration and sets up most user space tools, think neovim and your terminal.
The dotfiles can be easily extended to suit additional local requirements by using the following files:
If the ~/.zsh.local
file exists, it will be automatically sourced. This allows the use of environment variables to store secrets without checking them in. In the future I might use something like git-crypt to check in encrypted secrets instead.
- The organisation of my nix files are based on Hugo Reeves' blog post
- Some of the ideas and files for my nix configuration are based on Daniel K's - nix-home
- My original dotfiles (pre nix) were based on Nick Plekhanov's Dotfiles
- My xmonad & xmobar configuration is mostly based on Ethan Schoonover's - dotfiles-tilingwm
- Sway configuration takes some inspiration from - https://github.com/Robinhuett/dotfiles/blob/master/.config/sway/config
- Brightness script based on the script by Jon Gjengset
For a colour palette I generally stick to Solarized (Dark).
I use oh-my-zsh to manage my shell theme, the current theme I am using is a slightly modified version of 𝝺 Pure with the formating of git status from Spaceship Prompt.
My old theme (andrew
) was based on the agnoster which is the default with oh-my-zsh.
- Configure restic
- Write an install script with template/prompts to generate home.nix
- Figure out how best to manage root user
- spotify
- 1password
- iterm (mac)
- rvm
- nvm
- virtualenv wrapper
The following are repos/articles I want to look at which I might use ideas from: