-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
52 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,63 @@ | ||
# nix-base | ||
|
||
My public nix base configuration (Mac+Linux) i use in my personal and work configurations. | ||
[![Build Status](https://github.com/ojsef39/nix-base/actions/workflows/validate.yml/badge.svg)](https://github.com/ojsef39/nix-base/actions/workflows/validate.yml) | ||
![GitHub repo size](https://img.shields.io/github/repo-size/ojsef39/nix-base) | ||
![GitHub License](https://img.shields.io/github/license/ojsef39/nix-base) | ||
|
||
## Usage & Folder Structure | ||
This repository contains my public Nix base configuration for both macOS and Linux systems. | ||
|
||
See example: <https://github.com/ojsef39/nix-personal> | ||
It is designed to be used as an input in another nix config, see an example: [ojsef39/nix-personal](https://github.com/ojsef39/nix-personal) | ||
|
||
## Structure | ||
|
||
``` | ||
``` | ||
|
||
## TODOs | ||
|
||
- [ ] Move pkgs for all systems to shared/pkgs.nix | ||
- [ ] Move packages to where they get used e.g. eza to shell/default.nix | ||
- [ ] Use Vesktop instead of Discord | ||
- [ ] Update READMEs | ||
|
||
## Key Files and Their Purpose | ||
|
||
### Top-Level Files | ||
|
||
- `flake.nix`: Entry point for the Nix flake configuration, defining inputs and outputs. | ||
- `Makefile`: Automation scripts for building and deploying configurations. | ||
- `renovate.json`: Configuration for dependency updates. | ||
|
||
### Shared Configuration | ||
|
||
- `nix/core.nix`: Core Nix configurations shared across all systems. | ||
|
||
- `hosts/shared/`: Shared configurations and programs used by both macOS and Linux. | ||
- `import.nix`: Imports shared program modules. | ||
- `programs/`: Contains configurations for various programs: | ||
- `editor/` | ||
- `git/` | ||
- `kitty/` | ||
- `shell/` | ||
- `ssh/` | ||
- `yuki/` | ||
- `…` | ||
|
||
### macOS Configuration (`nix-darwin`) | ||
|
||
- `hosts/darwin/`: | ||
- `import.nix`: Imports macOS-specific modules. | ||
- `system.nix`: System-level settings and preferences for macOS. | ||
- `homebrew.nix`: Homebrew package configurations (gets imported seperately). | ||
- `apps.nix`: Additional applications to install on macOS. | ||
|
||
## Useful commands for upstream nix configuration | ||
|
||
Check if Brew list got merged correctly: | ||
|
||
`nix eval .#darwinConfigurations.mac.config.homebrew.masApps` | ||
|
||
Check if programs got merged correctly: | ||
|
||
`nix eval .#darwinConfigurations.mac.config.system.programs.zsh.sessionVariables.PATH` |