refactor: big refactor

main
Ricard Illa 2023-08-12 17:33:27 +02:00
parent b32f7b2c0c
commit 79e3c5c266
Signed by: rilla
GPG Key ID: 525307BD467E4205
16 changed files with 570 additions and 612 deletions

View File

@ -18,12 +18,14 @@
, nixos-hardware
, home-manager
, impermanence
, ...
}@inputs:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
inherit (self) outputs;
in
{
rec {
overlays = import ./overlays { inherit inputs; };
nixosConfigurations = {
trantor = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
@ -35,6 +37,8 @@
modules = [
./nixos/hosts/trantor
./nixos/modules/common.nix
./nixos/modules/desktop.nix
home-manager.nixosModules.home-manager
impermanence.nixosModules.impermanence
];
@ -43,13 +47,14 @@
capibara = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
# unstablePkgs = nixpkgs-unstable.legacyPackages."x86_64-linux";
stablePkgs = nixpkgs-stable.legacyPackages."x86_64-linux";
impermanence = impermanence;
};
modules = [
./nixos/hosts/capibara
./nixos/modules/common.nix
./nixos/modules/desktop.nix
nixos-hardware.nixosModules.lenovo-thinkpad-x230
home-manager.nixosModules.home-manager
impermanence.nixosModules.impermanence
@ -58,8 +63,32 @@
};
homeConfigurations = {
"rilla@capibara" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = { inherit inputs outputs; };
modules = [
./home/hosts/capibara.nix
./home/modules/common
./home/modules/desktop-river
./home/modules/theming
];
};
"rilla@trantor" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = { inherit inputs outputs; };
modules = [
./home/hosts/trantor.nix
./home/modules/common
./home/modules/desktop-river
./home/modules/theming/trantor.nix
];
};
"rilla@echidna" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = { inherit inputs outputs; };
modules = [ ./home/hosts/echidna.nix ];
};
};

View File

@ -1,9 +1,4 @@
{ config, pkgs, ... }:
{ inputs, outputs, lib, config, pkgs, ... }:
{
imports = [
./common.nix
../modules/desktop-river
../modules/theming
];
}

View File

