refactor: store flake at ~/.config/flake, update docs

This commit is contained in:
winston 2023-12-24 16:05:13 +01:00
parent d60ae95181
commit cc06956350
Signed by: winston
GPG key ID: 3786770EDBC2B481
3 changed files with 22 additions and 18 deletions

View file

@ -3,7 +3,6 @@
[![flake check status](https://img.shields.io/github/actions/workflow/status/nekowinston/dotfiles/check.yml?label=flake%20check&logo=nixos&logoColor=%23fff&style=flat-square&color=f5c2e7)](https://github.com/nekowinston/dotfiles/actions/workflows/check.yml) [![flake check status](https://img.shields.io/github/actions/workflow/status/nekowinston/dotfiles/check.yml?label=flake%20check&logo=nixos&logoColor=%23fff&style=flat-square&color=f5c2e7)](https://github.com/nekowinston/dotfiles/actions/workflows/check.yml)
[![GitHub stars](https://img.shields.io/github/stars/nekowinston/dotfiles?style=flat-square&color=f5c2e7)](https://github.com/nekowinston/dotfiles/stargazers) [![GitHub stars](https://img.shields.io/github/stars/nekowinston/dotfiles?style=flat-square&color=f5c2e7)](https://github.com/nekowinston/dotfiles/stargazers)
[![commit activity](https://img.shields.io/github/commit-activity/w/nekowinston/dotfiles?style=flat-square&label=commits&color=f5c2e7)](https://github.com/nekowinston/dotfiles/commits) [![commit activity](https://img.shields.io/github/commit-activity/w/nekowinston/dotfiles?style=flat-square&label=commits&color=f5c2e7)](https://github.com/nekowinston/dotfiles/commits)
[![SLOC](https://img.shields.io/tokei/lines/github/nekowinston/dotfiles?style=flat-square&color=f5c2e7)](#)
[![MIT license](https://img.shields.io/github/license/nekowinston/dotfiles?style=flat-square&color=f5c2e7)](https://github.com/nekowinston/dotfiles/blob/main/LICENSE) [![MIT license](https://img.shields.io/github/license/nekowinston/dotfiles?style=flat-square&color=f5c2e7)](https://github.com/nekowinston/dotfiles/blob/main/LICENSE)
Welcome to my cross-platform dots. Welcome to my cross-platform dots.
@ -15,11 +14,8 @@ Minimal rice, with a focus on getting the annoying stuff out of the way.
Here's what you can find: Here's what you can find:
- **[WezTerm](https://wezfurlong.org/wezterm/)** as my terminal, with tmux-like keybindings - **[WezTerm](https://wezfurlong.org/wezterm/)** as my terminal, with tmux-like keybindings
- **[Neovim](https://neovim.io)** as my tui editor & my JetBrains IdeaVim config
- **[Neomutt](http://www.neomutt.org)** as my mail client
- **[Taskwarrior](https://taskwarrior.org)** for task management
- **[Starship](https://starship.rs)** as my prompt - **[Starship](https://starship.rs)** as my prompt
- **Firefox** with privacy-centered settings - **Firefox** with privacy-centered settings, though I don't use it heavily anymore.
- My **GPG** & **[Sops.nix](https://github.com/Mic92/sops-nix)** settings - My **GPG** & **[Sops.nix](https://github.com/Mic92/sops-nix)** settings
- Other random bits of config tools I've collected over the years - Other random bits of config tools I've collected over the years
- The **[Catppuccin](https://github.com/catppuccin)** theme, wherever possible - The **[Catppuccin](https://github.com/catppuccin)** theme, wherever possible
@ -28,31 +24,39 @@ Here's what you can find:
- Linux: - Linux:
- **[sway](https://swaywm.org)** as my WM - **[sway](https://swaywm.org)** as my WM
**[Neovim](https://neovim.io)** used to be part of this repository, but now my config is fully reproducible & stored over [here](https://github.com/nekowinston/neovim.drv).
### Notes for a new install ### Notes for a new install
This flake technically has an impurity at its core, because it assumes that it will be stored in `~/.config/flake` and will create symlinks pointing there.
This is so I can edit some dotfiles (e.g. VSCode `settings.json`) in place and have programs hot reload them.
#### macOS #### macOS
##### Install the [Xcode Command Line Tools](https://developer.apple.com/download/all/) ##### Install the [Xcode Command Line Tools](https://developer.apple.com/download/all/)
```sh ```console
xcode-select --install $ xcode-select --install
``` ```
##### [Install Brew](https://brew.sh) ##### Install [Homebrew](https://brew.sh)
```sh ```console
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash $ curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash
``` ```
##### Exclude `/nix/` from Time Machine: ##### Exclude `/nix/` from Time Machine:
```sh ```console
sudo tmutil addexclusion -v /nix $ sudo tmutil addexclusion -v /nix
``` ```
##### Initial build for the flake
```sh ### Building the flake
nix build .#darwinConfigurations.sashimi.system
./result/sw/bin/darwin-rebuild switch --flake . ```console
$ nix --experimental-features "nix-command flakes" develop # enter the devShell
$ just switch
``` ```
I personally use [`nix-direnv`](https://github.com/nix-community/nix-direnv) to automatically enter this devShell on my machines.

View file

@ -7,8 +7,8 @@
extraSpecialArgs = { extraSpecialArgs = {
flakePath = flakePath =
if pkgs.stdenv.isDarwin if pkgs.stdenv.isDarwin
then "/Users/${username}/.config/nixpkgs" then "/Users/${username}/.config/flake"
else "/home/${username}/.config/nixpkgs"; else "/home/${username}/.config/flake";
inherit inputs; inherit inputs;
}; };
hmStandaloneConfig = let hmStandaloneConfig = let