Nixfiles/flake.nix

389 lines
10 KiB
Nix

{
description = "NixOS configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-master.url = "github:nixos/nixpkgs";
nixpkgs-traxys.url = "github:traxys/nixpkgs/inflight";
nix-gaming = {
url = "github:fufexan/nix-gaming";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-ld = {
url = "github:Mic92/nix-ld/main";
inputs.nixpkgs.follows = "nixpkgs";
};
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
naersk = {
url = "github:nix-community/naersk";
inputs.nixpkgs.follows = "nixpkgs";
};
comma = {
url = "github:nix-community/comma";
inputs.naersk.follows = "naersk";
inputs.nixpkgs.follows = "nixpkgs";
};
raclette = {
url = "github:traxys/raclette";
inputs.naersk.follows = "naersk";
inputs.nixpkgs.follows = "nixpkgs";
};
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
gsm.url = "github:traxys/git-series-manager";
attic.url = "github:zhaofengli/attic";
flake-parts.url = "github:hercules-ci/flake-parts";
treefmt-nix.url = "github:numtide/treefmt-nix";
flake-root.url = "github:srid/flake-root";
nix-index-database.url = "github:Mic92/nix-index-database";
nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
# Extra Package Sources
meson-syntax = {
url = "github:Monochrome-Sauce/sublime-meson";
flake = false;
};
glaurung.url = "git+https://gitea.familleboyer.net/traxys/Glaurung";
simulationcraft = {
url = "github:simulationcraft/simc";
flake = false;
};
kabalist = {
url = "github:traxys/kabalist";
flake = false;
};
roaming_proxy = {
url = "github:traxys/roaming_proxy";
inputs.naersk.follows = "naersk";
inputs.nixpkgs.follows = "nixpkgs";
};
zsh-nix-shell = {
url = "github:chisui/zsh-nix-shell";
flake = false;
};
powerlevel10k = {
url = "github:romkatv/powerlevel10k";
flake = false;
};
fast-syntax-highlighting = {
url = "github:zdharma-continuum/fast-syntax-highlighting";
flake = false;
};
jq-zsh-plugin = {
url = "github:reegnz/jq-zsh-plugin";
flake = false;
};
mujmap = {
url = "github:elizagamedev/mujmap";
#inputs.nixpkgs.follows = "nixpkgs";
};
fioul.url = "github:traxys/fioul";
neovim-flake = {
url = "github:neovim/neovim?dir=contrib";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim";
#url = "/home/traxys/Documents/nixvim";
#url = "github:traxys/nixvim?ref=dev";
inputs.nixpkgs.follows = "nixpkgs";
};
# Neovim plugins
"plugin:clangd_extensions-nvim" = {
url = "github:p00f/clangd_extensions.nvim";
flake = false;
};
"plugin:netman-nvim" = {
url = "github:miversen33/netman.nvim";
flake = false;
};
"plugin:cmp-buffer" = {
url = "github:hrsh7th/cmp-buffer";
flake = false;
};
"plugin:cmp-calc" = {
url = "github:hrsh7th/cmp-calc";
flake = false;
};
"plugin:cmp-nvim-lsp" = {
url = "github:hrsh7th/cmp-nvim-lsp";
flake = false;
};
"plugin:cmp-path" = {
url = "github:hrsh7th/cmp-path";
flake = false;
};
"plugin:cmp_luasnip" = {
url = "github:saadparwaiz1/cmp_luasnip";
flake = false;
};
"plugin:comment-nvim" = {
url = "github:numtostr/comment.nvim";
flake = false;
};
"plugin:firenvim" = {
url = "github:glacambre/firenvim";
flake = false;
};
"plugin:git-messenger-vim" = {
url = "github:rhysd/git-messenger.vim";
flake = false;
};
"plugin:gitsigns-nvim" = {
url = "github:lewis6991/gitsigns.nvim";
flake = false;
};
"plugin:inc-rename-nvim" = {
url = "github:smjonas/inc-rename.nvim";
flake = false;
};
"plugin:indent-blankline-nvim" = {
url = "github:lukas-reineke/indent-blankline.nvim";
flake = false;
};
"plugin:lspkind-nvim" = {
url = "github:onsails/lspkind.nvim";
flake = false;
};
"plugin:lualine-nvim" = {
url = "github:nvim-lualine/lualine.nvim";
flake = false;
};
"plugin:noice-nvim" = {
url = "github:folke/noice.nvim";
flake = false;
};
"plugin:nui-nvim" = {
url = "github:MunifTanjim/nui.nvim";
flake = false;
};
"plugin:nvim-cmp" = {
url = "github:hrsh7th/nvim-cmp";
flake = false;
};
"plugin:nvim-lightbulb" = {
url = "github:kosayoda/nvim-lightbulb";
flake = false;
};
"plugin:nvim-lspconfig" = {
url = "github:neovim/nvim-lspconfig";
flake = false;
};
"plugin:nvim-notify" = {
url = "github:rcarriga/nvim-notify";
flake = false;
};
"plugin:nvim-osc52" = {
url = "github:ojroques/nvim-osc52";
flake = false;
};
"plugin:nvim-tree-lua" = {
url = "github:nvim-tree/nvim-tree.lua";
flake = false;
};
"plugin:nvim-treesitter-context" = {
url = "github:nvim-treesitter/nvim-treesitter-context";
flake = false;
};
"plugin:nvim-treesitter-refactor" = {
url = "github:nvim-treesitter/nvim-treesitter-refactor";
flake = false;
};
"plugin:plantuml-syntax" = {
url = "github:aklt/plantuml-syntax";
flake = false;
};
"plugin:plenary-nvim" = {
url = "github:nvim-lua/plenary.nvim";
flake = false;
};
"plugin:rustaceanvim" = {
url = "github:mrcjkb/rustaceanvim";
flake = false;
};
"plugin:telescope-nvim" = {
url = "github:nvim-telescope/telescope.nvim";
flake = false;
};
"plugin:telescope-ui-select-nvim" = {
url = "github:nvim-telescope/telescope-ui-select.nvim";
flake = false;
};
"plugin:trouble-nvim" = {
url = "github:folke/trouble.nvim";
flake = false;
};
"plugin:vim-matchup" = {
url = "github:andymass/vim-matchup";
flake = false;
};
"plugin:luasnip" = {
url = "github:L3MON4D3/LuaSnip";
flake = false;
};
"plugin:nvim-treesitter" = {
url = "github:nvim-treesitter/nvim-treesitter";
flake = false;
};
"plugin:openscad-nvim" = {
url = "github:salkin-mada/openscad.nvim";
flake = false;
};
"plugin:neo-tree-nvim" = {
url = "github:nvim-neo-tree/neo-tree.nvim";
flake = false;
};
"plugin:nvim-web-devicons" = {
url = "github:nvim-tree/nvim-web-devicons";
flake = false;
};
"plugin:popup-nvim" = {
url = "github:nvim-lua/popup.nvim";
flake = false;
};
"plugin:skim-vim" = {
url = "github:lotabout/skim.vim";
flake = false;
};
"plugin:tokyonight-nvim" = {
url = "github:folke/tokyonight.nvim";
flake = false;
};
"plugin:vim-snippets" = {
url = "github:honza/vim-snippets";
flake = false;
};
"plugin:markdown-preview-nvim" = {
url = "github:iamcco/markdown-preview.nvim";
flake = false;
};
"plugin:which-key-nvim" = {
url = "github:folke/which-key.nvim";
flake = false;
};
"plugin:zk-nvim" = {
url = "github:mickael-menu/zk-nvim";
flake = false;
};
"plugin:efmls-configs-nvim" = {
url = "github:creativenull/efmls-configs-nvim";
flake = false;
};
"plugin:vim-just" = {
url = "github:NoahTheDuke/vim-just/";
flake = false;
};
"plugin:ltex_extra-nvim" = {
url = "github:barreiroleo/ltex_extra.nvim";
flake = false;
};
# Plugins that are not in nixpkgs
"new-plugin:vim-headerguard" = {
url = "github:drmikehenry/vim-headerguard";
flake = false;
};
};
outputs =
inputs@{ flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } (
{ self, ... }:
{
systems = [
"x86_64-linux"
"aarch64-linux"
];
debug = true;
imports = [
./pkgs
./neovim/pkg.nix
./hostconfig
./templates
inputs.treefmt-nix.flakeModule
inputs.flake-root.flakeModule
];
perSystem =
{
inputs',
lib,
system,
config,
...
}:
{
_module.args = {
naersk' = inputs.naersk.lib.${system};
pkgs = import inputs.nixpkgs {
inherit system;
config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) ["warcraftlogs"];
};
};
packages =
let
names = [
"glaurung"
"raclette"
"roaming_proxy"
"mujmap"
"attic"
];
in
lib.genAttrs names (name: inputs'.${name}.packages.${name});
formatter = config.treefmt.build.wrapper;
treefmt.config = {
inherit (config.flake-root) projectRootFile;
programs = {
nixfmt-rfc-style.enable = true;
statix.enable = true;
};
};
};
flake =
let
extraInfo = import ./extra_info.nix;
in
{
hmModules = {
minimal = import ./minimal/hm.nix {
inherit inputs extraInfo;
flake = self;
};
personal-cli = import ./personal-cli/hm.nix;
personal-gui = import ./personal-gui/hm.nix;
gaming = import ./gaming/hm.nix;
work = import ./hostconfig/thinkpad-nixos/work.nix;
};
nixosModules = {
minimal = import ./minimal/nixos.nix { inherit extraInfo; };
personal-cli = import ./personal-cli/nixos.nix;
personal-gui = import ./personal-gui/nixos.nix;
roaming = import ./roaming/nixos.nix;
gaming = import ./gaming/nixos.nix;
};
};
}
);
}