@ -1,208 +0,0 @@
{ config, inputs, pkgs, stablePkgs, ... }:
{
nixpkgs.config = { allowUnfree = true; };
nixpkgs.overlays = [
# (self: super: {
# # use lf fork with support for sixel graphics
# lf = super.lf.overrideAttrs (old: {
# src = super.fetchFromGitHub {
# owner = "horriblename";
# repo = "lf";
# rev = "8997e5b03772d5628ed6a490777048581d978674";
# sha256 = "rJq2Tv3py6HvRI1O2odTdGb1ksdijhO3FcJsPj5dm34=";
# };
# });
# })
(self: super: {
kile-wl = super.rustPlatform.buildRustPackage rec {
pname = "kile-wl";
version = "2023-08-23";
src = super.fetchFromGitLab {
owner = "snakedye";
repo = "kile";
rev = "c24208761d04e0a74d203fc1dcd2f7fed68da388";
sha256 = "sha256-4iclNVd7nm6LkgvsHwWaWyi1bZL/A+bbT5OSXn70bLs=";
};
cargoLock = {
lockFile = src + "/Cargo.lock";
outputHashes = {
"kilexpr-0.1.0" =
"sha256-Bw6vYtzhheAJ8NLQtr3gLjZ9/5ajuABURRYDnVF9W1Y=";
};
};
meta = with super.lib; {
description = "A tiling layout generator for river";
homepage = "https://gitlab.com/snakedye/kile";
license = licenses.mit;
platforms =
platforms.linux; # It's meant for river, a wayland compositor
mainProgram = "kile";
};
};
})
(self: super: {
ristate = super.ristate.overrideAttrs (old: rec {
src = super.fetchFromGitLab {
owner = "snakedye";
repo = "ristate";
rev = "92e989f26cadac69af1208163733e73b4cf447da";
sha256 = "sha256-6slH7R6kbSXQBd7q38oBEbngaCbFv0Tyq34VB1PAfhM=";
};
cargoDeps = old.cargoDeps.overrideAttrs (super.lib.const {
inherit src;
outputHash = "sha256-fOo9C0dNL9dYy5wXq/yEDqOV0OhOTEY42XK8ShpQh6k=";
});
});
})
# These packages seem to be broken on the unstable channel, so I'm using
# the stable versions for now. Currently this is not happening for any
# package that I use :)
];
# Let Home Manager install and manage itself.
# programs.home-manager.enable = true;
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "rilla";
home.homeDirectory = "/home/rilla";
imports = [
# ./minidisc
../modules/arduino
../modules/browsers
../modules/cheat
../modules/dav
../modules/drawterm
../modules/fonts
../modules/git
../modules/gotify
../modules/gpg
../modules/idasen
../modules/lf
../modules/mail
../modules/maker
../modules/mpd
../modules/msg
../modules/music
../modules/neovim
../modules/pass
../modules/rss
../modules/snapcast
../modules/sound
../modules/ssh
../modules/syncthing
../modules/tmux
../modules/vitetris
../modules/wallets
../modules/wine
../modules/xdg
../modules/zsh
];
home.sessionVariables = {
EDITOR = "${pkgs.neovim}/bin/nvim";
VISUAL = "${pkgs.neovim}/bin/nvim";
BROWSER = "${pkgs.firefox}/bin/firefox";
# OPENER = "todo"; # todo
TERMINAL = "${pkgs.alacritty}/bin/alacritty";
CM_LAUNCHER = "rofi"; # for clipmenu
LEDGER_FILE = "${config.home.homeDirectory}/finance/2021.journal";
};
home.packages = with pkgs; [
# calibre
R
acpi
android-tools
ansible
bind.dnsutils
# pyenv
docker-compose
file
gimp
gnumake
html-tidy
htop
inetutils # telnet
j2cli
john
jq
killall
kubectl
libnotify
libreoffice
lxqt.pcmanfm-qt
mosh
mpv
neofetch
pynitrokey
networkmanagerapplet
nextcloud-client
pandoc
podman-compose
pv
ripgrep
sassc
screen
shellcheck
signify
unzip
vagrant
virt-manager
virtiofsd
wget
];
# services.kdeconnect = {
# enable = true;
# indicator = true;
# };
programs.bat = {
enable = true;
config = { theme = "gruvbox-dark"; };
};
programs.fzf = {
enable = true;
enableZshIntegration = true;
# defaultOptions = [
# "--preview --preview 'bat --color=always --style=header,grid --line-range :300 {}'"
# ];
tmux.enableShellIntegration = true;
};
services.gnome-keyring = {
enable = true;
components = [ "secrets" ];
};
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
"autoconnect" = [ "qemu:///system" ];
"uris" = [ "qemu:///system" ];
};
};
programs.direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
home.stateVersion = "22.11";
}

View File

@ -0,0 +1,147 @@
{ inputs, outputs, lib, config, pkgs, ... }:
{
nixpkgs = {
overlays = [
outputs.overlays.modifications
];
config = {
allowUnfree = true;
allowUnfreePredicate = (_: true);
};
};
home = {
username = "rilla";
homeDirectory = "/home/rilla";
};
programs.home-manager.enable = true;
imports = [
# ./minidisc
../arduino
../browsers
../cheat
../dav
../drawterm
../fonts
../foot
../git
../gotify
../gpg
../idasen
../lf
../mail
../maker
../mpd
../msg
../music
../neovim
../pass
../rss
../snapcast
../sound
../ssh
../syncthing
../tmux
../vitetris
../wallets
../wine
../xdg
../zsh
];
home.sessionVariables = {
BROWSER = "${pkgs.firefox}/bin/firefox";
TERMINAL = "${pkgs.alacritty}/bin/alacritty";
};
home.packages = with pkgs; [
# calibre
R
acpi
android-tools
ansible
bind.dnsutils
# pyenv
docker-compose
file
gimp
gnumake
html-tidy
htop
inetutils # telnet
j2cli
john
jq
killall
kubectl
libnotify
libreoffice
lxqt.pcmanfm-qt
mosh
mpv
neofetch
pynitrokey
networkmanagerapplet
nextcloud-client
pandoc
podman-compose
pv
ripgrep
sassc
screen
shellcheck
signify
unzip
vagrant
virt-manager
virtiofsd
wget
];
# services.kdeconnect = {
# enable = true;
# indicator = true;
# };
programs.bat = {
enable = true;
config = { theme = "gruvbox-dark"; };
};
programs.fzf = {
enable = true;
enableZshIntegration = true;
# defaultOptions = [
# "--preview --preview 'bat --color=always --style=header,grid --line-range :300 {}'"
# ];
tmux.enableShellIntegration = true;
};
services.gnome-keyring = {
enable = true;
components = [ "secrets" ];
};
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
"autoconnect" = [ "qemu:///system" ];
"uris" = [ "qemu:///system" ];
};
};
programs.direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
home.stateVersion = "22.11";
}

