AlexBerry0 / dots

My NixOS dotfiles for my devices
MIT License
2 stars 0 forks source link
dotfiles dots gnome linux nixos nixos-config nixos-dotfiles zsh


My NixOS Dots


Introduction

These are my NixOS dotfiles for my systems. These are not intended to be a drop in configuration for your computer, but you are welcome to use it as a reference or starting point for your own configuration. If you are looking for a more generic NixOS configuration, I recommend nix-starter-configs.
This is all themed using Catppuccin Mocha.

Hosts

Hostname Board CPU RAM GPU Role OS State
laptop Lenovo Yoga 6 13ABR8 AMD Ryzen 5 7530U 16GB Radeon Graphics × 12 💻️🎭️ ❄️
home-server HP EliteDesk 800 G2 SFF INTEL Core i7-6700 8GB Intel HD Graphics 530 🗄️ ❄️
desktop Gigabyte A520M DS3H AC AMD Ryzen 5 3600 16GB NVIDIA GTX 1660 SUPER 🖥️🎭️ ❄️ 🚧

Key:

For more details on the hosts and what apps I use see the sections below:

Laptop

Laptop details

Intro

My laptop is dual booting Windows (for school assessments), & NixOS (for everything else), It's a Lenovo Yoga 6 as described above. It has 512GB of storage split evenly (around about) between the two operating systems. It has two desktop environments/WMs, Gnome & Hyprland, I am in the process of switching to Hyprland from Gnome as managing dconf settings using home-manager is terrible. However this is taking a while and is a low priority so it won't happen anytime soon. Below listed are the apps I use.

Common

