Skip to content

samarthkishor/nixpkgs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Samarth’s NixOS, nix-darwin, and home-manager setup. Heavily inspired by lccambiaghi’s setup.

Installation

  1. Install the nix daemon if not on NixOS
  2. Install nix-darwin (if on macOS)
  3. Clone this repo into the $HOME/.config directory
  4. Run make darwin if on macOS, or run make nixos if on NixOS
  5. Run make switch

Usage

If you modify any of the Darwin settings, run make darwin to reload the configuration. Sometimes you’ll have to run the script nix-symlink-apps-macos if you change any Mac app settings and want the app launcher to point to the correct executable (like Emacs).

If you modify any of the other Nix settings, run make switch to reload the configuration.

nix-darwin

Documentation: https://daiderd.com/nix-darwin/manual/index.html#sec-options

Rebuild switch

darwin-rebuild switch -I darwin-config=$HOME/.config/nixpkgs/darwin/configuration.nix

This is aliased to make darwin

NixOS

This configuration is specific to my hardware. Change the hardware-configuration.nix file if on a different machine.

Rebuild the NixOS configuration with

NIX_PATH=${NIX_PATH}:nixos-config=${HOME}/.config/nixpkgs/nixos/configuration.nix sudo nixos-rebuild switch -I nixos-config=${HOME}/.config/nixpkgs/nixos/configuration.nix

This is aliased to make nixos

Set up email

Generate a GPG key

gpg --gen-key

Initialize the password store

pass init samarthkishor1@gmail.com

Add password for gmail

pass insert mbsync-gmail

Add password for UVA email

pass insert mbsync-uva

Make the Maildir directories

mkdir ~/Maildir
mkdir -p ~/Maildir/gmail
mkdir -p ~/Maildir/uva

Fetch the email

cd ~/Maildir && mbsync -a

What is included?

  • emacs
  • git
  • shell (zsh)
  • terminal (kitty)
  • email (mbsync and mu4e)
  • cli programs with home.packages
  • some dotfiles

TODOs

  • This setup is not fully reproducible, I can either:
    • Pin versions of package repositories via niv
    • Switch to using flakes once I figure it out or once it becomes stable (preferred)
  • Better documentation and directory structure

Releases

No releases published

Packages

No packages published

Languages