As at 04/10/2024
Type | Program |
---|---|
Browser | Firefox |
Cursor | Catppuccin Cursor |
Display Manager | Sddm |
Editor | Neovim |
Fetch | Fastfetch |
File Manager | Thunar |
Launcher | Rofi |
Lockscreen | Hypridle + Hyprlock |
Media Player | Not yet configured |
Notification Daemon | Dunst |
Screenshot Software | Grim + Slurp + Swappy |
Shell | Zsh |
Status Bar | Waybar |
Terminal | Kitty |
Terminal Font | JetBrainsMono |
Theme | Catppuccin Mocha |
Window Manager | Hyprland |
walnut-environment
├── assets # Assets used in configurations
├── homeManagerModules # Home manager modules
│ ├── ...
│ └── README.md # Readme explaining home manager modules layout
├── hosts # Different hosts and their configurations
│ ├── walnut-nixos
│ └── wsl
├── modules # System modules
│ ├── ...
│ └── README.md # Readme explaining modules layout
├── overlays # Overlays
├── flake.nix # Flake (main entry point)
└── flake.lock # Flake lock file
First clone and place the directory in the right place
git clone https://github.com/zenoix/walnut-environment
mv walnut-environment $HOME # Config should be placed in ~/
cd $HOME/walnut-environment
You'll want to then edit flake.nix
's personal
attribute set to your own information so that it has your username, hostname, timezone, local, city, and git information. For example:
let
system = "x86_64-linux";
personal = {
user = "bob";
host = "mycomputer";
timeZone = "America/New_York";
defaultLocale = "en_US.UTF-8";
city = "New York";
# Used for gitconfig
gitUser = "gituser1234";
gitEmail = "[email protected]";
};
...
in
{
...
The remaining steps depend on if you are using NixOS, WSL, or both. At the end of the setup section, there are instructions for creating and adding more hosts.
If you're using NixOS, you'll want to replace the hardware configuration file in the hosts/walnut-nixos
directory:
rm hosts/walnut-nixos/hardware-configuration.nix
cp /etc/nixos/hardware-configuration.nix hosts/wanut-nixos/hardware-configuration.nix
Lastly, to rebuild the system, use
sudo nixos-rebuild switch --flake ~/walnut-environment
and/or for home manager
home-manager switch --flake ~/walnut-environment
Tip
You may need to add the following to your current NixOS configuration (/etc/nixos/configuration.nix
) if you haven't enabled flakes before:
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
and rebuild your system to enable flakes.
These two switch commands are aliased in my home manager configuration to rb
and hms
respectively which makes future rebuilding easier.
First, start with installing Nix (the package manager) onto your WSL distribution by following the instructions on the NixOS website.
Tip
In my experience, Nix and home manager only work when multi-user installation is used.
Then follow the home manager installation instructions for standalone installation.
Important
Do not close or restart your terminal as home manager will not be permanently installed yet at this point.
Next, in flake.nix
, you'll want to change the wsl.user
value to whatever your WSL username is. Make sure to also edit the personal
attribute set to your own information (if you haven't already). For example:
let
system = "x86_64-linux";
personal = {
user = "i_am_a_wsl_user"; # This isn't used by WSL-only config
host = "mywsl"; # This isn't used by WSL-only config
timeZone = "America/New_York";
defaultLocale = "en_US.UTF-8";
city = "New York";
# Used for gitconfig
gitUser = "gituser1234";
gitEmail = "[email protected]";
};
wsl = {
user = "i_am_a_wsl_user";
};
in
{
...
Lastly, run the following command to get everything set up (including permanently having home manager installed):
home-manager --extra-experimental-features "nix-command flakes" switch --flake ~/walnut-environment
This command is aliased in my home manager configuration to hms
which makes future rebuilding easier.
TODO
TODO
Wallpapers are from reddit:
- u/Ezellix's Mount Fuji, pink palette [5120x2880]
- u/marinemotion's Mount Fuji color palette [3840X2160]
Firefox CSS was modified from mimipile's firefoxCSS repo
README header was modified from Frost Pheonix's catppuccin config
Rofi was modified from Sukhmancs' nixos config
Fastfetch was modified from LierB's fastfetch presets
Some waybar components were taken from Spelljinxer's dotfiles