Start to cleanup mksystem

This commit is contained in:
2024-11-25 12:18:42 +01:00
parent c8ca9bfabb
commit 4e62dc9f79
12 changed files with 176 additions and 167 deletions

View File

@@ -12,9 +12,6 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
wslu wslu
wsl-open wsl-open
# jetbrains.rider Waiting for https://github.com/NixOS/nixpkgs/pull/284857
# jetbrains.jdk
]; ];
services.flatpak.enable = true; services.flatpak.enable = true;

115
flake.nix
View File

@@ -46,115 +46,52 @@
}; };
outputs = { outputs = {
self,
home-manager,
neovim-nightly,
nixpkgs, nixpkgs,
ghostty, neovim-nightly,
flood,
river-src,
impermanence,
nixos-hardware, nixos-hardware,
nix-index-database,
nix-darwin,
zen,
... ...
} @ inputs: let } @ inputs: let
user = "zoriya"; overlays = {
mkSystem = hostname: de: custom:
nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules =
[
impermanence.nixosModules.impermanence
./modules/cli
(./environments + "/${de}")
{
nixpkgs.overlays = [ nixpkgs.overlays = [
(import ./overlays {inherit flood river-src;}) (import ./overlays inputs)
neovim-nightly.overlays.default neovim-nightly.overlays.default
]; ];
} };
({pkgs, ...}: { mkSystem = import ./lib/mksystem.nix (inputs // {inherit overlays inputs;});
networking.hostName = hostname;
users.users.root.hashedPassword = builtins.readFile ./password/root;
users.users.${user} = {
hashedPassword = builtins.readFile ./password/${user};
isNormalUser = true;
extraGroups = ["wheel" "input" "docker" "audio" "mlocate" "libvirtd"];
shell = pkgs.zsh;
openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDGcLP/ZEjnSgkzQMBeLLOWn5uejSr9Gg1h9PJZECVTLm+VDQ7KyI3ORZt+qbfEnsnGL73iwcAqB5Upy9Cdj0182mnrTk2ZViNMeFT7kLBF0yXpiajQTtMjENYj0nbNWpQ5+sJrtJKKYK/tBghW8PyTrJPpVQcrLcf4D66U5DkkJNRDeu4v9SjHKaASUeyia4gRSVV59Ugtrl0lz8sl4yBSL4957zwzdkNR0pVmftaKmUP4KfBvpNcFOOpHcdvzDtEPQs8j0g2l65YOQNNFSMsYQfxt1X4zmEi4unRIlECglaPz12CyoTiM2xmCWa/mS5nm0dR1VbEHFMRtGbbgm9MwedXoxYAfycbu08fqi1AAvg7MQxDNLfWWBIHe7+imGLKrVkqk8B89I409iI4YiOytnUkxKZkxynqVYtEE0bx5J15mniq2vJTw9JD89qSVkvGjZNGuJgh4leIlxPGj4iP8KY3N3Ifaf72PsmmwW4rB5JPDW93RL1DZV8lk3NgyF8M= zoriya@fuhen" # laptop
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCpQ8Td98YIS0EtVQ7xabYVe9A9/+ZECrHBpKi01NKQ0Mleg9Z4fnTsdGFX1uhbG6Pu7niBVzYReVTC1CbyVWKmm/4DbbRpaqY94eOzQEe0p4wMSURQ9weuB5737k+5MuLDLUbhc1ytDa84Ubj/A/rQUueKdq2K1o+YSN7b7HKe7kXoXACEpbrSCC43mteBgCtvgsLY0New9xXnvGFJPSe7PcjYkOhSJB1xA0Gu4DoDdOyErvV62QQH4sSQMu5cFICJGfdXQzBdshA8MgWKXFv3Hq7K5/GGDNyCsMxeoPQET3vbmgUsE+KGtcdqizdFM3bAfCBGXOBx6h7BoNuQzkp8hgmrq62CmMwF0krX05Sb3qR/wVjRKDo9pYuSk6/awnnBp5kY6sNgEruI93ZXNQWMkxXQNbmpCi+uEvzMveP16O/uP3NxklD4wtmfpSZsxBi+jRGFqcjdy3Qlc13Tiz98EBaXkir9YwUAh8SNs3gRaJGI0Fn2HzUCPH0zNh42EY8= zoriya@kadan" # server
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCnPn6ga4tsJfdyGyft9RnJJmSvlGLn/rJuLsWwFHtxHwdcOolZEAn2zrLqOo1Fty44lrWJ62KLOJ+eZVt4rfREBWd+esttTY2BbhrjvRThKsst1RJdWjFXI3xny7v48mMG8PKjTCkXom2Y/wfLKRpeaNJyCgauUNdDFXuiwiMmIEGXN/WE6LfWBg2XbPWilMLEVm6pwXf3lGtaS0QxhIQ/OIdx5XfUKS6lUfRq9Ki6FbsSQ60ejRtKmjbqY93KNQPUBAJnJHgDDX2+pkrSKiNHBjFH5/HZJTSRdpumaqO0E+HZRSEbR/aKRvshUN0SO/59pvrqb1ARF6CG2X0k0A+jTag0N7SyLwHEJ8J/bl43zm0JWenfAPMuhzQqAv3Vw4i13u8mgHf+ng7ClDo1ms5K7e/XXZV7Asb6orkuslZCO2QR3WgfmbUU03r89aG7Eg58ZeGMP57CoEcMAVah20to4iPm5HPy/Ej0JznFXXjRW4z+/DZDvWhFtsjIkalqQCU= u0_a369@localhost" # android
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDJ/c2rQ9xUI6XpDR/+dmCK5IcxkOIezvNtbC2EVTrfh73H5juotME6JrQSxgQjtgsaUAzZzrac9kI/7Do8/lisbofdKRcneXi2UEeERKrKEwC/EGcQgqnoPLL1+mnqwvQ923d3105DV4hFksoDbblCinFuUr5s55EMm991IL/T70cy820AOgAf+hgleM1Its47EBkZBzpa4KwxYepJG0+kBa7K1Loi9QgBvTGpxs7rWMDxllfL6ivrWJxAKRZdWlJ/MKBVQIYhv0W+vaQ7OZA1qUY4bq/9wY/i88nixbVSPJmikj0+QNeLksU78bOIxLpTTeLdH4HQ6+qKOBT3JhEpBtUHdBxOT5tYJTr4qwjevlFqceLw3x1V9URxPS2XBDjlxnzYzdnD40LK5BehXdmElGio9dy98/qJINbDW/7AH+BpP1GWNKVhiYXPj7A/2fkFD2K7DgIgGlsrZthS+LxDTEcQ8Yx0iD/+nI8LcnvU42S0muSvmP7LE4xBl8AoaI0= zoriya@nixos" # lucca windows
];
};
})
./hosts/${hostname}/hardware-configuration.nix
home-manager.nixosModules.home-manager
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {inherit inputs;};
users.${user} = {
imports = [
./modules/cli/home.nix
(./environments + "/${de}/home.nix")
nix-index-database.hmModules.nix-index
];
};
};
}
]
++ custom;
};
in { in {
nixosConfigurations = { nixosConfigurations.fuhen = mkSystem "fuhen" {
fuhen = mkSystem "fuhen" "river" [ env = "river";
custom = [
nixos-hardware.nixosModules.tuxedo-infinitybook-pro14-gen7 nixos-hardware.nixosModules.tuxedo-infinitybook-pro14-gen7
]; ];
};
saikai = mkSystem "saikai" "server" []; nixosConfigurations.saikai = mkSystem "saikai" {
env = "server";
};
kadan = mkSystem "kadan" "server" [ nixosConfigurations.kadan = mkSystem "kadan" {
env = "server";
custom = [
({pkgs, ...}: { ({pkgs, ...}: {
environment.systemPackages = with pkgs; [python3Packages.guessit mediainfo yt-dlp]; environment.systemPackages = with pkgs; [python3Packages.guessit mediainfo yt-dlp];
}) })
]; ];
lucca = mkSystem "lucca" "wsl" [];
}; };
darwinConfigurations."zroux-mac" = nix-darwin.lib.darwinSystem { nixosConfigurations.lucca = mkSystem "lucca" {
specialArgs = {inherit inputs;}; env = "wsl";
modules = [ wsl = true;
./modules/cli/darwin.nix };
home-manager.darwinModules.home-manager
{ darwinConfigurations."zroux-mac" = mkSystem "zroux-mac" {
nixpkgs.hostPlatform = "aarch64-darwin"; env = "none";
system.stateVersion = 5; user = "zroux";
} system = "aarch64-darwin";
{ darwin = true;
users.users.zroux.home = "/Users/zroux"; customHome = [
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {inherit inputs;};
users.zroux = {
imports = [
./modules/cli/home.nix
./modules/gui/ghostty.nix ./modules/gui/ghostty.nix
nix-index-database.hmModules.nix-index
];
};
};
}
]; ];
}; };
}; };

