NixOS-Config/README.md

39 lines
2.8 KiB
Markdown
Raw Normal View History

2024-09-10 22:03:52 -04:00
## My Nix files, now organized in a flake.
2024-08-24 22:16:51 -04:00
2024-09-10 21:57:34 -04:00
Thanks for taking a look at my Nix* configs!
While this is primarily organized for my use only, you may find each individual service file or user config to be a good starting point, or something to take and adapt into your own config.
2024-07-30 08:49:49 -04:00
2024-09-10 22:03:52 -04:00
### Installation
2024-10-19 00:34:06 -04:00
Installing my flake has to be done from an existing system. A minimal install is fastest, but is up to you. After installing NixOS, backup your hardware-config.nix file, so you can adapt it to fit the format of ``/hosts``, adjusting other referenced files in the flake.nix file to reference your specific system.
2024-09-10 21:57:34 -04:00
2024-10-19 00:34:06 -04:00
An initial install will can be done with ``nixos-rebuild switch --flake /etc/nixos/.#host``, where ``host`` is a hostname defined in your flake. You may also have to enable "experimental" features with a flag, such as nix-command and flakes.
Home-Manager is handled separately, despite being in the same folder. A rebuild of a user's home is done with ``home-manager switch --flake /etc/nixos``. This will pull the config as defined in the flake as ``user@host``, where ``user`` is the user running the ``home-manager`` command.
2024-09-10 21:57:34 -04:00
2024-09-10 22:03:52 -04:00
### Usage
2024-09-10 22:08:17 -04:00
My config uses these tools:
2024-10-19 00:34:06 -04:00
``Sway`` - Window manager / Desktop
``ZSH`` - Primary shell
``Foot`` - Terminal emulator
``Rofi`` - App launcher and menu system
2024-09-10 21:57:34 -04:00
2024-09-10 22:08:17 -04:00
I have made shell aliases in ZSH for rebuilding the system. They are as follows:
`flakedate` - Update the flake.lock, which renews the sources of nixpkgs. This is needed to update the system.
`sysswitch` - Switch the system profile.
`homeswitch` = Switch the user's home-manager profile.
`nixswitch` = Switch to new config for both user and system.
`nixdate` = Same as before, but updating flake.nix before doing so. This is essentially a full system update.
2024-09-10 22:03:52 -04:00
2024-10-19 00:34:06 -04:00
My config heavily references a gnupg-protected secrets file. These will have to be adapted and rewritten if anyone is to use my config directly.
2024-09-10 22:07:09 -04:00
For my use, unlocking secrets can be done with this command:
2024-09-10 21:57:34 -04:00
``gpg --pinentry-mode loopback --decrypt local.key.asc | git-crypt unlock -``
2024-09-03 00:06:12 -04:00
2024-10-16 02:28:08 -04:00
### Credits
2024-10-16 02:29:00 -04:00
Without the help of heavy inspiration, I would not have been able to learn and get up and running nearly as quickly. My most heavily borrowed configs are as follows:
[CloudyChris' nix-starter-configs fork](https://github.com/CloudyChris/NixOsConfig), the very initial base of my conversion to flakes.
2024-10-19 00:55:21 -04:00
[WillPower3309's personal flake](https://github.com/WillPower3309/nixos-config) for being a pleasure in the SwayFX Discord and having a really nice flake.nix file I borrowed from.
2024-10-16 02:29:00 -04:00
[Jules Sommer's minimal flake](https://github.com/WillPower3309/swayfx) for giving me a good basis for writing individual files and repeatedly helping me throughout the entire process.
2024-10-16 02:28:08 -04:00
2024-07-30 08:51:17 -04:00
Made with love ❤️
2024-08-24 22:16:51 -04:00
![image](./preview.png)