https://github.com/jsonnull/configuration
https://github.com/jsonnull/configuration
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/jsonnull/configuration
- Owner: jsonnull
- License: mit
- Created: 2017-08-15T23:54:49.000Z (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2025-03-23T23:08:21.000Z (about 1 year ago)
- Last Synced: 2025-03-24T00:20:08.526Z (about 1 year ago)
- Language: Nix
- Size: 249 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dotfiles
## Prerequisites (non-NixOS)
- Install nix
- [OS X](https://nixos.org/download)
- [WSL](https://github.com/nix-community/NixOS-WSL)
- See additional pre-installition steps below
- [Install home-manager](https://nix-community.github.io/home-manager/index.html#ch-installation)
- [Install packer](https://github.com/wbthomason/packer.nvim#quickstart)
- [Install Iosevka (patched)](https://www.nerdfonts.com/font-downloads)
### Additional pre-installation steps for WSL:
1. Run update as root to allow nixos-rebuild to work:
```sh
sudo nix-channel --update
```
2. Update configuration in `/etc/nixos/configuration.nix`:
```nix
wsl.defaultUser = "jsonnull";
nix.extraOptions = ''
experimental-features = nix-command flakes
'';
```
## Install
1. Clone the repo to `~/configuration`:
```sh
git clone --recurse-submodules git@github.com:jsonnull/configuration.git ~/configuration
```
2. Depending on which system is being managed, install the configuration.
NixOS:
```sh
sudo mv /etc/nixos /etc/nixos.bak
sudo ln -s /home/json/configuration/ /etc/nixos
sudo nixos-rebuild switch --impure # Impure required for private configs for now
```
WSL:
```sh
nix run --impure ~/configuration/#homeConfigurations.wsl.activationPackage
# Afterwards, update /etc/nixos/configuration.nix:
# users.defaultUserShell = "/home/jsonnull/.nix-profile/bin/zsh";
```
MacBook:
```sh
nix run --impure ~/configuration/#homeConfigurations.macbook.activationPackage
```
3. Install neovim plugins:
```sh
vim +PackerSync
```
4. When making updates to configs, switch to the new system.
WSL:
```sh
home-manager switch --impure --flake ~/configuration#wsl
```
MacBook:
```sh
home-manager switch --impure --flake ~/configuration#macbook
```