Compare commits

...

6 commits

7 changed files with 263 additions and 70 deletions

View file

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

View file

@ -31,7 +31,16 @@ in {
enableZshIntegration = true; 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 = { gtk = {
enable = true; enable = true;
@ -110,6 +119,7 @@ in {
ripgrep ripgrep
killall killall
x11_ssh_askpass x11_ssh_askpass
xdg-utils
vanilla-dmz vanilla-dmz
(discord.override {withVencord = true;}) (discord.override {withVencord = true;})
bitwarden-desktop bitwarden-desktop

View file

@ -6,6 +6,8 @@ let
ref = "main"; ref = "main";
rev = "41f5c3340a0232ea1c0e0bb44b0609b2956c3fe9"; rev = "41f5c3340a0232ea1c0e0bb44b0609b2956c3fe9";
}; };
emacs = pkgs.emacs-git-pgtk;
in { in {
# TODO: turn this into a FHS or package so these dependencies don't have to be # TODO: turn this into a FHS or package so these dependencies don't have to be
# accessible from the global namespace. # accessible from the global namespace.
@ -48,6 +50,9 @@ in {
hunspellDicts.de-de hunspellDicts.de-de
hunspellDicts.da-dk hunspellDicts.da-dk
# jinx from emacsPackages
emacsPackages.jinx
# language servers # language servers
pkgs.unstable.rust-analyzer pkgs.unstable.rust-analyzer
nixd]; nixd];
@ -57,32 +62,15 @@ in {
# source = emacs-config; # source = emacs-config;
# }; # };
# }; # };
services.emacs = {
enable = true;
package = emacs;
};
programs.emacs = { programs.emacs = {
enable = true; enable = true;
package = pkgs.emacs-git-pgtk; package = emacs;
extraPackages = (epkgs: with epkgs; [ extraPackages = (epkgs: with epkgs; [
jinx 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, ...}: {pkgs, ...}: {
let
user = import ../data/user.nix {};
in {
services.syncthing = { services.syncthing = {
enable = true; enable = true;
tray.enable = true;
guiAddress = "0.0.0.0:8384"; guiAddress = "0.0.0.0:8384";

View file

@ -1,6 +1,6 @@
{lib, pkgs, config, modulesPath, ...}: { {lib, pkgs, config, modulesPath, ...}: {
imports = [ imports = [
./disks.nix # ./nvme-raid.nix
../../options.nix ../../options.nix
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
@ -14,38 +14,119 @@
"HDMI-A-1" = { pos = "1920 0"; }; "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 = [ kernelParams = [
"quiet" "quiet"
"splash" "splash"
"boot.shell_on_fail" "boot.shell_on_fail"
"udev.log_priority=3" "udev.log_priority=3"
"rd.systemd.show_status=auto" "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" ]; kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ]; extraModulePackages = [ ];
consoleLogLevel = 3; consoleLogLevel = 3;
initrd = { 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; verbose = false;
kernelModules = ["amdgpu" ];
availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ]; availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
# kernelModules = ["amdgpu" ];
}; };
plymouth = { plymouth.enable = true;
enable = true; # plymouth = {
theme = "rings"; # enable = true;
themePackages = with pkgs; [ # theme = "rings";
(adi1090x-plymouth-themes.override { # themePackages = with pkgs; [
selected_themes = ["rings"]; # (adi1090x-plymouth-themes.override {
} # selected_themes = ["rings"];
) # }
]; # )
}; # ];
# };
}; };
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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" "flakes"
]; ];
system.stateVersion = "25.05"; system = {
stateVersion = "25.05";
activationScripts = {
rfkill-unblock = {
text = ''
rfkill unblock all
'';
deps = [];
};
};
};
boot = { boot = {
loader = { loader = {
@ -32,7 +42,7 @@
}; };
# kernelModules = []; # kernelModules = [];
kernelPackages = pkgs.linuxPackages_zen; # kernelPackages = pkgs.linuxPackages_zen;
}; };
hardware = { hardware = {
@ -141,33 +151,33 @@
dnsovertls = "true"; dnsovertls = "true";
}; };
thermald.enable = true; # thermald.enable = true;
tlp = { # tlp = {
enable = true; # enable = true;
settings = { # settings = {
START_CHARGE_THRESH_BAT0 = 50; # START_CHARGE_THRESH_BAT0 = 50;
STOP_CHARGE_THRESH_BAT0 = 85; # STOP_CHARGE_THRESH_BAT0 = 85;
}; # };
}; # };
auto-cpufreq = { # auto-cpufreq = {
enable = true; # enable = true;
settings = { # settings = {
battery = { # battery = {
governor = "powersave"; # Set the CPU governor to powersave. # governor = "powersave"; # Set the CPU governor to powersave.
energy_performance_preference = "powersave"; # energy_performance_preference = "powersave";
turbo = "never"; # turbo = "never";
# enable_thresholds = true; # # enable_thresholds = true;
# start_threshold = 50; # # start_threshold = 50;
# stop_threshold = 90; # # stop_threshold = 90;
}; # };
charger = { # charger = {
governor = "performance"; # Set the CPU governor to performance when charging. # governor = "performance"; # Set the CPU governor to performance when charging.
turbo = "auto"; # turbo = "auto";
}; # };
}; # };
}; # };
pipewire = { pipewire = {
enable = true; enable = true;