Skip to content

M3L6H/nixos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

My personal nixos configuration

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published