Skip to content

Latest commit

 

History

History
183 lines (161 loc) · 10 KB

README.md

File metadata and controls

183 lines (161 loc) · 10 KB

Nixos

My personal nixos configuration.

Installation

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
    • hyprland.enable boolean - Enables the module and its submodules
    • rofi - Configures rofi
    • binds - Sets hyprland keybinds
    • hypridle - Configures hypridle
    • hyprlock - Configures hyprlock
    • monitors - Configures monitors
    • wallpaper - Configures wallpapers
  • 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
    • eyeliner - Configures eyeliner
      • neovim.plugins.eyeliner.enable boolean - Enables the module
    • harpoon - Configures harpoon
      • neovim.plugins.harpoon.enable boolean - Enables the module
    • lspconfig - Configures lsps according to enabled toolchains
      • neovim.plugins.lspconfig.enable boolean - Enables the module
    • mason-lspconfig - Configures mason-lspconfig
      • neovim.plugins.mason-lspconfig.enable boolean - Enables the module
    • mason - Configures mason
      • neovim.plugins.mason.enable boolean - Enables the module
    • nvim-cmp - Configures nvim-cmp
      • neovim.plugins.nvim-cmp.enable boolean - Enables the module
    • oil - Configures oil.nvim
      • neovim.plugins.oil.enable boolean - Enables the module
    • telescope - Configures telescope
      • neovim.plugins.telescope.enable boolean - Enables the module
    • treesitter - Configures treesitter
      • neovim.plugins.treesitter.enable boolean - Enables the module
    • undotree - Configures undotree
      • neovim.plugins.undotree.enable boolean - Enables the module
    • zen-mode - Configures zen-mode
      • neovim.plugins.zen-mode.enable boolean - Enables the module
  • scripts - Scripts submodule
    • fs-diff - Use to find files needing to be persisted
      • Will automatically be enabled if impermanence.enable is true
    • persist - Util to persist files/directories
      • Will automatically be enabled if impermanence.enable is true
    • wallpaper-haven - Sets a random wallpaper from wallpaper haven
      • scripts.wallpaper-haven.enable boolean - Enables the module
      • configure api options with ~/.config/.wallhaven.ini
  • software - Software submodule
    • bazecor - Graphical configurator for Dygma products
      • software.bazecor.enable boolean - Enables the module
    • digikam - Image management software
      • software.digikam.enable boolean - Enables the module
    • firefox - Enables firefox browser
      • software.firefox.enable boolean - Enables the module
    • krita - Enables krita
      • software.krita.enable boolean - Enables the module
    • vivaldi - Enables vivaldi browser
      • software.vivaldi.enable boolean - Enables the module
  • toolchains - Toolchains submodule
    • c-cpp - Install c/c++ toolchain
      • toolchains.c-cpp.enable boolean - Enables the module
    • go - Install go toolchain
      • toolchains.go.enable boolean - Enables the module
    • markdown - Install markdown toolchain
      • toolchains.markdown.enable boolean - Enables the module
    • nix - Install nix toolchain
      • toolchains.nix.enable boolean - Enables the module
    • node - Install node toolchain
      • toolchains.node.enable boolean - Enables the module
    • python - Install python toolchain
      • toolchains.python.enable boolean - Enables the module
  • utils - CLI utils submodule
    • ffmpeg - Install ffmpeg
      • utils.ffmpeg.enable boolean - Enables the module
    • file - Install file
      • utils.file.enable boolean - Enables the module
    • fzf - Install fzf
      • utils.fzf.enable boolean - Enables the module
    • glxinfo - Install glxinfo
      • utils.glxinfo.enable boolean - Enables the module
    • image-magick - Install the image-magick suite
      • utils.image-magick.enable boolean - Enables the module
    • jq - Install jq
      • utils.jq.enable boolean - Enables the module
    • killall - Install killall
      • utils.killall.enable boolean - Enables the module
    • lsof - Install lsof
      • utils.lsof.enable boolean - Enables the module
    • ripgrep - Install ripgrep
      • utils.ripgrep.enable boolean - Enables the module
    • parted - Install parted
      • utils.parted.enable boolean - Enables the module
    • unp - Install unp & its requisite tools
      • utils.unp.enable boolean - Enables the module
    • vulkan - Install vulkan-tools
      • utils.vulkan.enable boolean - Enables the module
    • wget - Install wget
      • utils.wget.enable boolean - Enables the module
    • wl-clipboard - Install wl-clipboard
      • utils.wl-clipboard.enable boolean - Enables the module
  • aliases - Define shell aliases
  • gpg - Enables gpg keys
    • gpg.enable boolean - Enables the module
  • impermanence - Enables impermanence at user level
    • impermanence.enable boolean - Enables the module
  • terminal - Configure terminal
    • terminal.enable boolean - Enables the module
  • tmux - Configure tmux
    • tmux.enable boolean - Enables the module
  • user-dirs - Custom user dirs
    • user-dirs.enable boolean - Enables the module
  • 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

nixos - Nixos modules

  • hyprland - Enables hyprland window manager
    • hyprland.enable boolean - Enables the module
  • impermanence - Enables impermanence at system level
    • impermanence.enable boolean - Enables the module
  • nix-ld - Enables nix-ld for executing arbitrary binaries
    • nix-ld.enable boolean - Enables the module
  • nvidia - Enables nvidia window manager
    • nvidia.enable boolean - Enables the module
  • partition-manager - Install partition-manager
    • partition-manager.enable boolean - Enables the module
  • sddm - Enables sddm window manager
    • sddm.enable boolean - Enables the module
  • 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)
  • vcs - Install git
    • vcs.enable boolean - Enables the module

Credits

Non-exhaustive list of sources I referenced/learned from while building this.

In no particular order.

People

Other people's configs

Articles