All Projects → jkachmar → dotnix

jkachmar / dotnix

Licence: other
Shackled within an elaborate prison of my own design.

Programming Languages

Nix
1067 projects
lua
6591 projects
shell
77523 projects

Projects that are alternatives of or similar to dotnix

dotfiles
My NixOS dotfiles
Stars: ✭ 21 (-40%)
Mutual labels:  dotfiles, nix, nixos, home-manager
system
Declarative NixOS system configuration for all my machines
Stars: ✭ 14 (-60%)
Mutual labels:  dotfiles, nix, nixos, home-manager
dotfiles
No place like ~. Nix. All. The. Things.
Stars: ✭ 48 (+37.14%)
Mutual labels:  nix, nixos, home-manager
Home Manager
Manage a user environment using Nix [maintainer=@rycee]
Stars: ✭ 2,447 (+6891.43%)
Mutual labels:  dotfiles, nix, nixos
homeage
runtime decrypted age secrets for nix home manager
Stars: ✭ 43 (+22.86%)
Mutual labels:  nix, nixos, home-manager
Dotfiles
My dotfiles
Stars: ✭ 150 (+328.57%)
Mutual labels:  dotfiles, nix, nixos
nyx
⚙️Nix[OS] Configuration
Stars: ✭ 50 (+42.86%)
Mutual labels:  nix, nixos, home-manager
nix-xdg
[WIP] Nix overlay for making programs xdg compliant
Stars: ✭ 18 (-48.57%)
Mutual labels:  nix, nixos, home-manager
System
My system configuration
Stars: ✭ 94 (+168.57%)
Mutual labels:  dotfiles, nix, nixos
elemental
Elemental, the component parts of a Nix/OS development system.
Stars: ✭ 44 (+25.71%)
Mutual labels:  nix, nixos, home-manager
impermanence
Modules to help you handle persistent state on systems with ephemeral root storage [maintainer=@talyz]
Stars: ✭ 401 (+1045.71%)
Mutual labels:  nix, nixos, home-manager
nix-home
A Nix Home Manager setup. I've now moved to a new configuration system at hugoreeves/elemental
Stars: ✭ 60 (+71.43%)
Mutual labels:  nix, nixos, home-manager
Shabka
Shabka. Declaritive description of my network, workstations and servers.
Stars: ✭ 138 (+294.29%)
Mutual labels:  dotfiles, nix, nixos
Dotfiles
Configuration files for XMonad, Emacs, NixOS, Taffybar and more.
Stars: ✭ 127 (+262.86%)
Mutual labels:  dotfiles, nix, nixos
dotfiles
NixOS system config & Home-Manager user config
Stars: ✭ 43 (+22.86%)
Mutual labels:  nix, nixos, home-manager
Nix Config
My NixOS configuration
Stars: ✭ 112 (+220%)
Mutual labels:  dotfiles, nix, nixos
nix-configs
My Nix{OS} configuration files
Stars: ✭ 54 (+54.29%)
Mutual labels:  nix, nixos, home-manager
Idempotent Desktop
🛸 NixOS, Xmonad, Neovim
Stars: ✭ 51 (+45.71%)
Mutual labels:  dotfiles, nix, nixos
Dotfiles
well-tailored NixOS & nix-darwin dotfiles
Stars: ✭ 63 (+80%)
Mutual labels:  dotfiles, nix, nixos
nix-config
A collection of my system configs and dotfiles
Stars: ✭ 35 (+0%)
Mutual labels:  nix, nixos, home-manager

I Fucking Hate Dotfiles

Installation

Clone

macOS

Clone this repository to $HOME/.config/dotfiles; this is a hardcoded path, however it should be the only one that is expected by the configuration.

After cloning, cd into the directory.

NixOS

The system-level prerequisites of the NixOS configuration is significantly more involved than the macOS configuration.

In general it follows the same principles as Graham Christensen described in his Erase Your Darlings blog post; in this case, /persist is being used as the persistent directory.

Due to a few idiosyncracies with the persistence framework, this configuration should be cloned to /persist/etc/nixos.

After cloning, cd into the directory.

Existing Profile

macOS

From the configuration directory, build the darwin activation utilities and then invoke them directly for the desired profile.

For example, the following will build and activate the crazy-diamond profile:

nix build .#darwinConfigurations.crazy-diamond.system
./result/sw/bin/darwin-rebuild --flake $(pwd)#crazy-diamond switch

At the time of writing, nix-darwin hasn't been fully updated to work with Flakes so this will have to be repeated every time the configuration is to be updated.

TODO
  • package the above into a script available within the nix develop shell

NixOS

From the configuration directory, build the NixOS configuration and activate it.

For example, the following will build and activate the star-platinum profile:

nixos-rebuild switch --flake '.#star-platinum'

The initial activation will set the machine's host name, which means that subsequent activations can be performed with nixos-rebuild switch.

New Profile

To install based off of a new profile:

  • create a new directory with the machine name at machines/<new-machine-name>
  • perform the same steps as above to build and deploy the new machine's configuration

Post-Install

Once everything's been installed and is up and running, direnv allow will enable nix-direnv and most of the nix-shell --run nonsense below can be elided.

Maintenance

Updates

Sources are pinned and tracked using "Nix Flakes".

TODO

  • add example commands showing how to update pinned flake sources.

nix-direnv

This project contains a .envrc file that works with the nix-direnv integration for direnv. This should mean that, upon entering this directory, a user is immediately dropped into the environment defined in this repository's shell.nix file.

Additionally, nix-direnv should also automatically register a GC Root similar to lorri*.

Before running nix-collect-garbage -d, nix-direnv's cached evaluation can be "manually refreshed" by calling touch .envrc in this directory; this should ensure that a GC Root is installed for an up-to-date version of shell.nix.

*I have a slight preference for nix-direnv over lorri due to some issues I've had in the past with lorri's daemon.

Resources

TODO: Link against some of the Nix configurations that I referenced when figuring this out for myself.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].