summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flake.lock6
-rw-r--r--flake/default.nix13
-rw-r--r--flake/nixosConfigurations/default.nix3
-rw-r--r--hm/silas/default.nix43
-rw-r--r--hm/sils/default.nix (renamed from hm/default.nix)32
-rw-r--r--hosts/schrotti.nix14
-rw-r--r--modules/nixos/sils/basesystem.nix131
-rw-r--r--modules/nixos/sils/default.nix1
-rw-r--r--modules/nixos/sils/disks.nix128
-rw-r--r--modules/nixos/sils/roles.nix16
10 files changed, 304 insertions, 83 deletions
diff --git a/flake.lock b/flake.lock
index 037be9f..bb8200c 100644
--- a/flake.lock
+++ b/flake.lock
@@ -210,6 +210,7 @@
"original": {
"owner": "ipetkov",
"repo": "crane",
+ "rev": "27025ab71bdca30e7ed0a16c88fd74c5970fc7f5",
"type": "github"
}
},
@@ -623,9 +624,9 @@
"type": "github"
},
"original": {
- "owner": "NixOS",
- "ref": "nixos-unstable-small",
+ "owner": "NixOs",
"repo": "nixpkgs",
+ "rev": "2057814051972fa1453ddfb0d98badbea9b83c06",
"type": "github"
}
},
@@ -808,6 +809,7 @@
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
+ "rev": "1d8fcbbfcfd3476c2665384a46ee9d07ef2b4dd9",
"type": "github"
}
},
diff --git a/flake/default.nix b/flake/default.nix
index 443999e..a0e3d57 100644
--- a/flake/default.nix
+++ b/flake/default.nix
@@ -50,5 +50,18 @@
};
flake = {
nixosConfigurations = import ./nixosConfigurations inputs;
+ homeConfigurations."silas" = inputs.home-manager.lib.homeManagerConfiguration {
+ pkgs = import inputs.nixpkgs {
+ system = "x86_64-linux";
+ overlays = [inputs.nixvim.overlays.default];
+ };
+ # Specify your home configuration modules here, for example,
+ # the path to your home.nix.
+ modules = [ ../hm/silas ];
+
+ # Optionally use extraSpecialArgs
+ # to pass through arguments to home.nix
+ extraSpecialArgs = inputs;
+ };
};
}
diff --git a/flake/nixosConfigurations/default.nix b/flake/nixosConfigurations/default.nix
index ca3c035..5e0e659 100644
--- a/flake/nixosConfigurations/default.nix
+++ b/flake/nixosConfigurations/default.nix
@@ -20,7 +20,7 @@
backupFileExtension = "backup";
useGlobalPkgs = true;
useUserPackages = true;
- users.sils = import ../../hm;
+ users.sils = import ../../hm/sils;
extraSpecialArgs = attrs;
};
}
@@ -50,6 +50,7 @@ in {
# ++ defaultModules;
#};
thinklappi = mkNixosHost "x86_64-linux" ../../hosts/thinklappi.nix;
+ schrotti = mkNixosHost "x86_64-linux" ../../hosts/schrotti.nix;
thinklappi-bootstrap = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = attrs;
diff --git a/hm/silas/default.nix b/hm/silas/default.nix
new file mode 100644
index 0000000..cf6671b
--- /dev/null
+++ b/hm/silas/default.nix
@@ -0,0 +1,43 @@
+{nixvim, ...}: {
+ imports = [
+ ../../modules/hm
+ ../gpg
+ ../gtk
+ ../hyfetch
+ ../mako
+ ../nixvim
+ ../packages
+ ../rofi
+ ../ssh
+ ../swayidle
+ ../swaylock
+ ../swayosd
+ ../xsession
+ ../waybar
+ ../xdg
+ ../zsh
+ nixvim.homeManagerModules.nixvim
+ ];
+
+ home = {
+ username = "silas";
+ homeDirectory = "/home/silas";
+ stateVersion = "23.05";
+ };
+
+ sils = {
+ bat.enable = true;
+ direnv.enable = true;
+ etesync-dav.enable = true;
+ firefox.enable = true;
+ foot.enable = true;
+ git.enable = true;
+ hyprland.enable = true;
+ jameica.enable = true;
+ kdeconnect.enable = true;
+ mail.enable = true;
+ sway.enable = true;
+ zathura.enable = true;
+ };
+ programs.home-manager.enable = true;
+}
diff --git a/hm/default.nix b/hm/sils/default.nix
index 7d6e482..8f0bb6b 100644
--- a/hm/default.nix
+++ b/hm/sils/default.nix
@@ -1,21 +1,21 @@
{nixvim, ...}: {
imports = [
- ../modules/hm
- ./gpg
- ./gtk
- ./hyfetch
- ./mako
- ./nixvim
- ./packages
- ./rofi
- ./ssh
- ./swayidle
- ./swaylock
- ./swayosd
- ./xsession
- ./waybar
- ./xdg
- ./zsh
+ ../../modules/hm
+ ../gpg
+ ../gtk
+ ../hyfetch
+ ../mako
+ ../nixvim
+ ../packages
+ ../rofi
+ ../ssh
+ ../swayidle
+ ../swaylock
+ ../swayosd
+ ../xsession
+ ../waybar
+ ../xdg
+ ../zsh
nixvim.homeManagerModules.nixvim
];
diff --git a/hosts/schrotti.nix b/hosts/schrotti.nix
new file mode 100644
index 0000000..417b179
--- /dev/null
+++ b/hosts/schrotti.nix
@@ -0,0 +1,14 @@
+{...}: {
+ role.sils = "laptop-light";
+ sils = {
+ meta = {
+ bootPart = "/dev/disk/by-uuid/4064-2D6C";
+ globalDataDir = "/srv";
+ hostname = "schrotti";
+ mainDisk = "/dev/disk/by-uuid/68da1329-f5ea-4f2c-a38e-faffaaaa6b5a";
+ rootPart = "/dev/disk/by-uuid/6700d662-29a9-4ea5-8ca6-85d42550b3ab";
+ system = "x86_64-linux";
+ };
+ };
+ home-manager.backupFileExtension = "backup";
+}
diff --git a/modules/nixos/sils/basesystem.nix b/modules/nixos/sils/basesystem.nix
index 89b5a5f..21d7ab9 100644
--- a/modules/nixos/sils/basesystem.nix
+++ b/modules/nixos/sils/basesystem.nix
@@ -26,80 +26,83 @@ in {
extraModulePackages = [];
kernelPackages = pkgs.linuxPackages_latest;
lanzaboote = {
- enable = true;
+ enable = false;
configurationLimit = 10;
pkiBundle = "/etc/secureboot";
settings = {
editor = false;
};
};
+ loader.grub.enable = true;
+ loader.grub.efiSupport = true;
+ loader.grub.efiInstallAsRemovable = true;
resumeDevice = config.sils.meta.mainDisk;
- kernelParams = ["resume_offset=369403136"];
+ #kernelParams = ["resume_offset=369403136"];
};
- fileSystems = {
- "/" = {
- device = "tmpfs";
- fsType = "tmpfs";
- options = ["defaults" "size=2G" "mode=755"];
- };
- "/tmp" = {
- device = "tmpfs";
- fsType = "tmpfs";
- options = ["defaults" "size=5G" "mode=755"];
- };
- "/nix" = {
- device = config.sils.meta.mainDisk;
- fsType = "btrfs";
- options = ["subvol=nix" "compress-force=zstd"];
- };
- "/etc/NetworkManager" = {
- device = config.sils.meta.mainDisk;
- fsType = "btrfs";
- options = ["subvol=networkmanagerconfig" "compress-force=zstd"];
- };
- "/etc/secureboot" = {
- device = config.sils.meta.mainDisk;
- fsType = "btrfs";
- options = ["subvol=secureboot" "compress-force=zstd"];
- };
- "/etc/nixos" = {
- device = config.sils.meta.mainDisk;
- fsType = "btrfs";
- options = ["subvol=nixconfig" "compress-force=zstd"];
- };
- "/srv" = {
- device = config.sils.meta.mainDisk;
- fsType = "btrfs";
- options = ["subvol=srv" "compress-force=zstd"];
- neededForBoot = true;
- };
- "/swap" = {
- device = config.sils.meta.mainDisk;
- fsType = "btrfs";
- options = ["subvol=swap" "noatime"];
- };
- "/home" = {
- device = config.sils.meta.mainDisk;
- fsType = "btrfs";
- options = ["subvol=home" "compress-force=zstd"];
- };
- "/srv/snapshots" = {
- device = config.sils.meta.mainDisk;
- fsType = "btrfs";
- options = ["subvol=snapshots" "compress-force=zstd"];
- };
- "/boot" = {
- device = config.sils.meta.bootPart;
- fsType = "vfat";
- };
- };
+ #fileSystems = {
+ # "/" = {
+ # device = "tmpfs";
+ # fsType = "tmpfs";
+ # options = ["defaults" "size=2G" "mode=755"];
+ # };
+ # "/tmp" = {
+ # device = "tmpfs";
+ # fsType = "tmpfs";
+ # options = ["defaults" "size=5G" "mode=755"];
+ # };
+ # "/nix" = {
+ # device = config.sils.meta.mainDisk;
+ # fsType = "btrfs";
+ # options = ["subvol=nix" "compress-force=zstd"];
+ # };
+ # "/etc/NetworkManager" = {
+ # device = config.sils.meta.mainDisk;
+ # fsType = "btrfs";
+ # options = ["subvol=networkmanagerconfig" "compress-force=zstd"];
+ # };
+ # "/etc/secureboot" = {
+ # device = config.sils.meta.mainDisk;
+ # fsType = "btrfs";
+ # options = ["subvol=secureboot" "compress-force=zstd"];
+ # };
+ # "/etc/nixos" = {
+ # device = config.sils.meta.mainDisk;
+ # fsType = "btrfs";
+ # options = ["subvol=nixconfig" "compress-force=zstd"];
+ # };
+ # "/srv" = {
+ # device = config.sils.meta.mainDisk;
+ # fsType = "btrfs";
+ # options = ["subvol=srv" "compress-force=zstd"];
+ # neededForBoot = true;
+ # };
+ # "/swap" = {
+ # device = config.sils.meta.mainDisk;
+ # fsType = "btrfs";
+ # options = ["subvol=swap" "noatime"];
+ # };
+ # "/home" = {
+ # device = config.sils.meta.mainDisk;
+ # fsType = "btrfs";
+ # options = ["subvol=home" "compress-force=zstd"];
+ # };
+ # "/srv/snapshots" = {
+ # device = config.sils.meta.mainDisk;
+ # fsType = "btrfs";
+ # options = ["subvol=snapshots" "compress-force=zstd"];
+ # };
+ # "/boot" = {
+ # device = config.sils.meta.bootPart;
+ # fsType = "vfat";
+ # };
+ #};
- swapDevices = [
- {
- device = "/swap/swapfile";
- }
- ];
+ #swapDevices = [
+ # {
+ # device = "/swap/swapfile";
+ # }
+ #];
system.stateVersion = "23.05";
diff --git a/modules/nixos/sils/default.nix b/modules/nixos/sils/default.nix
index 922d706..c169bfb 100644
--- a/modules/nixos/sils/default.nix
+++ b/modules/nixos/sils/default.nix
@@ -3,6 +3,7 @@
./apparmor.nix
./basesystem.nix
./bluetooth.nix
+ ./disks.nix
./environment.nix
./firejail.nix
./font.nix
diff --git a/modules/nixos/sils/disks.nix b/modules/nixos/sils/disks.nix
new file mode 100644
index 0000000..01c65e9
--- /dev/null
+++ b/modules/nixos/sils/disks.nix
@@ -0,0 +1,128 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.sils.disks;
+ defaultMountOptions = [
+ "noatime" # should have some performance upsides, and I don't use it anyways
+ "lazytime" # make time changes in memory
+ ];
+in {
+ options.sils.disks = {
+ enable = lib.mkEnableOption "disk setup with disko";
+
+ disk = lib.mkOption {
+ type = lib.types.path;
+ example = lib.literalExpression "/dev/disk/by-uuid/0442cb6d-f13a-4635-b487-fa76189774c5";
+ description = "The disk used for installing the OS.";
+ };
+
+
+ #swap = {
+ # uuid = lib.mkOption {
+ # type = lib.types.str;
+ # example = lib.literalExpression "d1d20ae7-3d8a-44da-86da-677dbbb10c89";
+ # description = "The uuid of the swapfile";
+ # };
+ # resumeOffset = lib.mkOption {
+ # type = lib.types.str;
+ # example = lib.literalExpression "134324224";
+ # description = "The resume offset of the swapfile";
+ # };
+ #};
+ };
+
+ config = lib.mkIf cfg.enable {
+
+ disko.devices = {
+ disk = {
+ main = {
+ device = cfg.disk;
+ content = {
+ type = "gpt";
+ partitions = {
+ root = {
+ size = "100%";
+ name = "root";
+ content = {
+ type = "luks";
+ name = "cryptroot";
+ extraOpenArgs = ["--allow-discards"];
+ content = {
+ type = "btrfs";
+ extraArgs = ["-f" "--label nixos"]; # Override existing partitions
+ subvolumes = {
+ "root" = {
+ mountpoint = "/";
+ mountOptions = defaultMountOptions;
+ };
+ "nix" = {
+ mountpoint = "/nix";
+ mountOptions = defaultMountOptions;
+ };
+ "persistent-storage" = {
+ mountpoint = "/srv";
+ mountOptions = defaultMountOptions;
+ };
+ "persistent-storage@snapshots" = {
+ mountpoint = "/srv/.snapshots";
+ mountOptions = defaultMountOptions;
+ };
+ "swap" = {
+ mountpoint = "/swap";
+ mountOptions = defaultMountOptions;
+ };
+ "home" = {
+ mountpoint = "/home";
+ mountOptions = defaultMountOptions;
+ };
+ };
+ };
+ };
+ };
+ boot = {
+ type = "EF00";
+ size = "512M";
+ name = "boot";
+ content = {
+ type = "filesystem";
+ format = "vfat";
+ mountpoint = "/boot";
+ };
+ };
+ };
+ };
+ };
+ };
+ nodev = {
+ "/tmp" = {
+ fsType = "tmpfs";
+ mountOptions = ["defaults" "size=10G" "mode=755"];
+ };
+ };
+ };
+ fileSystems = {
+ "/srv" = {
+ neededForBoot = true;
+ };
+ "/swap" = {
+ neededForBoot = true;
+ };
+ };
+ swapDevices = [
+ #{
+ # device = "/swap/swapfile";
+ # priority = 1; # lower than zramSwap, just in case
+ # # size = 2048; # TODO: can nixos create a btrfs swapfile correctly?
+ #}
+ ];
+ boot = {
+ kernelParams = [
+ #"resume_offset=${cfg.swap.resumeOffset}"
+ ];
+ #resumeDevice = "/dev/disk/by-uuid/${cfg.swap.uuid}";
+ };
+ };
+}
diff --git a/modules/nixos/sils/roles.nix b/modules/nixos/sils/roles.nix
index a39af33..c19bd42 100644
--- a/modules/nixos/sils/roles.nix
+++ b/modules/nixos/sils/roles.nix
@@ -22,6 +22,22 @@ in {
sway.enable = lib.mkDefault false;
theming.enable = lib.mkDefault true;
}
+ else if roleCmp "laptop-light"
+ then {
+ apparmor.enable = lib.mkDefault true;
+ basesystem.enable = lib.mkDefault true;
+ bluetooth.enable = lib.mkDefault true;
+ environment.enable = lib.mkDefault true;
+ firejail.enable = false;
+ font.enable = lib.mkDefault true;
+ hyprland.enable = lib.mkDefault true;
+ impermanence.enable = lib.mkDefault true;
+ networking.enable = lib.mkDefault true;
+ nix-config.enable = lib.mkDefault true;
+ plymouth.enable = lib.mkDefault false;
+ sway.enable = lib.mkDefault false;
+ theming.enable = lib.mkDefault true;
+ }
else if roleCmp "vm"
then {}
else {};