nixdots/hosts/voyager/default.nix

179 lines
4.2 KiB
Nix
Raw Normal View History

2024-06-19 14:10:37 +00:00
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
boot.supportedFilesystems = [ "btrfs" ];
hardware.enableAllFirmware = true;
# My flake disables this by default for security reasons. However, with an encrypted setup,
# which requires entering password before booting anyways, this is not a security concern, and
# changing kernel params can be useful sometimes for debugging
boot.loader.systemd-boot.editor = true;
# CPU usage configuration for nix
nix.settings = {
max-jobs = 8;
cores = 6;
};
# NixOS release from which this machine was first installed
# (for stateful data, like file locations and db versions)
# Leave this alone!
system.stateVersion = "24.05";
myOptions = {
system = {
hostname = "voyager";
username = "itsdrike";
sound.enable = true;
bluetooth.enable = true;
2024-06-19 14:54:20 +00:00
impermanence = {
root = {
enable = true;
# Some people use /nix/persist/system for this, leaving persistent files in /nix subvolume
# I much prefer using a standalone subvolume for this though.
persistentMountPoint = "/persist";
2024-06-19 15:15:53 +00:00
extraDirectories = [
"/var/log"
];
2024-06-19 14:54:20 +00:00
};
2024-06-19 15:41:40 +00:00
home = {
enable = true;
persistentMountPoint = "/persist/home";
extraDirectories = [
# Nixos flake
"dots"
# Personal data
2024-06-19 15:41:40 +00:00
"Downloads"
"Personal"
"Media"
# Browsers
2024-06-20 12:34:28 +00:00
".mozilla"
".mullvad"
".config/chromium"
# Applications
2024-06-20 20:59:57 +00:00
".config/spotify"
2024-06-20 13:37:46 +00:00
".config/vesktop"
".local/share/Smart Code ltd/Stremio"
# Tools
2024-06-19 15:41:40 +00:00
".local/share/gnupg"
2024-06-20 12:53:40 +00:00
".local/share/zoxide"
2024-06-19 15:41:40 +00:00
".local/share/wakatime"
".local/share/nvim"
".local/state/nvim"
# Services
".local/state/wireplumber" # volume settings
# Language package managers
2024-06-20 12:34:42 +00:00
".local/share/cargo"
".local/share/go"
2024-06-19 15:41:40 +00:00
];
extraFiles = [
".config/git/git-credentials"
2024-06-20 22:31:37 +00:00
".cache/walker/history.gob"
".local/share/zsh/zsh_history"
2024-06-19 15:41:40 +00:00
];
};
2024-06-19 14:54:20 +00:00
# Configure automatic root subvolume wiping on boot from initrd
autoWipeBtrfs = {
enable = true;
2024-06-19 16:11:37 +00:00
devices."/dev/disk/by-label/NIXOS-FS".subvolumes = [ "root" ];
2024-06-19 14:54:20 +00:00
};
};
2024-06-19 14:10:37 +00:00
};
device = {
roles = {
type = "laptop";
2024-06-19 17:23:36 +00:00
virtual-machine = false;
2024-06-19 14:10:37 +00:00
};
cpu.type = "amd";
2024-06-19 14:27:57 +00:00
gpu.type = "amd";
2024-06-19 14:10:37 +00:00
hasTPM = true;
};
security = {
auditd = {
enable = true;
2024-06-19 17:05:50 +00:00
autoPrune.enable = true;
2024-06-19 14:10:37 +00:00
};
};
workstation = {
2024-06-19 17:22:02 +00:00
printing = {
enable = true;
hplip.enable = true;
};
2024-06-19 14:10:37 +00:00
};
home-manager = {
enable = true;
stateVersion = "24.05";
git = {
userName = "ItsDrike";
2024-06-19 17:23:36 +00:00
userEmail = "itsdrike@protonmail.com";
signing = {
enable = true;
2024-06-19 14:10:37 +00:00
key = "FA2745890B7048C0";
2024-06-19 17:23:36 +00:00
};
2024-06-19 14:10:37 +00:00
};
wms.hyprland = {
enable = true;
2024-06-19 17:23:36 +00:00
monitor = [
2024-06-20 17:21:46 +00:00
# Primary / laptop display
"eDP-1, 1920x1200@60, 0x1080, 1"
# HDMI-A-1 above primary
"HDMI-A-1, 1920x1080@60, 0x0, 1"
# HDMI-A-1 left to primary
#"HDMI-A-1, 1920x1080@60, 1920x1080, 1"
# Mirror the primary (laptop) monitor on externals
", preferred, auto, 1, mirror, eDP-1"
2024-06-19 17:23:36 +00:00
];
2024-06-19 14:10:37 +00:00
};
programs = {
bars.eww.enable = true;
2024-06-20 12:34:28 +00:00
browsers = {
firefox.enable = true;
chromium.enable = true;
mullvad-browser.enable = true;
};
2024-06-20 14:20:55 +00:00
tools = {
fastfetch.enable = true;
hyfetch.enable = true;
};
2024-06-19 14:10:37 +00:00
spotify.enable = true;
2024-06-20 13:00:00 +00:00
stremio.enable = true;
2024-06-20 13:37:46 +00:00
vesktop = {
enable = true;
autoStart = true;
};
2024-06-19 14:10:37 +00:00
};
};
};
}