Compare commits

..

6 commits

7 changed files with 263 additions and 70 deletions

View file

@ -1,4 +1,4 @@
{...}: {
email = "janis@nirgendwo.xyz";
username = "alice";
username = "user";
}

View file

@ -31,7 +31,16 @@ in {
enableZshIntegration = true;
};
xdg.systemDirs.data = ["${pkgs.nordvpn}/share"];
xdg = {
systemDirs.data = ["${pkgs.nordvpn}/share"];
portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-wlr
xdg-desktop-portal-gtk
];
};
};
gtk = {
enable = true;
@ -110,6 +119,7 @@ in {
ripgrep
killall
x11_ssh_askpass
xdg-utils
vanilla-dmz
(discord.override {withVencord = true;})
bitwarden-desktop

View file

@ -6,6 +6,8 @@ let
ref = "main";
rev = "41f5c3340a0232ea1c0e0bb44b0609b2956c3fe9";
};
emacs = pkgs.emacs-git-pgtk;
in {
# TODO: turn this into a FHS or package so these dependencies don't have to be
# accessible from the global namespace.
@ -48,6 +50,9 @@ in {
hunspellDicts.de-de
hunspellDicts.da-dk
# jinx from emacsPackages
emacsPackages.jinx
# language servers
pkgs.unstable.rust-analyzer
nixd];
@ -57,32 +62,15 @@ in {
# source = emacs-config;
# };
# };
services.emacs = {
enable = true;
package = emacs;
};
programs.emacs = {
enable = true;
package = pkgs.emacs-git-pgtk;
package = emacs;
extraPackages = (epkgs: with epkgs; [
jinx
]);
# pkgs.nixd
# (treesit-grammars.with-grammars (grammars: with grammars; [
# tree-sitter-bash
# tree-sitter-nix
# tree-sitter-toml
# tree-sitter-elisp
# tree-sitter-rust
# tree-sitter-cpp
# tree-sitter-c
# tree-sitter-zig
# tree-sitter-elisp
# tree-sitter-markdown
# ]))
# (with pkgs;
# (hunspellWithDicts [
# hunspellDicts.en-gb-ise
# hunspellDicts.en-gb-large
# hunspellDicts.de-de
# hunspellDicts.da-dk
# ]))
# ]);
};
}

View file

@ -1,10 +1,6 @@
{pkgs, ...}:
let
user = import ../data/user.nix {};
in {
{pkgs, ...}: {
services.syncthing = {
enable = true;
tray.enable = true;
guiAddress = "0.0.0.0:8384";

View file

@ -1,6 +1,6 @@
{lib, pkgs, config, modulesPath, ...}: {
imports = [
./disks.nix
# ./nvme-raid.nix
../../options.nix
(modulesPath + "/installer/scan/not-detected.nix")
];
@ -14,38 +14,119 @@
"HDMI-A-1" = { pos = "1920 0"; };
};
boot = {
fileSystems = {
"/boot" = {
device = "/dev/disk/by-uuid/EF81-FDEB";
fsType = "vfat";
options = [ "uid=0" "gid=0" "fmask=0077" "dmask=0077" ];
};
"/" = {
device = "/dev/mapper/crypt0";
fsType = "btrfs";
options = [ "subvol=@root" "noatime" "compress=zstd" ];
};
"/mnt/rootfs" = {
device = "/dev/mapper/crypt0";
fsType = "btrfs";
options = [ "noatime" "compress=zstd" ];
};
"/home" = {
device = "/dev/mapper/crypt0";
fsType = "btrfs";
options = [ "subvol=@home" "noatime" "compress=zstd" ];
};
"/var/games" = {
device = "/dev/mapper/crypt0";
fsType = "btrfs";
options = [ "subvol=@games" "noatime" "compress=zstd" ];
};
"/var/code" = {
device = "/dev/mapper/crypt0";
fsType = "btrfs";
options = [ "subvol=@code" "noatime" "compress=zstd" ];
};
"/var/log" = {
device = "/dev/mapper/crypt0";
fsType = "btrfs";
options = [ "subvol=@log" "noatime" "compress=zstd" ];
};
"/persist" = {
device = "/dev/mapper/crypt0";
fsType = "btrfs";
options = [ "subvol=@persist" "noatime" "compress=zstd" ];
};
"/nix" = {
device = "/dev/mapper/crypt0";
fsType = "btrfs";
options = [ "subvol=@nix" "noatime" "compress=zstd" ];
};
"/var/.snapshots" = {
device = "/dev/mapper/crypt0";
fsType = "btrfs";
options = [ "subvol=@snapshots" "noatime" "compress=zstd" ];
};
"/swap" = {
device = "/dev/mapper/crypt0";
fsType = "btrfs";
options = [ "subvol=@swap" ];
};
};
swapDevices = [
{
device = "/swap/swapfile";
}
];
boot = {
kernelParams = [
"quiet"
"splash"
"boot.shell_on_fail"
"udev.log_priority=3"
"rd.systemd.show_status=auto"
"mem_sleep_default=deep"
"resume_offset=533760"
];
resumeDevice = "/dev/disk/by-uuid/c6442c5b-119b-4eba-82b3-0b9b89aab03f";
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
consoleLogLevel = 3;
initrd = {
systemd.enable = true;
luks = {
devices = {
"crypt0" = {
device = "/dev/disk/by-uuid/7b5d31a2-0cc9-41a4-8ce4-d6b3a4c83f6a";
allowDiscards = true;
};
"crypt1" = {
device = "/dev/disk/by-uuid/bf7f6c09-ee13-4cb6-b56c-defd910b8265";
allowDiscards = true;
};
};
};
verbose = false;
kernelModules = ["amdgpu" ];
availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
# kernelModules = ["amdgpu" ];
};
plymouth = {
enable = true;
theme = "rings";
themePackages = with pkgs; [
(adi1090x-plymouth-themes.override {
selected_themes = ["rings"];
}
)
];
};
plymouth.enable = true;
# plymouth = {
# enable = true;
# theme = "rings";
# themePackages = with pkgs; [
# (adi1090x-plymouth-themes.override {
# selected_themes = ["rings"];
# }
# )
# ];
# };
};
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

108
hosts/desktop/nvme-raid.nix Normal file
View file

@ -0,0 +1,108 @@
{
disko.devices = {
disk = {
nvme1 = {
type = "disk";
device = "/dev/nvme1n1";
content = {
type = "gpt";
partitions = {
crypt0 = {
size = "100%";
content = {
type = "luks";
name = "crypt1";
extraOpenArgs = [
"--allow-discards"
];
settings = {crypttabExtraOpts = ["tpm2-device=auto" "token-timeout=10"];};
};
};
};
};
};
nvme0 = {
type = "disk";
device = "/dev/nvme0n1";
content = {
type = "gpt";
partitions = {
ESP = {
label = "nixboot";
name = "ESP";
type = "EF00";
size = "1G";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
crypt0 = {
size = "100%";
content = {
type = "luks";
name = "crypt0";
extraOpenArgs = [
"--allow-discards"
];
settings = {crypttabExtraOpts = ["tpm2-device=auto" "token-timeout=10"];};
content = {
type = "btrfs";
extraArgs = [
"-L" "nixos" "-f"
"-d single -m raid1"
"/dev/mapper/crypt1"
];
mountpoint = "/mnt/rootfs";
mountOptions = ["compress=zstd" "noatime"];
subvolumes = {
"@root" = {
mountpoint = "/";
mountOptions = ["subvol=@root" "compress=zstd" "noatime"];
};
"@home" = {
mountpoint = "/home";
mountOptions = ["subvol=@home" "compress=zstd" "noatime"];
};
"@games" = {
mountpoint = "/var/games";
mountOptions = ["subvol=@games" "compress=zstd" "noatime"];
};
"@code" = {
mountpoint = "/var/code";
mountOptions = ["subvol=@code" "compress=zstd" "noatime"];
};
"@nix" = {
mountpoint = "/nix";
mountOptions = ["subvol=@nix" "compress=zstd" "noatime"];
};
"@persist" = {
mountpoint = "/persist";
mountOptions = ["subvol=@persist" "compress=zstd" "noatime"];
};
"@log" = {
mountpoint = "/var/log";
mountOptions = ["subvol=@log" "compress=zstd" "noatime"];
};
"@snapshots" = {
mountpoint = "/var/.snapshots";
mountOptions = ["subvol=@snapshots" "compress=zstd" "noatime"];
};
"@swap" = {
mountpoint = "/swap";
swap.swapfile.size = "64G";
};
};
};
};
};
};
};
};
};
};
}

View file

@ -22,7 +22,17 @@
"flakes"
];
system.stateVersion = "25.05";
system = {
stateVersion = "25.05";
activationScripts = {
rfkill-unblock = {
text = ''
rfkill unblock all
'';
deps = [];
};
};
};
boot = {
loader = {
@ -32,7 +42,7 @@
};
# kernelModules = [];
kernelPackages = pkgs.linuxPackages_zen;
# kernelPackages = pkgs.linuxPackages_zen;
};
hardware = {
@ -141,33 +151,33 @@
dnsovertls = "true";
};
thermald.enable = true;
tlp = {
enable = true;
settings = {
START_CHARGE_THRESH_BAT0 = 50;
STOP_CHARGE_THRESH_BAT0 = 85;
};
};
auto-cpufreq = {
enable = true;
settings = {
battery = {
governor = "powersave"; # Set the CPU governor to powersave.
energy_performance_preference = "powersave";
turbo = "never";
# thermald.enable = true;
# tlp = {
# enable = true;
# settings = {
# START_CHARGE_THRESH_BAT0 = 50;
# STOP_CHARGE_THRESH_BAT0 = 85;
# };
# };
# auto-cpufreq = {
# enable = true;
# settings = {
# battery = {
# governor = "powersave"; # Set the CPU governor to powersave.
# energy_performance_preference = "powersave";
# turbo = "never";
# enable_thresholds = true;
# start_threshold = 50;
# stop_threshold = 90;
};
# # enable_thresholds = true;
# # start_threshold = 50;
# # stop_threshold = 90;
# };
charger = {
governor = "performance"; # Set the CPU governor to performance when charging.
turbo = "auto";
};
};
};
# charger = {
# governor = "performance"; # Set the CPU governor to performance when charging.
# turbo = "auto";
# };
# };
# };
pipewire = {
enable = true;