| Type | Program | |:----------------|:---------------------------------------------------------------------------------------------------:| | Desktop Manager | [SDDM](https://github.com/sddm/sddm) | | Text editor | [VSCode](https://code.visualstudio.com/), with declaratively defined extensions | | Shell | [Fish](https://fishshell.com/) | | Shell Prompt | [Starship](https://starship.rs/) | | Terminal | [Kitty](https://github.com/kovidgoyal/kitty) | | Bootloader | [Grub](https://www.gnu.org/software/grub/) | | File Manager | [Nautilus](https://apps.gnome.org/Nautilus/) | | GTK Theme | [My modded Catppuccin Mocha theme](https://github.com/AlexBerry0/Modded-Catppuccin-Mocha-GTK-theme) | | GTK Icon Theme | [Reversal Purple Dark](https://github.com/yeyushengfan258/Reversal-icon-theme) | | Terminal Font | [Hack](https://github.com/source-foundry/Hack) |
Other notable apps
| Type | Program | |:----------------|:-------------------------------------------------------------------------------------------:| | Messaging | [Beeper](https://www.beeper.com/) | | Music | [Spotify](https://spotify.com) with [Spicetify](https://github.com/the-argus/spicetify-nix) | | VPN | [Mullvad](https://mullvad.net/en) | | OOP development | [IntelliJ Idea](https://www.jetbrains.com/) | | Media Player | [Celluloid](https://celluloid-player.github.io/) |

Gnome

Obviously using [Gnome](https://www.gnome.org/) as the DE.
Extensions
| Name | |:----------------------------:| | user-themes | | quick-settings-tweaker | | autohide-battery | | bluetooth-quick-connect | | blur-my-shell | | burn-my-windows | | compiz-windows-effect | | coverflow-alt-tab | | just-perfection | | logo-menu | | media-controls | | no-titlebar-when-maximized | | notification-banner-reloaded | | order-gnome-shell-extensions | | pip-on-top | | tiling-assistant | | transparent-window-moving | | dash-to-dock | | unite |
Pictures/Videos
![Gnome-config](media/github-repo/gnome-screenshot.png)

Hyprland 🚧

Home server

Homer server details

Intro

My home-server is a HP EliteDesk 800 G2 SFF as said above, it's a converted desktop that I got from school, it has 125GBs of storage on the main drive but mounts an external HDD to hold media. The modules running on it can roughly be split into two sections:

Media

On the server is an automatic media setup using [Nixarr](https://github.com/rasmus-kirk/nixarr).

Other Modules

These other modules are run using [declarative docker containers](https://nixos.wiki/wiki/NixOS_Containers#Declarative_docker_containers). | Type | Program | |:-----------------|:-----------------------------------------------------------------------------------:| | DNS | [Adguard Home](https://adguard.com/en/adguard-home/overview.html) | | Dashboard | [Homarr](https://homarr.dev/) | | Minecraft Server | [Minecraft server Docker container](https://hub.docker.com/r/itzg/minecraft-server) |
Pictures/Videos
![Home-Server-Dashboard](media/github-repo/homarr-screenshot.png)

Desktop

Desktop details

Intro

My Desktop is used mostly for gaming and its config is very smiler to my laptop. It's dualbooting windows, as VR games don't work well enough with linux Nvidia drivers, It's running Gnome as the DE and has mostly the same apps and general configurations.

Things that are the same as my laptop configuration

| Type | Program | |:--------------------|:---------------------------------------------------------------------------------------------------:| | Desktop Manager | [SDDM](https://github.com/sddm/sddm) | | Desktop Environment | [Gnome](https://www.gnome.org/) | | Text editor | [VSCode](https://code.visualstudio.com/), with declaratively defined extensions | | Shell | [Fish](https://fishshell.com/) | | Shell Prompt | [Starship](https://starship.rs/) | | Terminal | [Kitty](https://github.com/kovidgoyal/kitty) | | Bootloader | [Grub](https://www.gnu.org/software/grub/) | | File Manager | [Nautilus](https://apps.gnome.org/Nautilus/) | | GTK Theme | [My modded Catppuccin Mocha theme](https://github.com/AlexBerry0/Modded-Catppuccin-Mocha-GTK-theme) | | GTK Icon Theme | [Reversal Purple Dark](https://github.com/yeyushengfan258/Reversal-icon-theme) | | Terminal Font | [Hack](https://github.com/source-foundry/Hack) | | Messaging | [Beeper](https://www.beeper.com/) | | Music | [Spotify](https://spotify.com) with [Spicetify](https://github.com/the-argus/spicetify-nix) | | VPN | [Mullvad](https://mullvad.net/en) | | OOP development | [IntelliJ Idea](https://www.jetbrains.com/) | | Media Player | [Celluloid](https://celluloid-player.github.io/) | The gnome extensions are also the same: | Name | |:----------------------------:| | user-themes | | quick-settings-tweaker | | autohide-battery | | bluetooth-quick-connect | | blur-my-shell | | burn-my-windows | | compiz-windows-effect | | coverflow-alt-tab | | just-perfection | | logo-menu | | media-controls | | no-titlebar-when-maximized | | notification-banner-reloaded | | order-gnome-shell-extensions | | pip-on-top | | tiling-assistant | | transparent-window-moving | | dash-to-dock | | unite |

Things that are different from my laptop configuration

Gaming
Here are a list of apps & services I am using for gaming: | Name | |:---------------------------------------------------| | [Steam](https://store.steampowered.com/about/) | | [OBS-studio](https://obsproject.com/) | | [Prism-launcher](https://prismlauncher.org/) | | [Minecraft](https://www.minecraft.net/en-us) | | [Lutris](https://lutris.net/) | | [Cartridges](https://github.com/kra-mo/cartridges) | | [steam-run](https://store.steampowered.com/about/) | I am also using the proprietary Nvidia drivers.

Installation

This install procedure assumes that the user is on a fresh install of NixOS, that they are using bash, and that their hardware-configuration is the same as the hosts dotfiles they will be using. So modify the way you install the dotfiles if this is not the case. If you are dualbooting linux and windows you need to make sure that your /boot partition has more than 250Mb of space, otherwise you will run into issues.

  1. First enter a nix shell with git
    nix-shell -p git
  2. Change the ownership of /etc/nixos to your user (Optional)
    sudo chown -R "USER" /etc/nixos
  3. Remove all files currently in /etc/nixos(You should probably save hardware-configuration.nix first)
    sudo rm -rf /etc/nixos/*
  4. Go into /etc/nixos and initialize a git repo
    cd /etc/nixos && git init
  5. Add this repo as a remote origin
    git remote add origin https://github.com/AlexBerry0/dots.git
  6. Pull from this origin
    git pull origin master
  7. Finally rebuild using the chosen host
    sudo nixos-rebuild switch --flake /etc/nixos/#HOST-NAME-HERE
  8. Reboot

[!IMPORTANT]
If you are dualbooting you may need to follow the below instructions if either Systemd boot hasn't been removed, or Windows isn't showing up in the Grub boot options. Only follow the instructions for remaking the windows EFI files if Windows isn't showing up in the grub options, NOT the systemd boot options. It shouldn't show up in the systemd options. Please be careful with these as they could break your system/s.

What to do if after rebuild the system still boots into Systemd boot
  1. Remove systemd boot, by running sudo bootctl remove ideally this should be done automatically when systemd-boot is turned off, but 🤷.
  2. Optionally run sudo rm -rf /boot/loader to remove some unneeded files
  3. reboot
What to do if you manually partitioned the NixOS install and Windows isn't showing up in the boot menu
  1. Boot into a windows install USB
  2. Press Shift + F10 to open a DOS menu
  3. Run diskpart
  4. Run select Disk=0
  5. Run list partition
  6. Look for the partition that matches the size and type of the /boot partition.
  7. Run select partition (num partition of `/boot`)
  8. Assign it a letter by running assign letter="", the letter can be any unused disk letter, I used "Y"
  9. Exit diskpart
  10. Now run bcdboot C:/Windows /s "":
  11. Enter diskpart again
  12. Run list volume
  13. Identify the volume corresponding to the `/boot` partition
  14. Run select volume (num partition of `/boot`)
  15. Run remove letter=""
  16. reboot

[!IMPORTANT]
If you run into issues with /boot running out of storage space while attempting to rebuild and switch after (This will happen if you used automatic partitioning from the Calamares installer and are trying to dualboot with Windows.) Then you should reinstall NixOS and use manual partitioning to make /boot at least 250Mb. However, if you will not do that then this guide is your best bet for fixing this. You will need to do this every time you update the kernel.

Inspiration: