nix-config

CI Home CI System

My current β€” and always evolving β€” NixOS configuration files, home-manager, neovim, etc.

scala-dev-env

desktop

amd

themes

Programs

The home.nix file contains details about all the software I use, but here's a shout-out to the ones I use the most and that are customized to my needs.

Type Program
Editor NeoVim
Launcher Rofi
Shell Fish
Status Bar Polybar
Terminal Alacritty
Window Manager XMonad

If you're interested in using taffybar or xmobar, browse the commit history and you will find the configuration files I used. Here's a screenshot showcasing the former.

Themes

Type Name
GTK Theme Juno Ocean
GTK Icon Theme Beauty Line
Terminal Font JetBrainsMono

Structure

Here is an overview of the folders' structure:

.
β”œβ”€β”€ build
β”œβ”€β”€ flake.nix
β”œβ”€β”€ flake.lock
β”œβ”€β”€ home
β”‚  β”œβ”€β”€ config.nix
β”‚  β”œβ”€β”€ display
β”‚  β”œβ”€β”€ home.nix
β”‚  β”œβ”€β”€ overlays
β”‚  β”œβ”€β”€ programs
β”‚  β”œβ”€β”€ scripts
β”‚  β”œβ”€β”€ secrets
β”‚  β”œβ”€β”€ services
β”‚  └── themes
β”œβ”€β”€ imgs
β”œβ”€β”€ notes
β”œβ”€β”€ outputs
β”‚  β”œβ”€β”€ home-conf.nix
β”‚  β”œβ”€β”€ installation.nix
β”‚  └── nixos-conf.nix
└── system
   β”œβ”€β”€ cachix
   β”œβ”€β”€ cachix.nix
   β”œβ”€β”€ configuration.nix
   β”œβ”€β”€ fonts
   β”œβ”€β”€ machine
   β”œβ”€β”€ misc
   └── wm
  • build: the build and installation script.
  • flake.nix: home and system configurations.
  • home: all the user programs, services and dotfiles.
  • imgs: screenshots and other images.
  • notes: cheat-sheets, docs, etc.
  • outputs: the Home Manager, installation shell and NixOS flake outputs.
  • system: the NixOS configuration, settings for different laptops and window managers.

Install

You can have a look at the available flake outputs before getting started.

$ nix flake show github:gvolpe/nix-config
github:gvolpe/nix-config/60b91aea6461cfb8fb1efdc9fb88f8c5ba815810
β”œβ”€β”€β”€devShell
β”‚   └───x86_64-linux: development environment 'installation-shell'
β”œβ”€β”€β”€homeConfigurations: unknown
└───nixosConfigurations
    β”œβ”€β”€β”€dell-xps: NixOS configuration
    └───tongfang-amd: NixOS configuration

NixOS

The full home configuration is not yet fully automated but the NixOS configuration can be installed by running the following command.

$ nixos-rebuild switch --flake github:gvolpe/nix-config#tongfang-amd

Beware that the hardware-configuration.nix file is the result of the hardware scan of the specific machine and might not be suitable for yours.

Home Manager

A fresh install requires the creation of certain directories so this has not been automated yet (see build script file). However, if you omit those steps, the entire HM configuration can also be built as any other flake.

$ nix build github:gvolpe/nix-config#homeConfigurations.gvolpe-hdmi.activationPackage
$ result/activate

Full configuration via script

On a fresh NixOS installation, run the following commands.

mkdir DELETE_ME && cd DELETE_ME
nix develop github:gvolpe/nix-config -c \
  "wget -c https://github.com/gvolpe/nix-config/archive/master.tar.gz && tar --strip-components=1 -xvf master.tar.gz"
chmod +x build && ./build

Or check out the project and adapt to your needs before running anything.

$ git clone [email protected]:gvolpe/nix-config.git

Once you feel comfortable with it, you can build any of the flakes locally before applying them to your system.

$ nix build .#nixosConfigurations.tongfang-amd.config.system.build.toplevel
sudo result/bin/switch-to-configuration switch

Nix Config

:space_invader: NixOS configuration

Nix Config Info

⭐ Stars 191
πŸ”— Source Code github.com
πŸ•’ Last Update 8 months ago
πŸ•’ Created 3 years ago
🐞 Open Issues 0
βž— Star-Issue Ratio Infinity
😎 Author gvolpe