This repository is a fork of Andrey0189's NixOS Config Reborn. Welcome to my redesigned NixOS configuration built for efficiency and aesthetics. Right now I'm trying to commit something every day. Let's see how long I can go.
You can still find Andrey0189's old configuration here.
- 🖥️ Multiple Hosts Support: Easily configure for different hosts.
- 🏠 Home Manager Integration: Comprehensive configuration for user environments.
- 🧇 Tmux: Custom hotkeys for efficient terminal management.
- 🌟 Zsh: Optimized shell setup with numerous aliases for quick access to commands.
To get started with this setup, follow these steps:
-
Install NixOS:
If you haven't already installed NixOS, follow the NixOS Installation Guide for detailed instructions.
-
Clone the Repository:
git clone https://github.com/TheIIIrd/nixos-workstation-reborn.git ~/.nix && cd ~/.nix
-
Copy one of the hosts configuration to set up your own:
cd hosts cp -r slim3 <your_hostname> cd <your_hostname>
-
Put your
hardware-configuration.nix
file there:cp --no-preserve=mode /etc/nixos/hardware-configuration.nix .
-
Edit
hardware-configuration.nix
for disk mounting if needed:vim hardware-configuration.nix
-
Edit
hosts/<your_hostname>/local-packages.nix
andhome-manager/home-packages.nix
files if needed:vim local-packages.nix vim ../../home-manager/home-packages.nix
-
Edit
home-manager/modules/git.nix
:vim ../../home-manager/modules/git.nix
-
Edit
nixos/modules/default.nix
andnixos/modules/graphics/default.nix
:vim ../../nixos/modules/default.nix vim ../../nixos/modules/graphics/default.nix
-
Specify the parameters for
nixos/modules/zapret.nix
:nix-shell -p zapret --command blockcheck vim ../../nixos/modules/zapret.nix
-
Finally, edit the
flake.nix
file:sed -i -e 's/amper/<your_username>/g' \ -e '/{ hostname = "330-15ARR"; stateVersion = "24.11"; }/d' \ -e 's/hostname = "slim3"/hostname = "<your_hostname>"/' \ -e 's/stateVersion = "24.05"/stateVersion = "<your_state_version>"/' \ -e 's/homeStateVersion = "24.11";/homeStateVersion = "<your_home_manager_state_version>";/' \ ~/.nix/flake.nix
... outputs = { self, nixpkgs, home-manager, ... }@inputs: let system = "x86_64-linux"; -- homeStateVersion = "24.11"; ++ homeStateVersion = "<your_home_manager_state_version>"; -- user = "amper"; ++ user = "<your_username>"; hosts = [ -- { hostname = "slim3"; stateVersion = "24.05"; } -- { hostname = "330-15ARR"; stateVersion = "24.11"; } ++ { hostname = "<your_hostname>"; stateVersion = "<your_state_version>"; } ]; ...
-
Rebuilding:
cd ~/.nix git add . sudo nixos-rebuild boot --flake ./#<hostname> # or nixos-install --flake ./#<hostname> if you are installing on a fresh system
# reboot your system and run nh home switch
-
Configure Flatpak and gnome keybindings switch-input-source if needed:
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo flatpak install org.gtk.Gtk3theme.adw-gtk3 org.gtk.Gtk3theme.adw-gtk3-dark com.github.tchx84.Flatseal
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Alt>Shift_L']"
-
Copy corefonts to the home directory:
# the path to corefonts-1 may vary cp --no-preserve=mode /nix/store/ciwacrng6v01ih6hl4x6db39k4m41add-corefonts-1/share/fonts/truetype/* ~/.local/share/fonts
Feel free to fork the repository and submit pull requests if you'd like to contribute improvements. Open issues if you encounter any problems with the config or have ideas for new features.