Skip to content

yuanw/nix-home

Repository files navigation

My nix-darwin/NixOS configuration

https://img.shields.io/endpoint.svg?url=https://garnix.io/api/badges/yuanw/nix-home

https://github.com/yuanw/nix-home/actions/workflows/ci.yml/badge.svg

https://builtwithnix.org/badge.svg

./screenshots/macos.png

The goal for this repo is to declaratively configure MacOS and Linux system using nixos/nix-darwin and home-manger.

feel free to take what you like.

Current MacOS setup

Shellzsh starship
WMyabai skhd sketchybar
TerminalAlacritty tmux
EditorEmacs helix
BrowserFirefox (shyfox)

Current Nixos setup

Shellzsh starship
WMxmonad xmobar
TerminalAlacritty tmux
EditorEmacs helix
BrowserFirefox (shyfox)

Inspirations

https://github.com/stars/yuanw/lists/nix-home/

MacOS

Install

Install Nix (with daemon)

with official script sh <(curl -L https://nixos.org/nix/install) or using https://github.com/DeterminateSystems/nix-installer

curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install

Turn on flake

edit /etc/nix/nix.conf experimental-features = nix-command flakes

Install nix-darwin

https://github.com/LnL7/nix-darwin#install

nix-build https://github.com/LnL7/nix-darwin/archive/master.tar.gz -A installer
./result/bin/darwin-installer

install xcode

Install brew

there are lots of GUI programs, we cannot install nicely using pure nix. There is brew-module in nix-darwin. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) What is benefits of this ? we can install/uninstall applications using nix don’t forget to do brew analytics off

import gpg keys (airdrop)

gpg --list-secret-keys or gpg --list-secret-keys [email protected]

pub   4096R/ABC12345 2020-01-01 [expires: 2025-12-31]
uid                  Your Name <[email protected]>
sub   4096R/DEF67890 2020-01-01 [expires: 2025-12-31]

ID of your key (second column e.g “ABC12345”)

gpg --export-secret-keys YOUR_ID_HERE > private.key

install font

font

Import

gpg --import private.key

ssh file

.ssh/config

Host *
  IgnoreUnknown UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

nix flake update --recreate-lock-file

build on macos?

nix build .#yuan-mac

switch ?

./result/sw/bin/darwin-rebuild switch --flake .

How to rollback (require sudo)

darwin-rebuild --rollback or darwin-rebuild --list-generations darwin-rebuild --switch-generation XX

Nixos

$ nixos-rebuild switch --flake '.#' -user-remote-sudo

Caveats

Exclude Nix directory from Spotlight index

nix-darwin permission issue

sudo chown -R whoami:staff /nix/store