-
Notifications
You must be signed in to change notification settings - Fork 2
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
1 parent
1282f6a
commit eaa0b9d
Showing
2 changed files
with
94 additions
and
28 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,6 +1,17 @@ | ||
# My nix config | ||
|
||
Repo for my nix config. | ||
Repo for my nix config. Feel free to look around and grab anything if you | ||
feel inspired by something. | ||
|
||
**Features:** | ||
|
||
- Single flake setup | ||
- Agenix for secrets management | ||
- Home-manager | ||
- Modularization | ||
- Automatic module options documentation generation at [https://nix.rasmuskirk.com/](https://nix.rasmuskirk.com/) | ||
|
||
**Directions:** | ||
|
||
- `configurations/home-manager`: | ||
- Home-Manager configurations for my machines (deck, pi, and work). | ||
|
@@ -17,7 +28,14 @@ Repo for my nix config. | |
|
||
## The Configurations | ||
|
||
TODO! | ||
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: | ||
|
||
- [Agenix](https://github.com/ryantm/agenix) for handling secrets | ||
- [Nixarr](https://nixarr.com/) | ||
- Syncthing | ||
- SSH-tunneling | ||
- Sudo insults | ||
|
||
## The Modules | ||
|
||
|
@@ -32,49 +50,52 @@ Example follows below: | |
|
||
```nix | ||
kirk = { | ||
fonts.enable = true; | ||
foot.enable = true; | ||
fzf.enable = true; | ||
git = { enable = true; userEmail = "[email protected]"; userName = "rasmus-kirk"; }; | ||
helix.enable = true; | ||
homeManagerScripts = { enable = true; configDir = configDir; machine = machine; }; | ||
jiten.enable = true; | ||
joshuto.enableZshIntegration = false; | ||
kakoune.enable = true; | ||
scripts.enable = true; | ||
ssh = { enable = true; identityPath = "${secretDir}/id_ed25519"; }; | ||
terminalTools.enable = true; | ||
userDirs = { enable = true; autoSortDownloads = true; }; | ||
yazi = { enable = true; configDir = configDir; }; | ||
zathura = { enable = true; darkmode = false; }; | ||
yazi = { | ||
enable = true; | ||
configDir = configDir; | ||
}; | ||
git = { | ||
enable = true; | ||
userEmail = "[email protected]"; | ||
userName = "rasmus-kirk"; | ||
}; | ||
zsh.enable = true; | ||
fonts.enable = true; | ||
terminalTools.enable = true; | ||
}; | ||
``` | ||
|
||
### Snippet from Nas/Pi's Configuration | ||
|
||
```nix | ||
kirk = { | ||
terminalTools.enable = true; | ||
fzf.enable = true; | ||
git = { enable = true; userEmail = "[email protected]"; userName = "rasmus-kirk"; }; | ||
helix = { enable = true; installMostLsps = false; extraPackages = with pkgs; [nil marksman nodePackages_latest.bash-language-server]; }; | ||
homeManagerScripts = { enable = true; configDir = configDir; machine = machine; }; | ||
userDirs = { enable = true; autoSortDownloads = true; }; | ||
yazi = { enable = true; configDir = configDir; }; | ||
kakoune.enable = true; | ||
ssh = { enable = true; identityPath = "${secretDir}/${machine}/ssh/id_ed25519"; }; | ||
helix = { | ||
enable = true; | ||
installMostLsps = false; | ||
extraPackages = with pkgs; [nil marksman nodePackages_latest.bash-language-server]; | ||
}; | ||
yazi = { | ||
enable = true; | ||
configDir = configDir; | ||
}; | ||
git = { | ||
enable = true; | ||
userEmail = "[email protected]"; | ||
userName = "rasmus-kirk"; | ||
}; | ||
zsh.enable = true; | ||
fonts.enable = true; | ||
terminalTools.enable = true; | ||
}; | ||
``` | ||
|
||
### Importing Modules | ||
|
||
The options that I have created allows varying behaviour between machines, | ||
while keeping configuration duplication low. Even though the modules are | ||
created and maintained for personal use the flake allows others to reuse | ||
the modules if they so please. | ||
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: | ||
|
||
```nix | ||
{ | ||
|
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