Spotandjake βοΈ NixOS Public Configuration
π¦ Introduction
This repository houses my Nix Configurations for my entire system. config.nix acts as a highly configurable system definition and the rest of the project is used to build and deeply customize my applications in a highly repeatable manner across different operating systems.
π Table of contents
- π¦ Introduction
- π Table of contents
- β¨ Features
- π File structure
- π€ Software
- π₯οΈ Hosts description
- βοΈ TODO
- π¦ Inspiration
- License
β¨ Features
- βοΈ
Flakes: I use Nix Flakes for precise dependency management and configuration of my entire system - π‘
Home Manager: Configures all user facing software.
- π
NixDarwin: Allows me to configure my entire mac declaratively. - π Config file structure and modules with options.
π File structure
β‘ install.shA primitive bash installerπ₯οΈ config.nixA Single Configuration File For My MachinesβοΈ flake.nixNix Configuration Entry Pointπ‘ homeHome Manager App Configurationsπ§© modulesHome Manager Programs
π libHelper functions for creating my configurations.π§© modulesCommon modules fornixos/nixDarwin/home-managerβ»οΈ overlaysCommon Nix OverlaysβοΈ partsFlake parts modulesπ templatesTemplates for creating configuration parts
π€ Software
- OS -
MacOs - Editor -
Visual Studio Code - Terminal -
Iterm2 - Shell -
Nushell - Terminal Filemanager -
Yazi
π₯οΈ Hosts description
| Hostname | Board | CPU | RAM | GPU | OS | State |
|---|---|---|---|---|---|---|
| JakesMacBook π» | 2020 MacBook Air M1 | Apple Silicon M1 | 8GB | Apple M1 8-Core GPU | MacOS | OK |
βοΈ TODO
This repository is not fully setup and the parts that are, are still a little new below is a list of what I have left todo before considering this configuration complete.
- Development
- Impersistance
- Will run as a home-manager module
- Nixops
- Will run along side home-manager
- Package
- Microsoft office
- Lunar Client
- Settings
- Darwin
- The dock
- Keybindings
- Anything else I have changed
- I donβt know if there is a good way to see this
- Visual Studio Code
- Cleanup User Settings
- Move User Settings into Nix
- Audit Keybindings
- Move Keybindings Into Nix
- Handle Extensions
- GitKraken
- I think these settings exist in
spotandjake/.gitkraken - Try to make a home manager module and upstream
- I think these settings exist in
- Iterm2
- I think these settings exist in
spotandjake/.iterm2 - Try to make a home manager module and upstream
- I think these settings exist in
- Rewrite Readme for new project layout
- Darwin
- Impersistance
π¦ Inspiration
- Initial Nix Setup On Mac
- This blog post is a great walkthrough on how to setup
nix-darwinfor Mac.
- This blog post is a great walkthrough on how to setup
- Dotfiles Configuration
- This is a very popular repository for managing dotfiles with Nix.
- It was helpful in figuring out the language and a repo structure.
- Nixos-config
- This was a nix config I really liked and found helpful when setting up my configurations.
- NixOS-Configuration
- This was the most helpful repository, my structure is closely based off of this.
License
These are just my machine configurations, I have licensed them under a completely open license with no restrictions or attribution needed if you want to use any of this. Be mindful that the software installed by this configuration is subject to itβs own licensing terms.