bunch of sliming down

This commit is contained in:
RingOfStorms (Joshua Bell) 2025-03-18 18:01:46 -05:00
parent aacf05e59d
commit 8b2a1b1f4f
21 changed files with 992 additions and 810 deletions

View file

@ -1,5 +1,7 @@
{ {
pkgs, pkgs,
lib,
config,
... ...
}: }:
let let
@ -14,9 +16,27 @@ let
pkgs.nerd-fonts.jetbrains-mono pkgs.nerd-fonts.jetbrains-mono
else else
(pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; }); (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; });
ccfg = import ../config.nix;
cfg_path = [
ccfg.custom_config_key
"general"
];
cfg = lib.attrsets.getAttrFromPath cfg_path config;
in in
{ {
config = { options =
{ }
// lib.attrsets.setAttrByPath cfg_path {
jetbrainsMonoFont = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Enable jetbrains mono font";
};
};
config = lib.mkIf cfg.jetbrainsMonoFont {
fonts.packages = [ jetbrainsMonoFont ]; fonts.packages = [ jetbrainsMonoFont ];
}; };
} }

View file

@ -24,8 +24,6 @@ with lib;
killall killall
hdparm hdparm
speedtest-cli speedtest-cli
ffmpeg-full
appimage-run
]; ];
environment.shellAliases = { environment.shellAliases = {

View file

@ -1,11 +1,28 @@
{ {
lib, lib,
pkgs, pkgs,
config,
... ...
}: }:
with lib; let
ccfg = import ../config.nix;
cfg_path = [
ccfg.custom_config_key
"general"
];
cfg = lib.attrsets.getAttrFromPath cfg_path config;
in
{ {
config = { options =
{ }
// lib.attrsets.setAttrByPath cfg_path {
ttyCapsEscape = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Enable caps for escape key";
};
};
config = lib.mkIf cfg.ttyCapsEscape {
services.xserver.xkb.options = "caps:escape"; services.xserver.xkb.options = "caps:escape";
console = { console = {
earlySetup = true; earlySetup = true;

View file

@ -1,17 +1,29 @@
{ {
config, config,
ragenix, ragenix,
lib,
pkgs, pkgs,
... ...
}: }:
let let
ccfg = import ../config.nix; ccfg = import ../config.nix;
cfg_path = [
ccfg.custom_config_key
"secrets"
];
cfg = lib.attrsets.getAttrFromPath cfg_path config;
users_cfg = config.${ccfg.custom_config_key}.users; users_cfg = config.${ccfg.custom_config_key}.users;
in in
# TODO auto import secret files here # TODO auto import secret files here
# secretsFile = (settings.secretsDir + /secrets.nix); # secretsFile = (settings.secretsDir + /secrets.nix);
{ {
options =
{ }
// lib.attrsets.setAttrByPath cfg_path {
enable = lib.mkEnableOption "secrets";
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ environment.systemPackages = [
ragenix.packages.${pkgs.system}.default ragenix.packages.${pkgs.system}.default
pkgs.rage pkgs.rage
@ -88,4 +100,5 @@ in
}; };
}; };
}; };
};
} }

View file

