Skip to content

Commit

Permalink
Readme changes
Browse files Browse the repository at this point in the history
  • Loading branch information
rasmus-kirk committed Oct 8, 2024
1 parent ea277fd commit d100a23
Showing 1 changed file with 37 additions and 38 deletions.
75 changes: 37 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,42 @@
# My nix config
# My Nix Config

Repo for my nix config. Feel free to look around and grab anything if you
feel inspired by something.
This repository contains my Nix configurations. Feel free to explore and
use any part that inspires you.

**Features:**

- Single flake setup
- [Agenix](https://github.com/ryantm/agenix) for secrets management
- Home-manager
- Home-Manager integration
- Modularization
- Automatic module options documentation generation at [https://nix.rasmuskirk.com/](https://nix.rasmuskirk.com/)
- Pi-based NAS-setup
- Pi-based NAS setup

**Directions:**

- `configurations/home-manager`:
- Home-Manager configurations for my machines (deck, pi, and work).
- `configurations/nixos`
- Nixos configurations for my machines (pi).
- `modules/home-manager`
- Home Manager modules generalizing configuration for various tools.
- `modules/home-manager`
- Nixos modules generalizing configuration for various tools.
- `pubkeys`
- Public keys for my machines
- `docs`
- The necessary files for building the documentation at [https://nix.rasmuskirk.com/](https://nix.rasmuskirk.com/)
- Home-Manager configurations for my devices (deck, Pi, and work).
- `configurations/nixos`:
- NixOS configurations for my devices (Pi).
- `modules/home-manager`:
- Home-Manager modules generalizing configuration for various tools.
- `modules/nixos`:
- NixOS modules generalizing configuration for various tools.
- `pubkeys`:
- Public keys for my devices.
- `docs`:
- Files required for building the documentation hosted at [https://nix.rasmuskirk.com/](https://nix.rasmuskirk.com/).

## The Configurations

The Home-Manager configurations are not very interesting since they mostly just
make use of the modules, but the nixos configuration has some notable features:
The Home-Manager configurations are fairly straightforward since they mostly
reuse modules, but the NixOS configuration has some notable features:

- [Agenix](https://github.com/ryantm/agenix) for handling secrets
- [Nixarr](https://nixarr.com/)
- Syncthing
- SSH-tunneling
- Sudo insults
- [Agenix](https://github.com/ryantm/agenix) for secrets management
- [Nixarr](https://nixarr.com/) integration
- Syncthing
- SSH tunneling
- Sudo insults

## The Modules

Expand All @@ -45,7 +45,7 @@ duplication between machines. For example, I want to share configuration
between my Pi-based NAS and my work laptop for programs such as my editor,
file manager, git, shell and more.

Example follows below:
An example follows below:

### Snippet from Work Laptop's Configuration

Expand All @@ -67,14 +67,14 @@ Example follows below:
};
```

### Snippet from Nas/Pi's Configuration
### Snippet from NAS/Pi Configuration

```nix
kirk = {
helix = {
enable = true;
installMostLsps = false;
extraPackages = with pkgs; [nil marksman nodePackages_latest.bash-language-server];
extraPackages = with pkgs; [ nil marksman nodePackages_latest.bash-language-server ];
};
yazi = {
enable = true;
Expand All @@ -93,14 +93,13 @@ Example follows below:

### Importing Modules

The options that I have created allows varying behaviour between machines,
while avoiding writing the same configuration snippets twice. Even though
the modules are created and maintained for personal use the flake allows
others to reuse the modules if they so please:
The options I’ve created allow for different behaviors across devices, while
avoiding redundant configuration snippets. Although these modules are designed
for personal use, it's possible for others to reuse them:

```nix
{
description = "My Nixos configuration";
description = "My NixOS configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
Expand All @@ -124,7 +123,7 @@ others to reuse the modules if they so please:
homeConfigurations = {
myMachine = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = {inherit inputs outputs;};
extraSpecialArgs = { inherit inputs outputs; };
modules = [
./configurations/home-manager/my-machine/home.nix
kirk-modules.homeManagerModules.default
Expand All @@ -135,10 +134,10 @@ others to reuse the modules if they so please:
}
```

### Automatically generated module documentation
### Automatically Generated Module Documentation

The nix modules have built-in compilation of module options to markdown. I
leverage this and compile that markdown further into html using pandoc. This
pandoc, can then be deployed using Github Pages. The website containing the
module documentation can be found [here](https://nix.rasmuskirk.com/). See
`./docs` for more details.
The Nix modules include built-in compilation of module options to
Markdown. I further convert this Markdown into HTML using Pandoc, which
is then deployed via GitHub Pages. You can find the module documentation
[here](https://nix.rasmuskirk.com/). For more details, see the `./docs`
directory.

0 comments on commit d100a23

Please sign in to comment.