Skip to content

kahnwong/nix

Repository files navigation

nix

Flake migration based on https://github.com/sebastiant/dotfiles.

Pre-requisites

Create ./scripts/apply.sh and set appropriate build command. See flake.nix for available options.

File content should look like this:

#!/bin/bash

export NIXPKGS_ALLOW_UNFREE=1

## macbook
#nix build '.#homeManagerConfigurations.macbookMain.system' --experimental-features 'nix-command flakes' --impure
# linux
nix build '.#homeManagerConfigurations.workstation.activationPackage' --experimental-features 'nix-command flakes' --impure

if [[ $(uname -s) == 'Darwin' ]]; then
    sudo ./result/activate

    elif [[ $(uname -s) == 'Linux' ]]; then
    ./result/activate
fi

Usage

make common

# optional
make common-dev

Rust

If nix gc borks rust, run following commands:

rustup show
rustup toolchain remove $toolchain_version
rustup install 1.90.0

Run sudo without typing password

echo "$(whoami) ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/99-nopasswd-$(whoami)

Mac OS Extras

  1. Login to App Store
  2. make mac

Linux Extras

  • If you need tailscale, caddy, fail2ban, or docker on your server, install it via your system's package manager, since nix requires you to set up systemd services explicitly.

Post-installation instructions

Linux: Set default shell

`chsh` and type `$HOME/.nix-profile/bin/fish`

# or this one
`vi /etc/passwd` and specify shell for your user

MacOS: Misc config

  • set tap to single click
  • set three-finger drag

Useful commands

# backup vscode extensions list
code --list-extensions | xargs -L 1 echo code --install-extension > ext_install.sh

# backup vscode config
cp "/users/$USER/Library/Application Support/Code/User/keybindings.json" .
cp "/users/$USER/Library/Application Support/Code/User/settings.json" .

Releases

No releases published

Packages

No packages published