@ -41,6 +41,7 @@
systemName = configuration_name; systemName = configuration_name;
boot.systemd.enable = true; boot.systemd.enable = true;
desktopEnvironment.gnome.enable = true; desktopEnvironment.gnome.enable = true;
secrets.enable = true;
programs = { programs = {
qFlipper.enable = true; qFlipper.enable = true;
rustDev.enable = true; rustDev.enable = true;

View file

@ -43,6 +43,7 @@
general = { general = {
disableRemoteBuildsOnLio = true; disableRemoteBuildsOnLio = true;
}; };
secrets.enable = true;
desktopEnvironment.gnome.enable = true; desktopEnvironment.gnome.enable = true;
programs = { programs = {
rustDev.enable = true; rustDev.enable = true;

View file

@ -1,9 +1,93 @@
{ {
"nodes": { "nodes": {
"agenix": {
"inputs": {
"darwin": "darwin",
"home-manager": "home-manager_2",
"nixpkgs": [
"common",
"ragenix",
"nixpkgs"
],
"systems": "systems"
},
"locked": {
"lastModified": 1736955230,
"narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
"owner": "ryantm",
"repo": "agenix",
"rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
"type": "github"
},
"original": {
"owner": "ryantm",
"repo": "agenix",
"type": "github"
}
},
"common": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs_2",
"ragenix": "ragenix"
},
"locked": {
"lastModified": 1742335106,
"narHash": "sha256-NmpZH5jNuJqfx6ty+Ttnyig22R4Pfwb7iUtbujjQgYk=",
"ref": "refs/heads/master",
"rev": "aacf05e59d89836103e75345640d7b82481363c0",
"revCount": 366,
"type": "git",
"url": "https://git.joshuabell.xyz/dotfiles"
},
"original": {
"type": "git",
"url": "https://git.joshuabell.xyz/dotfiles"
}
},
"crane": {
"locked": {
"lastModified": 1741481578,
"narHash": "sha256-JBTSyJFQdO3V8cgcL08VaBUByEU6P5kXbTJN6R0PFQo=",
"owner": "ipetkov",
"repo": "crane",
"rev": "bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
"common",
"ragenix",
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1700795494,
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"deploy-rs": { "deploy-rs": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs_4",
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
@ -36,26 +120,115 @@
"type": "github" "type": "github"
} }
}, },
"mod_common": { "flake-utils": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_2" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1736191002, "lastModified": 1731533236,
"narHash": "sha256-t39PCeJFgIXzniqjUIIFnbv6AE15WyoPTCE3k3Xuyz0=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"ref": "mod_common", "owner": "numtide",
"rev": "ac3c0c2422842edba1887279bddd02b895ec5ed2", "repo": "flake-utils",
"revCount": 4, "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "git", "type": "github"
"url": "https://git.joshuabell.xyz/dotfiles"
}, },
"original": { "original": {
"ref": "mod_common", "owner": "numtide",
"type": "git", "repo": "flake-utils",
"url": "https://git.joshuabell.xyz/dotfiles" "type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1742234739,
"narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=",
"owner": "rycee",
"repo": "home-manager",
"rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59",
"type": "github"
},
"original": {
"owner": "rycee",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"common",
"ragenix",
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1703113217,
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": {
"lastModified": 1731755305,
"narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1742069588,
"narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1741379970,
"narHash": "sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "36fd87baa9083f34f7f5027900b62ee6d09b1f2f",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1702272962, "lastModified": 1702272962,
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=", "narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
@ -71,29 +244,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1739214665, "lastModified": 1742268799,
"narHash": "sha256-26L8VAu3/1YRxS8MHgBOyOM8xALdo6N0I04PgorE7UM=", "narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "64e75cd44acf21c7933d61d7721e812eac1b5a0a",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1736200483,
"narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751", "rev": "da044451c6a70518db5b730fe277b70f494188f1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -103,13 +260,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1737567054, "lastModified": 1742225912,
"narHash": "sha256-LI1z4HET4hgP6iyWehrWRd5luNbUk9zz/GFzqI1iAFo=", "narHash": "sha256-HCD3GrAAJb1jYTEc221DPlBk2VDkBt43hww7DXC1tyc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "bbe8109b528365cf3fd3a93c931dd86d57c3bd5a", "rev": "9df17ad16500057b7b081137ff7af1a8a6a32f6e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -137,11 +294,11 @@
"nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": { "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1734194565, "lastModified": 1742210958,
"narHash": "sha256-IPP5jXIX+05Tb0MEXUu6EjcL/RHgV1qkoXPEdaEfhNM=", "narHash": "sha256-+1dSGYeUpW/EUbP0scgGz48UB5RAPZYIWCglTFyntaU=",
"owner": "CopilotC-Nvim", "owner": "CopilotC-Nvim",
"repo": "CopilotChat.nvim", "repo": "CopilotChat.nvim",
"rev": "2ebe591cff06018e265263e71e1dbc4c5aa8281e", "rev": "62b1249aa4a4fc7afe11c7e647cba0cef743826f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -185,11 +342,11 @@
"nvim_plugin-MeanderingProgrammer/render-markdown.nvim": { "nvim_plugin-MeanderingProgrammer/render-markdown.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737054285, "lastModified": 1742156824,
"narHash": "sha256-7yepeUhhViVJpbj48qg0Z3cCCtGt6bZ90hM/ie+5LqA=", "narHash": "sha256-n+pT7FiQONHhiZQH4BGjERrikGNSFTNciMx92oQGA1c=",
"owner": "MeanderingProgrammer", "owner": "MeanderingProgrammer",
"repo": "render-markdown.nvim", "repo": "render-markdown.nvim",
"rev": "ad055861d17afe058bd835e82292e14a64b51b1d", "rev": "9721ffe230ec90e49c49ee33b5ca44c3fc689214",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -201,11 +358,11 @@
"nvim_plugin-MunifTanjim/nui.nvim": { "nvim_plugin-MunifTanjim/nui.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1733856815, "lastModified": 1741233810,
"narHash": "sha256-6U7E/i5FuNXQy+sF4C5DVxuTPqNKD5wxUgFohpOjm9Q=", "narHash": "sha256-BYTY2ezYuxsneAl/yQbwL1aQvVWKSsN3IVqzTlrBSEU=",
"owner": "MunifTanjim", "owner": "MunifTanjim",
"repo": "nui.nvim", "repo": "nui.nvim",
"rev": "53e907ffe5eedebdca1cd503b00aa8692068ca46", "rev": "8d3bce9764e627b62b07424e0df77f680d47ffdb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -217,11 +374,11 @@
"nvim_plugin-RRethy/vim-illuminate": { "nvim_plugin-RRethy/vim-illuminate": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1715960194, "lastModified": 1740540215,
"narHash": "sha256-DdJzTHxoOv+vjFymETa2MgXpM/qDwvZjpoo1W8OOBj0=", "narHash": "sha256-jSny+5RHgxcsoxWwIaFUZ022dk3mDRKZ7dibvE6I2fE=",
"owner": "RRethy", "owner": "RRethy",
"repo": "vim-illuminate", "repo": "vim-illuminate",
"rev": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa", "rev": "19cb21f513fc2b02f0c66be70107741e837516a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -233,11 +390,11 @@
"nvim_plugin-Saecki/crates.nvim": { "nvim_plugin-Saecki/crates.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1735942265, "lastModified": 1741644182,
"narHash": "sha256-dj7VXlMbS4HvSc+/WMQprtqWzrYrWaCnSEE0ygp/LcI=", "narHash": "sha256-hmUqhAVLBiCUl16+S/hvRxqA/pTXcWejpLtwvqxBPaY=",
"owner": "Saecki", "owner": "Saecki",
"repo": "crates.nvim", "repo": "crates.nvim",
"rev": "bd35b13e94a292ee6e32c351e05ca2202dc9f070", "rev": "403a0abef0e2aec12749a534dc468d6fd50c6741",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -249,11 +406,11 @@
"nvim_plugin-aznhe21/actions-preview.nvim": { "nvim_plugin-aznhe21/actions-preview.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1718540350, "lastModified": 1740589350,
"narHash": "sha256-lYjsv8y1fMuTGpBF/iG7cm/a7tLdh748vJhVsSp/Iz8=", "narHash": "sha256-MP1hohDL2JFembwW+cb2S+v2Y7j0iZw1jPPKTZiNCWI=",
"owner": "aznhe21", "owner": "aznhe21",
"repo": "actions-preview.nvim", "repo": "actions-preview.nvim",
"rev": "9f52a01c374318e91337697ebed51c6fae57f8a4", "rev": "4ab7842eb6a5b6d2b004f8234dcf33382a0fdde2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -265,11 +422,11 @@
"nvim_plugin-b0o/schemastore.nvim": { "nvim_plugin-b0o/schemastore.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737490106, "lastModified": 1741996938,
"narHash": "sha256-jtZ6cta98Wx4vZHcXq0jKfOfpQtTFRFrH5W+/8jyL5g=", "narHash": "sha256-eAqM/n0DDwl3WUO987c2mk3z7uJ4gAE0hkPg4Twyr4w=",
"owner": "b0o", "owner": "b0o",
"repo": "schemastore.nvim", "repo": "schemastore.nvim",
"rev": "5be212138af55d3dcae9d77b5b14f63634243e3d", "rev": "56d8ed0fa1516242085ba5e95d7f49fad50d5754",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -281,11 +438,11 @@
"nvim_plugin-catppuccin/nvim": { "nvim_plugin-catppuccin/nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1735299190, "lastModified": 1740764472,
"narHash": "sha256-lwQLmqm01FihJdad4QRMK23MTrouyOokyuX/3enWjzs=", "narHash": "sha256-4h/fzFY8JR9r+QnoiWEqgQKPMuu8i9HTC4v0Jp7iuUo=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nvim", "repo": "nvim",
"rev": "f67b886d65a029f12ffa298701fb8f1efd89295d", "rev": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -329,11 +486,11 @@
"nvim_plugin-folke/lazy.nvim": { "nvim_plugin-folke/lazy.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736194490, "lastModified": 1740511197,
"narHash": "sha256-7npvUPMmQC6/Ywdcuxbmdboa8eJ1RNgZ+rzb3MeN0t0=", "narHash": "sha256-nQ8PR9DTdzg6Z2rViuVD6Pswc2VvDQwS3uMNgyDh5ls=",
"owner": "folke", "owner": "folke",
"repo": "lazy.nvim", "repo": "lazy.nvim",
"rev": "d8f26efd456190241afd1b0f5235fe6fdba13d4a", "rev": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -361,11 +518,11 @@
"nvim_plugin-folke/which-key.nvim": { "nvim_plugin-folke/which-key.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736055319, "lastModified": 1740233407,
"narHash": "sha256-9V74V01dCqg1w5fpzzCmyfhR3/AYQg2MCIYkkjFv1go=", "narHash": "sha256-uvMcSduMr7Kd2oUmIOYzvWF4FIl6bZxIYm9FSw/3pCo=",
"owner": "folke", "owner": "folke",
"repo": "which-key.nvim", "repo": "which-key.nvim",
"rev": "1f8d414f61e0b05958c342df9b6a4c89ce268766", "rev": "370ec46f710e058c9c1646273e6b225acf47cbed",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -425,11 +582,11 @@
"nvim_plugin-hrsh7th/nvim-cmp": { "nvim_plugin-hrsh7th/nvim-cmp": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736172730, "lastModified": 1741936119,
"narHash": "sha256-TmXpMgkPWXHn4+leojZg1V18wOiPDsKQeG1h8nGgVHo=", "narHash": "sha256-zl/rgbZF3+nsLI7Sd6xzQFlcpa5n/8pyganS+u0jD/s=",
"owner": "hrsh7th", "owner": "hrsh7th",
"repo": "nvim-cmp", "repo": "nvim-cmp",
"rev": "8c82d0bd31299dbff7f8e780f5e06d2283de9678", "rev": "1e1900b0769324a9675ef85b38f99cca29e203b3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -441,11 +598,11 @@
"nvim_plugin-j-hui/fidget.nvim": { "nvim_plugin-j-hui/fidget.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736356439, "lastModified": 1738817426,
"narHash": "sha256-o0za2NxFtzHZa7PRIm9U/P1/fwJrxS1G79ukdGLhJ4Q=", "narHash": "sha256-AFUx/ZQVWV7s5Wlppjk6N9QXoJKNKqxtf990FFlTEhw=",
"owner": "j-hui", "owner": "j-hui",
"repo": "fidget.nvim", "repo": "fidget.nvim",
"rev": "a0abbf18084b77d28bc70e24752e4f4fd54aea17", "rev": "d9ba6b7bfe29b3119a610892af67602641da778e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -473,11 +630,11 @@
"nvim_plugin-lewis6991/gitsigns.nvim": { "nvim_plugin-lewis6991/gitsigns.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737539715, "lastModified": 1742140868,
"narHash": "sha256-Htx06FTru66DPFJUZEe6AaKqVtrD65MMqcerjjEZMR4=", "narHash": "sha256-qWusbKY+3d1dkW5oLYDyfSLdt1qFlJdDeXgFWqQ4hUI=",
"owner": "lewis6991", "owner": "lewis6991",
"repo": "gitsigns.nvim", "repo": "gitsigns.nvim",
"rev": "632fda72df903255dc1683cd739dceaa7338128a", "rev": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -505,11 +662,11 @@
"nvim_plugin-lukas-reineke/indent-blankline.nvim": { "nvim_plugin-lukas-reineke/indent-blankline.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737369467, "lastModified": 1742224677,
"narHash": "sha256-0+boInVEzS2myYil/l+frs8PAa/2eJcVTyXnEk6TGvI=", "narHash": "sha256-0q/V+b4UrDRnaC/eRWOi9HU9a61vQSAM9/C8ZQyKt+Y=",
"owner": "lukas-reineke", "owner": "lukas-reineke",
"repo": "indent-blankline.nvim", "repo": "indent-blankline.nvim",
"rev": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78", "rev": "005b56001b2cb30bfa61b7986bc50657816ba4ba",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -537,11 +694,11 @@
"nvim_plugin-m4xshen/hardtime.nvim": { "nvim_plugin-m4xshen/hardtime.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1734839863, "lastModified": 1741414159,
"narHash": "sha256-WDMr+ygWg9S2PoSqJ4pM26jSaNGAp63wiQ474/p6CIY=", "narHash": "sha256-tigKgK1yGc5JEHd4RLXCd6Hq7ia3en3Xtk8X6L5+ef4=",
"owner": "m4xshen", "owner": "m4xshen",
"repo": "hardtime.nvim", "repo": "hardtime.nvim",
"rev": "5d9adcbe2f12741de79e435c8b85dca69a3b22e4", "rev": "f87c86d1aa1e05dcf3c6ecd97fbfd237e2de0bf5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -553,11 +710,11 @@
"nvim_plugin-mbbill/undotree": { "nvim_plugin-mbbill/undotree": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1735763701, "lastModified": 1741878850,
"narHash": "sha256-0DnRarEuDPdYo+zkwH47jG4B4fGjvL1LxqEoFQ7vpjE=", "narHash": "sha256-HGf4Toe+12YZtIalvANDXAtksCsnxQkZbcevOAnl5G4=",
"owner": "mbbill", "owner": "mbbill",
"repo": "undotree", "repo": "undotree",
"rev": "2556c6800b210b2096b55b66e74b4cc1d9ebbe4f", "rev": "b951b87b46c34356d44aa71886aecf9dd7f5788a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -569,11 +726,11 @@
"nvim_plugin-mfussenegger/nvim-lint": { "nvim_plugin-mfussenegger/nvim-lint": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737487916, "lastModified": 1738838825,
"narHash": "sha256-DKfivSjBFra/iXIuYQa7Mv5f2LglNbQTr8bQ+sCm8to=", "narHash": "sha256-E/KcQr4RM4gz+ItENI9e7hMicyBKyzoIaDO5D1VDYSw=",
"owner": "mfussenegger", "owner": "mfussenegger",
"repo": "nvim-lint", "repo": "nvim-lint",
"rev": "789b7ada1b4f00e08d026dffde410dcfa6a0ba87", "rev": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -585,11 +742,11 @@
"nvim_plugin-mrcjkb/rustaceanvim": { "nvim_plugin-mrcjkb/rustaceanvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737246102, "lastModified": 1742147378,
"narHash": "sha256-SSBv1+GxuVpYhpCH//6EXFJ4NXZdZM0pGe19f53JpiA=", "narHash": "sha256-I2H/0VNKWKK49EReXT81SVTHHHW9hT1+6n7h1cbLD0A=",
"owner": "mrcjkb", "owner": "mrcjkb",
"repo": "rustaceanvim", "repo": "rustaceanvim",
"rev": "8cf9705d98cc77837aa388a5d48f9a73f27f4782", "rev": "448c76451ecf3c0edabcde427b7f1c8c219be2dd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -601,11 +758,11 @@
"nvim_plugin-neovim/nvim-lspconfig": { "nvim_plugin-neovim/nvim-lspconfig": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737559700, "lastModified": 1742142850,
"narHash": "sha256-p+hGgy6jGErqVy+pbTrfTNF2FosrQlQnMkDHsCl9/kE=", "narHash": "sha256-CppHawmKEopPbK6HO4RFd7Kc1iMoCVwpIyN2Z6wiMfo=",
"owner": "neovim", "owner": "neovim",
"repo": "nvim-lspconfig", "repo": "nvim-lspconfig",
"rev": "513f4f0bde469ecb3abe2e1b606f63cf142e751e", "rev": "2574ad38c6ee4f0bef3a1ca305cd5df627a52bb3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -649,11 +806,11 @@
"nvim_plugin-nvim-lua/plenary.nvim": { "nvim_plugin-nvim-lua/plenary.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736675595, "lastModified": 1739311008,
"narHash": "sha256-18zX3kZ42ynRefFP0mOcy6ESEpejTukjNi4jCRXx48A=", "narHash": "sha256-8FV5RjF7QbDmQOQynpK7uRKONKbPRYbOPugf9ZxNvUs=",
"owner": "nvim-lua", "owner": "nvim-lua",
"repo": "plenary.nvim", "repo": "plenary.nvim",
"rev": "3707cdb1e43f5cea73afb6037e6494e7ce847a66", "rev": "857c5ac632080dba10aae49dba902ce3abf91b35",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -665,11 +822,11 @@
"nvim_plugin-nvim-lualine/lualine.nvim": { "nvim_plugin-nvim-lualine/lualine.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1731050126, "lastModified": 1742039150,
"narHash": "sha256-IN6Qz3jGxUcylYiRTyd8j6me3pAoqJsJXtFUvph/6EI=", "narHash": "sha256-qYKykdCcXd+OHmK3WvsUCbn0zDKTQDj49VYsQ8iVvgs=",
"owner": "nvim-lualine", "owner": "nvim-lualine",
"repo": "lualine.nvim", "repo": "lualine.nvim",
"rev": "2a5bae925481f999263d6f5ed8361baef8df4f83", "rev": "b8b60c7f1d0d95ad74ee215b2291280b30482476",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -697,11 +854,11 @@
"nvim_plugin-nvim-telescope/telescope-fzf-native.nvim": { "nvim_plugin-nvim-telescope/telescope-fzf-native.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1734022536, "lastModified": 1741765009,
"narHash": "sha256-ZBYZncCVtuks6tV4hhqWvQ3PlKElSHuWAEpo9o48pj4=", "narHash": "sha256-Zyv8ikxdwoUiDD0zsqLzfhBVOm/nKyJdZpndxXEB6ow=",
"owner": "nvim-telescope", "owner": "nvim-telescope",
"repo": "telescope-fzf-native.nvim", "repo": "telescope-fzf-native.nvim",
"rev": "dae2eac9d91464448b584c7949a31df8faefec56", "rev": "1f08ed60cafc8f6168b72b80be2b2ea149813e55",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -729,11 +886,11 @@
"nvim_plugin-nvim-telescope/telescope.nvim": { "nvim_plugin-nvim-telescope/telescope.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736328372, "lastModified": 1742171408,
"narHash": "sha256-5y8srYKaAqFplMtDjsc8GdDF8yui5vCNMiOeFLrC/sM=", "narHash": "sha256-mHucOyrgQc3wVdK7lUQANW8Jka+m5gQ2z8JWtwo99bU=",
"owner": "nvim-telescope", "owner": "nvim-telescope",
"repo": "telescope.nvim", "repo": "telescope.nvim",
"rev": "415af52339215926d705cccc08145f3782c4d132", "rev": "a17d611a0e111836a1db5295f04945df407c5135",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -745,11 +902,11 @@
"nvim_plugin-nvim-tree/nvim-tree.lua": { "nvim_plugin-nvim-tree/nvim-tree.lua": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737156486, "lastModified": 1740787655,
"narHash": "sha256-b8YOOIYML9aKy4Y7S+iLKIaTfCqrxK1wB/ZaeFRCUmo=", "narHash": "sha256-KSrY1K64yC6dPDd3DF15bVWs2N7B0BPS9enfmJgTzC4=",
"owner": "nvim-tree", "owner": "nvim-tree",
"repo": "nvim-tree.lua", "repo": "nvim-tree.lua",
"rev": "fca0b67c0b5a31727fb33addc4d9c100736a2894", "rev": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -761,11 +918,11 @@
"nvim_plugin-nvim-tree/nvim-web-devicons": { "nvim_plugin-nvim-tree/nvim-web-devicons": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736480892, "lastModified": 1742215722,
"narHash": "sha256-lUlEVEzXX8iCPxXIlpwkqBc19hks8qTvz4FdDNsTviI=", "narHash": "sha256-JKOvXJr1s2lpP5aeRE7OC3IeOrF5uJxg/Tal3eScd6g=",
"owner": "nvim-tree", "owner": "nvim-tree",
"repo": "nvim-web-devicons", "repo": "nvim-web-devicons",
"rev": "aafa5c187a15701a7299a392b907ec15d9a7075f", "rev": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -777,11 +934,11 @@
"nvim_plugin-nvim-treesitter/nvim-treesitter-context": { "nvim_plugin-nvim-treesitter/nvim-treesitter-context": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737125584, "lastModified": 1742201688,
"narHash": "sha256-W5fELF3Am1c6wpA4/JxWjGVWQuDYKUqKO+M2+7anugM=", "narHash": "sha256-rpmHIOXiD/mh0PHBdo1k1Wdb213KtBevmyCFrP89tME=",
"owner": "nvim-treesitter", "owner": "nvim-treesitter",
"repo": "nvim-treesitter-context", "repo": "nvim-treesitter-context",
"rev": "bece284c5322ddf6946fa4bdc383a2bc033269d7", "rev": "83ded3bbff8bc13abc9704bf1c5e426f3ba343c4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -825,11 +982,11 @@
"nvim_plugin-rmagatti/auto-session": { "nvim_plugin-rmagatti/auto-session": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1732719937, "lastModified": 1742136796,
"narHash": "sha256-1tg7H8ssnG7ArshQiyoFenXzf9PVealOPbzuZKacO1U=", "narHash": "sha256-Tc4EfcucGAR+5qURjoYqG5gW24PCYJLVd47OrFhyfRo=",
"owner": "rmagatti", "owner": "rmagatti",
"repo": "auto-session", "repo": "auto-session",
"rev": "021b64ed7d4ac68a37be3ad28d8e1cba5bec582c", "rev": "317412742990371f8e4709074da5c378456a27ff",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -889,11 +1046,11 @@
"nvim_plugin-stevearc/conform.nvim": { "nvim_plugin-stevearc/conform.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737567375, "lastModified": 1741136809,
"narHash": "sha256-tMLkOLANg87wuq6OSkb0iGm00mnZwOF7Xd+gai4mKNg=", "narHash": "sha256-8uC+6rQdLqpfF/lf25mppqK/xgM1+6RGIyZaheaPd48=",
"owner": "stevearc", "owner": "stevearc",
"repo": "conform.nvim", "repo": "conform.nvim",
"rev": "bf94626f32fbc3c9987ce2f4aab60d96866587df", "rev": "db8a4a9edb217067b1d7a2e0362c74bfe9cc944d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -905,11 +1062,11 @@
"nvim_plugin-stevearc/dressing.nvim": { "nvim_plugin-stevearc/dressing.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1734804193, "lastModified": 1739381641,
"narHash": "sha256-N4hB5wDgoqXrXxSfzDCrqmdDtdVvq+PtOS7FBPH7qXE=", "narHash": "sha256-dBz+/gZA6O6fJy/GSgM6ZHGAR3MTGt/W1olzzTYRlgM=",
"owner": "stevearc", "owner": "stevearc",
"repo": "dressing.nvim", "repo": "dressing.nvim",
"rev": "3a45525bb182730fe462325c99395529308f431e", "rev": "2d7c2db2507fa3c4956142ee607431ddb2828639",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -969,11 +1126,11 @@
"nvim_plugin-windwp/nvim-ts-autotag": { "nvim_plugin-windwp/nvim-ts-autotag": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1733164313, "lastModified": 1739910276,
"narHash": "sha256-v2NTFBIzKTYizUPWB3uhpnTGVZWaelhE3MT5+BDA6Do=", "narHash": "sha256-a3Bcql68mp3y5bH9XMiDTQB0e75T+qFB593objIGg/I=",
"owner": "windwp", "owner": "windwp",
"repo": "nvim-ts-autotag", "repo": "nvim-ts-autotag",
"rev": "1cca23c9da708047922d3895a71032bc0449c52d", "rev": "a1d526af391f6aebb25a8795cbc05351ed3620b5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -985,11 +1142,11 @@
"nvim_plugin-yetone/avante.nvim": { "nvim_plugin-yetone/avante.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737518419, "lastModified": 1742209600,
"narHash": "sha256-Opp6ACJwnAIkLdCQwbqjahjCErxDGIpsX9Hj/87Wm/I=", "narHash": "sha256-XmyRo20+VhyjP5CLgSy0Tr/7R031EJSmMEN/wK9JNk8=",
"owner": "yetone", "owner": "yetone",
"repo": "avante.nvim", "repo": "avante.nvim",
"rev": "396840a152be82354984b16f9a22cb425d0840d1", "rev": "540cc53f0c30214e3e4b5688f030bb2d8277b8ce",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1017,11 +1174,11 @@
"nvim_plugin-zbirenbaum/copilot.lua": { "nvim_plugin-zbirenbaum/copilot.lua": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1734926641, "lastModified": 1739230958,
"narHash": "sha256-c2UE0dLBtoYMvMxg+jXzfsD+wN9sZLvftJq4gGmooZU=", "narHash": "sha256-632UIbG1jwam+tug5+jODkT509+uBfJgUN21C3ppnEo=",
"owner": "zbirenbaum", "owner": "zbirenbaum",
"repo": "copilot.lua", "repo": "copilot.lua",
"rev": "886ee73b6d464b2b3e3e6a7ff55ce87feac423a9", "rev": "30321e33b03cb924fdcd6a806a0dc6fa0b0eafb9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1030,17 +1187,39 @@
"type": "github" "type": "github"
} }
}, },
"ragenix": {
"inputs": {
"agenix": "agenix",
"crane": "crane",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_3",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1741508717,
"narHash": "sha256-iQf1WdNxaApOFHIx4RLMRZ4f8g+8Xp0Z1/E/Mz2rLxY=",
"owner": "yaxitech",
"repo": "ragenix",
"rev": "2a2bea99d74927e54adf53cbf113219def67d5c9",
"type": "github"
},
"original": {
"owner": "yaxitech",
"repo": "ragenix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"common": "common",
"deploy-rs": "deploy-rs", "deploy-rs": "deploy-rs",
"mod_common": "mod_common", "nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_3",
"ros_neovim": "ros_neovim" "ros_neovim": "ros_neovim"
} }
}, },
"ros_neovim": { "ros_neovim": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_6",
"nvim_plugin-Almo7aya/openingh.nvim": "nvim_plugin-Almo7aya/openingh.nvim", "nvim_plugin-Almo7aya/openingh.nvim": "nvim_plugin-Almo7aya/openingh.nvim",
"nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim", "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim",
"nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring": "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring", "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring": "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring",
@ -1098,14 +1277,14 @@
"nvim_plugin-yetone/avante.nvim": "nvim_plugin-yetone/avante.nvim", "nvim_plugin-yetone/avante.nvim": "nvim_plugin-yetone/avante.nvim",
"nvim_plugin-zbirenbaum/copilot-cmp": "nvim_plugin-zbirenbaum/copilot-cmp", "nvim_plugin-zbirenbaum/copilot-cmp": "nvim_plugin-zbirenbaum/copilot-cmp",
"nvim_plugin-zbirenbaum/copilot.lua": "nvim_plugin-zbirenbaum/copilot.lua", "nvim_plugin-zbirenbaum/copilot.lua": "nvim_plugin-zbirenbaum/copilot.lua",
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
"lastModified": 1737610236, "lastModified": 1742226527,
"narHash": "sha256-UfC+hBu09KEepjnqbXGqRJ0jTlV8HTuD1GjB+ZjTjYM=", "narHash": "sha256-CT9227XXn1t8H1ivNBBkBcf+npB7tWk5yzEQoJvbGVU=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "631d85a771f3e22822b9ac02d895e2a06aa1e183", "rev": "e8bafafc36fb2227dab8f0ddb67a2439d9077091",
"revCount": 260, "revCount": 268,
"type": "git", "type": "git",
"url": "https://git.joshuabell.xyz/nvim" "url": "https://git.joshuabell.xyz/nvim"
}, },
@ -1115,6 +1294,28 @@
} }
}, },
"rust-overlay": { "rust-overlay": {
"inputs": {
"nixpkgs": [
"common",
"ragenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1741400194,
"narHash": "sha256-tEpgT+q5KlGjHSm8MnINgTPErEl8YDzX3Eps8PVc09g=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "16b6045a232fea0e9e4c69e55a6e269607dd8e3f",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"ros_neovim", "ros_neovim",
@ -1122,11 +1323,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737512878, "lastModified": 1742178793,
"narHash": "sha256-dgF6htdmfNnZzVInifks6npnCAyVsIHWSpWNs10RSW0=", "narHash": "sha256-S2onMdoDS4tIYd3/Jc5oFEZBr2dJOgPrh9KzSO/bfDw=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "06b8ed0eee289fe94c66f1202ced9a6a2c59a14c", "rev": "954582a766a50ebef5695a9616c93b5386418c08",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1150,9 +1351,39 @@
"type": "github" "type": "github"
} }
}, },
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1701680307, "lastModified": 1701680307,

View file

@ -2,18 +2,19 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
deploy-rs.url = "github:serokell/deploy-rs"; deploy-rs.url = "github:serokell/deploy-rs";
common.url = "git+https://git.joshuabell.xyz/dotfiles";
ros_neovim.url = "git+https://git.joshuabell.xyz/nvim"; ros_neovim.url = "git+https://git.joshuabell.xyz/nvim";
mod_common.url = "git+https://git.joshuabell.xyz/dotfiles?ref=mod_common";
}; };
outputs = outputs =
{ {
self, self,
nixpkgs, nixpkgs,
common,
ros_neovim,
deploy-rs, deploy-rs,
... ...
}@inputs: }:
let let
configuration_name = "l001"; configuration_name = "l001";
lib = nixpkgs.lib; lib = nixpkgs.lib;
@ -35,59 +36,73 @@
}; };
nixosConfigurations = { nixosConfigurations = {
nixos = self.nixosConfigurations.${configuration_name}; "${configuration_name}" = (
"${configuration_name}" = lib.nixosSystem {
let
auto_modules = builtins.concatMap (
input:
lib.optionals
(builtins.hasAttr "nixosModules" input && builtins.hasAttr "default" input.nixosModules)
[
input.nixosModules.default
]
) (builtins.attrValues inputs);
in
(lib.nixosSystem {
modules = [ modules = [
common.nixosModules.default
ros_neovim.nixosModules.default
./configuration.nix ./configuration.nix
./hardware-configuration.nix ./hardware-configuration.nix
./linode.nix ./linode.nix
./nginx.nix ./nginx.nix
./headscale.nix ./headscale.nix
( (
{ pkgs, ... }: { config, pkgs, ... }:
{ {
users.users.root.openssh.authorizedKeys.keys = [ users.users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode"
]; ];
mods = {
common = { ringofstorms_common = {
disableRemoteBuildsOnLio = true;
systemName = configuration_name; systemName = configuration_name;
allowUnfree = true; general = {
primaryUser = "luser"; disableRemoteBuildsOnLio = true;
docker = true; readWindowsDrives = false;
jetbrainsMonoFont = false;
ttyCapsEscape = false;
};
programs = {
ssh.enable = true;
};
users = {
# Users are all normal users and default password is password1
admins = [ "luser" ]; # First admin is also the primary user owning nix config
users = { users = {
luser = { luser = {
extraGroups = [ extraGroups = [
"wheel"
"networkmanager" "networkmanager"
]; ];
isNormalUser = true;
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode"
]; ];
shell = pkgs.zsh;
packages = with pkgs; [
bitwarden
vaultwarden
];
};
};
};
homeManager = {
users = {
luser = {
imports = with common.homeManagerModules; [
tmux
git
postgres
starship
zoxide
zsh
];
}; };
}; };
}; };
}; };
} }
) )
] ++ auto_modules; ];
specialArgs = { }
inherit inputs; );
};
});
}; };
}; };
} }

View file

@ -2,6 +2,7 @@
{ {
# https://www.linode.com/docs/guides/install-nixos-on-linode/#configure-nixos # https://www.linode.com/docs/guides/install-nixos-on-linode/#configure-nixos
boot.kernelParams = [ "console=ttyS0,19200n8" ]; boot.kernelParams = [ "console=ttyS0,19200n8" ];
boot.loader.grub.enable = true;
boot.loader.grub.extraConfig = '' boot.loader.grub.extraConfig = ''
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1; serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
terminal_input serial; terminal_input serial;

View file

@ -1,9 +1,93 @@
{ {
"nodes": { "nodes": {
"agenix": {
"inputs": {
"darwin": "darwin",
"home-manager": "home-manager_2",
"nixpkgs": [
"common",
"ragenix",
"nixpkgs"
],
"systems": "systems"
},
"locked": {
"lastModified": 1736955230,
"narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
"owner": "ryantm",
"repo": "agenix",
"rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
"type": "github"
},
"original": {
"owner": "ryantm",
"repo": "agenix",
"type": "github"
}
},
"common": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs_2",
"ragenix": "ragenix"
},
"locked": {
"lastModified": 1742335106,
"narHash": "sha256-NmpZH5jNuJqfx6ty+Ttnyig22R4Pfwb7iUtbujjQgYk=",
"ref": "refs/heads/master",
"rev": "aacf05e59d89836103e75345640d7b82481363c0",
"revCount": 366,
"type": "git",
"url": "https://git.joshuabell.xyz/dotfiles"
},
"original": {
"type": "git",
"url": "https://git.joshuabell.xyz/dotfiles"
}
},
"crane": {
"locked": {
"lastModified": 1741481578,
"narHash": "sha256-JBTSyJFQdO3V8cgcL08VaBUByEU6P5kXbTJN6R0PFQo=",
"owner": "ipetkov",
"repo": "crane",
"rev": "bb1c9567c43e4434f54e9481eb4b8e8e0d50f0b5",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
"common",
"ragenix",
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1700795494,
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"deploy-rs": { "deploy-rs": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs_4",
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
@ -36,28 +120,115 @@
"type": "github" "type": "github"
} }
}, },
"mod_common": { "flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1742234739,
"narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=",
"owner": "rycee",
"repo": "home-manager",
"rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59",
"type": "github"
},
"original": {
"owner": "rycee",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"common",
"ragenix",
"agenix",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1736191002, "lastModified": 1703113217,
"narHash": "sha256-t39PCeJFgIXzniqjUIIFnbv6AE15WyoPTCE3k3Xuyz0=", "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
"ref": "mod_common", "owner": "nix-community",
"rev": "ac3c0c2422842edba1887279bddd02b895ec5ed2", "repo": "home-manager",
"revCount": 4, "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
"type": "git", "type": "github"
"url": "https://git.joshuabell.xyz/dotfiles"
}, },
"original": { "original": {
"ref": "mod_common", "owner": "nix-community",
"type": "git", "repo": "home-manager",
"url": "https://git.joshuabell.xyz/dotfiles" "type": "github"
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": {
"lastModified": 1731755305,
"narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1742069588,
"narHash": "sha256-C7jVfohcGzdZRF6DO+ybyG/sqpo1h6bZi9T56sxLy+k=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1741379970,
"narHash": "sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "36fd87baa9083f34f7f5027900b62ee6d09b1f2f",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1702272962, "lastModified": 1702272962,
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=", "narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
@ -73,13 +244,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1736200483, "lastModified": 1742268799,
"narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=", "narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751", "rev": "da044451c6a70518db5b730fe277b70f494188f1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -89,13 +260,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1737567054, "lastModified": 1742225912,
"narHash": "sha256-LI1z4HET4hgP6iyWehrWRd5luNbUk9zz/GFzqI1iAFo=", "narHash": "sha256-HCD3GrAAJb1jYTEc221DPlBk2VDkBt43hww7DXC1tyc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "bbe8109b528365cf3fd3a93c931dd86d57c3bd5a", "rev": "9df17ad16500057b7b081137ff7af1a8a6a32f6e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -123,11 +294,11 @@
"nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": { "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1734194565, "lastModified": 1742210958,
"narHash": "sha256-IPP5jXIX+05Tb0MEXUu6EjcL/RHgV1qkoXPEdaEfhNM=", "narHash": "sha256-+1dSGYeUpW/EUbP0scgGz48UB5RAPZYIWCglTFyntaU=",
"owner": "CopilotC-Nvim", "owner": "CopilotC-Nvim",
"repo": "CopilotChat.nvim", "repo": "CopilotChat.nvim",
"rev": "2ebe591cff06018e265263e71e1dbc4c5aa8281e", "rev": "62b1249aa4a4fc7afe11c7e647cba0cef743826f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -171,11 +342,11 @@
"nvim_plugin-MeanderingProgrammer/render-markdown.nvim": { "nvim_plugin-MeanderingProgrammer/render-markdown.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737054285, "lastModified": 1742156824,
"narHash": "sha256-7yepeUhhViVJpbj48qg0Z3cCCtGt6bZ90hM/ie+5LqA=", "narHash": "sha256-n+pT7FiQONHhiZQH4BGjERrikGNSFTNciMx92oQGA1c=",
"owner": "MeanderingProgrammer", "owner": "MeanderingProgrammer",
"repo": "render-markdown.nvim", "repo": "render-markdown.nvim",
"rev": "ad055861d17afe058bd835e82292e14a64b51b1d", "rev": "9721ffe230ec90e49c49ee33b5ca44c3fc689214",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -187,11 +358,11 @@
"nvim_plugin-MunifTanjim/nui.nvim": { "nvim_plugin-MunifTanjim/nui.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1733856815, "lastModified": 1741233810,
"narHash": "sha256-6U7E/i5FuNXQy+sF4C5DVxuTPqNKD5wxUgFohpOjm9Q=", "narHash": "sha256-BYTY2ezYuxsneAl/yQbwL1aQvVWKSsN3IVqzTlrBSEU=",
"owner": "MunifTanjim", "owner": "MunifTanjim",
"repo": "nui.nvim", "repo": "nui.nvim",
"rev": "53e907ffe5eedebdca1cd503b00aa8692068ca46", "rev": "8d3bce9764e627b62b07424e0df77f680d47ffdb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -203,11 +374,11 @@
"nvim_plugin-RRethy/vim-illuminate": { "nvim_plugin-RRethy/vim-illuminate": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1715960194, "lastModified": 1740540215,
"narHash": "sha256-DdJzTHxoOv+vjFymETa2MgXpM/qDwvZjpoo1W8OOBj0=", "narHash": "sha256-jSny+5RHgxcsoxWwIaFUZ022dk3mDRKZ7dibvE6I2fE=",
"owner": "RRethy", "owner": "RRethy",
"repo": "vim-illuminate", "repo": "vim-illuminate",
"rev": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa", "rev": "19cb21f513fc2b02f0c66be70107741e837516a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -219,11 +390,11 @@
"nvim_plugin-Saecki/crates.nvim": { "nvim_plugin-Saecki/crates.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1735942265, "lastModified": 1741644182,
"narHash": "sha256-dj7VXlMbS4HvSc+/WMQprtqWzrYrWaCnSEE0ygp/LcI=", "narHash": "sha256-hmUqhAVLBiCUl16+S/hvRxqA/pTXcWejpLtwvqxBPaY=",
"owner": "Saecki", "owner": "Saecki",
"repo": "crates.nvim", "repo": "crates.nvim",
"rev": "bd35b13e94a292ee6e32c351e05ca2202dc9f070", "rev": "403a0abef0e2aec12749a534dc468d6fd50c6741",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -235,11 +406,11 @@
"nvim_plugin-aznhe21/actions-preview.nvim": { "nvim_plugin-aznhe21/actions-preview.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1718540350, "lastModified": 1740589350,
"narHash": "sha256-lYjsv8y1fMuTGpBF/iG7cm/a7tLdh748vJhVsSp/Iz8=", "narHash": "sha256-MP1hohDL2JFembwW+cb2S+v2Y7j0iZw1jPPKTZiNCWI=",
"owner": "aznhe21", "owner": "aznhe21",
"repo": "actions-preview.nvim", "repo": "actions-preview.nvim",
"rev": "9f52a01c374318e91337697ebed51c6fae57f8a4", "rev": "4ab7842eb6a5b6d2b004f8234dcf33382a0fdde2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -251,11 +422,11 @@
"nvim_plugin-b0o/schemastore.nvim": { "nvim_plugin-b0o/schemastore.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737490106, "lastModified": 1741996938,
"narHash": "sha256-jtZ6cta98Wx4vZHcXq0jKfOfpQtTFRFrH5W+/8jyL5g=", "narHash": "sha256-eAqM/n0DDwl3WUO987c2mk3z7uJ4gAE0hkPg4Twyr4w=",
"owner": "b0o", "owner": "b0o",
"repo": "schemastore.nvim", "repo": "schemastore.nvim",
"rev": "5be212138af55d3dcae9d77b5b14f63634243e3d", "rev": "56d8ed0fa1516242085ba5e95d7f49fad50d5754",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -267,11 +438,11 @@
"nvim_plugin-catppuccin/nvim": { "nvim_plugin-catppuccin/nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1735299190, "lastModified": 1740764472,
"narHash": "sha256-lwQLmqm01FihJdad4QRMK23MTrouyOokyuX/3enWjzs=", "narHash": "sha256-4h/fzFY8JR9r+QnoiWEqgQKPMuu8i9HTC4v0Jp7iuUo=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nvim", "repo": "nvim",
"rev": "f67b886d65a029f12ffa298701fb8f1efd89295d", "rev": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -315,11 +486,11 @@
"nvim_plugin-folke/lazy.nvim": { "nvim_plugin-folke/lazy.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736194490, "lastModified": 1740511197,
"narHash": "sha256-7npvUPMmQC6/Ywdcuxbmdboa8eJ1RNgZ+rzb3MeN0t0=", "narHash": "sha256-nQ8PR9DTdzg6Z2rViuVD6Pswc2VvDQwS3uMNgyDh5ls=",
"owner": "folke", "owner": "folke",
"repo": "lazy.nvim", "repo": "lazy.nvim",
"rev": "d8f26efd456190241afd1b0f5235fe6fdba13d4a", "rev": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -347,11 +518,11 @@
"nvim_plugin-folke/which-key.nvim": { "nvim_plugin-folke/which-key.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736055319, "lastModified": 1740233407,
"narHash": "sha256-9V74V01dCqg1w5fpzzCmyfhR3/AYQg2MCIYkkjFv1go=", "narHash": "sha256-uvMcSduMr7Kd2oUmIOYzvWF4FIl6bZxIYm9FSw/3pCo=",
"owner": "folke", "owner": "folke",
"repo": "which-key.nvim", "repo": "which-key.nvim",
"rev": "1f8d414f61e0b05958c342df9b6a4c89ce268766", "rev": "370ec46f710e058c9c1646273e6b225acf47cbed",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -411,11 +582,11 @@
"nvim_plugin-hrsh7th/nvim-cmp": { "nvim_plugin-hrsh7th/nvim-cmp": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736172730, "lastModified": 1741936119,
"narHash": "sha256-TmXpMgkPWXHn4+leojZg1V18wOiPDsKQeG1h8nGgVHo=", "narHash": "sha256-zl/rgbZF3+nsLI7Sd6xzQFlcpa5n/8pyganS+u0jD/s=",
"owner": "hrsh7th", "owner": "hrsh7th",
"repo": "nvim-cmp", "repo": "nvim-cmp",
"rev": "8c82d0bd31299dbff7f8e780f5e06d2283de9678", "rev": "1e1900b0769324a9675ef85b38f99cca29e203b3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -427,11 +598,11 @@
"nvim_plugin-j-hui/fidget.nvim": { "nvim_plugin-j-hui/fidget.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736356439, "lastModified": 1738817426,
"narHash": "sha256-o0za2NxFtzHZa7PRIm9U/P1/fwJrxS1G79ukdGLhJ4Q=", "narHash": "sha256-AFUx/ZQVWV7s5Wlppjk6N9QXoJKNKqxtf990FFlTEhw=",
"owner": "j-hui", "owner": "j-hui",
"repo": "fidget.nvim", "repo": "fidget.nvim",
"rev": "a0abbf18084b77d28bc70e24752e4f4fd54aea17", "rev": "d9ba6b7bfe29b3119a610892af67602641da778e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -459,11 +630,11 @@
"nvim_plugin-lewis6991/gitsigns.nvim": { "nvim_plugin-lewis6991/gitsigns.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737539715, "lastModified": 1742140868,
"narHash": "sha256-Htx06FTru66DPFJUZEe6AaKqVtrD65MMqcerjjEZMR4=", "narHash": "sha256-qWusbKY+3d1dkW5oLYDyfSLdt1qFlJdDeXgFWqQ4hUI=",
"owner": "lewis6991", "owner": "lewis6991",
"repo": "gitsigns.nvim", "repo": "gitsigns.nvim",
"rev": "632fda72df903255dc1683cd739dceaa7338128a", "rev": "7010000889bfb6c26065e0b0f7f1e6aa9163edd9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -491,11 +662,11 @@
"nvim_plugin-lukas-reineke/indent-blankline.nvim": { "nvim_plugin-lukas-reineke/indent-blankline.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737369467, "lastModified": 1742224677,
"narHash": "sha256-0+boInVEzS2myYil/l+frs8PAa/2eJcVTyXnEk6TGvI=", "narHash": "sha256-0q/V+b4UrDRnaC/eRWOi9HU9a61vQSAM9/C8ZQyKt+Y=",
"owner": "lukas-reineke", "owner": "lukas-reineke",
"repo": "indent-blankline.nvim", "repo": "indent-blankline.nvim",
"rev": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78", "rev": "005b56001b2cb30bfa61b7986bc50657816ba4ba",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -523,11 +694,11 @@
"nvim_plugin-m4xshen/hardtime.nvim": { "nvim_plugin-m4xshen/hardtime.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1734839863, "lastModified": 1741414159,
"narHash": "sha256-WDMr+ygWg9S2PoSqJ4pM26jSaNGAp63wiQ474/p6CIY=", "narHash": "sha256-tigKgK1yGc5JEHd4RLXCd6Hq7ia3en3Xtk8X6L5+ef4=",
"owner": "m4xshen", "owner": "m4xshen",
"repo": "hardtime.nvim", "repo": "hardtime.nvim",
"rev": "5d9adcbe2f12741de79e435c8b85dca69a3b22e4", "rev": "f87c86d1aa1e05dcf3c6ecd97fbfd237e2de0bf5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -539,11 +710,11 @@
"nvim_plugin-mbbill/undotree": { "nvim_plugin-mbbill/undotree": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1735763701, "lastModified": 1741878850,
"narHash": "sha256-0DnRarEuDPdYo+zkwH47jG4B4fGjvL1LxqEoFQ7vpjE=", "narHash": "sha256-HGf4Toe+12YZtIalvANDXAtksCsnxQkZbcevOAnl5G4=",
"owner": "mbbill", "owner": "mbbill",
"repo": "undotree", "repo": "undotree",
"rev": "2556c6800b210b2096b55b66e74b4cc1d9ebbe4f", "rev": "b951b87b46c34356d44aa71886aecf9dd7f5788a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -555,11 +726,11 @@
"nvim_plugin-mfussenegger/nvim-lint": { "nvim_plugin-mfussenegger/nvim-lint": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737487916, "lastModified": 1738838825,
"narHash": "sha256-DKfivSjBFra/iXIuYQa7Mv5f2LglNbQTr8bQ+sCm8to=", "narHash": "sha256-E/KcQr4RM4gz+ItENI9e7hMicyBKyzoIaDO5D1VDYSw=",
"owner": "mfussenegger", "owner": "mfussenegger",
"repo": "nvim-lint", "repo": "nvim-lint",
"rev": "789b7ada1b4f00e08d026dffde410dcfa6a0ba87", "rev": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -571,11 +742,11 @@
"nvim_plugin-mrcjkb/rustaceanvim": { "nvim_plugin-mrcjkb/rustaceanvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737246102, "lastModified": 1742147378,
"narHash": "sha256-SSBv1+GxuVpYhpCH//6EXFJ4NXZdZM0pGe19f53JpiA=", "narHash": "sha256-I2H/0VNKWKK49EReXT81SVTHHHW9hT1+6n7h1cbLD0A=",
"owner": "mrcjkb", "owner": "mrcjkb",
"repo": "rustaceanvim", "repo": "rustaceanvim",
"rev": "8cf9705d98cc77837aa388a5d48f9a73f27f4782", "rev": "448c76451ecf3c0edabcde427b7f1c8c219be2dd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -587,11 +758,11 @@
"nvim_plugin-neovim/nvim-lspconfig": { "nvim_plugin-neovim/nvim-lspconfig": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737559700, "lastModified": 1742142850,
"narHash": "sha256-p+hGgy6jGErqVy+pbTrfTNF2FosrQlQnMkDHsCl9/kE=", "narHash": "sha256-CppHawmKEopPbK6HO4RFd7Kc1iMoCVwpIyN2Z6wiMfo=",
"owner": "neovim", "owner": "neovim",
"repo": "nvim-lspconfig", "repo": "nvim-lspconfig",
"rev": "513f4f0bde469ecb3abe2e1b606f63cf142e751e", "rev": "2574ad38c6ee4f0bef3a1ca305cd5df627a52bb3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -635,11 +806,11 @@
"nvim_plugin-nvim-lua/plenary.nvim": { "nvim_plugin-nvim-lua/plenary.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736675595, "lastModified": 1739311008,
"narHash": "sha256-18zX3kZ42ynRefFP0mOcy6ESEpejTukjNi4jCRXx48A=", "narHash": "sha256-8FV5RjF7QbDmQOQynpK7uRKONKbPRYbOPugf9ZxNvUs=",
"owner": "nvim-lua", "owner": "nvim-lua",
"repo": "plenary.nvim", "repo": "plenary.nvim",
"rev": "3707cdb1e43f5cea73afb6037e6494e7ce847a66", "rev": "857c5ac632080dba10aae49dba902ce3abf91b35",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -651,11 +822,11 @@
"nvim_plugin-nvim-lualine/lualine.nvim": { "nvim_plugin-nvim-lualine/lualine.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1731050126, "lastModified": 1742039150,
"narHash": "sha256-IN6Qz3jGxUcylYiRTyd8j6me3pAoqJsJXtFUvph/6EI=", "narHash": "sha256-qYKykdCcXd+OHmK3WvsUCbn0zDKTQDj49VYsQ8iVvgs=",
"owner": "nvim-lualine", "owner": "nvim-lualine",
"repo": "lualine.nvim", "repo": "lualine.nvim",
"rev": "2a5bae925481f999263d6f5ed8361baef8df4f83", "rev": "b8b60c7f1d0d95ad74ee215b2291280b30482476",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -683,11 +854,11 @@
"nvim_plugin-nvim-telescope/telescope-fzf-native.nvim": { "nvim_plugin-nvim-telescope/telescope-fzf-native.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1734022536, "lastModified": 1741765009,
"narHash": "sha256-ZBYZncCVtuks6tV4hhqWvQ3PlKElSHuWAEpo9o48pj4=", "narHash": "sha256-Zyv8ikxdwoUiDD0zsqLzfhBVOm/nKyJdZpndxXEB6ow=",
"owner": "nvim-telescope", "owner": "nvim-telescope",
"repo": "telescope-fzf-native.nvim", "repo": "telescope-fzf-native.nvim",
"rev": "dae2eac9d91464448b584c7949a31df8faefec56", "rev": "1f08ed60cafc8f6168b72b80be2b2ea149813e55",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -715,11 +886,11 @@
"nvim_plugin-nvim-telescope/telescope.nvim": { "nvim_plugin-nvim-telescope/telescope.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736328372, "lastModified": 1742171408,
"narHash": "sha256-5y8srYKaAqFplMtDjsc8GdDF8yui5vCNMiOeFLrC/sM=", "narHash": "sha256-mHucOyrgQc3wVdK7lUQANW8Jka+m5gQ2z8JWtwo99bU=",
"owner": "nvim-telescope", "owner": "nvim-telescope",
"repo": "telescope.nvim", "repo": "telescope.nvim",
"rev": "415af52339215926d705cccc08145f3782c4d132", "rev": "a17d611a0e111836a1db5295f04945df407c5135",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -731,11 +902,11 @@
"nvim_plugin-nvim-tree/nvim-tree.lua": { "nvim_plugin-nvim-tree/nvim-tree.lua": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737156486, "lastModified": 1740787655,
"narHash": "sha256-b8YOOIYML9aKy4Y7S+iLKIaTfCqrxK1wB/ZaeFRCUmo=", "narHash": "sha256-KSrY1K64yC6dPDd3DF15bVWs2N7B0BPS9enfmJgTzC4=",
"owner": "nvim-tree", "owner": "nvim-tree",
"repo": "nvim-tree.lua", "repo": "nvim-tree.lua",
"rev": "fca0b67c0b5a31727fb33addc4d9c100736a2894", "rev": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -747,11 +918,11 @@
"nvim_plugin-nvim-tree/nvim-web-devicons": { "nvim_plugin-nvim-tree/nvim-web-devicons": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736480892, "lastModified": 1742215722,
"narHash": "sha256-lUlEVEzXX8iCPxXIlpwkqBc19hks8qTvz4FdDNsTviI=", "narHash": "sha256-JKOvXJr1s2lpP5aeRE7OC3IeOrF5uJxg/Tal3eScd6g=",
"owner": "nvim-tree", "owner": "nvim-tree",
"repo": "nvim-web-devicons", "repo": "nvim-web-devicons",
"rev": "aafa5c187a15701a7299a392b907ec15d9a7075f", "rev": "4c3a5848ee0b09ecdea73adcd2a689190aeb728c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -763,11 +934,11 @@
"nvim_plugin-nvim-treesitter/nvim-treesitter-context": { "nvim_plugin-nvim-treesitter/nvim-treesitter-context": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737125584, "lastModified": 1742201688,
"narHash": "sha256-W5fELF3Am1c6wpA4/JxWjGVWQuDYKUqKO+M2+7anugM=", "narHash": "sha256-rpmHIOXiD/mh0PHBdo1k1Wdb213KtBevmyCFrP89tME=",
"owner": "nvim-treesitter", "owner": "nvim-treesitter",
"repo": "nvim-treesitter-context", "repo": "nvim-treesitter-context",
"rev": "bece284c5322ddf6946fa4bdc383a2bc033269d7", "rev": "83ded3bbff8bc13abc9704bf1c5e426f3ba343c4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -811,11 +982,11 @@
"nvim_plugin-rmagatti/auto-session": { "nvim_plugin-rmagatti/auto-session": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1732719937, "lastModified": 1742136796,
"narHash": "sha256-1tg7H8ssnG7ArshQiyoFenXzf9PVealOPbzuZKacO1U=", "narHash": "sha256-Tc4EfcucGAR+5qURjoYqG5gW24PCYJLVd47OrFhyfRo=",
"owner": "rmagatti", "owner": "rmagatti",
"repo": "auto-session", "repo": "auto-session",
"rev": "021b64ed7d4ac68a37be3ad28d8e1cba5bec582c", "rev": "317412742990371f8e4709074da5c378456a27ff",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -875,11 +1046,11 @@
"nvim_plugin-stevearc/conform.nvim": { "nvim_plugin-stevearc/conform.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737567375, "lastModified": 1741136809,
"narHash": "sha256-tMLkOLANg87wuq6OSkb0iGm00mnZwOF7Xd+gai4mKNg=", "narHash": "sha256-8uC+6rQdLqpfF/lf25mppqK/xgM1+6RGIyZaheaPd48=",
"owner": "stevearc", "owner": "stevearc",
"repo": "conform.nvim", "repo": "conform.nvim",
"rev": "bf94626f32fbc3c9987ce2f4aab60d96866587df", "rev": "db8a4a9edb217067b1d7a2e0362c74bfe9cc944d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -891,11 +1062,11 @@
"nvim_plugin-stevearc/dressing.nvim": { "nvim_plugin-stevearc/dressing.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1734804193, "lastModified": 1739381641,
"narHash": "sha256-N4hB5wDgoqXrXxSfzDCrqmdDtdVvq+PtOS7FBPH7qXE=", "narHash": "sha256-dBz+/gZA6O6fJy/GSgM6ZHGAR3MTGt/W1olzzTYRlgM=",
"owner": "stevearc", "owner": "stevearc",
"repo": "dressing.nvim", "repo": "dressing.nvim",
"rev": "3a45525bb182730fe462325c99395529308f431e", "rev": "2d7c2db2507fa3c4956142ee607431ddb2828639",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -955,11 +1126,11 @@
"nvim_plugin-windwp/nvim-ts-autotag": { "nvim_plugin-windwp/nvim-ts-autotag": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1733164313, "lastModified": 1739910276,
"narHash": "sha256-v2NTFBIzKTYizUPWB3uhpnTGVZWaelhE3MT5+BDA6Do=", "narHash": "sha256-a3Bcql68mp3y5bH9XMiDTQB0e75T+qFB593objIGg/I=",
"owner": "windwp", "owner": "windwp",
"repo": "nvim-ts-autotag", "repo": "nvim-ts-autotag",
"rev": "1cca23c9da708047922d3895a71032bc0449c52d", "rev": "a1d526af391f6aebb25a8795cbc05351ed3620b5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -971,11 +1142,11 @@
"nvim_plugin-yetone/avante.nvim": { "nvim_plugin-yetone/avante.nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737518419, "lastModified": 1742209600,
"narHash": "sha256-Opp6ACJwnAIkLdCQwbqjahjCErxDGIpsX9Hj/87Wm/I=", "narHash": "sha256-XmyRo20+VhyjP5CLgSy0Tr/7R031EJSmMEN/wK9JNk8=",
"owner": "yetone", "owner": "yetone",
"repo": "avante.nvim", "repo": "avante.nvim",
"rev": "396840a152be82354984b16f9a22cb425d0840d1", "rev": "540cc53f0c30214e3e4b5688f030bb2d8277b8ce",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1003,11 +1174,11 @@
"nvim_plugin-zbirenbaum/copilot.lua": { "nvim_plugin-zbirenbaum/copilot.lua": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1734926641, "lastModified": 1739230958,
"narHash": "sha256-c2UE0dLBtoYMvMxg+jXzfsD+wN9sZLvftJq4gGmooZU=", "narHash": "sha256-632UIbG1jwam+tug5+jODkT509+uBfJgUN21C3ppnEo=",
"owner": "zbirenbaum", "owner": "zbirenbaum",
"repo": "copilot.lua", "repo": "copilot.lua",
"rev": "886ee73b6d464b2b3e3e6a7ff55ce87feac423a9", "rev": "30321e33b03cb924fdcd6a806a0dc6fa0b0eafb9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1016,17 +1187,39 @@
"type": "github" "type": "github"
} }
}, },
"ragenix": {
"inputs": {
"agenix": "agenix",
"crane": "crane",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_3",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1741508717,
"narHash": "sha256-iQf1WdNxaApOFHIx4RLMRZ4f8g+8Xp0Z1/E/Mz2rLxY=",
"owner": "yaxitech",
"repo": "ragenix",
"rev": "2a2bea99d74927e54adf53cbf113219def67d5c9",
"type": "github"
},
"original": {
"owner": "yaxitech",
"repo": "ragenix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"common": "common",
"deploy-rs": "deploy-rs", "deploy-rs": "deploy-rs",
"mod_common": "mod_common", "nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_2",
"ros_neovim": "ros_neovim" "ros_neovim": "ros_neovim"
} }
}, },
"ros_neovim": { "ros_neovim": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_6",
"nvim_plugin-Almo7aya/openingh.nvim": "nvim_plugin-Almo7aya/openingh.nvim", "nvim_plugin-Almo7aya/openingh.nvim": "nvim_plugin-Almo7aya/openingh.nvim",
"nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim", "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim": "nvim_plugin-CopilotC-Nvim/CopilotChat.nvim",
"nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring": "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring", "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring": "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring",
@ -1084,14 +1277,14 @@
"nvim_plugin-yetone/avante.nvim": "nvim_plugin-yetone/avante.nvim", "nvim_plugin-yetone/avante.nvim": "nvim_plugin-yetone/avante.nvim",
"nvim_plugin-zbirenbaum/copilot-cmp": "nvim_plugin-zbirenbaum/copilot-cmp", "nvim_plugin-zbirenbaum/copilot-cmp": "nvim_plugin-zbirenbaum/copilot-cmp",
"nvim_plugin-zbirenbaum/copilot.lua": "nvim_plugin-zbirenbaum/copilot.lua", "nvim_plugin-zbirenbaum/copilot.lua": "nvim_plugin-zbirenbaum/copilot.lua",
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
"lastModified": 1737610236, "lastModified": 1742226527,
"narHash": "sha256-UfC+hBu09KEepjnqbXGqRJ0jTlV8HTuD1GjB+ZjTjYM=", "narHash": "sha256-CT9227XXn1t8H1ivNBBkBcf+npB7tWk5yzEQoJvbGVU=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "631d85a771f3e22822b9ac02d895e2a06aa1e183", "rev": "e8bafafc36fb2227dab8f0ddb67a2439d9077091",
"revCount": 260, "revCount": 268,
"type": "git", "type": "git",
"url": "https://git.joshuabell.xyz/nvim" "url": "https://git.joshuabell.xyz/nvim"
}, },
@ -1101,6 +1294,28 @@
} }
}, },
"rust-overlay": { "rust-overlay": {
"inputs": {
"nixpkgs": [
"common",
"ragenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1741400194,
"narHash": "sha256-tEpgT+q5KlGjHSm8MnINgTPErEl8YDzX3Eps8PVc09g=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "16b6045a232fea0e9e4c69e55a6e269607dd8e3f",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"ros_neovim", "ros_neovim",
@ -1108,11 +1323,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737512878, "lastModified": 1742178793,
"narHash": "sha256-dgF6htdmfNnZzVInifks6npnCAyVsIHWSpWNs10RSW0=", "narHash": "sha256-S2onMdoDS4tIYd3/Jc5oFEZBr2dJOgPrh9KzSO/bfDw=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "06b8ed0eee289fe94c66f1202ced9a6a2c59a14c", "rev": "954582a766a50ebef5695a9616c93b5386418c08",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1136,9 +1351,39 @@
"type": "github" "type": "github"
} }
}, },
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1701680307, "lastModified": 1701680307,

View file

@ -2,19 +2,19 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
deploy-rs.url = "github:serokell/deploy-rs"; deploy-rs.url = "github:serokell/deploy-rs";
common.url = "git+https://git.joshuabell.xyz/dotfiles";
ros_neovim.url = "git+https://git.joshuabell.xyz/nvim"; ros_neovim.url = "git+https://git.joshuabell.xyz/nvim";
mod_common.url = "git+https://git.joshuabell.xyz/dotfiles?ref=mod_common";
mod_common.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = outputs =
{ {
self, self,
nixpkgs, nixpkgs,
common,
ros_neovim,
deploy-rs, deploy-rs,
... ...
}@inputs: }:
let let
configuration_name = "l002"; configuration_name = "l002";
lib = nixpkgs.lib; lib = nixpkgs.lib;
@ -37,62 +37,69 @@
nixosConfigurations = { nixosConfigurations = {
nixos = self.nixosConfigurations.${configuration_name}; nixos = self.nixosConfigurations.${configuration_name};
"${configuration_name}" = "${configuration_name}" = lib.nixosSystem {
let
auto_modules = builtins.concatMap (
input:
lib.optionals
(builtins.hasAttr "nixosModules" input && builtins.hasAttr "default" input.nixosModules)
[
input.nixosModules.default
]
) (builtins.attrValues inputs);
in
(lib.nixosSystem {
modules = [ modules = [
common.nixosModules.default
ros_neovim.nixosModules.default
./configuration.nix ./configuration.nix
./hardware-configuration.nix ./hardware-configuration.nix
./linode.nix ./linode.nix
./nginx.nix ./nginx.nix
../../../components/nix/tailscale.nix
( (
{ pkgs, ... }: { pkgs, ... }:
{ {
users.users.root.openssh.authorizedKeys.keys = [ users.users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode"
]; ];
components = {
# NOTE we manually onboard this machine since it has no secrets uploaded to it ringofstorms_common = {
tailscale.useSecretsAuth = false;
};
mods = {
common = {
disableRemoteBuildsOnLio = true;
systemName = configuration_name; systemName = configuration_name;
allowUnfree = true; general = {
primaryUser = "luser"; disableRemoteBuildsOnLio = true;
docker = true; };
programs = {
tailnet.enable = true;
tailnet.useSecretsAuth = false;
ssh.enable = true;
};
users = {
# Users are all normal users and default password is password1
admins = [ "luser" ]; # First admin is also the primary user owning nix config
users = { users = {
luser = { luser = {
extraGroups = [ extraGroups = [
"wheel"
"networkmanager" "networkmanager"
]; ];
isNormalUser = true;
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode"
]; ];
shell = pkgs.zsh;
packages = with pkgs; [
bitwarden
vaultwarden
];
};
};
};
homeManager = {
users = {
luser = {
imports = with common.homeManagerModules; [
tmux
git
postgres
starship
zoxide
zsh
];
}; };
}; };
}; };
}; };
} }
) )
] ++ auto_modules; ];
specialArgs = {
inherit inputs;
}; };
});
}; };
}; };
} }

View file

@ -2,6 +2,7 @@
{ {
# https://www.linode.com/docs/guides/install-nixos-on-linode/#configure-nixos # https://www.linode.com/docs/guides/install-nixos-on-linode/#configure-nixos
boot.kernelParams = [ "console=ttyS0,19200n8" ]; boot.kernelParams = [ "console=ttyS0,19200n8" ];
boot.loader.grub.enable = true;
boot.loader.grub.extraConfig = '' boot.loader.grub.extraConfig = ''
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1; serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
terminal_input serial; terminal_input serial;

View file

@ -1,71 +0,0 @@
{
config,
...
}:
{
boot.loader.grub.enable = true;
system.stateVersion = "24.11";
containers.wasabi = {
ephemeral = true;
autoStart = true;
privateNetwork = true;
hostAddress = "192.168.100.2";
localAddress = "192.168.100.11";
config =
{ config, pkgs, ... }:
{
system.stateVersion = "24.11";
services.httpd.enable = true;
services.httpd.adminAddr = "foo@example.org";
networking.firewall = {
enable = true;
allowedTCPPorts = [ 80 ];
};
};
};
virtualisation.oci-containers = {
backend = "docker"; # or "podman"
containers = {
# Example of defining a container from the compose file
"test_nginx" = {
# autoStart = true; this is default true
image = "nginx:latest";
ports = [
"127.0.0.1:8085:80"
];
};
};
};
security.acme.acceptTerms = true;
security.acme.email = "admin@joshuabell.xyz";
services.nginx = {
enable = true;
recommendedGzipSettings = true;
recommendedOptimisation = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
virtualHosts = {
"_" = {
default = true;
locations."/wasabi/" = {
extraConfig = ''
rewrite ^/wasabi/(.*) /$1 break;
'';
proxyPass = "http://${config.containers.wasabi.localAddress}:80/";
};
locations."/" = {
# return = "404"; # or 444 for drop
proxyPass = "http://127.0.0.1:8085/";
};
};
};
};
networking.firewall.allowedTCPPorts = [
80
443
];
}

View file

@ -1,135 +0,0 @@
{
"nodes": {
"deploy-rs": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs",
"utils": "utils"
},
"locked": {
"lastModified": 1727447169,
"narHash": "sha256-3KyjMPUKHkiWhwR91J1YchF6zb6gvckCAY1jOE+ne0U=",
"owner": "serokell",
"repo": "deploy-rs",
"rev": "aa07eb05537d4cd025e2310397a6adcedfe72c76",
"type": "github"
},
"original": {
"owner": "serokell",
"repo": "deploy-rs",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"mod_common": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1736191002,
"narHash": "sha256-t39PCeJFgIXzniqjUIIFnbv6AE15WyoPTCE3k3Xuyz0=",
"ref": "mod_common",
"rev": "ac3c0c2422842edba1887279bddd02b895ec5ed2",
"revCount": 4,
"type": "git",
"url": "https://git.joshuabell.xyz/dotfiles"
},
"original": {
"ref": "mod_common",
"type": "git",
"url": "https://git.joshuabell.xyz/dotfiles"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1702272962,
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1736200483,
"narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"deploy-rs": "deploy-rs",
"mod_common": "mod_common",
"nixpkgs": "nixpkgs_2"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

View file

@ -1,91 +0,0 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
deploy-rs.url = "github:serokell/deploy-rs";
mod_common.url = "git+https://git.joshuabell.xyz/dotfiles?ref=mod_common";
mod_common.inputs.nixpkgs.follows = "nixpkgs";
};
outputs =
{
self,
nixpkgs,
deploy-rs,
...
}@inputs:
let
configuration_name = "l004";
lib = nixpkgs.lib;
in
{
deploy = {
sshUser = "root";
sshOpts = [
"-i"
"/run/agenix/nix2linode"
];
nodes.${configuration_name} = {
hostname = "LINODE_IP_HERE_TODO";
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.${configuration_name};
};
};
};
nixosConfigurations = {
nixos = self.nixosConfigurations.${configuration_name};
"${configuration_name}" =
let
auto_modules = builtins.concatMap (
input:
lib.optionals
(builtins.hasAttr "nixosModules" input && builtins.hasAttr "default" input.nixosModules)
[
input.nixosModules.default
]
) (builtins.attrValues inputs);
in
(lib.nixosSystem {
modules = [
./configuration.nix
./hardware-configuration.nix
./linode.nix
(
{ pkgs, ... }:
{
users.users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode"
];
mods = {
common = {
disableRemoteBuildsOnLio = true;
systemName = configuration_name;
allowUnfree = true;
primaryUser = "luser";
docker = true;
users = {
luser = {
extraGroups = [
"wheel"
"networkmanager"
];
isNormalUser = true;
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJuo6L6V52AzdQIK6fWW9s0aX1yKUUTXbPd8v8IU9p2o nix2linode"
];
};
};
};
};
}
)
] ++ auto_modules;
specialArgs = {
inherit inputs;
};
});
};
};
}

View file

@ -1,34 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "virtio_pci" "virtio_scsi" "ahci" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/3612d65e-719c-4b33-af08-561b790d6d33";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/f1408ea6-59a0-11ed-bc9d-525400000001"; }
];
# 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
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s5.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}

View file

@ -1,32 +0,0 @@
{ config, pkgs, ... }:
{
# https://www.linode.com/docs/guides/install-nixos-on-linode/#configure-nixos
boot.kernelParams = [ "console=ttyS0,19200n8" ];
boot.loader.grub.extraConfig = ''
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
terminal_input serial;
terminal_output serial
'';
boot.loader.grub.forceInstall = true;
boot.loader.grub.device = "nodev";
boot.loader.timeout = 10;
services.openssh = {
enable = true;
settings.PermitRootLogin = "yes";
settings.PasswordAuthentication = false;
};
users.users.root.openssh.authorizedKeys.keys = config.users.users.luser.openssh.authorizedKeys.keys;
networking.usePredictableInterfaceNames = false;
networking.useDHCP = false; # Disable DHCP globally as we will not need it.
# required for ssh?
networking.interfaces.eth0.useDHCP = true;
environment.systemPackages = with pkgs; [
inetutils
mtr
sysstat
];
}

View file

@ -1,10 +0,0 @@
# Linode setup
https://www.linode.com/docs/guides/install-nixos-on-linode/#prepare-your-linode
https://nixos.org/download/
`export HOSTNAME=NAME && sudo nixos-rebuild switch --flake ~/.config/nixos-config`
# Deploying
`cd hosts/NAME && deploy`

View file

@ -2,6 +2,7 @@
{ {
# https://www.linode.com/docs/guides/install-nixos-on-linode/#configure-nixos # https://www.linode.com/docs/guides/install-nixos-on-linode/#configure-nixos
boot.kernelParams = [ "console=ttyS0,19200n8" ]; boot.kernelParams = [ "console=ttyS0,19200n8" ];
boot.loader.grub.enable = true;
boot.loader.grub.extraConfig = '' boot.loader.grub.extraConfig = ''
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1; serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
terminal_input serial; terminal_input serial;

View file

@ -42,6 +42,8 @@
lua lua
qdirstat qdirstat
steam steam
ffmpeg-full
appimage-run
]; ];
# Also allow this key to work for root user, this will let us use this as a remote builder easier # Also allow this key to work for root user, this will let us use this as a remote builder easier
@ -54,6 +56,7 @@
ringofstorms_common = { ringofstorms_common = {
systemName = configuration_name; systemName = configuration_name;
boot.systemd.enable = true; boot.systemd.enable = true;
secrets.enable = true;
general = { general = {
disableRemoteBuildsOnLio = true; disableRemoteBuildsOnLio = true;
}; };

View file

@ -48,6 +48,7 @@
general = { general = {
disableRemoteBuildsOnLio = true; disableRemoteBuildsOnLio = true;
}; };
secrets.enable = true;
desktopEnvironment.gnome.enable = true; desktopEnvironment.gnome.enable = true;
programs = { programs = {
qFlipper.enable = true; qFlipper.enable = true;