I am presuming that a bootable USB is already prepared. Boot into the computer.
Experimental features are not enabled in NixOS by default. It can be
enabled by exporting the NIX_CONFIG variable. It can also be enabled
by passing the --extra-experimental-features flag to nix command
utility in NixOS.
First enter into a root shell.
$ sudo -iRun this to enable flakes and the nix-command utility.
$ export NIX_CONFIG="experimental-features = nix-command flakes"Clone it into /tmp.
$ mkdir -p /tmp
$ cd /tmp
$ git clone --depth=1 https://github.com/rachitvrma/nixdots.gitDisko is available in the nixpkgs
repository. But it is advisable to run the latest commit from the
nix-community github repo.
This repository has the ability to support multiple users and hosts.
Make sure that the disko-config.nix belongs to the correct host. By
default, it's for
nixpavilion, the default host
machine that I use. Every host has a disko-config.nix file, which is a
hard-coded disk layout configuration for each host. There may be a
future configuration where I might enable multiple disk layouts. But
it's not a very common thing that users choose different disk layouts
for the same host every time they re-install for the same host.
$ cd /tmp/nixdots/modules/nixosModules/hosts/nixpavilionFor now, use the disko-config for nixpavilion for installation.
$ nix run github:nix-community/disko/latest -- --mode destroy,format,mount ./disko-config.nixThis will prompt for a password for the disk encryption set in the
disko-config.nix.
Copy the cloned repo into /mnt/etc/nixos.
$ mkdir -p /mnt/etc
$ cp -r /tmp/nixdots /mnt/etc/nixosRun the nixos-install command. It can be run with many flags. See
nixos-install --help for useful flags. It is advisable to enable the
--no-root-passwd in nixos-install if
users.users.<username>.initialPassword option is set in
configuration.nix.
$ nixos-install --no-root-passwd --root /mnt --cores 8 --max-jobs 1 --flake /mnt/etc/nixos#nixpavilionIt will not prompt for the password. Reboot after unmounting.
$ umount -R /mnt
$ rebootYou will land on the greeter. Follow the instructions further down.
Remember that the password is global and hasn't changed. There's no root user yet. Change the current user password
$ passwd $USERIt will prompt for the current user password and for the new ones.
$ cp -r /etc/nixos $HOME/nixdots
$ sudo rm -rf /etc/nixos
$ sudo ln -sf /home/$USER/nixdots /etc/nixos-
Git actions
Change the link from https://github.com/rachitvrma/nixdots.git to git@github.com:rachitvrma/nixdots.
-
Firefox
Some Firefox extensions need to enabled manually. Some features are still not implemented by me. For example the Nord Extension has to be enabled manually.
- On changing git repo, it may just stop working. Don't worry, remove all backup files and just rebuild.
- My NixOS bootloader malfunctioned once. I put up a query on NixOS discourse. Here's the solution.
- fish (NixOS module with pkgs.wrapFish)
- Set up useful fish plugins
- Set up useful fish functions
- Manage themes from one place. [DEPRECATE not using stylix anymore]
- Place conditionals:
- Wallpaper
- Icon Theme
- Cursor Theme
- NEXT: Write systemd user services
- noctalia shell
- poweralertd
- Move to using wrappers.
- taskwarrior
- Also integrate taskwarrior with neovim
- Set up xplr
- Key for bookmarks
- For visiting history
- Set preferences options to make font, icon and theme name globally available
- aria2
- yt-dlp
- btop
- bottom
- cava
- firefox
- Wezterm
- Configure plugins
- bar.wezterm
- Tab Bar plugins for aesthetics
- When using neovim: smart-splits.nvim and wezterm-config.nvim
- Apply base16 scheme to the wrapper and import from self's theme
- niri
- neovim
- Also install note.nvim to link notes to a code line or take quick notes
- Swayidle
- wrap the config around the binary
- create a systemd service to run the binary
- mpv
- Zathura pdf reader
- noctalia [PARTIAL]
- Use Stylix's base16 modules to integrate with own theme set
- See this PR
- shell tools
- nh wrapper
- Zoxide
- Fzf
- Git
- Global Ignore file
- Global Config
- gitui
- gh
- gh-dash
- Ripgrep
- bat
- rmpc music player
- kew music player
- iamb
- feedo
- discordo and endcord
- Set GTK Theme using NixOS configuration module
- Set Fonts using NixOS module
- Remove Home-Manager stylix font modules
- taskwarrior
- Use import-tree and flake-parts to manage config as flake modules.
- Move all shell tools into a package called in environment (like in Vimjoyer's Configuration). And use it in
users.users.krish.shell - Learn jj and move to jjui
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details