View File

@@ -36,10 +36,12 @@
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [{ swapDevices = [
{
device = "/nix/persist/var/cache/swapfile"; device = "/nix/persist/var/cache/swapfile";
size = 64 * 1024; size = 64 * 1024;
}]; }
];
# 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
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's

View File

@@ -1,9 +1,4 @@
# Do not modify this file! It was generated by nixos-generate-config {lib, ...}: {
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ lib, ... }:
{
imports = []; imports = [];
boot.initrd.availableKernelModules = ["virtio_pci"]; boot.initrd.availableKernelModules = ["virtio_pci"];
@@ -13,55 +8,55 @@
boot.loader.systemd-boot.enable = lib.mkForce false; boot.loader.systemd-boot.enable = lib.mkForce false;
fileSystems."/mnt/wsl" = fileSystems."/mnt/wsl" = {
{ device = "none"; device = "none";
fsType = "tmpfs"; fsType = "tmpfs";
}; };
fileSystems."/usr/lib/wsl/drivers" = fileSystems."/usr/lib/wsl/drivers" = {
{ device = "none"; device = "none";
fsType = "9p"; fsType = "9p";
}; };
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/3d4637c7-738d-4b8b-874d-1bac3a208ad5"; device = "/dev/disk/by-uuid/3d4637c7-738d-4b8b-874d-1bac3a208ad5";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/mnt/wslg" = fileSystems."/mnt/wslg" = {
{ device = "none"; device = "none";
fsType = "tmpfs"; fsType = "tmpfs";
}; };
fileSystems."/mnt/wslg/distro" = fileSystems."/mnt/wslg/distro" = {
{ device = "none"; device = "none";
fsType = "none"; fsType = "none";
options = ["bind"]; options = ["bind"];
}; };
fileSystems."/usr/lib/wsl/lib" = fileSystems."/usr/lib/wsl/lib" = {
{ device = "none"; device = "none";
fsType = "overlay"; fsType = "overlay";
}; };
fileSystems."/mnt/wslg/doc" = fileSystems."/mnt/wslg/doc" = {
{ device = "none"; device = "none";
fsType = "overlay"; fsType = "overlay";
}; };
fileSystems."/mnt/wslg/.X11-unix" = fileSystems."/mnt/wslg/.X11-unix" = {
{ device = "/mnt/wslg/.X11-unix"; device = "/mnt/wslg/.X11-unix";
fsType = "none"; fsType = "none";
options = ["bind"]; options = ["bind"];
}; };
fileSystems."/mnt/c" = fileSystems."/mnt/c" = {
{ device = "drvfs"; device = "drvfs";
fsType = "9p"; fsType = "9p";
}; };
swapDevices = swapDevices = [
[ { device = "/dev/disk/by-uuid/a892733e-b1ef-4bf6-be4c-270ce67c4c5b"; } {device = "/dev/disk/by-uuid/a892733e-b1ef-4bf6-be4c-270ce67c4c5b";}
]; ];
# 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

3
hosts/zroux/default.nix Normal file
View File

@@ -0,0 +1,3 @@
{
system.stateVersion = 5;
}

78
lib/mksystem.nix Normal file
View File

@@ -0,0 +1,78 @@
{
nixpkgs,
overlays,
...
} @ inputs: hostname: {
env,
user ? "zoriya",
system ? "x86_64-linux",
wsl ? false,
darwin ? false,
custom ? [],
}: let
systemFunc =
if darwin
then inputs.darwin.lib.darwinSystem
else nixpkgs.lib.nixosSystem;
home-manager =
if darwin
then inputs.home-manager.darwinModules
else inputs.home-manager.nixosModules;
cli =
if darwin
then ../modules/cli/darwin.nix
else ../modules/cli;
in
systemFunc {
inherit system;
specialArgs = inputs;
modules =
[
overlays
inputs.impermanence.nixosModules.impermanence
cli
(../environments + "/${env}")
({pkgs, ...}: {
networking.hostName = hostname;
users.users.root.hashedPassword = builtins.readFile ../password/root;
users.users.${user} = {
home =
if darwin
then "/Users/${user}"
else "/home/${user}";
hashedPassword = builtins.readFile ../password/${user};
isNormalUser = true;
extraGroups = ["wheel" "input" "docker" "audio" "mlocate" "libvirtd"];
shell = pkgs.zsh;
openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDGcLP/ZEjnSgkzQMBeLLOWn5uejSr9Gg1h9PJZECVTLm+VDQ7KyI3ORZt+qbfEnsnGL73iwcAqB5Upy9Cdj0182mnrTk2ZViNMeFT7kLBF0yXpiajQTtMjENYj0nbNWpQ5+sJrtJKKYK/tBghW8PyTrJPpVQcrLcf4D66U5DkkJNRDeu4v9SjHKaASUeyia4gRSVV59Ugtrl0lz8sl4yBSL4957zwzdkNR0pVmftaKmUP4KfBvpNcFOOpHcdvzDtEPQs8j0g2l65YOQNNFSMsYQfxt1X4zmEi4unRIlECglaPz12CyoTiM2xmCWa/mS5nm0dR1VbEHFMRtGbbgm9MwedXoxYAfycbu08fqi1AAvg7MQxDNLfWWBIHe7+imGLKrVkqk8B89I409iI4YiOytnUkxKZkxynqVYtEE0bx5J15mniq2vJTw9JD89qSVkvGjZNGuJgh4leIlxPGj4iP8KY3N3Ifaf72PsmmwW4rB5JPDW93RL1DZV8lk3NgyF8M= zoriya@fuhen" # laptop
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCpQ8Td98YIS0EtVQ7xabYVe9A9/+ZECrHBpKi01NKQ0Mleg9Z4fnTsdGFX1uhbG6Pu7niBVzYReVTC1CbyVWKmm/4DbbRpaqY94eOzQEe0p4wMSURQ9weuB5737k+5MuLDLUbhc1ytDa84Ubj/A/rQUueKdq2K1o+YSN7b7HKe7kXoXACEpbrSCC43mteBgCtvgsLY0New9xXnvGFJPSe7PcjYkOhSJB1xA0Gu4DoDdOyErvV62QQH4sSQMu5cFICJGfdXQzBdshA8MgWKXFv3Hq7K5/GGDNyCsMxeoPQET3vbmgUsE+KGtcdqizdFM3bAfCBGXOBx6h7BoNuQzkp8hgmrq62CmMwF0krX05Sb3qR/wVjRKDo9pYuSk6/awnnBp5kY6sNgEruI93ZXNQWMkxXQNbmpCi+uEvzMveP16O/uP3NxklD4wtmfpSZsxBi+jRGFqcjdy3Qlc13Tiz98EBaXkir9YwUAh8SNs3gRaJGI0Fn2HzUCPH0zNh42EY8= zoriya@kadan" # server
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCnPn6ga4tsJfdyGyft9RnJJmSvlGLn/rJuLsWwFHtxHwdcOolZEAn2zrLqOo1Fty44lrWJ62KLOJ+eZVt4rfREBWd+esttTY2BbhrjvRThKsst1RJdWjFXI3xny7v48mMG8PKjTCkXom2Y/wfLKRpeaNJyCgauUNdDFXuiwiMmIEGXN/WE6LfWBg2XbPWilMLEVm6pwXf3lGtaS0QxhIQ/OIdx5XfUKS6lUfRq9Ki6FbsSQ60ejRtKmjbqY93KNQPUBAJnJHgDDX2+pkrSKiNHBjFH5/HZJTSRdpumaqO0E+HZRSEbR/aKRvshUN0SO/59pvrqb1ARF6CG2X0k0A+jTag0N7SyLwHEJ8J/bl43zm0JWenfAPMuhzQqAv3Vw4i13u8mgHf+ng7ClDo1ms5K7e/XXZV7Asb6orkuslZCO2QR3WgfmbUU03r89aG7Eg58ZeGMP57CoEcMAVah20to4iPm5HPy/Ej0JznFXXjRW4z+/DZDvWhFtsjIkalqQCU= u0_a369@localhost" # android
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDJ/c2rQ9xUI6XpDR/+dmCK5IcxkOIezvNtbC2EVTrfh73H5juotME6JrQSxgQjtgsaUAzZzrac9kI/7Do8/lisbofdKRcneXi2UEeERKrKEwC/EGcQgqnoPLL1+mnqwvQ923d3105DV4hFksoDbblCinFuUr5s55EMm991IL/T70cy820AOgAf+hgleM1Its47EBkZBzpa4KwxYepJG0+kBa7K1Loi9QgBvTGpxs7rWMDxllfL6ivrWJxAKRZdWlJ/MKBVQIYhv0W+vaQ7OZA1qUY4bq/9wY/i88nixbVSPJmikj0+QNeLksU78bOIxLpTTeLdH4HQ6+qKOBT3JhEpBtUHdBxOT5tYJTr4qwjevlFqceLw3x1V9URxPS2XBDjlxnzYzdnD40LK5BehXdmElGio9dy98/qJINbDW/7AH+BpP1GWNKVhiYXPj7A/2fkFD2K7DgIgGlsrZthS+LxDTEcQ8Yx0iD/+nI8LcnvU42S0muSvmP7LE4xBl8AoaI0= zoriya@nixos" # lucca windows
];
};
})
../hosts/${hostname}/hardware-configuration.nix
home-manager.home-manager
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = inputs;
users.${user} = {
imports = [
../modules/cli/home.nix
(../environments + "/${env}/home.nix")
inputs.nix-index-database.hmModules.nix-index
];
};
};
}
]
++ custom;
}

