Compare commits

..

1 commit
main ... new

Author SHA1 Message Date
twoneis
0728061caa don't tell me this was the issue 2024-10-14 23:29:29 +02:00
1085 changed files with 1183 additions and 3331 deletions

1
.gitignore vendored
View file

@ -1 +0,0 @@
.direnv/

View file

@ -1,37 +1,77 @@
{pkgs, ...}: {
{ config, pkgs, ... }: let
inherit (config.device) disks;
in{
imports = [
./options.nix
./disko.nix
./disks.nix
];
nixpkgs.hostPlatform = "x86_64-linux";
networking = {
hostName = "ellaca";
domain = "twoneis.site";
};
networking.hostName = "ellaca";
boot = {
initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod"];
kernelPackages = pkgs.linuxPackages_latest;
loader = {
grub = {
devices = ["/dev/sda"];
efiSupport = true;
efiInstallAsRemovable = true;
initrd = {
availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
};
kernelModules = [ "kvm-amd" ];
kernelPackages = pkgs.linuxPackages_zen;
loader = {
efi.canTouchEfiVariables = true;
grub = {
enable = true;
efiSupport = true;
device = "nodev";
useOSProber = true;
font = null;
splashImage = null;
};
};
};
fileSystems = {
"/boot" = {
device = "/dev/disk/by-uuid/${disks.boot}";
fsType = "vfat";
};
"/" = {
device = "/dev/disk/by-uuid/${disks.root}";
fsType = "btrfs";
options = [ "subvol=root" "compress=zstd" "noatime" ];
};
"/nix" = {
device = "/dev/disk/by-uuid/${disks.root}";
fsType = "btrfs";
options = [ "subvol=nix" "compress=zstd" "noatime" ];
};
"/ext" = {
device = "/dev/disk/by-uuid/${disks.ext}";
fsType = "btrfs";
options = [ "subvol=ext" "compress=zstd" "noatime" ];
};
};
services = {
btrfs.autoScrub = {
enable = true;
fileSystems = ["/"];
};
xserver.videoDrivers = ["nvidia"];
};
hardware = {
enableRedistributableFirmware = true;
enableAllFirmware = true;
cpu.amd.updateMicrocode = true;
nvidia = {
modesetting.enable = true;
nvidiaSettings = false;
package = config.boot.kernelPackages.nvidiaPackages.vulkan_beta;
};
graphics = {
enable = true;
enable32Bit = true;
};
};
}

View file

@ -1,54 +0,0 @@
{
disko.devices = {
disk = {
main = {
type = "disk";
device = "/dev/sda";
content = {
type = "gpt";
partitions = {
boot = {
size = "1M";
type = "EF02";
};
esp = {
priority = 1;
name = "BOOT";
size = "2G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = ["umask=0077"];
};
};
root = {
size = "100%";
content = {
type = "btrfs";
extraArgs = ["-f"]; # Override existing partition
subvolumes = {
"/root" = {
mountOptions = ["compress=zstd" "noatime"];
mountpoint = "/";
};
"/nix" = {
mountOptions = ["compress=zstd" "noatime"];
mountpoint = "/nix";
};
"/swap" = {
mountpoint = "/.swapvol";
swap = {
swapfile.size = "20M";
};
};
};
};
};
};
};
};
};
};
}

7
devices/ellaca/disks.nix Normal file
View file

@ -0,0 +1,7 @@
{ ... }: {
device.disks = {
boot = "12CE-A600";
root = "b4a61b48-017f-4d16-ab05-d5c867f2ca6f";
ext = "3ed92a26-775a-4e39-ac1c-84b2822cd3dd";
};
}

View file

@ -1,63 +1,9 @@
{...}: let
email-domain = "chpu.eu";
web-domain = "twoneis.site";
new-domain = "miraculous.place";
in {
{ ... }: {
conf = {
host = "server";
nginx = {
domains = [
email-domain
web-domain
new-domain
];
email = "porkbun@${email-domain}";
};
apps.enable = true;
niri.enable = true;
email = {
enable = true;
domain = email-domain;
ports = {
local = 9000;
};
};
website = {
enable = true;
domain = {
full = web-domain;
base = web-domain;
};
};
fedi = {
enable = true;
domain = {
full = "fedi.${web-domain}";
base = web-domain;
};
email = "akkoma@${email-domain}";
};
matrix = {
enable = true;
domain = {
full = "matrix.${web-domain}";
base = web-domain;
};
email = "matrix@${email-domain}";
};
git = {
enable = true;
domain = {
full = "git.${web-domain}";
base = web-domain;
};
};
stateVersion = "25.05";
hmStateVersion = "25.05";
stateVersion = "24.05";
hmStateVersion = "24.11";
};
}

View file

@ -1,30 +1,23 @@
{
lib,
pkgs,
...
}: let
{ lib, config, pkgs, ... }: let
inherit (lib) mkDefault;
inherit (config.device) disks;
in {
imports = [
./disks.nix
./options.nix
];
nixpkgs = {
hostPlatform = "x86_64-linux";
config = {
allowUnfree = true;
};
};
nixpkgs.hostPlatform = "x86_64-linux";
networking.hostName = "inkvine";
boot = {
initrd = {
availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ];
luks.devices.root.device = "/dev/disk/by-label/CRYPT";
luks.devices.root.device = "/dev/disk/by-uuid/${disks.crypt}";
kernelModules = [ "amdgpu" ];
};
kernelPackages = pkgs.linuxPackages_latest;
kernelPackages = pkgs.linuxPackages_zen;
loader = {
systemd-boot = {
enable = mkDefault true;
@ -36,35 +29,18 @@ in {
fileSystems = {
"/boot" = {
device = "/dev/disk/by-label/BOOT";
device = "/dev/disk/by-uuid/${disks.boot}";
fsType = "vfat";
};
"/" = {
device = "/dev/disk/by-label/ROOT";
fsType = "btrfs";
options = ["subvol=root" "compress=zstd" "noatime"];
};
"/nix" = {
device = "/dev/disk/by-label/ROOT";
fsType = "btrfs";
options = ["subvol=nix" "compress=zstd" "noatime"];
neededForBoot = true;
};
"/swap" = {
device = "/dev/disk/by-label/ROOT";
fsType = "btrfs";
options = ["subvol=swap" "noatime"];
device = "/dev/disk/by-uuid/${disks.root}";
fsType = "ext4";
};
};
swapDevices = [{device = "/swap/swapfile";}];
services = {
fwupd.enable = true;
power-profiles-daemon.enable = true;
btrfs.autoScrub = {
enable = true;
fileSystems = ["/"];
};
};
hardware = {

View file

@ -1,57 +0,0 @@
{...}: {
disko.devices = {
disk = {
main = {
type = "disk";
device = "/dev/nvme0n1";
content = {
type = "gpt";
partitions = {
ESP = {
size = "1G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = ["umask=0077"];
};
};
luks = {
size = "100%";
content = {
type = "luks";
name = "crypted";
settings = {
allowDiscards = true;
};
content = {
type = "btrfs";
extraArgs = ["-f"];
subvolumes = {
"root" = {
mountpoint = "/";
mountOptions = ["compress=zstd" "noatime"];
};
"nix" = {
mountpoint = "/nix";
mountOptions = ["compress=zstd" "noatime"];
};
"persist" = {
mountpoint = "/persist";
mountOptions = ["compress=zstd" "noatime"];
};
"swap" = {
mountpoint = "/.swapvol";
swap.swapfile.size = "8G";
};
};
};
};
};
};
};
};
};
};
}

View file

@ -0,0 +1,7 @@
{ ... }: {
device.disks = {
boot = "5BD3-FDE6";
crypt = "7171d4c2-fd27-45ed-b058-31bab14681e8";
root = "f2b17157-1e79-4a44-8349-e611c4768949";
};
}

View file

@ -1,10 +1,12 @@
{ ... }: {
conf = {
host = "laptop";
secureboot.enable = true;
yubikey.login = true;
apps.enable = true;
niri.enable = true;
games.enable = true;
extraLayout.enable = true;
vm.enable = false;
stateVersion = "24.11";
stateVersion = "24.05";
hmStateVersion = "24.11";
};
}

View file

@ -0,0 +1,70 @@
{ config, pkgs, ... }: let
inherit (config.device) disks;
in {
imports = [
./options.nix
./disks.nix
];
nixpkgs.hostPlatform = "x86_64-linux";
networking.hostName = "pleniscenta";
boot = {
initrd = {
availableKernelModules = [ "ahci" "xhci_pci" "ums_realtek" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ];
luks.devices.root.device = "/dev/disk/by-uuid/${disks.crypt}";
};
kernelModules = [ "kvm-intel" ];
kernelPackages = pkgs.linuxPackages_latest;
loader = {
systemd-boot = {
enable = true;
};
efi.canTouchEfiVariables = true;
};
};
fileSystems = {
"/boot" = {
device = "/dev/disk/by-uuid/${disks.boot}";
fsType = "vfat";
};
"/" = {
device = "/dev/disk/by-uuid/${disks.root}";
fsType = "btrfs";
options = [ "subvol=root" "compress=zstd" "noatime" ];
};
"/nix" = {
device = "/dev/disk/by-uuid/${disks.root}";
fsType = "btrfs";
options = [ "subvol=nix" "compress=zstd" "noatime" ];
};
"/persist" = {
device = "/dev/disk/by-uuid/${disks.root}";
fsType = "btrfs";
options = [ "subvol=persist" "compress=zstd" "noatime" ];
};
"/swap" = {
device = "/dev/disk/by-uuid/${disks.root}";
fsType = "btrfs";
options = [ "subvol=swap" "noatime" ];
};
};
swapDevices = [ { device = "/swap/swapfile"; } ];
services.thermald.enable = true;
hardware = {
enableRedistributableFirmware = true;
enableAllFirmware = true;
cpu.intel.updateMicrocode = true;
graphics = {
enable = true;
enable32Bit = true;
};
};
}

View file

@ -0,0 +1,7 @@
{ ... }: {
device.disks = {
crypt = "470a6d23-9f08-4c4d-afbb-63d6df1ab6a6";
boot = "4A39-D0DF";
root = "75e6536a-4836-4f50-86b3-f9250edca3c0";
};
}

View file

@ -0,0 +1,6 @@
{ ... }: {
conf = {
stateVersion = "24.05";
hmStateVersion = "24.11";
};
}

388
flake.lock generated
View file

@ -1,83 +1,23 @@
{
"nodes": {
"alejandra": {
"inputs": {
"fenix": "fenix",
"flakeCompat": "flakeCompat",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1730688725,
"narHash": "sha256-g0SSfTWZ5mtMOpQic+eqq9sXMy1E/7yKxxfupZd9V4A=",
"owner": "kamadorueda",
"repo": "alejandra",
"rev": "2bb91e309ca99656addff5c74545acbf5813636d",
"type": "github"
},
"original": {
"owner": "kamadorueda",
"ref": "3.1.0",
"repo": "alejandra",
"type": "github"
}
},
"crane": {
"locked": {
"lastModified": 1731098351,
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
"owner": "ipetkov",
"repo": "crane",
"rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"disko": {
"inputs": {
"nixpkgs": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1736864502,
"narHash": "sha256-ItkIZyebGvNH2dK9jVGzJHGPtb6BSWLN8Gmef16NeY0=",
"owner": "nix-community",
"repo": "disko",
"rev": "0141aabed359f063de7413f80d906e1d98c0c123",
"lastModified": 1717535930,
"narHash": "sha256-1hZ/txnbd/RmiBPNUs7i8UQw2N89uAK3UzrGAWdnFfU=",
"owner": "ipetkov",
"repo": "crane",
"rev": "55e7754ec31dac78980c8be45f8a28e80e370946",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "latest",
"repo": "disko",
"type": "github"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
"alejandra",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1730615655,
"narHash": "sha256-2HBR3zLn57LXKNRtxBb+O+uDqHM4n0pz51rPayMl4cg=",
"owner": "nix-community",
"repo": "fenix",
"rev": "efeb50e2535b17ffd4a135e6e3e5fd60a525180c",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
@ -97,21 +37,6 @@
"type": "github"
}
},
"flake-compat_2": {
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@ -120,11 +45,11 @@
]
},
"locked": {
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"lastModified": 1717285511,
"narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",
"type": "github"
},
"original": {
@ -135,17 +60,14 @@
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nur",
"nixpkgs"
]
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"lastModified": 1727826117,
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
"type": "github"
},
"original": {
@ -154,19 +76,21 @@
"type": "github"
}
},
"flakeCompat": {
"flake": false,
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
@ -199,11 +123,11 @@
]
},
"locked": {
"lastModified": 1744380363,
"narHash": "sha256-cXjAUuAfQDPSLSsckZuTioQ986iqSPTzx8D7dLAcC+Q=",
"lastModified": 1728903686,
"narHash": "sha256-ZHFrGNWDDriZ4m8CA/5kDa250SG1LiiLPApv1p/JF0o=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e43c6bcb101ba3301522439c459288c4a248f624",
"rev": "e1aec543f5caf643ca0d94b6a633101942fd065f",
"type": "github"
},
"original": {
@ -217,6 +141,7 @@
"crane": "crane",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
@ -224,22 +149,23 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1737639419,
"narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=",
"lastModified": 1718178907,
"narHash": "sha256-eSZyrQ9uoPB9iPQ8Y5H7gAmAgAvCw3InStmU3oEjqsE=",
"owner": "nix-community",
"repo": "lanzaboote",
"rev": "a65905a09e2c43ff63be8c0e86a93712361f871e",
"rev": "b627ccd97d0159214cee5c7db1412b75e4be6086",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "v0.4.2",
"ref": "v0.4.1",
"repo": "lanzaboote",
"type": "github"
}
},
"niri": {
"inputs": {
"flake-parts": "flake-parts_2",
"niri-stable": "niri-stable",
"niri-unstable": "niri-unstable",
"nixpkgs": [
@ -250,11 +176,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1744381460,
"narHash": "sha256-ay8Vijc8IuQiA+bMmKaKFy/2iTtvB9K7xqrirhnwivU=",
"lastModified": 1728920876,
"narHash": "sha256-jWECuAJAwjNjfcrKnb3ILevPB1vuTpmIfNrYiJPTdkA=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "4e592d48fb54ed742fb1ab14972a11432b2cbc31",
"rev": "079211d08139c0c2863b90f4fc8ea6ee2c488569",
"type": "github"
},
"original": {
@ -266,16 +192,16 @@
"niri-stable": {
"flake": false,
"locked": {
"lastModified": 1740117926,
"narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=",
"lastModified": 1726304152,
"narHash": "sha256-4YDrKMwXGVOBkeaISbxqf24rLuHvO98TnqxWYfgiSeg=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "b94a5db8790339cf9134873d8b490be69e02ac71",
"rev": "6a48728ffb1e638839b07f9ab2f06b2adb41dc61",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"ref": "v25.02",
"ref": "v0.1.9",
"repo": "niri",
"type": "github"
}
@ -283,11 +209,11 @@
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1744271375,
"narHash": "sha256-W4h6ZX2WHJ6k0ApUTpuxkDPZ5JAI3MLWFP4lpfu3iv8=",
"lastModified": 1728918524,
"narHash": "sha256-zDFgW/8+hPDgKuovkK69Yek4ZZZZzY3nuso0Dh/OIa8=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "df9466243504a00240f7048a1f9644cb002776a8",
"rev": "be7fbd418fcee2d2ff9f80aa15f1eb8ff0d83afb",
"type": "github"
},
"original": {
@ -296,54 +222,13 @@
"type": "github"
}
},
"nix-alien": {
"inputs": {
"flake-compat": "flake-compat_2",
"nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1742038403,
"narHash": "sha256-mzZdujmFWC+wHRvm0tKUlXL0LLz3YI3EDUCnFCtzgxY=",
"owner": "thiagokokada",
"repo": "nix-alien",
"rev": "876d83ac35fc52145674282f87898824182edc48",
"type": "github"
},
"original": {
"owner": "thiagokokada",
"repo": "nix-alien",
"type": "github"
}
},
"nix-index-database": {
"inputs": {
"nixpkgs": [
"nix-alien",
"nixpkgs"
]
},
"locked": {
"lastModified": 1741619381,
"narHash": "sha256-koZtlJRqi0/MD/AKd0KrXLA2NuBOVzlIyAJprjzpxZE=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "66537fb185462ba9b07f4e6f2d54894a1b2d04ab",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-index-database",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1744366945,
"narHash": "sha256-OuLhysErPHl53BBifhesrRumJNhrlSgQDfYOTXfgIMg=",
"lastModified": 1728729581,
"narHash": "sha256-oazkQ/z7r43YkDLLQdMg8oIB3CwWNb+2ZrYOxtLEWTQ=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "1fe3cc2bc5d2dc9c81cb4e63d2f67c1543340df1",
"rev": "a8dd1b21995964b115b1e3ec639dd6ce24ab9806",
"type": "github"
},
"original": {
@ -354,27 +239,55 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1741851582,
"narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=",
"owner": "NixOS",
"lastModified": 1728492678,
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "6607cf789e541e7873d40d3a8f7815ea92204f32",
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
"type": "github"
},
"original": {
"owner": "NixOS",
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1727825735,
"narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1730741070,
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"lastModified": 1710695816,
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1728740863,
"narHash": "sha256-u+rxA79a0lyhG+u+oPBRtTDtzz8kvkc9a6SWSt9ekVc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a3f9ad65a0bf298ed5847629a57808b97e6e8077",
"type": "github"
},
"original": {
@ -384,66 +297,13 @@
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1744309437,
"narHash": "sha256-QZnNHM823am8apCqKSPdtnzPGTy2ZB4zIXOVoBp5+W0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f9ebe33a928b5d529c895202263a5ce46bdf12f7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1744232761,
"narHash": "sha256-gbl9hE39nQRpZaLjhWKmEu5ejtQsgI5TWYrIVVJn30U=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "f675531bc7e6657c10a18b565cfebd8aa9e24c14",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1744232761,
"narHash": "sha256-gbl9hE39nQRpZaLjhWKmEu5ejtQsgI5TWYrIVVJn30U=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "f675531bc7e6657c10a18b565cfebd8aa9e24c14",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_3",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1744383978,
"narHash": "sha256-lx1XXdOTRa5ntY6GbSlu+h0XqMFVptpDIm3r7LoFwO4=",
"lastModified": 1728937794,
"narHash": "sha256-CbkuZZCPlzPuxRhk0Sgy6U0p16FDijd+2hlzkTGDPW8=",
"owner": "nix-community",
"repo": "nur",
"rev": "5b4559e4f4a968dac414504be84a135a7818cbce",
"rev": "2c40a022a3b3b0d981909a18b59887bd7abfcaa3",
"type": "github"
},
"original": {
@ -466,11 +326,11 @@
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"lastModified": 1717664902,
"narHash": "sha256-7XfBuLULizXjXfBYy/VV+SpYMHreNRHk9nKMsm1bgb4=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1",
"type": "github"
},
"original": {
@ -481,47 +341,31 @@
},
"root": {
"inputs": {
"alejandra": "alejandra",
"disko": "disko",
"home-manager": "home-manager",
"lanzaboote": "lanzaboote",
"niri": "niri",
"nix-alien": "nix-alien",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs",
"nur": "nur"
}
},
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1730555913,
"narHash": "sha256-KNHZUlqsEibg3YtfUyOFQSofP8hp1HKoY+laoesBxRM=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "f17a5bbfd0969ba2e63a74505a80e55ecb174ed9",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"rust-overlay": {
"inputs": {
"flake-utils": [
"lanzaboote",
"flake-utils"
],
"nixpkgs": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731897198,
"narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=",
"lastModified": 1717813066,
"narHash": "sha256-wqbRwq3i7g5EHIui0bIi84mdqZ/It1AXBSLJ5tafD28=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "0be641045af6d8666c11c2c40e45ffc9667839b5",
"rev": "6dc3e45fe4aee36efeed24d64fc68b1f989d5465",
"type": "github"
},
"original": {
@ -530,40 +374,34 @@
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nur",
"nixpkgs"
]
},
"systems": {
"locked": {
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"xwayland-satellite-stable": {
"flake": false,
"locked": {
"lastModified": 1739246919,
"narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=",
"lastModified": 1718165778,
"narHash": "sha256-dwF9nI54a6Fo9XU5s4qmvMXSgCid3YQVGxch00qEMvI=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d",
"rev": "b6d281967cb0b7bf1dfdb8d0f597b517dc4aa5c5",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"ref": "v0.5.1",
"ref": "v0.4",
"repo": "xwayland-satellite",
"type": "github"
}
@ -571,11 +409,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1743346993,
"narHash": "sha256-i7rWd/5BcqLgQEtB5L/6gKN5R5GUJcmm34F+iBivH60=",
"lastModified": 1726378112,
"narHash": "sha256-OANPb73V/RQDqtpIcbzeJ93KuOHKFQv+1xXC44Ut7tY=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "45c055696437a08e3989d9b91d9c617b84cc2bc3",
"rev": "b962a0f33b503aa39c9cf6919f488b664e5b79b4",
"type": "github"
},
"original": {

View file

@ -9,20 +9,10 @@
inputs.nixpkgs.follows = "nixpkgs";
};
alejandra = {
url = "github:kamadorueda/alejandra/3.1.0";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-hardware = {
url = "github:nixos/nixos-hardware";
};
disko = {
url = "github:nix-community/disko/latest";
inputs.nixpkgs.follows = "nixpkgs";
};
nur = {
url = "github:nix-community/nur";
};
@ -33,13 +23,9 @@
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2";
url = "github:nix-community/lanzaboote/v0.4.1";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-alien = {
url = "github:thiagokokada/nix-alien";
};
};
outputs = inputs: import ./outputs.nix inputs;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 687 B

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 B

View file

@ -1,4 +1,4 @@
config: let
{ config, ... }: let
inherit (config) theme;
in {
# Rose Pine

View file

@ -1,14 +0,0 @@
{
runCommand,
fetchzip,
name ? "BreezX-Rosepine-Cursor",
version,
...
}:
runCommand "rosepine-cursor" {} ''
mkdir -p $out/share/icons
ln -s ${fetchzip {
url = "https://github.com/rose-pine/cursor/releases/download/v${version.version}/BreezeX-RosePine-Linux.tar.xz";
hash = version.hash;
}} $out/share/icons/${name}
''

View file

@ -1,44 +1,25 @@
{
lib,
config,
pkgs,
...
}: let
{ lib, config, pkgs, ... }: let
inherit (lib) mkIf mkForce;
inherit (config) conf versions;
time = pkgs.makeDesktopItem {
name = "peaclock-desktop";
desktopName = "Time";
exec = "alacritty -e ${pkgs.peaclock}/bin/peaclock";
};
in
mkIf (conf.host != "server") {
inherit (config) conf;
in {
imports = [
./media.nix
./notes.nix
./programs.nix
./themes.nix
];
config = mkIf conf.apps.enable {
# Audio
security.rtkit.enable = true;
services = {
pipewire = {
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = mkForce false;
extraConfig.pipewire = {
"90-hifi" = {
"context.properties" = {
"default.clock.rate" = 384000;
};
};
};
};
# Needed for some features in nautilus such as auto-mounting and trash
gvfs.enable = true;
};
# Run statically linked and more
environment.systemPackages = [pkgs.nix-alien];
programs.nix-ld.enable = true;
# Bluetooth
hardware.bluetooth = {
@ -52,8 +33,6 @@ in
};
};
hardware.opentabletdriver.enable = true;
# Regularly clean download folder
systemd = {
timers."clean-download" = {
@ -76,119 +55,5 @@ in
};
services.blueman.enable = true;
home-manager.users.${conf.username} = {
home = {
packages = with pkgs;
[
adwaita-icon-theme
adwaita-qt
adwaita-qt6
loupe
spotify
amberol
snapshot
papers
nautilus
gnome-disk-utility
fragments
krita
gimp
inkscape
libresprite
tor-browser
chromium
libreoffice-qt6
prusa-slicer
ghidra
peaclock
(cutter.withPlugins (ps:
with ps; [
jsdec
sigdb
rz-ghidra
]))
signal-desktop
vesktop
element-desktop
fractal
]
++ [
time
];
file = {
".config/vesktop/settings.json" = {
source = ./vesktop.conf.json;
};
".config/vesktop/settings/settings.json" = {
source = ./vencord.conf.json;
};
};
pointerCursor = rec {
gtk.enable = true;
x11.enable = true;
name = "BreezX-RosePine-Linux";
size = 24;
package = pkgs.callPackage ./cursor.nix {
name = name;
version = versions.rosepine-cursor;
};
};
};
qt = {
enable = true;
platformTheme.name = "adwaita";
style.name = "adwaita-dark";
};
gtk = {
enable = true;
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = true;
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = true;
};
gtk2.extraConfig = "gtk-application-prefer-dark-theme=1\n";
theme.name = "Adwaita Dark";
};
dconf = {
enable = true;
settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
};
programs = {
firefox = import ./firefox.conf.nix pkgs;
thunderbird = {
enable = true;
profiles = {
"default" = {
isDefault = true;
};
};
};
mpv.enable = true;
pandoc.enable = true;
alacritty = {
enable = true;
settings = import ./alacritty.conf.nix config;
};
};
};
}

View file

@ -1,227 +0,0 @@
pkgs: {
enable = true;
profiles = {
"default" = {
id = 0;
search = {
default = "duckduckgo";
privateDefault = "duckduckgo";
engines = {
"ddg".metaData.hidden = true;
"google".metaData.hidden = true;
"amazondotcom-us".metaData.hidden = true;
"bing".metaData.hidden = true;
"wikipedia".metaData.hidden = true;
duckduckgo = {
urls = [
{
template = "https://duckduckgo.com/";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
definedAliases = ["@ddg"];
};
google = {
urls = [
{
template = "https://google.com/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
definedAliases = ["@g"];
};
wikipedia = {
urls = [
{
template = "https://en.wikipedia.org/wiki/Special:Search";
params = [
{
name = "search";
value = "{searchTerms}";
}
];
}
];
definedAliases = ["@wiki"];
};
youtube = {
urls = [
{
template = "https://youtube.com/results";
params = [
{
name = "search_query";
value = "{searchTerms}";
}
];
}
];
definedAliases = ["@yt"];
};
nix-packages = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "channel";
value = "unstable";
}
{
name = "type";
value = "packages";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
definedAliases = ["@np"];
};
nix-options = {
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
name = "channel";
value = "unstable";
}
{
name = "type";
value = "packages";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
definedAliases = ["@no"];
};
nix-wiki = {
urls = [
{
template = "https://wiki.nixos.org/w/index.php";
params = [
{
name = "search";
value = "{searchTerms}";
}
];
}
];
definedAliases = ["@nw"];
};
arch-wiki = {
urls = [
{
template = "https://wiki.archlinux.org/index.php";
params = [
{
name = "search";
value = "{searchTerms}";
}
{
name = "fulltext";
value = "1";
}
];
}
];
definedAliases = ["@aw"];
};
github = {
urls = [
{
template = "https://github.com/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
{
name = "type";
value = "repositories";
}
];
}
];
definedAliases = ["@gh"];
};
};
force = true;
order = [
"duckduckgo"
"google"
"wikipedia"
"youtube"
"nix-packages"
"nix-options"
"nix-wiki"
"arch-wiki"
"github"
];
};
bookmarks = {
force = true;
settings = [];
};
settings = {
"browser.aboutConfig.showWarning" = false;
"browser.bookmarks.addedImportButton" = false;
"browser.link.open_newwindow" = 2;
"browser.newtabpage.enabled" = false;
"browser.preferences.moreFromMozilla" = false;
"browser.shell.checkDefaultBrowser" = false;
"browser.startup.blankWindow" = true;
"browser.startup.page" = 3;
"browser.tabs.closeWindowWithLastTab" = true;
"browser.tabs.opentabfor.middleclick" = false;
"browser.toolbars.bookmarks.visibility" = "never";
"browser.translation.enable" = false;
"dom.security.https_only_mode" = true;
"extensions.pocket.enabled" = false;
"gfx.webrender.all" = true;
"identity.fxaccounts.enabled" = false;
"media.cache_readhead_limit" = 9999;
"media.cache_resume_threshold" = 9999;
"medai.ffmpeg.vaapi.enabled" = true;
"media.videocontrols.picture-in-picture.enabled" = false;
"signon.rememberSignons" = false;
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
};
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
bitwarden
sponsorblock
ublock-origin
pronoundb
youtube-nonstop
enhancer-for-youtube
firefox-color
purpleadblock
];
userChrome = ''
#TabsToolbar-customization-target { visibility: collapse !important; }
'';
};
};
}

152
modules/apps/firefox.nix Normal file
View file

@ -0,0 +1,152 @@
{ inputs, lib, config, pkgs, ... }: let
inherit (lib) mkIf;
inherit (config) conf;
in mkIf conf.apps.enable {
nixpkgs.overlays = [ inputs.nur.overlay ];
home-manager.users.${conf.username} = {
programs.firefox = {
enable = true;
profiles = {
"default" = {
id = 0;
search = {
default = "DuckDuckGoo";
privateDefault = "DuckDuckGoo";
engines = {
"DuckDuckGo".metaData.hidden = true;
"Google".metaData.hidden = true;
"Amazon.com".metaData.hidden = true;
"Bing".metaData.hidden = true;
"Wikipedia (en)".metaData.hidden = true;
"DuckDuckGoo" = {
urls = [{
template = "https://duckduckgo.com/";
params = [
{ name = "q"; value = "{searchTerms}"; }
];
}];
definedAliases = [ "@ddg" ];
};
"Googlee" = {
urls = [{
template = "https://google.com/search";
params = [
{ name = "q"; value = "{searchTerms}"; }
];
}];
definedAliases = [ "@g" ];
};
"Wikipedia" = {
urls = [{
template = "https://en.wikipedia.org/wiki/Special:Search";
params = [
{ name = "search"; value = "{searchTerms}"; }
];
}];
definedAliases = [ "@wiki" ];
};
"YouTube" = {
urls = [{
template = "https://youtube.com/results";
params = [
{ name = "search_query"; value = "{searchTerms}"; }
];
}];
definedAliases = [ "@yt" ];
};
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "channel"; value = "unstable"; }
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
definedAliases = [ "@np" ];
};
"Nix Options" = {
urls = [{
template = "https://search.nixos.org/options";
params = [
{ name = "channel"; value = "unstable"; }
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
definedAliases = [ "@no" ];
};
"Arch Wiki" = {
urls = [{
template = "https://wiki.archlinux.org/index.php";
params = [
{ name = "search"; value = "{searchTerms}"; }
{ name = "fulltext"; value = "1"; }
];
}];
definedAliases = [ "@aw" ];
};
"Github" = {
urls = [{
template = "https://github.com/search";
params = [
{ name = "q"; value = "{searchTerms}"; }
{ name = "type"; value = "repositories"; }
];
}];
definedAliases = [ "@gh" ];
};
};
force = true;
order = [
"DuckDuckGoo"
"Googlee"
"Wikipedia"
"YouTube"
"Nix Packages"
"Nix Options"
"Arch Wiki"
"Github"
];
};
bookmarks = { };
settings = {
"browser.aboutConfig.showWarning" = false;
"browser.bookmarks.addedImportButton" = false;
"browser.newtabpage.enabled" = false;
"browser.preferences.moreFromMozilla" = false;
"browser.shell.checkDefaultBrowser" = false;
"browser.startup.blankWindow" = true;
"browser.startup.page" = 3;
"browser.tabs.closeWindowWithLastTab" = false;
"browser.toolbars.bookmarks.visibility" = "never";
"browser.translation.enable" = false;
"dom.security.https_only_mode" = true;
"extensions.pocket.enabled" = false;
"gfx.webrender.all" = true;
"identity.fxaccounts.enabled" = false;
"media.cache_readhead_limit" = 9999;
"media.cache_resume_threshold" = 9999;
"medai.ffmpeg.vaapi.enabled" = true;
"media.videocontrols.picture-in-picture.enabled" = false;
"signon.rememberSignons" = false;
};
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
bitwarden
sponsorblock
ublock-origin
pronoundb
youtube-nonstop
enhancer-for-youtube
firefox-color
purpleadblock
];
};
};
};
};
}

17
modules/apps/media.nix Normal file
View file

@ -0,0 +1,17 @@
{ config, lib, pkgs, ... }: let
inherit (lib) mkIf;
inherit (config) conf;
in mkIf conf.apps.enable {
home-manager.users.${conf.username} = {
home.packages = with pkgs; [
loupe
spotify
amberol
];
programs.mpv = {
enable = true;
};
};
}

25
modules/apps/notes.nix Normal file
View file

@ -0,0 +1,25 @@
{ lib, config, pkgs, ... }: let
inherit (lib) mkIf;
inherit (config) conf;
inherit (config.conf) keys;
in mkIf conf.apps.enable {
home-manager.users.${conf.username} = {
home.packages = with pkgs; [
rnote
];
programs.sioyek = {
enable = true;
bindings = {
"move_up" = keys.up;
"move_down" = keys.down;
"move_left" = keys.left;
"move_right" = keys.right;
};
};
programs.fish.shellAbbrs = {
pdf = "sioyek";
};
};
}

57
modules/apps/programs.nix Normal file
View file

@ -0,0 +1,57 @@
{ lib, config, pkgs, ... }: let
inherit (lib) mkIf;
inherit (config) conf;
mkXwlWrapper = import ../niri/xwl-wrapper.nix;
in {
imports = [
./firefox.nix
];
config = mkIf conf.apps.enable {
services = {
# Needed for some features in nautilus such as auto-mounting and trash
gvfs.enable = true;
};
home-manager.users.${conf.username} = {
home.packages = with pkgs; [
signal-desktop
vesktop
fractal
snapshot
nautilus
libreoffice-qt6-fresh
inkscape
blender
# freecad -- broken dependency
] ++ [(mkXwlWrapper { lib = lib; pkgs = pkgs; app = "${pkgs.prusa-slicer}/bin/prusa-slicer"; name = "Prusa"; })];
home.file = {
".config/vesktop/settings.json" = {
source = ./vesktop.conf.json;
};
".config/vesktop/settings/settings.json" = {
source = ./vencord.conf.json;
};
};
programs.pandoc = {
enable = true;
};
programs.thunderbird = {
enable = true;
profiles = {
"default" = {
isDefault = true;
};
};
};
programs.alacritty = {
enable = true;
settings = import ./alacritty.conf.nix { config = config; };
};
};
};
}

53
modules/apps/themes.nix Normal file
View file

@ -0,0 +1,53 @@
{ lib, config, pkgs, ... }: let
inherit (lib) mkIf;
inherit (config) conf;
in mkIf conf.apps.enable {
home-manager.users.${conf.username} = {
home.packages = with pkgs; [
adwaita-icon-theme
adwaita-qt
adwaita-qt6
];
qt = {
enable = true;
platformTheme.name = "adwaita";
style.name = "adwaita-dark";
};
gtk = {
enable = true;
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = true;
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = true;
};
gtk2.extraConfig = "gtk-application-prefer-dark-theme=1\n";
theme.name = "Adwaita Dark";
};
dconf = {
enable = true;
settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
};
home.pointerCursor = let getFrom = url: hash: name: {
gtk.enable = true;
x11.enable = true;
name = name;
size = 24;
package = pkgs.runCommand "moveUp" {} ''
mkdir -p $out/share/icons
ln -s ${pkgs.fetchzip{
url = url;
hash = hash;
}} $out/share/icons/${name}
'';
}; in getFrom "https://github.com/rose-pine/cursor/releases/download/v1.1.0/BreezeX-RosePine-Linux.tar.xz" "sha256-t5xwAPGhuQUfGThedLsmtZEEp1Ljjo3Udhd5Ql3O67c=" "BreezX-RosePine-Linux";
};
}

View file

@ -3,7 +3,7 @@
"autoUpdateNotification": true,
"useQuickCss": true,
"themeLinks": [
"https://raw.githubusercontent.com/rose-pine/discord/refs/heads/main/rose-pine.theme.css"
"https://raw.githubusercontent.com/rose-pine/discord/main/rose-pine.theme.css"
],
"enabledThemes": [],
"enableReactDevtools": false,

View file

@ -1,14 +1,11 @@
{
lib,
config,
...
}: let
{ lib, config, pkgs, ... }: let
inherit (lib) mkIf;
cfg = config.conf.containers;
in
mkIf cfg.enable {
inherit (config) conf;
in mkIf conf.containers.enable {
virtualisation.podman = {
enable = true;
dockerCompat = true;
};
environment.systemPackages = [ pkgs.distrobox ];
}

View file

@ -4,25 +4,16 @@ in {
imports = [
./apps
./containers
./email
./fedi
./firewall
./fonts
./games
./git
./home
./layout
./matrix
./networking
./nginx
./niri
./nix
./secureboot
./ssh
./utils
./vm
./website
./yubikey
];
documentation.nixos.enable = false;
@ -35,7 +26,11 @@ in {
users.users.${conf.username}= {
isNormalUser = true;
description = conf.username;
extraGroups = ["wheel"];
extraGroups = [ "networkmanager" "wheel" ];
};
hardware.opentabletdriver = {
enable = true;
};
system.stateVersion = conf.stateVersion;

View file

@ -1,110 +0,0 @@
{
config,
lib,
...
}: let
inherit (lib) mkIf;
inherit (lib.lists) forEach;
cfg = config.conf.email;
in
mkIf cfg.enable {
services.nginx = {
virtualHosts.${cfg.domain} = {
serverName = cfg.domain;
serverAliases =
forEach ["mail" "webadmin" "autoconfig" "autodiscover"]
(sub: "${sub}.${cfg.domain}");
forceSSL = true;
useACMEHost = cfg.domain;
locations = {
"/" = {
proxyPass = "http://localhost:${toString cfg.ports.local}";
};
};
};
};
users.users."stalwart-mail".extraGroups = ["nginx"];
services.stalwart-mail = {
enable = true;
openFirewall = true;
settings = {
server = {
hostname = cfg.domain;
tls = {
enable = true;
};
listener = {
smtp = {
protocol = "smtp";
bind = ["[::]:25"];
};
lmtp = {
protocol = "lmtp";
bind = ["[::]:24"];
};
jmap = {
protocol = "http";
bind = ["[::]:8080"];
tls.implicit = true;
};
imap = {
protocol = "imap";
bind = ["[::]:143"];
};
imaps = {
protocol = "imap";
bind = ["[::]:993"];
tls.implicit = true;
};
submission = {
protocol = "smtp";
bind = ["[::]:587"];
};
submissions = {
protocol = "smtp";
bind = ["[::]:465"];
tls.implicit = true;
};
management = {
protocol = "http";
bind = "127.0.0.1:${toString cfg.ports.local}";
};
};
};
lookup.default = {
hostname = cfg.domain;
domain = cfg.domain;
};
certificate.default = {
default = true;
cert = "%{file:/var/lib/acme/${cfg.domain}/cert.pem}%";
private-key = "%{file:/var/lib/acme/${cfg.domain}/key.pem}%";
};
storage = {
data = "db";
fts = "db";
block = "db";
lookup = "db";
directory = "internal";
};
directory."internal" = {
type = "internal";
store = "db";
};
tracer."stdout" = {
type = "stdout";
level = "info";
ansi = false;
enable = true;
};
session.rcpt = {
directory = "'internal'";
};
spam-filter = {
score.spam = "10.0";
};
};
};
}

View file

@ -1,22 +0,0 @@
{
runCommand,
akkoma-fe,
xorg,
jq,
}:
runCommand "akkoma_fe" {
nativeBuildInputs = [xorg.lndir jq];
} ''
mkdir $out
lndir ${akkoma-fe} $out
rm $out/static/styles.json
cp ${./styles.json} $out/static/styles.json
rm $out/static/config.json
jq -s add ${akkoma-fe}/static/config.json ${./config.json} > $out/static/config.json
cp ${../../icons/favicon/favicon.png} $out/static/logo.png
cp ${./rosepine.json} $out/static/themes/rosepine.json
''

View file

@ -1,16 +0,0 @@
{stdenvNoCC}:
stdenvNoCC.mkDerivation {
pname = "blobfox";
version = "2020.09.04";
src = ./blobfox;
installPhase = ''
runHook preInstall
mkdir -p $out
cp *.png $out
runHook postInstall
'';
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 353 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 291 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 300 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Some files were not shown because too many files have changed in this diff Show more