My Nix Configuration

[flake] Add data.packages

Changed files
+218 -16
data
home
hosts
common
lib
+3
data/packages.nix
···
···
+
{inputs, pkgs, ...}: {
+
nvim = inputs.nvim.packages.${pkgs.system}.neovim;
+
}
+192 -4
flake.lock
···
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
···
"type": "github"
}
},
"flake-root": {
"locked": {
"lastModified": 1713493429,
···
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"prismlauncher",
···
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
···
]
},
"locked": {
-
"lastModified": 1716120557,
-
"narHash": "sha256-rvNq9YolMY1DRMgwdAti8qwNDjkhTsotSWa15/Ch7+A=",
"owner": "nix-community",
"repo": "lib-aggregate",
-
"rev": "5fa64b174daa22fe0d20ebbcc0ec2c7905b503f1",
"type": "github"
},
"original": {
···
"type": "github"
}
},
"nh": {
"inputs": {
"nixpkgs": [
···
"type": "github"
}
},
"nur": {
"locked": {
"lastModified": 1716406862,
···
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": [
"flake-compat"
],
-
"gitignore": "gitignore",
"nixpkgs": [
"nixpkgs"
],
···
"nixd": "nixd",
"nixpkgs": "nixpkgs",
"nixpkgs-lib": "nixpkgs-lib",
"nur": "nur",
"prismlauncher": "prismlauncher",
"systems": "systems",
"wayland": "wayland"
···
"type": "github"
}
},
+
"flake-compat_2": {
+
"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"
+
}
+
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
···
"type": "github"
}
},
+
"flake-parts_2": {
+
"inputs": {
+
"nixpkgs-lib": [
+
"nvim",
+
"hercules-ci-effects",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1712014858,
+
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
+
"owner": "hercules-ci",
+
"repo": "flake-parts",
+
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
+
"type": "github"
+
},
+
"original": {
+
"id": "flake-parts",
+
"type": "indirect"
+
}
+
},
"flake-root": {
"locked": {
"lastModified": 1713493429,
···
"type": "github"
}
},
+
"git-hooks": {
+
"inputs": {
+
"flake-compat": "flake-compat_2",
+
"gitignore": "gitignore",
+
"nixpkgs": [
+
"nvim",
+
"nixpkgs"
+
],
+
"nixpkgs-stable": [
+
"nvim",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1716213921,
+
"narHash": "sha256-xrsYFST8ij4QWaV6HEokCUNIZLjjLP1bYC60K8XiBVA=",
+
"owner": "cachix",
+
"repo": "git-hooks.nix",
+
"rev": "0e8fcc54b842ad8428c9e705cb5994eaf05c26a0",
+
"type": "github"
+
},
+
"original": {
+
"owner": "cachix",
+
"repo": "git-hooks.nix",
+
"type": "github"
+
}
+
},
"gitignore": {
+
"inputs": {
+
"nixpkgs": [
+
"nvim",
+
"git-hooks",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1709087332,
+
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
+
"owner": "hercules-ci",
+
"repo": "gitignore.nix",
+
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
+
"type": "github"
+
},
+
"original": {
+
"owner": "hercules-ci",
+
"repo": "gitignore.nix",
+
"type": "github"
+
}
+
},
+
"gitignore_2": {
"inputs": {
"nixpkgs": [
"prismlauncher",
···
"type": "github"
}
},
+
"hercules-ci-effects": {
+
"inputs": {
+
"flake-parts": "flake-parts_2",
+
"nixpkgs": [
+
"nvim",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1713898448,
+
"narHash": "sha256-6q6ojsp/Z9P2goqnxyfCSzFOD92T3Uobmj8oVAicUOs=",
+
"owner": "hercules-ci",
+
"repo": "hercules-ci-effects",
+
"rev": "c0302ec12d569532a6b6bd218f698bc402e93adc",
+
"type": "github"
+
},
+
"original": {
+
"owner": "hercules-ci",
+
"repo": "hercules-ci-effects",
+
"type": "github"
+
}
+
},
"home-manager": {
"inputs": {
"nixpkgs": [
···
]
},
"locked": {
+
"lastModified": 1716725378,
+
"narHash": "sha256-bNTVDAVBLFSSTU+q54cJnntmFKBi+F/D8sSqlZwBGiM=",
"owner": "nix-community",
"repo": "lib-aggregate",
+
"rev": "dbc9130fe1455e0f6ee4d8f5f799f9be551f866b",
"type": "github"
},
"original": {
···
"type": "github"
}
},
+
"neovim-src": {
+
"flake": false,
+
"locked": {
+
"lastModified": 1716642936,
+
"narHash": "sha256-l53vGzYIy6tI1rYBlbxW502sDgpmZ4i/uTdWWtPKPtM=",
+
"owner": "neovim",
+
"repo": "neovim",
+
"rev": "52389e724366ebb2fb58f08c657f580900dd09ee",
+
"type": "github"
+
},
+
"original": {
+
"owner": "neovim",
+
"repo": "neovim",
+
"type": "github"
+
}
+
},
"nh": {
"inputs": {
"nixpkgs": [
···
"type": "github"
}
},
+
"nixpkgs-mesa": {
+
"locked": {
+
"lastModified": 1716453601,
+
"narHash": "sha256-4hY5oXwp2rBUNI09Jgph4UjmQuifLyZrYquz8FSEJNU=",
+
"owner": "K900",
+
"repo": "nixpkgs",
+
"rev": "12d474c0f0db6aba9d3763ba0b7c7368766eb0ac",
+
"type": "github"
+
},
+
"original": {
+
"owner": "K900",
+
"ref": "mesa-24.1",
+
"repo": "nixpkgs",
+
"type": "github"
+
}
+
},
+
"nixpkgs-nvim": {
+
"locked": {
+
"lastModified": 1716426505,
+
"narHash": "sha256-qNhdley/Nmzcl/1PNnC1NL4IakH4BE5v1dWe8H6rF/U=",
+
"owner": "nixos",
+
"repo": "nixpkgs",
+
"rev": "d5786c1b5dd2d560724b78f3ce51f1f4ef52d053",
+
"type": "github"
+
},
+
"original": {
+
"owner": "nixos",
+
"repo": "nixpkgs",
+
"rev": "d5786c1b5dd2d560724b78f3ce51f1f4ef52d053",
+
"type": "github"
+
}
+
},
"nur": {
"locked": {
"lastModified": 1716406862,
···
"type": "github"
}
},
+
"nvim": {
+
"inputs": {
+
"flake-compat": [
+
"flake-compat"
+
],
+
"flake-parts": [
+
"flake-parts"
+
],
+
"git-hooks": "git-hooks",
+
"hercules-ci-effects": "hercules-ci-effects",
+
"neovim-src": "neovim-src",
+
"nixpkgs": [
+
"nixpkgs-nvim"
+
]
+
},
+
"locked": {
+
"lastModified": 1716827514,
+
"narHash": "sha256-5qS9Jn3FaEFMGGhS/1mLOUifMFDLPcLczjcdaN7xgyE=",
+
"owner": "nix-community",
+
"repo": "neovim-nightly-overlay",
+
"rev": "7849e018a09688cd71bde887113954b3ce08739c",
+
"type": "github"
+
},
+
"original": {
+
"owner": "nix-community",
+
"repo": "neovim-nightly-overlay",
+
"type": "github"
+
}
+
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": [
"flake-compat"
],
+
"gitignore": "gitignore_2",
"nixpkgs": [
"nixpkgs"
],
···
"nixd": "nixd",
"nixpkgs": "nixpkgs",
"nixpkgs-lib": "nixpkgs-lib",
+
"nixpkgs-mesa": "nixpkgs-mesa",
+
"nixpkgs-nvim": "nixpkgs-nvim",
"nur": "nur",
+
"nvim": "nvim",
"prismlauncher": "prismlauncher",
"systems": "systems",
"wayland": "wayland"
+7
flake.nix
···
description = "PyroNet machines and services";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
# Override certain inputs for other repos to reduce lockfile size and increase code sharing.
flake-compat.url = "github:edolstra/flake-compat";
systems.url = "github:nix-systems/default";
···
url = "github:neovim/neovim/v0.9.5?dir=contrib";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
nh = {
url = "github:viperML/nh";
···
description = "PyroNet machines and services";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+
nixpkgs-nvim.url = "github:nixos/nixpkgs?rev=d5786c1b5dd2d560724b78f3ce51f1f4ef52d053";
# Override certain inputs for other repos to reduce lockfile size and increase code sharing.
flake-compat.url = "github:edolstra/flake-compat";
systems.url = "github:nix-systems/default";
···
url = "github:neovim/neovim/v0.9.5?dir=contrib";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
+
};
+
nvim = {
+
url = "github:nix-community/neovim-nightly-overlay";
+
inputs.nixpkgs.follows = "nixpkgs-nvim";
+
inputs.flake-parts.follows = "flake-parts";
+
inputs.flake-compat.follows = "flake-compat";
};
nh = {
url = "github:viperML/nh";
+2 -2
home/programs/gh.nix
···
-
{pkgs, ...}: {
programs.gh = {
enable = true;
gitCredentialHelper.enable = true;
settings = {
-
editor = "${pkgs.neovim}/bin/nvim";
git_protocol = "https";
browser = "${pkgs.firefox-wayland}/bin/firefox";
prompt = "enabled";
···
+
{pkgs, data, lib, ...}: {
programs.gh = {
enable = true;
gitCredentialHelper.enable = true;
settings = {
+
editor = lib.getExe data.packages.nvim;
git_protocol = "https";
browser = "${pkgs.firefox-wayland}/bin/firefox";
prompt = "enabled";
+3 -3
home/programs/git.nix
···
-
{pkgs, ...}:
-
with pkgs; {
programs.git = {
enable = true;
package = pkgs.gitAndTools.gitFull;
···
options.line-numbers = true;
};
extraConfig = {
-
core.editor = "${pkgs.neovim}/bin/nvim";
init.defaultBranch = "main";
pull.rebase = false;
# gpg.format = "ssh";
···
+
{pkgs, lib, data, ...}:
+
{
programs.git = {
enable = true;
package = pkgs.gitAndTools.gitFull;
···
options.line-numbers = true;
};
extraConfig = {
+
core.editor = lib.getExe data.packages.nvim;
init.defaultBranch = "main";
pull.rebase = false;
# gpg.format = "ssh";
+3 -3
home/programs/kitty.nix
···
-
{pkgs, ...}: {
programs.kitty = {
enable = true;
catppuccin.enable = true;
···
scrollback_lines = 10000;
wheel_scroll_multiplier = 3;
touch_scroll_multiplier = 2;
-
scrollback_pager = "${pkgs.page}";
cursor_shape = "block";
# Mouse settings
mouse_hide_wait = "0.5";
···
tab_bar_min_tabs = 2;
shell = "fish";
-
editor = "${pkgs.neovim}/bin/nvim";
allow_remote_control = "socket-only";
listen_on = "unix:/tmp/mykitty";
update_check_interval = 0;
···
+
{pkgs, lib, data, ...}: {
programs.kitty = {
enable = true;
catppuccin.enable = true;
···
scrollback_lines = 10000;
wheel_scroll_multiplier = 3;
touch_scroll_multiplier = 2;
+
scrollback_pager = "${lib.getExe pkgs.page}";
cursor_shape = "block";
# Mouse settings
mouse_hide_wait = "0.5";
···
tab_bar_min_tabs = 2;
shell = "fish";
+
editor = "${lib.getExe data.packages.nvim}";
allow_remote_control = "socket-only";
listen_on = "unix:/tmp/mykitty";
update_check_interval = 0;
+2 -1
home/programs/neovim.nix
···
{
pkgs,
lib,
...
}: {
programs.neovim = {
enable = true;
-
package = pkgs.neovim;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
···
{
pkgs,
lib,
+
data,
...
}: {
programs.neovim = {
enable = true;
+
package = data.packages.nvim;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
+3 -1
home/programs/vscodium.nix
···
{
pkgs,
...
}: {
programs.vscode = {
···
"update.showReleaseNotes" = false;
"workbench.colorTheme" = "Catppuccin Mocha";
"workbench.iconTheme" = "catppuccin-mocha";
-
"vscode-neovim.neovimExecutablePaths.linux" = "${pkgs.neovim}/bin/nvim";
"python.formatting.provider" = "black";
};
};
···
{
pkgs,
+
data,
+
lib,
...
}: {
programs.vscode = {
···
"update.showReleaseNotes" = false;
"workbench.colorTheme" = "Catppuccin Mocha";
"workbench.iconTheme" = "catppuccin-mocha";
+
"vscode-neovim.neovimExecutablePaths.linux" = lib.getExe data.packages.neovim;
"python.formatting.provider" = "black";
};
};
+2 -1
hosts/common/users.nix
···
{
lib,
pkgs,
...
}: {
users.users = {
···
withNodeJs = true;
withPython3 = true;
withRuby = false;
-
package = pkgs.neovim;
};
}
···
{
lib,
pkgs,
+
data,
...
}: {
users.users = {
···
withNodeJs = true;
withPython3 = true;
withRuby = false;
+
package = data.packages.nvim;
};
}
+1 -1
lib/hosts.nix
···
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
-
home-manager.extraSpecialArgs = {inherit pkgs system inputs;};
home-manager.sharedModules = builtins.concatLists [
[
inputs.nix-index-database.hmModules.nix-index
···
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
+
home-manager.extraSpecialArgs = {inherit pkgs system inputs data;};
home-manager.sharedModules = builtins.concatLists [
[
inputs.nix-index-database.hmModules.nix-index