View File

@ -4,7 +4,6 @@
imports = [
./kile
./bemenu.nix
./foot.nix
./init.nix
./kanshi.nix
./mako.nix

View File

@ -1,47 +0,0 @@
{ config, pkgs, ... }:
let
font-name = "Hack Nerd Font";
font-size = "10";
in
{
programs.foot = {
enable = true;
server.enable = true;
settings = {
main = {
shell = "${pkgs.tmux}/bin/tmux -u";
font = "${font-name}:size=${font-size}:style=Regular";
font-bold = "${font-name}:size=${font-size}:style=Bold";
font-italic = "${font-name}:size=${font-size}:style=Italic";
font-bold-italic = "${font-name}:size=${font-size}:style=Bold Italic";
dpi-aware = "no";
selection-target = "both";
};
colors = {
alpha = 0.9;
background = "282828";
foreground = "ebdbb2";
regular0 = "282828"; # black
regular1 = "cc241d"; # red
regular2 = "98971a"; # green
regular3 = "d79921"; # yellow
regular4 = "458588"; # blue
regular5 = "b16286"; # magenta
regular6 = "689d6a"; # cyan
regular7 = "ebdbb2"; # white
bright0 = "928374"; # black
bright1 = "fb4934"; # red
bright2 = "b8bb26"; # green
bright3 = "fabd2f"; # yellow
bright4 = "83a598"; # blue
bright5 = "d3869b"; # magenta
bright6 = "8ec07c"; # cyan
bright7 = "ebdbb2"; # white
};
};
};
}

View File

@ -5,7 +5,10 @@
# wafConfigureFlags = old.wafConfigureFlags ++ [ "--windows-vst" ];
# });
#in
{
let
home = config.home.homeDirectory;
in
{
home.packages = [
pkgs.ardour
# ardour-windows-vst
@ -27,4 +30,10 @@
pkgs.zynaddsubfx
# pkgs.haskellPackages.tidal-midi
];
}
home.sessionVariables = {
LV2_PATH = "${home}/.nix-profile/lib/lv2:${home}/Audio/plugins/lv2:/run/current-system/sw/lib/lv2";
LXVST_PATH = "${home}/.nix-profile/lib/lxvst:${home}/Audio/plugins/lxvst:/run/current-system/sw/lib/lxvst";
LADSPA_PATH = "${home}/.nix-profile/lib/ladspa:${home}/Audio/plugins/ladspa:/run/current-system/sw/lib/ladspa";
};
}

View File

@ -33,18 +33,25 @@
vscode-langservers-extracted
];
extraPython3Packages = pyPkgs: with pyPkgs; [ pylint ];
# plugins = [ pkgs.vimPlugins.lazy-nvim ];
# extraLuaConfig = builtins.readFile ./init.lua;
};
# home.file.lua = {
# recursive = true;
# source = ./lua;
# target = "/.config/nvim/lua";
# };
home.packages = [ pkgs.neovide ];
home.sessionVariables = {
EDITOR = "${pkgs.neovim}/bin/nvim";
VISUAL = "${pkgs.neovim}/bin/nvim";
};
home.file = {
notes.source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Nextcloud/notes";
nvim_init = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/configs/neovim-config/nvim/init.lua";
target = "${config.xdg.configHome}/nvim/init.lua";
};
nvim_lua = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/configs/neovim-config/nvim/lua";
target = "${config.xdg.configHome}/nvim/lua";
};
};
}

