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`).
|
|
|
|
{
|
2024-07-26 23:07:07 +00:00
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}: {
|
|
|
|
imports = [
|
|
|
|
# Include the results of the hardware scan.
|
|
|
|
./hardware-configuration.nix
|
|
|
|
];
|
|
|
|
|
|
|
|
boot.supportedFilesystems = ["btrfs"];
|
2024-06-19 14:10:37 +00:00
|
|
|
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;
|
2024-08-24 08:33:53 +00:00
|
|
|
docker.enable = true;
|
2024-06-19 14:10:37 +00:00
|
|
|
|
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-08-24 08:33:53 +00:00
|
|
|
"/var/lib/docker"
|
2024-06-19 15:15:53 +00:00
|
|
|
];
|
2024-06-19 14:54:20 +00:00
|
|
|
};
|
|
|
|
|
2024-06-19 15:41:40 +00:00
|
|
|
home = {
|
|
|
|
enable = true;
|
|
|
|
persistentMountPoint = "/persist/home";
|
|
|
|
extraDirectories = [
|
2024-06-21 00:23:12 +00:00
|
|
|
# Browsers
|
2024-06-20 12:34:28 +00:00
|
|
|
".mozilla"
|
|
|
|
".mullvad"
|
|
|
|
".config/chromium"
|
2024-06-21 00:23:12 +00:00
|
|
|
|
|
|
|
# Applications
|
2024-06-20 20:59:57 +00:00
|
|
|
".config/spotify"
|
2024-06-20 13:37:46 +00:00
|
|
|
".config/vesktop"
|
2024-06-23 18:17:08 +00:00
|
|
|
".config/WebCord"
|
2024-06-21 00:23:12 +00:00
|
|
|
".local/share/Smart Code ltd/Stremio"
|
2024-06-24 15:06:42 +00:00
|
|
|
".config/obs-studio"
|
2024-07-08 12:54:54 +00:00
|
|
|
".config/VirtualBox"
|
2024-07-08 15:39:30 +00:00
|
|
|
".local/share/VirtualBox VMs"
|
2024-06-21 00:23:12 +00:00
|
|
|
|
2024-07-08 15:07:18 +00:00
|
|
|
# Games
|
|
|
|
".local/share/PrismLauncher"
|
|
|
|
".local/share/Steam"
|
|
|
|
|
2024-06-21 00:23:12 +00:00
|
|
|
# Tools
|
2024-06-27 18:20:06 +00:00
|
|
|
".ssh"
|
2024-06-19 15:41:40 +00:00
|
|
|
".local/share/gnupg"
|
2024-06-28 14:16:11 +00:00
|
|
|
".local/share/keyrings"
|
2024-06-20 12:53:40 +00:00
|
|
|
".local/share/zoxide"
|
2024-06-19 15:41:40 +00:00
|
|
|
".local/share/wakatime"
|
2024-06-27 15:15:37 +00:00
|
|
|
".local/share/zsh"
|
2024-07-08 21:29:55 +00:00
|
|
|
".config/nvim"
|
2024-06-19 15:41:40 +00:00
|
|
|
".local/share/nvim"
|
|
|
|
".local/state/nvim"
|
2024-06-28 14:16:17 +00:00
|
|
|
".config/github-copilot"
|
2024-07-02 14:08:11 +00:00
|
|
|
".config/ipython"
|
2024-07-24 14:23:25 +00:00
|
|
|
".cache/pre-commit"
|
2024-09-10 13:32:52 +00:00
|
|
|
".cache/venv-selector"
|
2024-08-22 16:10:55 +00:00
|
|
|
".local/share/direnv"
|
2024-06-21 00:23:12 +00:00
|
|
|
|
|
|
|
# Services
|
2024-06-21 00:26:22 +00:00
|
|
|
".local/state/wireplumber" # volume settings
|
2024-06-21 00:23:12 +00:00
|
|
|
|
|
|
|
# Language package managers
|
2024-06-20 12:34:42 +00:00
|
|
|
".local/share/cargo"
|
|
|
|
".local/share/go"
|
2024-06-27 17:14:42 +00:00
|
|
|
".config/rye"
|
2024-09-24 09:19:54 +00:00
|
|
|
|
|
|
|
# University crap
|
|
|
|
"Android/Sdk"
|
|
|
|
"AndroidStudioProjects"
|
|
|
|
".android"
|
2024-06-19 15:41:40 +00:00
|
|
|
];
|
|
|
|
extraFiles = [
|
2024-06-24 18:35:36 +00:00
|
|
|
".config/gtk-3.0/bookmarks"
|
2024-06-19 15:41:40 +00:00
|
|
|
".config/git/git-credentials"
|
2024-06-20 22:31:37 +00:00
|
|
|
".cache/walker/history.gob"
|
2024-06-24 18:35:36 +00:00
|
|
|
".config/pcmanfm-qt/default/recent-files.conf"
|
2024-06-24 19:33:45 +00:00
|
|
|
".config/qalculate/qalculate-gtk.cfg"
|
2024-08-08 11:27:35 +00:00
|
|
|
".config/gh/hosts.yml"
|
2024-06-27 17:17:44 +00:00
|
|
|
".local/state/python_history"
|
2024-06-19 15:41:40 +00:00
|
|
|
];
|
2024-06-26 20:51:51 +00:00
|
|
|
|
|
|
|
persistentDataMountPoint = "/data/Data";
|
|
|
|
extraDataDirectories = [
|
|
|
|
# Nixos flake
|
|
|
|
"dots"
|
|
|
|
|
|
|
|
# XDG user dirs
|
|
|
|
"Downloads"
|
|
|
|
"Media"
|
|
|
|
|
|
|
|
# Other personal data
|
|
|
|
"Personal"
|
|
|
|
];
|
|
|
|
extraDataFiles = [];
|
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-07-26 23:07:07 +00:00
|
|
|
devices."/dev/disk/by-label/NIXOS-FS".subvolumes = ["root"];
|
2024-06-19 14:54:20 +00:00
|
|
|
};
|
|
|
|
};
|
2024-06-23 15:40:30 +00:00
|
|
|
|
|
|
|
boot = {
|
|
|
|
secure-boot.enable = true;
|
|
|
|
#tmpOnTmpfs = true;
|
|
|
|
};
|
2024-06-19 14:10:37 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
device = {
|
|
|
|
roles = {
|
|
|
|
type = "laptop";
|
2024-07-26 23:07:07 +00:00
|
|
|
virtual-machine = false;
|
2024-09-24 09:19:54 +00:00
|
|
|
isUniMachine = true;
|
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;
|
2024-06-23 22:27:54 +00:00
|
|
|
bluetooth.enable = true;
|
2024-06-19 14:10:37 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
security = {
|
|
|
|
auditd = {
|
|
|
|
enable = true;
|
2024-07-26 23:07:07 +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-07-26 23:07:07 +00:00
|
|
|
userEmail = "itsdrike@protonmail.com";
|
|
|
|
signing = {
|
|
|
|
enable = true;
|
2024-06-19 14:10:37 +00:00
|
|
|
key = "FA2745890B7048C0";
|
2024-07-26 23:07:07 +00:00
|
|
|
};
|
2024-06-19 14:10:37 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
wms.hyprland = {
|
|
|
|
enable = true;
|
2024-07-26 23:07:07 +00:00
|
|
|
monitor = [
|
|
|
|
# Primary / laptop display
|
|
|
|
"eDP-1, 1920x1200@60, 0x1080, 1"
|
2024-06-20 17:21:46 +00:00
|
|
|
|
|
|
|
# HDMI-A-1 above primary
|
2024-09-24 09:19:54 +00:00
|
|
|
#"HDMI-A-1, 1920x1080@60, 0x0, 1"
|
2024-06-20 17:21:46 +00:00
|
|
|
|
2024-07-26 23:07:07 +00:00
|
|
|
# HDMI-A-1 left to primary
|
2024-09-24 09:19:54 +00:00
|
|
|
"HDMI-A-1, 1920x1080@60, 1920x1080, 1"
|
2024-06-20 17:21:46 +00:00
|
|
|
|
2024-07-26 23:07:07 +00:00
|
|
|
# Mirror the primary (laptop) monitor on externals
|
|
|
|
", preferred, auto, 1, mirror, eDP-1"
|
|
|
|
];
|
2024-06-19 14:10:37 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
programs = {
|
2024-06-20 12:05:43 +00:00
|
|
|
bars.eww.enable = true;
|
2024-08-07 20:12:43 +00:00
|
|
|
screen-lockers.hyprlock.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-21 09:41:29 +00:00
|
|
|
applications = {
|
2024-07-17 08:59:30 +00:00
|
|
|
spotify.enable = true;
|
2024-06-21 09:41:29 +00:00
|
|
|
stremio.enable = true;
|
|
|
|
vesktop = {
|
|
|
|
enable = true;
|
|
|
|
autoStart = true;
|
|
|
|
};
|
2024-06-23 18:17:08 +00:00
|
|
|
webcord.enable = true;
|
2024-06-21 11:58:10 +00:00
|
|
|
mpv.enable = true;
|
2024-07-26 23:07:07 +00:00
|
|
|
nomacs.enable = true; # TODO: probably disable
|
2024-06-23 09:25:52 +00:00
|
|
|
qimgv.enable = true;
|
2024-06-21 09:44:56 +00:00
|
|
|
qbittorrent.enable = true;
|
2024-06-21 10:37:29 +00:00
|
|
|
obs.enable = true;
|
2024-06-24 16:20:29 +00:00
|
|
|
iamb = {
|
|
|
|
enable = true;
|
|
|
|
profiles.default = {
|
|
|
|
userId = "@itsdrike:envs.net";
|
|
|
|
homeServer = "https://matrix.envs.net";
|
|
|
|
};
|
|
|
|
};
|
2024-06-24 19:33:45 +00:00
|
|
|
qalculate-gtk.enable = true;
|
2024-07-08 12:54:54 +00:00
|
|
|
virtualbox.enable = true;
|
2024-09-12 18:22:05 +00:00
|
|
|
wireshark.enable = true;
|
2024-06-20 13:37:46 +00:00
|
|
|
};
|
2024-06-24 18:35:36 +00:00
|
|
|
file-managers = {
|
|
|
|
pcmanfm-qt.enable = true;
|
|
|
|
};
|
2024-06-26 21:46:50 +00:00
|
|
|
coding = {
|
|
|
|
python.enable = true;
|
|
|
|
};
|
2024-07-04 17:28:22 +00:00
|
|
|
games = {
|
2024-07-08 15:07:18 +00:00
|
|
|
steam.enable = true;
|
2024-08-26 14:56:31 +00:00
|
|
|
lutris.enable = true;
|
2024-07-04 17:28:22 +00:00
|
|
|
prismlauncher.enable = true;
|
|
|
|
};
|
2024-06-19 14:10:37 +00:00
|
|
|
};
|
2024-06-21 11:09:02 +00:00
|
|
|
|
|
|
|
services = {
|
|
|
|
dunst.enable = true;
|
2024-06-27 20:00:11 +00:00
|
|
|
hyprpaper = {
|
|
|
|
enable = true;
|
|
|
|
# This file intentionally lacks a file extension, it should be a symlink
|
|
|
|
# to whatever file you wish to actually be your wallpaper
|
|
|
|
wallpaperPath = "/data/Data/Media/Pictures/Wallpapers/active";
|
|
|
|
};
|
2024-08-07 20:12:43 +00:00
|
|
|
hypridle.enable = true;
|
2024-06-21 11:09:02 +00:00
|
|
|
};
|
2024-06-19 14:10:37 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|