View File

@@ -69,8 +69,4 @@
info.enable = true; info.enable = true;
nixos.enable = true; nixos.enable = true;
}; };
# boot.kernelPackages = pkgs.linuxPackages_latest;
# This was needed on older versions of the kernel.
#boot.kernelParams = ["i915.force_probe=46a6" "i915.enable_psr=0"];
} }

View File

@@ -1,13 +1,13 @@
{ {
pkgs, pkgs,
config, config,
inputs, neovim-nightly,
... ...
}: { }: {
programs.neovim = { programs.neovim = {
enable = true; enable = true;
withNodeJs = true; withNodeJs = true;
package = inputs.neovim-nightly.packages.${pkgs.system}.default; package = neovim-nightly.packages.${pkgs.system}.default;
extraPackages = with pkgs; [ extraPackages = with pkgs; [
gcc gcc
tree-sitter tree-sitter

View File

@@ -1,7 +1,7 @@
{ {
config, config,
pkgs, pkgs,
inputs, zen,
... ...
}: let }: let
# When editing this, don't forget to edit home.sessionVariables. # When editing this, don't forget to edit home.sessionVariables.
@@ -19,7 +19,7 @@ in {
home.packages = with pkgs; [ home.packages = with pkgs; [
google-chrome google-chrome
firefox firefox
(import inputs.zen { system = "x86_64-linux"; }).zen-browser (import zen {system = "x86_64-linux";}).zen-browser
vesktop vesktop
mpv mpv
xdg-utils xdg-utils

View File

@@ -1,5 +1,5 @@
{inputs, ...}: let {ghostty, ...}: let
pkg = inputs.ghostty.packages.x86_64-linux.default; pkg = ghostty.packages.x86_64-linux.default;
in { in {
xdg.configFile."ghostty/config".source = ./ghostty.config; xdg.configFile."ghostty/config".source = ./ghostty.config;

View File

@@ -1,6 +1,6 @@
{ {
pkgs, pkgs,
inputs, astal,
... ...
}: let }: let
covercolors = pkgs.stdenv.mkDerivation { covercolors = pkgs.stdenv.mkDerivation {
@@ -21,7 +21,7 @@
prev.buildInputs prev.buildInputs
++ [ ++ [
pkgs.libdbusmenu-gtk3 pkgs.libdbusmenu-gtk3
inputs.astal.packages.x86_64-linux.river astal.packages.x86_64-linux.river
]; ];
}); });
in { in {

View File

@@ -1,6 +1,7 @@
{ {
flood, flood,
river-src, river-src,
...
}: self: super: let }: self: super: let
wrapProgram = drv: bins: wrapProgramFlags: wrapProgram = drv: bins: wrapProgramFlags:
super.symlinkJoin { super.symlinkJoin {