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.sh
A primitive bash installerπ₯οΈ config.nix
A Single Configuration File For My MachinesβοΈ flake.nix
Nix Configuration Entry Pointπ‘ home
Home Manager App Configurations𧩠modules
Home Manager Programs
π lib
Helper functions for creating my configurations.𧩠modules
Common modules fornixos
/nixDarwin
/home-manager
β»οΈ overlays
Common Nix OverlaysβοΈ parts
Flake parts modulesπ templates
Templates 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-darwin
for 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.