View File

@ -2,4 +2,9 @@ echidna:
home-manager switch --flake .#rilla@echidna
capibara:
doas nixos-rebuild switch --flake .#capibara
doas nixos-rebuild switch --flake .#capibara && \
home-manager switch --flake .#rilla@capibara
trantor:
doas nixos-rebuild switch --flake .#trantor && \
home-manager switch --flake .#rilla@trantor

View File

@ -1,7 +1,6 @@
{ config, pkgs, stablePkgs, ... }:
{ config, pkgs, ... }:
let
home = "/home/rilla";
offline-backups = pkgs.writeScriptBin "offline-backups" ''
#!${pkgs.dash}/bin/dash
@ -22,163 +21,14 @@ in
{
imports = [
./hardware-configuration.nix
../../modules/common
../../modules/common/desktop.nix
./file-systems.nix
];
home-manager.users.rilla.imports = [
../../../home/hosts/capibara.nix
];
fileSystems = {
"/" = {
device = "tmpfs";
fsType = "tmpfs";
options = [ "defaults" "size=2G" "mode=755" ];
};
"/mnt/btr_root" = {
device = "/dev/mapper/root";
fsType = "btrfs";
options = [ "subvolid=5" "compress=zstd" ];
};
"/mnt/btr_data" = {
device = "/dev/mapper/data";
fsType = "btrfs";
options = [ "subvolid=5" "compress=zstd" ];
};
"/mnt/persist" = {
device = "/dev/mapper/data";
fsType = "btrfs";
options = [ "subvol=persist" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/logs" = {
device = "/dev/mapper/root";
fsType = "btrfs";
options = [ "subvol=logs" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/data" = {
device = "/dev/mapper/data";
fsType = "btrfs";
options = [ "subvol=data" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/secrets" = {
device = "narwhal:/secrets";
fsType = "nfs";
options = [ "noauto" ];
};
"/mnt/secrets/gnupg" = {
device = "/dev/mapper/gnupg_secrets";
fsType = "btrfs";
options = [ "noauto" ];
};
"/nix" = {
device = "/dev/mapper/root";
fsType = "btrfs";
options = [ "subvol=nix" "compress=zstd" ];
};
"/boot" = {
device = "/dev/disk/by-uuid/c99d1f1b-45a4-4a25-b5b8-bc76464c6825";
fsType = "ext4";
};
"/swap" = {
device = "/dev/mapper/root";
fsType = "btrfs";
options = [ "subvol=swap" ];
};
"/mnt/vfs_share" = {
device = "/dev/mapper/data";
fsType = "btrfs";
options = [ "subvol=vfs_share" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/backups/0" = {
device = "/dev/mapper/backups0";
fsType = "btrfs";
options = [ "noauto" "subvolid=5" "compress=zstd" ];
};
"/mnt/backups/1" = {
device = "/dev/mapper/backups1";
fsType = "btrfs";
options = [ "noauto" "subvolid=5" "compress=zstd" ];
};
"/mnt/backups/2" = {
device = "/dev/mapper/backups2";
fsType = "btrfs";
options = [ "noauto" "subvolid=5" "compress=zstd" ];
};
};
swapDevices = [{ device = "/swap/swapfile"; }];
environment.etc = {
crypttab = {
text = ''
backups0 UUID="e45232d5-f46f-46f3-a150-be26374b3357" /etc/luks-keys/backups.bin noauto
backups1 UUID="5b3da928-4862-4451-89cd-5bd6a95466d0" /etc/luks-keys/backups.bin noauto
backups2 UUID="cbfa9cba-dee2-4d0b-8cde-2f1d1849b22c" /etc/luks-keys/backups.bin noauto
gnupg_secrets /mnt/secrets/gnupg.img none noauto
'';
};
};
environment.variables = {
LV2_PATH =
"${home}/.nix-profile/lib/lv2:${home}/Audio/plugins/lv2:/run/current-system/sw/lib/lv2";
LXVST_PATH =
"${home}/.nix-profile/lib/lxvst:${home}/Audio/plugins/lxvst:/run/current-system/sw/lib/lxvst";
LADSPA_PATH =
"${home}/.nix-profile/lib/ladspa:${home}/Audio/plugins/ladspa:/run/current-system/sw/lib/ladspa";
};
networking.networkmanager.wifi.macAddress = "CC:AF:78:75:29:32";
nixpkgs.config.allowUnfree = true;
programs.steam.enable = true;
boot = {
loader = {
grub = {
efiSupport = false;
efiInstallAsRemovable = false;
enable = true;
device = "/dev/disk/by-id/ata-KINGSTON_SKC600MS512G_50026B7783FC3D2F";
};
};
initrd = {
luks = {
devices = {
root = {
device = "/dev/disk/by-uuid/869b4b9e-5004-4625-877f-6b1c9489ac8f";
allowDiscards = true;
};
data = {
device = "/dev/disk/by-uuid/6a9246a0-984b-471c-9950-be16db3060f5";
allowDiscards = true;
};
};
reusePassphrases = true;
};
};
};
services.earlyoom.enable = true;
@ -190,15 +40,6 @@ in
services.power-profiles-daemon.enable = false;
environment.systemPackages = with pkgs; [ powertop acpi offline-backups ];
#services.beesd.filesystems = {
# root = {
# spec = "/dev/mapper/root";
# hashTableSizeMB = 256;
# verbosity = "info";
# extraOptions = [ "--loadavg-target" "2.0" ];
# };
#};
# todo: target and/or archive
services.btrbk.instances = {
btrbk = {

View File

@ -0,0 +1,135 @@
{ config, pkgs, stablePkgs, ... }:
{
boot = {
loader = {
grub = {
efiSupport = false;
efiInstallAsRemovable = false;
enable = true;
device = "/dev/disk/by-id/ata-KINGSTON_SKC600MS512G_50026B7783FC3D2F";
};
};
initrd = {
luks = {
devices = {
root = {
device = "/dev/disk/by-uuid/869b4b9e-5004-4625-877f-6b1c9489ac8f";
allowDiscards = true;
};
data = {
device = "/dev/disk/by-uuid/6a9246a0-984b-471c-9950-be16db3060f5";
allowDiscards = true;
};
};
reusePassphrases = true;
};
};
};
fileSystems = {
"/" = {
device = "tmpfs";
fsType = "tmpfs";
options = [ "defaults" "size=2G" "mode=755" ];
};
"/mnt/btr_root" = {
device = "/dev/mapper/root";
fsType = "btrfs";
options = [ "subvolid=5" "compress=zstd" ];
};
"/mnt/btr_data" = {
device = "/dev/mapper/data";
fsType = "btrfs";
options = [ "subvolid=5" "compress=zstd" ];
};
"/mnt/persist" = {
device = "/dev/mapper/data";
fsType = "btrfs";
options = [ "subvol=persist" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/logs" = {
device = "/dev/mapper/root";
fsType = "btrfs";
options = [ "subvol=logs" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/data" = {
device = "/dev/mapper/data";
fsType = "btrfs";
options = [ "subvol=data" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/secrets" = {
device = "narwhal:/secrets";
fsType = "nfs";
options = [ "noauto" ];
};
"/mnt/secrets/gnupg" = {
device = "/dev/mapper/gnupg_secrets";
fsType = "btrfs";
options = [ "noauto" ];
};
"/nix" = {
device = "/dev/mapper/root";
fsType = "btrfs";
options = [ "subvol=nix" "compress=zstd" ];
};
"/boot" = {
device = "/dev/disk/by-uuid/c99d1f1b-45a4-4a25-b5b8-bc76464c6825";
fsType = "ext4";
};
"/swap" = {
device = "/dev/mapper/root";
fsType = "btrfs";
options = [ "subvol=swap" ];
};
"/mnt/vfs_share" = {
device = "/dev/mapper/data";
fsType = "btrfs";
options = [ "subvol=vfs_share" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/backups/0" = {
device = "/dev/mapper/backups0";
fsType = "btrfs";
options = [ "noauto" "subvolid=5" "compress=zstd" ];
};
"/mnt/backups/1" = {
device = "/dev/mapper/backups1";
fsType = "btrfs";
options = [ "noauto" "subvolid=5" "compress=zstd" ];
};
"/mnt/backups/2" = {
device = "/dev/mapper/backups2";
fsType = "btrfs";
options = [ "noauto" "subvolid=5" "compress=zstd" ];
};
};
swapDevices = [{ device = "/swap/swapfile"; }];
environment.etc.crypttab.text = ''
backups0 UUID="e45232d5-f46f-46f3-a150-be26374b3357" /etc/luks-keys/backups.bin noauto
backups1 UUID="5b3da928-4862-4451-89cd-5bd6a95466d0" /etc/luks-keys/backups.bin noauto
backups2 UUID="cbfa9cba-dee2-4d0b-8cde-2f1d1849b22c" /etc/luks-keys/backups.bin noauto
gnupg_secrets /mnt/secrets/gnupg.img none noauto
'';
}

View File

@ -1,191 +1,20 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{ config, pkgs, stablePkgs, ... }:
let home = "/home/rilla";
in {
{
imports = [
./hardware-configuration.nix
../../modules/common
../../modules/common/desktop.nix
./file-systems.nix
];
home-manager.users.rilla.imports = [
../../../home/hosts/trantor.nix
];
fileSystems = {
"/" = {
device = "tmpfs";
fsType = "tmpfs";
options = [ "defaults" "size=2G" "mode=755" ];
};
"/boot/efi" = {
device = "/dev/disk/by-uuid/0BFA-9A66";
fsType = "vfat";
};
"/mnt/btr_system" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvolid=5" "compress=zstd" ];
};
"/mnt/btr_user" = {
device = "/dev/mapper/user";
fsType = "btrfs";
options = [ "subvolid=5" "compress=zstd" ];
};
"/mnt/persist" = {
device = "/dev/mapper/user";
fsType = "btrfs";
options = [ "subvol=persist" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/data" = {
device = "/dev/mapper/user";
fsType = "btrfs";
options = [ "subvol=data" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/vfs_share" = {
device = "/dev/mapper/user";
fsType = "btrfs";
options = [ "subvol=vfs_share" "compress=zstd" ];
neededForBoot = true;
};
"/nix" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvol=nix" "compress=zstd" ];
};
"/mnt/logs" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvol=logs" "compress=zstd" ];
neededForBoot = true;
};
"/boot" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvol=boot" "compress=zstd" ];
};
"/swap" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvol=swap" ];
};
"/mnt/narwhal" = {
device = "narwhal:/";
fsType = "nfs";
};
"/mnt/backups/0" = {
device = "/dev/mapper/backups0";
fsType = "btrfs";
options = [ "noauto" "subvolid=5" "compress=zstd" ];
};
"/mnt/backups/1" = {
device = "/dev/mapper/backups1";
fsType = "btrfs";
options = [ "noauto" "subvolid=5" "compress=zstd" ];
};
"/mnt/backups/2" = {
device = "/dev/mapper/backups2";
fsType = "btrfs";
options = [ "noauto" "subvolid=5" "compress=zstd" ];
};
};
swapDevices = [{ device = "/swap/swapfile"; }];
environment.etc = {
crypttab = {
text = ''
backups0 UUID="e45232d5-f46f-46f3-a150-be26374b3357" /etc/luks-keys/backups.bin noauto
backups1 UUID="5b3da928-4862-4451-89cd-5bd6a95466d0" /etc/luks-keys/backups.bin noauto
backups2 UUID="cbfa9cba-dee2-4d0b-8cde-2f1d1849b22c" /etc/luks-keys/backups.bin noauto
'';
};
};
environment.variables = {
NIXOS_CONFIG = "${home}/configs/nix-config/trantor.nix";
LV2_PATH =
"${home}/.nix-profile/lib/lv2:${home}/Audio/plugins/lv2:/run/current-system/sw/lib/lv2";
LXVST_PATH =
"${home}/.nix-profile/lib/lxvst:${home}/Audio/plugins/lxvst:/run/current-system/sw/lib/lxvst";
LADSPA_PATH =
"${home}/.nix-profile/lib/ladspa:${home}/Audio/plugins/ladspa:/run/current-system/sw/lib/ladspa";
};
networking.networkmanager.wifi.macAddress = "80:FA:5B:41:12:0F";
nixpkgs.config.allowUnfree = true;
programs.steam.enable = true;
boot = {
loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
grub = {
enable = true;
device = "nodev";
enableCryptodisk = true;
efiSupport = true;
};
};
initrd = {
luks = {
#yubikeySupport = true;
devices = {
"system" = {
device = "/dev/disk/by-uuid/b9778e01-a86c-4c6b-beb3-f97888d4a6eb";
keyFile = "/system_keyfile.bin";
allowDiscards = true;
# yubikey = {
# slot = 2;
# twoFactor = false;
# gracePeriod = 30;
# keyLength = 64;
# saltLength = 16;
# storage = {
# device = "/dev/nvme0n1p1";
# fsType = "vfat";
# path = "/crypt-storage/default";
# };
# };
};
"user" = {
device = "/dev/disk/by-uuid/d8e9b35d-704a-4f66-bc19-0dd3e158de36";
keyFile = "/user_keyfile.bin";
};
};
};
secrets = {
"/system_keyfile.bin" = "/etc/luks-keys/system.bin";
"/user_keyfile.bin" = "/etc/luks-keys/user.bin";
};
};
};
# todo: target and/or archive
services.btrbk = {
sshAccess = [{

View File

@ -0,0 +1,154 @@
{ config, pkgs, ... }:
{
boot = {
loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
grub = {
enable = true;
device = "nodev";
enableCryptodisk = true;
efiSupport = true;
};
};
initrd = {
luks = {
#yubikeySupport = true;
devices = {
"system" = {
device = "/dev/disk/by-uuid/b9778e01-a86c-4c6b-beb3-f97888d4a6eb";
keyFile = "/system_keyfile.bin";
allowDiscards = true;
# yubikey = {
# slot = 2;
# twoFactor = false;
# gracePeriod = 30;
# keyLength = 64;
# saltLength = 16;
# storage = {
# device = "/dev/nvme0n1p1";
# fsType = "vfat";
# path = "/crypt-storage/default";
# };
# };
};
"user" = {
device = "/dev/disk/by-uuid/d8e9b35d-704a-4f66-bc19-0dd3e158de36";
keyFile = "/user_keyfile.bin";
};
};
};
secrets = {
"/system_keyfile.bin" = "/etc/luks-keys/system.bin";
"/user_keyfile.bin" = "/etc/luks-keys/user.bin";
};
};
};
fileSystems = {
"/" = {
device = "tmpfs";
fsType = "tmpfs";
options = [ "defaults" "size=2G" "mode=755" ];
};
"/boot/efi" = {
device = "/dev/disk/by-uuid/0BFA-9A66";
fsType = "vfat";
};
"/mnt/btr_system" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvolid=5" "compress=zstd" ];
};
"/mnt/btr_user" = {
device = "/dev/mapper/user";
fsType = "btrfs";
options = [ "subvolid=5" "compress=zstd" ];
};
"/mnt/persist" = {
device = "/dev/mapper/user";
fsType = "btrfs";
options = [ "subvol=persist" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/data" = {
device = "/dev/mapper/user";
fsType = "btrfs";
options = [ "subvol=data" "compress=zstd" ];
neededForBoot = true;
};
"/mnt/vfs_share" = {
device = "/dev/mapper/user";
fsType = "btrfs";
options = [ "subvol=vfs_share" "compress=zstd" ];
neededForBoot = true;
};
"/nix" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvol=nix" "compress=zstd" ];
};
"/mnt/logs" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvol=logs" "compress=zstd" ];
neededForBoot = true;
};
"/boot" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvol=boot" "compress=zstd" ];
};
"/swap" = {
device = "/dev/mapper/system";
fsType = "btrfs";
options = [ "subvol=swap" ];
};
"/mnt/narwhal" = {
device = "narwhal:/";
fsType = "nfs";
};
"/mnt/backups/0" = {
device = "/dev/mapper/backups0";
fsType = "btrfs";
options = [ "noauto" "subvolid=5" "compress=zstd" ];
};
"/mnt/backups/1" = {
device = "/dev/mapper/backups1";
fsType = "btrfs";
options = [ "noauto" "subvolid=5" "compress=zstd" ];
};
"/mnt/backups/2" = {
device = "/dev/mapper/backups2";
fsType = "btrfs";
options = [ "noauto" "subvolid=5" "compress=zstd" ];
};
};
swapDevices = [{ device = "/swap/swapfile"; }];
environment.etc.crypttab.text = ''
backups0 UUID="e45232d5-f46f-46f3-a150-be26374b3357" /etc/luks-keys/backups.bin noauto
backups1 UUID="5b3da928-4862-4451-89cd-5bd6a95466d0" /etc/luks-keys/backups.bin noauto
backups2 UUID="cbfa9cba-dee2-4d0b-8cde-2f1d1849b22c" /etc/luks-keys/backups.bin noauto
'';
}

63
overlays/default.nix Normal file
View File

@ -0,0 +1,63 @@
{ inputs, ... }:
{
modifications = final: prev: {
# # use lf fork with support for sixel graphics
# lf = prev.lf.overrideAttrs (old: {
# src = prev.fetchFromGitHub {
# owner = "horriblename";
# repo = "lf";
# rev = "8997e5b03772d5628ed6a490777048581d978674";
# sha256 = "rJq2Tv3py6HvRI1O2odTdGb1ksdijhO3FcJsPj5dm34=";
# };
# });
kile-wl = prev.rustPlatform.buildRustPackage rec {
pname = "kile-wl";
version = "2023-08-23";
src = prev.fetchFromGitLab {
owner = "snakedye";
repo = "kile";
rev = "c24208761d04e0a74d203fc1dcd2f7fed68da388";
sha256 = "sha256-4iclNVd7nm6LkgvsHwWaWyi1bZL/A+bbT5OSXn70bLs=";
};
cargoLock = {
lockFile = src + "/Cargo.lock";
outputHashes = {
"kilexpr-0.1.0" =
"sha256-Bw6vYtzhheAJ8NLQtr3gLjZ9/5ajuABURRYDnVF9W1Y=";
};
};
meta = with prev.lib; {
description = "A tiling layout generator for river";
homepage = "https://gitlab.com/snakedye/kile";
license = licenses.mit;
platforms =
platforms.linux; # It's meant for river, a wayland compositor
mainProgram = "kile";
};
};
ristate = prev.ristate.overrideAttrs (old: rec {
src = prev.fetchFromGitLab {
owner = "snakedye";
repo = "ristate";
rev = "92e989f26cadac69af1208163733e73b4cf447da";
sha256 = "sha256-6slH7R6kbSXQBd7q38oBEbngaCbFv0Tyq34VB1PAfhM=";
};
cargoDeps = old.cargoDeps.overrideAttrs (prev.lib.const {
inherit src;
outputHash = "sha256-fOo9C0dNL9dYy5wXq/yEDqOV0OhOTEY42XK8ShpQh6k=";
});
});
};
stable-packages = final: prev: {
stable = import inputs.nixpkgs-stable {
system = final.system;
config.allowUnfree = true;
};
};
}