My personal nixos configuration.
Boot into NixOS installer.
Close the installer.
Open a terminal and run the following:
sudo su
nix-shell -p git
git clone https://github.com/m3l6h/nixos.git
cd nixos
ls /dev/disk/by-id # Identify the disk to install NixOS on
nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko ./disko.nix --arg device '"/dev/disk/by-id/<disk from previous step>"'
cd ..
mkdir /mnt/etc
mv nixos /mnt/etc/
nixos-install --root /mnt --flake /mnt/etc/nixos#nixos
reboot
Breakdown of the included modules.
home-manager - Home Manager modules
- hyprland - Hyprland submodule
- neovim - Add neovim (configured in lua using Lazy)
- neovim.enable
boolean
- Enables the module - colorscheme - Sets the colorscheme of neovim
- neovim.plugins.colorscheme.enable
boolean
- Enables the module
- neovim.plugins.colorscheme.enable
- eyeliner - Configures eyeliner
- neovim.plugins.eyeliner.enable
boolean
- Enables the module
- neovim.plugins.eyeliner.enable
- harpoon - Configures harpoon
- neovim.plugins.harpoon.enable
boolean
- Enables the module
- neovim.plugins.harpoon.enable
- lspconfig - Configures lsps according to enabled toolchains
- neovim.plugins.lspconfig.enable
boolean
- Enables the module
- neovim.plugins.lspconfig.enable
- mason-lspconfig - Configures mason-lspconfig
- neovim.plugins.mason-lspconfig.enable
boolean
- Enables the module
- neovim.plugins.mason-lspconfig.enable
- mason - Configures mason
- neovim.plugins.mason.enable
boolean
- Enables the module
- neovim.plugins.mason.enable
- nvim-cmp - Configures nvim-cmp
- neovim.plugins.nvim-cmp.enable
boolean
- Enables the module
- neovim.plugins.nvim-cmp.enable
- oil - Configures oil.nvim
- neovim.plugins.oil.enable
boolean
- Enables the module
- neovim.plugins.oil.enable
- telescope - Configures telescope
- neovim.plugins.telescope.enable
boolean
- Enables the module
- neovim.plugins.telescope.enable
- treesitter - Configures treesitter
- neovim.plugins.treesitter.enable
boolean
- Enables the module
- neovim.plugins.treesitter.enable
- undotree - Configures undotree
- neovim.plugins.undotree.enable
boolean
- Enables the module
- neovim.plugins.undotree.enable
- zen-mode - Configures zen-mode
- neovim.plugins.zen-mode.enable
boolean
- Enables the module
- neovim.plugins.zen-mode.enable
- neovim.enable
- scripts - Scripts submodule
- fs-diff - Use to find files needing to be persisted
- Will automatically be enabled if
impermanence.enable
is true
- Will automatically be enabled if
- persist - Util to persist files/directories
- Will automatically be enabled if
impermanence.enable
is true
- Will automatically be enabled if
- wallpaper-haven - Sets a random wallpaper from wallpaper haven
- scripts.wallpaper-haven.enable
boolean
- Enables the module - configure api options with
~/.config/.wallhaven.ini
- scripts.wallpaper-haven.enable
- fs-diff - Use to find files needing to be persisted
- software - Software submodule
- bazecor - Graphical configurator for Dygma products
- software.bazecor.enable
boolean
- Enables the module
- software.bazecor.enable
- digikam - Image management software
- software.digikam.enable
boolean
- Enables the module
- software.digikam.enable
- firefox - Enables firefox browser
- software.firefox.enable
boolean
- Enables the module
- software.firefox.enable
- krita - Enables krita
- software.krita.enable
boolean
- Enables the module
- software.krita.enable
- vivaldi - Enables vivaldi browser
- software.vivaldi.enable
boolean
- Enables the module
- software.vivaldi.enable
- bazecor - Graphical configurator for Dygma products
- toolchains - Toolchains submodule
- c-cpp - Install c/c++ toolchain
- toolchains.c-cpp.enable
boolean
- Enables the module
- toolchains.c-cpp.enable
- go - Install go toolchain
- toolchains.go.enable
boolean
- Enables the module
- toolchains.go.enable
- markdown - Install markdown toolchain
- toolchains.markdown.enable
boolean
- Enables the module
- toolchains.markdown.enable
- nix - Install nix toolchain
- toolchains.nix.enable
boolean
- Enables the module
- toolchains.nix.enable
- node - Install node toolchain
- toolchains.node.enable
boolean
- Enables the module
- toolchains.node.enable
- python - Install python toolchain
- toolchains.python.enable
boolean
- Enables the module
- toolchains.python.enable
- c-cpp - Install c/c++ toolchain
- utils - CLI utils submodule
- ffmpeg - Install ffmpeg
- utils.ffmpeg.enable
boolean
- Enables the module
- utils.ffmpeg.enable
- file - Install file
- utils.file.enable
boolean
- Enables the module
- utils.file.enable
- fzf - Install fzf
- utils.fzf.enable
boolean
- Enables the module
- utils.fzf.enable
- glxinfo - Install glxinfo
- utils.glxinfo.enable
boolean
- Enables the module
- utils.glxinfo.enable
- image-magick - Install the image-magick suite
- utils.image-magick.enable
boolean
- Enables the module
- utils.image-magick.enable
- jq - Install jq
- utils.jq.enable
boolean
- Enables the module
- utils.jq.enable
- killall - Install killall
- utils.killall.enable
boolean
- Enables the module
- utils.killall.enable
- lsof - Install lsof
- utils.lsof.enable
boolean
- Enables the module
- utils.lsof.enable
- ripgrep - Install ripgrep
- utils.ripgrep.enable
boolean
- Enables the module
- utils.ripgrep.enable
- parted - Install parted
- utils.parted.enable
boolean
- Enables the module
- utils.parted.enable
- unp - Install unp & its requisite tools
- utils.unp.enable
boolean
- Enables the module
- utils.unp.enable
- vulkan - Install vulkan-tools
- utils.vulkan.enable
boolean
- Enables the module
- utils.vulkan.enable
- wget - Install wget
- utils.wget.enable
boolean
- Enables the module
- utils.wget.enable
- wl-clipboard - Install wl-clipboard
- utils.wl-clipboard.enable
boolean
- Enables the module
- utils.wl-clipboard.enable
- ffmpeg - Install ffmpeg
- aliases - Define shell aliases
- gpg - Enables gpg keys
- gpg.enable
boolean
- Enables the module
- gpg.enable
- impermanence - Enables impermanence at user level
- impermanence.enable
boolean
- Enables the module
- impermanence.enable
- terminal - Configure terminal
- terminal.enable
boolean
- Enables the module
- terminal.enable
- tmux - Configure tmux
- tmux.enable
boolean
- Enables the module
- tmux.enable
- user-dirs - Custom user dirs
- user-dirs.enable
boolean
- Enables the module
- user-dirs.enable
- zsh - Configure zsh
- zsh.enable
boolean
- Enables the module - zsh.zoxide.enable
boolean
- Enables zoxide - zsh-vi-mode - Configures a better vi mode in zsh
- zsh.vi-mode.enable
boolean
- Enables zsh-vi-mode
- zsh.vi-mode.enable
- zsh.enable
nixos - Nixos modules
- hyprland - Enables hyprland window manager
- hyprland.enable
boolean
- Enables the module
- hyprland.enable
- impermanence - Enables impermanence at system level
- impermanence.enable
boolean
- Enables the module
- impermanence.enable
- nix-ld - Enables nix-ld for executing arbitrary binaries
- nix-ld.enable
boolean
- Enables the module
- nix-ld.enable
- nvidia - Enables nvidia window manager
- nvidia.enable
boolean
- Enables the module
- nvidia.enable
- partition-manager - Install partition-manager
- partition-manager.enable
boolean
- Enables the module
- partition-manager.enable
- sddm - Enables sddm window manager
- sddm.enable
boolean
- Enables the module
- sddm.enable
- users - Create default user
- users.enable
boolean
- Enables the module - users.zsh.enable
boolean
- Enables zsh as the default shell (must be done at the system level)
- users.enable
- vcs - Install git
- vcs.enable
boolean
- Enables the module
- vcs.enable
Non-exhaustive list of sources I referenced/learned from while building this.
In no particular order.