nixicle
nixicle copied to clipboard
My dotfiles always changing ๐
Nix Config


Screenshot updated: 2024-04-05
:warning: This config repo is constantly changing, Let me know if you see something that can be improved or done better :smile: .
๐ฝ Usage
Install
To install NixOS on any of my devices I now use nixos-anywhere.
You will need to be able to SSH to the target machine from where this command will be run. Load nix installer ISO if
no OS on the device. You need to copy ssh keys onto the target machine
mkdir -p ~/.ssh && curl https://github.com/hmajid2301.keys > ~/.ssh/authorized_keys
in my case I can copy them from GitHub.
git clone [email protected]:hmajid2301/dotfiles.git ~/dotfiles/
cd dotfiles
nix develop
nixos-anywhere --flake '.#workstation' [email protected] # Replace with your IP
After building it you can copy the ISO from the result
folder to your USB.
Then run nix_installer
, which will then ask you which host you would like to install.
Building
To build my dotfiles for a specific host you can do something like:
git clone [email protected]:hmajid2301/dotfiles.git ~/dotfiles/
cd dotfiles
nix develop
# To build system configuration
sudo nixos-rebuild switch --flake .#framework
# To build user configuration
home-manager switch --flake .#haseeb@framework
# Build ISO in result/ folder
nix build .#install-isoConfigurations.graphical
๐ Features
Some features of my dotfiles:
- Structured to allow multiple NixOS configurations, including desktop, laptop
- Declarative config including themes, wallpapers and nix-colors
- Custom live ISO for installing NixOS
- Opt-in persistance through impermanence + blank snapshot
- Encrypted BTRFS partition
- sops-nix for secrets management
- Different environments like hyprland and gnome
- Custom Neovim setup declaratively using nixvim
๐ Configurations
Hostname | Board | CPU | RAM | Primary GPU | Role | OS | State |
---|---|---|---|---|---|---|---|
workstation |
X671E AORUS PRO X | AMD Ryzen 9 7950X | 64GB | AMD Spectral White 7900 XTX | ๐ฅ๏ธ | โ๏ธ | โ |
framework |
Framework 13th Gen AMD | AMD Ryzenโข 7 7840U | 32GB | AMD Radeonโข 780M | ๐ป๏ธ | โ๏ธ | โ |
FRANDECPA63294006A |
Framework 13th Gen Intel | AMD Ryzenโข 7 7840U | 32GB | Intel Iris Graphics | ๐ป๏ธ | ๐ง | โ |
VM |
QEMU | - | - | VirGL | ๐ | โ๏ธ | โ |
one |
Rapsberry Pi 4B | Quad core Cortex-A72 | 4GB | VideoCore VI @ 500 MHz | โ๏ธ | โ๏ธ | โ |
two |
Rapsberry Pi 4B | Quad core Cortex-A72 | 4GB | VideoCore VI @ 500 MHz | โ๏ธ | โ๏ธ | โ |
three |
Rapsberry Pi 4B | Quad core Cortex-A72 | 8GB | VideoCore VI @ 500 MHz | โ๏ธ | โ๏ธ | โ |
four |
Rapsberry Pi 4B | Quad core Cortex-A72 | 8GB | VideoCore VI @ 500 MHz | โ๏ธ | โ๏ธ | โ |
Key
- ๐ฅ๏ธ : Desktop
- ๐ป๏ธ : Laptop
- ๐ฎ๏ธ : Games Machine
- ๐ : Virtual Machine
- โ๏ธ : Server
๐ฑ Applications
Type | Program |
---|---|
OS | NixOS |
Editor | NeoVim |
Multiplexer | Zellij |
Prompt | Starship |
Launcher | Rofi |
Shell | Fish |
Status Bar | Waybar |
Terminal | Wezterm |
Window Manager | Hyprland |
Fonts | Mono Lisa |
Colorscheme | Catppuccin Mocha |
Neovim
My neovim config is made using nixvim. Which converts all the nix files into a single "large" init.lua file.
As you will see down below a lot of the UI elements were inspired/copied from nvchad. As I think they have really nice looking editor altogether. Particularly the cmp menu, telescope and also the status line.
Plugins
Some of the main plugins used in my nvim setup include:
- Session: auto-session
- Status Line: lualine
- Buffer Line: bufferline
- Winbar: barbecue & navic
- File Explorer: mini.files and oil.nvim
- LSP: lsp, nvim-cmp, luasnip, friendly-snippets
- Git: gitsigns, lazygit
- ColourScheme: notkens12 base46 (nvchad catppuccin)
- Other: telescope (ofc)
๐ผ๏ธ Showcase
Desktop
Neovim
Appendix
- Dot icons created by Roundicons - Flaticon
- You can read more about my dotfiles and development workflows on my blog here (#ShamelessPlug).
-
Wallpaper From Catppuccin Discord
- Galaxy: https://discord.com/channels/907385605422448742/1199293891392852009
- Old Catppuccin wallpaper: https://github.com/Gingeh/wallpapers
- Catppuccino: https://discord.com/channels/907385605422448742/1130546126374838342
- Catppuccino: https://discord.com/channels/907385605422448742/1130546126374838342
Inspired By
- Snowfall config: https://github.com/jakehamilton/config?tab=readme-ov-file
- More snowfall config: https://github.dev/khaneliman/khanelinix/blob/f4f4149dd8a0fda1c01fa7b14894b2bcf5653572/flake.nix
- My original structure and nixlang code: https://github.com/Misterio77/nix-config
- Waybar & scripts: https://github.dev/yurihikari/garuda-sway-config
- Neovim UI: https://github.com/NvChad/nvchad
- README: https://github.com/notohh/snowflake/tree/master
- README table: https://github.com/wimpysworld/nix-config