gigalint everything
This commit is contained in:
parent
2ce46f1cf5
commit
d4c31f8fd1
39 changed files with 499 additions and 398 deletions
2
.envrc
2
.envrc
|
|
@ -1 +1 @@
|
||||||
use nix
|
use flake
|
||||||
|
|
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1 +1,3 @@
|
||||||
result
|
result
|
||||||
|
.pre-commit-config.yaml
|
||||||
|
.direnv/
|
||||||
|
|
|
||||||
96
flake.lock
generated
96
flake.lock
generated
|
|
@ -3,7 +3,9 @@
|
||||||
"deploy-rs": {
|
"deploy-rs": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -262,7 +264,7 @@
|
||||||
"foundry-nix": {
|
"foundry-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706432964,
|
"lastModified": 1706432964,
|
||||||
|
|
@ -489,18 +491,15 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1702272962,
|
"lastModified": 1705677747,
|
||||||
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
|
"narHash": "sha256-eyM3okYtMgYDgmYukoUzrmuoY4xl4FUujnsv/P6I/zI=",
|
||||||
"owner": "NixOS",
|
"path": "/nix/store/kwd6lmx004rkv2r00vj3fcg5ijfvnagk-source",
|
||||||
"repo": "nixpkgs",
|
"rev": "bbe7d8f876fbbe7c959c90ba2ae2852220573261",
|
||||||
"rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d",
|
"type": "path"
|
||||||
"type": "github"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"id": "nixpkgs",
|
||||||
"ref": "nixpkgs-unstable",
|
"type": "indirect"
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
|
|
@ -536,19 +535,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1705677747,
|
|
||||||
"narHash": "sha256-eyM3okYtMgYDgmYukoUzrmuoY4xl4FUujnsv/P6I/zI=",
|
|
||||||
"path": "/nix/store/kwd6lmx004rkv2r00vj3fcg5ijfvnagk-source",
|
|
||||||
"rev": "bbe7d8f876fbbe7c959c90ba2ae2852220573261",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "nixpkgs",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706191920,
|
"lastModified": 1706191920,
|
||||||
"narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=",
|
"narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=",
|
||||||
|
|
@ -564,22 +550,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1704842529,
|
|
||||||
"narHash": "sha256-OTeQA+F8d/Evad33JMfuXC89VMetQbsU4qcaePchGr4=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "eabe8d3eface69f5bb16c18f8662a702f50c20d5",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nvim": {
|
"nvim": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_4",
|
"flake-utils": "flake-utils_4",
|
||||||
|
|
@ -631,7 +601,9 @@
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_3",
|
||||||
"flake-utils": "flake-utils_5",
|
"flake-utils": "flake-utils_5",
|
||||||
"gitignore": "gitignore",
|
"gitignore": "gitignore",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -655,10 +627,12 @@
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"microvm": "microvm",
|
"microvm": "microvm",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nvim": "nvim",
|
"nvim": "nvim",
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
"tfa": "tfa"
|
"systems": "systems_8",
|
||||||
|
"tfa": "tfa",
|
||||||
|
"treefmt-nix": "treefmt-nix_3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"spectrum": {
|
"spectrum": {
|
||||||
|
|
@ -781,6 +755,20 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_8": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "systems",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
"tfa": {
|
"tfa": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -844,6 +832,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"treefmt-nix_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1706462057,
|
||||||
|
"narHash": "sha256-7dG1D4iqqt0bEbBqUWk6lZiSqqwwAO0Hd1L5opVyhNM=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "c6153c2a3ff4c38d231e3ae99af29b87f1df5901",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
|
|
|
||||||
47
flake.nix
47
flake.nix
|
|
@ -4,8 +4,14 @@
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
deploy-rs.url = "github:serokell/deploy-rs";
|
deploy-rs = {
|
||||||
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
|
url = "github:serokell/deploy-rs";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
pre-commit-hooks = {
|
||||||
|
url = "github:cachix/pre-commit-hooks.nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
@ -23,13 +29,25 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.foundry-nix.url = "github:shazow/foundry.nix";
|
inputs.foundry-nix.url = "github:shazow/foundry.nix";
|
||||||
};
|
};
|
||||||
|
treefmt-nix = {
|
||||||
|
url = "github:numtide/treefmt-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
microvm = {
|
microvm = {
|
||||||
url = "github:astro/microvm.nix";
|
url = "github:astro/microvm.nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
outputs = { self, nixpkgs, home-manager, nixos-hardware, nvim, ethereum-nix, deploy-rs, ... } @inputs:
|
outputs = {
|
||||||
let
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
home-manager,
|
||||||
|
nvim,
|
||||||
|
ethereum-nix,
|
||||||
|
deploy-rs,
|
||||||
|
systems,
|
||||||
|
...
|
||||||
|
} @ inputs: let
|
||||||
attrs = {
|
attrs = {
|
||||||
username = "e";
|
username = "e";
|
||||||
};
|
};
|
||||||
|
|
@ -38,19 +56,17 @@
|
||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
overlays = [
|
overlays = [
|
||||||
(final: prev: {
|
(final: _prev: {
|
||||||
inherit (inputs.nvim.packages.${final.system}) full;
|
inherit (inputs.nvim.packages.${final.system}) full;
|
||||||
inherit (inputs.tfa.packages.${final.system}) twofa;
|
inherit (inputs.tfa.packages.${final.system}) twofa;
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
eachSystem = f: nixpkgs.lib.genAttrs (import systems) (system: f nixpkgs.legacyPackages.${system});
|
||||||
|
treefmtEval = eachSystem (pkgs: inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix);
|
||||||
in {
|
in {
|
||||||
nixosConfigurations = (
|
nixosConfigurations = import ./nixos {inherit inputs pkgs attrs system ethereum-nix;};
|
||||||
import ./nixos { inherit inputs pkgs attrs system ethereum-nix; }
|
homeConfigurations = import ./home-manager {inherit inputs pkgs attrs;};
|
||||||
);
|
|
||||||
homeConfigurations = (
|
|
||||||
import ./home-manager { inherit inputs pkgs attrs; }
|
|
||||||
);
|
|
||||||
deploy.nodes = {
|
deploy.nodes = {
|
||||||
htz = {
|
htz = {
|
||||||
hostname = "htz";
|
hostname = "htz";
|
||||||
|
|
@ -74,14 +90,11 @@
|
||||||
checks = {
|
checks = {
|
||||||
pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run {
|
pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run {
|
||||||
src = ./.;
|
src = ./.;
|
||||||
hooks = {
|
hooks.treefmt.enable = true;
|
||||||
typos.enable = true;
|
hooks.treefmt.package = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
|
||||||
alejandra.enable = true;
|
|
||||||
deadnix.enable = true;
|
|
||||||
statix.enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
|
||||||
devShells.${system}.default = pkgs.mkShell {
|
devShells.${system}.default = pkgs.mkShell {
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
pkgs.nix
|
pkgs.nix
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,16 @@
|
||||||
{ inputs, pkgs, attrs, ...}:
|
|
||||||
{
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
attrs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
"e" = inputs.home-manager.lib.homeManagerConfiguration {
|
"e" = inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit inputs attrs;
|
inherit inputs attrs;
|
||||||
host = {
|
host = {
|
||||||
hostName = "t14";
|
hostName = "t14";
|
||||||
username = attrs.username;
|
inherit (attrs) username;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
|
|
@ -20,7 +24,7 @@
|
||||||
inherit inputs attrs;
|
inherit inputs attrs;
|
||||||
host = {
|
host = {
|
||||||
hostName = "e";
|
hostName = "e";
|
||||||
username = attrs.username;
|
inherit (attrs) username;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
|
|
@ -28,4 +32,3 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ inputs, ... }:
|
{inputs, ...}: {
|
||||||
{
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
nix = {
|
nix = {
|
||||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
twofa
|
twofa
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ home-manager, config, lib, pkgs, ... }:
|
{...}: {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./dev
|
./dev
|
||||||
./nvim
|
./nvim
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
ripgrep
|
ripgrep
|
||||||
k9s
|
k9s
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ home-manager, config, lib, pkgs, ... }:
|
{...}: {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./shell
|
./shell
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ...}:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
full
|
full
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ host, ... }:
|
{host, ...}: {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./tmux.nix
|
./tmux.nix
|
||||||
./git.nix
|
./git.nix
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ ... }:
|
_: {
|
||||||
{
|
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ ... }:
|
_: {
|
||||||
{
|
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userEmail = "cjriddz@protonmail.com";
|
userEmail = "cjriddz@protonmail.com";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ ... }:
|
_: {
|
||||||
{
|
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
enable = true;
|
enable = true;
|
||||||
keyMode = "vi";
|
keyMode = "vi";
|
||||||
|
|
@ -18,5 +17,4 @@
|
||||||
setw -g window-status-current-format '[#P:#W*] '
|
setw -g window-status-current-format '[#P:#W*] '
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
{ pkgs, config, ... }:
|
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
programs.taskwarrior = {
|
programs.taskwarrior = {
|
||||||
enable = true;
|
enable = true;
|
||||||
colorTheme = "solarized-dark-256";
|
colorTheme = "solarized-dark-256";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ ... }:
|
_: {
|
||||||
{
|
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
@ -78,7 +77,6 @@
|
||||||
action = "ScrollPageDown";
|
action = "ScrollPageDown";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
pulseaudio
|
pulseaudio
|
||||||
pulsemixer
|
pulsemixer
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ home-manager, config, lib, pkgs, ... }:
|
{...}: {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./librewolf
|
./librewolf
|
||||||
./alacritty
|
./alacritty
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
{ pkgs, ... }:
|
_: {
|
||||||
{
|
|
||||||
programs.librewolf.enable = true;
|
programs.librewolf.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
autotiling-rs
|
autotiling-rs
|
||||||
|
|
@ -65,8 +69,9 @@
|
||||||
};
|
};
|
||||||
modifier = "Mod4";
|
modifier = "Mod4";
|
||||||
keybindings = let
|
keybindings = let
|
||||||
modifier = config.wayland.windowManager.sway.config.modifier;
|
inherit (config.wayland.windowManager.sway.config) modifier;
|
||||||
in lib.mkOptionDefault {
|
in
|
||||||
|
lib.mkOptionDefault {
|
||||||
Prior = "nop";
|
Prior = "nop";
|
||||||
Next = "nop";
|
Next = "nop";
|
||||||
"${modifier}+x" = "kill";
|
"${modifier}+x" = "kill";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
xdg-utils
|
xdg-utils
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,14 @@
|
||||||
{ pkgs, attrs, ... }:
|
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
|
attrs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
../shared/programs/default.nix
|
../shared/programs/default.nix
|
||||||
../shared/wayland/default.nix
|
../shared/wayland/default.nix
|
||||||
];
|
];
|
||||||
home = {
|
home = {
|
||||||
username = attrs.username;
|
inherit (attrs) username;
|
||||||
homeDirectory = "/home/" + attrs.username;
|
homeDirectory = "/home/" + attrs.username;
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
# gaming
|
# gaming
|
||||||
|
|
@ -26,7 +29,6 @@
|
||||||
# sysutils
|
# sysutils
|
||||||
appimage-run
|
appimage-run
|
||||||
wireguard-tools
|
wireguard-tools
|
||||||
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ host, ... }:
|
{host, ...}: {
|
||||||
{
|
|
||||||
users.groups.plugdev = {}; # Create plugdev group
|
users.groups.plugdev = {}; # Create plugdev group
|
||||||
networking.hostName = host.hostName;
|
networking.hostName = host.hostName;
|
||||||
users.users.${host.username} = {
|
users.users.${host.username} = {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,16 @@
|
||||||
{ inputs, pkgs, attrs, system, ... }: {
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
attrs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
t14 = inputs.nixpkgs.lib.nixosSystem {
|
t14 = inputs.nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit inputs system pkgs;
|
inherit inputs system pkgs;
|
||||||
host = {
|
host = {
|
||||||
hostName = "t14";
|
hostName = "t14";
|
||||||
username = attrs.username;
|
inherit (attrs) username;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
|
|
@ -18,7 +24,7 @@
|
||||||
inherit inputs system pkgs;
|
inherit inputs system pkgs;
|
||||||
host = {
|
host = {
|
||||||
hostName = "rknrd";
|
hostName = "rknrd";
|
||||||
username = attrs.username;
|
inherit (attrs) username;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
|
|
@ -38,7 +44,7 @@
|
||||||
};
|
};
|
||||||
host = {
|
host = {
|
||||||
hostName = "htz";
|
hostName = "htz";
|
||||||
username = attrs.username;
|
inherit (attrs) username;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
{ pkgs, addressList, ... }: {
|
{
|
||||||
|
pkgs,
|
||||||
|
addressList,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./vms
|
./vms
|
||||||
|
|
@ -18,11 +22,13 @@
|
||||||
};
|
};
|
||||||
nat = {
|
nat = {
|
||||||
enable = true;
|
enable = true;
|
||||||
forwardPorts = [ {
|
forwardPorts = [
|
||||||
|
{
|
||||||
proto = "tcp";
|
proto = "tcp";
|
||||||
sourcePort = 80;
|
sourcePort = 80;
|
||||||
destination = addressList.vm-test.ipv4;
|
destination = addressList.vm-test.ipv4;
|
||||||
} ];
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
{ system, ethereum-nix, ...}: {
|
{
|
||||||
|
system,
|
||||||
|
ethereum-nix,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
services.ethereum.geth.mainnet = {
|
services.ethereum.geth.mainnet = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = ethereum-nix.packages.${system}.geth;
|
package = ethereum-nix.packages.${system}.geth;
|
||||||
|
|
@ -67,5 +71,4 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
{ modulesPath, lib, ... }:
|
|
||||||
{
|
{
|
||||||
|
modulesPath,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
boot = {
|
boot = {
|
||||||
|
|
@ -27,9 +30,11 @@
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
swapDevices = [{
|
swapDevices = [
|
||||||
|
{
|
||||||
device = "/dev/dm-1";
|
device = "/dev/dm-1";
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
zramSwap.enable = false;
|
zramSwap.enable = false;
|
||||||
networking = {
|
networking = {
|
||||||
useNetworkd = true;
|
useNetworkd = true;
|
||||||
|
|
@ -54,9 +59,11 @@
|
||||||
DHCPServer = true;
|
DHCPServer = true;
|
||||||
IPv6SendRA = true;
|
IPv6SendRA = true;
|
||||||
};
|
};
|
||||||
addresses = [ {
|
addresses = [
|
||||||
|
{
|
||||||
addressConfig.Address = "10.0.0.1/24";
|
addressConfig.Address = "10.0.0.1/24";
|
||||||
} ];
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
"11-microvm" = {
|
"11-microvm" = {
|
||||||
matchConfig.Name = "vm-*";
|
matchConfig.Name = "vm-*";
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,38 @@
|
||||||
{ lib, pkgs, addressList, ... }:
|
{
|
||||||
let genVMConfig = { name, config ? {}, ro-store ? true }: {
|
lib,
|
||||||
|
pkgs,
|
||||||
|
addressList,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
genVMConfig = {
|
||||||
|
name,
|
||||||
|
config ? {},
|
||||||
|
ro-store ? true,
|
||||||
|
}: {
|
||||||
restartIfChanged = true;
|
restartIfChanged = true;
|
||||||
pkgs = pkgs;
|
inherit pkgs;
|
||||||
config = config // {
|
config =
|
||||||
|
config
|
||||||
|
// {
|
||||||
microvm = {
|
microvm = {
|
||||||
shares = lib.mkIf (ro-store == true) [{
|
shares = lib.mkIf ro-store [
|
||||||
|
{
|
||||||
source = "/nix/store";
|
source = "/nix/store";
|
||||||
mountPoint = "/nix/.ro-store";
|
mountPoint = "/nix/.ro-store";
|
||||||
tag = "ro-store";
|
tag = "ro-store";
|
||||||
proto = "virtiofs";
|
proto = "virtiofs";
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
interfaces = [
|
interfaces = [
|
||||||
{
|
{
|
||||||
type = "tap";
|
type = "tap";
|
||||||
id = name;
|
id = name;
|
||||||
mac = addressList.${name}.mac;
|
inherit (addressList.${name}) mac;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
} // import ./vmDefaults.nix { inherit name addressList; };
|
}
|
||||||
|
// import ./vmDefaults.nix {inherit name addressList;};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
microvm.vms = {
|
microvm.vms = {
|
||||||
|
|
|
||||||
27
nixos/htz/vms/headscale.nix
Normal file
27
nixos/htz/vms/headscale.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
{config, ...}: let
|
||||||
|
domain = "ts.10110110.xyz";
|
||||||
|
in {
|
||||||
|
services = {
|
||||||
|
headscale = {
|
||||||
|
enable = true;
|
||||||
|
address = "0.0.0.0";
|
||||||
|
port = 8080;
|
||||||
|
serverUrl = "https://${domain}";
|
||||||
|
dns = {baseDomain = "10110110.xyz";};
|
||||||
|
settings = {logtail.enabled = false;};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
virtualHosts.${domain} = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://localhost:${toString config.services.headscale.port}";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }: {
|
_: {
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
allowedTCPPorts = [80];
|
allowedTCPPorts = [80];
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
{ name, addressList, ...}: {
|
{
|
||||||
|
name,
|
||||||
|
addressList,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
systemd.network = {
|
systemd.network = {
|
||||||
enable = true;
|
enable = true;
|
||||||
networks."20-lan" = {
|
networks."20-lan" = {
|
||||||
|
|
@ -27,7 +31,8 @@
|
||||||
root = {
|
root = {
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIItTJm2iu/5xacOoh4/JAvMtHE62duDlVVXpvVP+uQMR root@htz''
|
''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIItTJm2iu/5xacOoh4/JAvMtHE62duDlVVXpvVP+uQMR root@htz''
|
||||||
''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILU2TUxKyGKoZ68IG4hw23RmxVf72u5K9W0StkgTr0b2 e@t14'' ];
|
''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILU2TUxKyGKoZ68IG4hw23RmxVf72u5K9W0StkgTr0b2 e@t14''
|
||||||
|
];
|
||||||
};
|
};
|
||||||
e = {
|
e = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
{ inputs, pkgs, system, ... }: {
|
{
|
||||||
|
pkgs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./minecraft.nix
|
./minecraft.nix
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,16 @@
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
{
|
{
|
||||||
|
lib,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
boot.loader.grub.device = "/dev/vda";
|
boot.loader.grub.device = "/dev/vda";
|
||||||
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi"];
|
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi"];
|
||||||
boot.initrd.kernelModules = ["nvme"];
|
boot.initrd.kernelModules = ["nvme"];
|
||||||
fileSystems."/" = { device = "/dev/vda1"; fsType = "ext4"; };
|
fileSystems."/" = {
|
||||||
|
device = "/dev/vda1";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
swapDevices = [{device = "/dev/vda2";}];
|
swapDevices = [{device = "/dev/vda2";}];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,5 +16,4 @@
|
||||||
k359 = "a5ccc07c-144d-4dd0-b07c-48c4d5302b58";
|
k359 = "a5ccc07c-144d-4dd0-b07c-48c4d5302b58";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
imports = [
|
||||||
imports =
|
|
||||||
[
|
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./nano.nix
|
./nano.nix
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,14 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
config,
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
lib,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = ["nvme" "ehci_pci" "xhci_pci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
|
boot.initrd.availableKernelModules = ["nvme" "ehci_pci" "xhci_pci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
|
||||||
|
|
@ -13,13 +16,13 @@
|
||||||
boot.kernelModules = ["kvm-amd"];
|
boot.kernelModules = ["kvm-amd"];
|
||||||
boot.extraModulePackages = [];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/f56e8356-3915-4ff8-957c-de7f9a72b326";
|
device = "/dev/disk/by-uuid/f56e8356-3915-4ff8-957c-de7f9a72b326";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{ device = "/dev/disk/by-uuid/346A-5AF5";
|
device = "/dev/disk/by-uuid/346A-5AF5";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ ... }:
|
_: {
|
||||||
{
|
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="1b7c", MODE="0660", TAG+="uaccess", TAG+="udev-acl"
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="1b7c", MODE="0660", TAG+="uaccess", TAG+="udev-acl"
|
||||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="2b7c", MODE="0660", TAG+="uaccess", TAG+="udev-acl"
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="2b7c", MODE="0660", TAG+="uaccess", TAG+="udev-acl"
|
||||||
|
|
|
||||||
6
treefmt.nix
Normal file
6
treefmt.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
_: {
|
||||||
|
projectRootFile = "flake.nix";
|
||||||
|
programs.alejandra.enable = true;
|
||||||
|
programs.deadnix.enable = true;
|
||||||
|
programs.statix.enable = true;
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue