2024-01-03 22:53:34 -03:00
|
|
|
{
|
|
|
|
|
inputs = {
|
2025-02-05 10:22:46 -03:00
|
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
2024-08-09 21:53:29 -03:00
|
|
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
2024-01-03 22:53:34 -03:00
|
|
|
|
|
|
|
|
home-manager = {
|
2025-02-05 10:22:46 -03:00
|
|
|
url = "github:nix-community/home-manager/release-24.11";
|
2024-01-03 22:53:34 -03:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
|
|
|
|
|
2025-02-05 10:22:46 -03:00
|
|
|
stylix = {
|
|
|
|
|
url = "github:danth/stylix/release-24.11";
|
2024-01-12 17:45:22 -03:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
2025-02-05 10:22:46 -03:00
|
|
|
inputs.home-manager.follows = "home-manager";
|
2024-01-12 17:45:22 -03:00
|
|
|
};
|
|
|
|
|
|
2025-02-05 10:22:46 -03:00
|
|
|
sops-nix = {
|
|
|
|
|
url = "github:Mic92/sops-nix";
|
2024-01-13 18:58:54 -03:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
|
|
|
|
|
2025-02-07 14:25:59 -03:00
|
|
|
xremap = {
|
|
|
|
|
url = "github:xremap/nix-flake";
|
2024-08-09 21:53:29 -03:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
2024-05-26 18:42:38 -03:00
|
|
|
|
2025-02-11 11:30:11 -03:00
|
|
|
nix-flatpak = {
|
|
|
|
|
url = "github:gmodena/nix-flatpak/?ref=latest";
|
|
|
|
|
};
|
|
|
|
|
|
2025-02-09 00:16:27 -03:00
|
|
|
nixpak = {
|
|
|
|
|
url = "github:nixpak/nixpak";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
|
|
|
|
|
2025-03-05 16:08:43 -03:00
|
|
|
neovim = {
|
|
|
|
|
url = "git+https://forge.capytal.company/dot013/nvim";
|
2024-08-09 21:53:29 -03:00
|
|
|
};
|
2024-01-03 22:53:34 -03:00
|
|
|
};
|
|
|
|
|
|
2024-04-08 16:37:29 -03:00
|
|
|
outputs = {
|
|
|
|
|
self,
|
|
|
|
|
nixpkgs,
|
|
|
|
|
home-manager,
|
2024-08-09 21:53:29 -03:00
|
|
|
nixpkgs-unstable,
|
2024-04-08 16:37:29 -03:00
|
|
|
...
|
|
|
|
|
} @ inputs: let
|
2025-02-05 10:22:46 -03:00
|
|
|
systems = [
|
|
|
|
|
"x86_64-linux"
|
|
|
|
|
"aarch64-linux"
|
|
|
|
|
"x86_64-darwin"
|
|
|
|
|
"aarch64-darwin"
|
|
|
|
|
];
|
|
|
|
|
forAllSystems = f:
|
|
|
|
|
nixpkgs.lib.genAttrs systems (system: let
|
|
|
|
|
pkgs = import nixpkgs {inherit system;};
|
|
|
|
|
in
|
2025-03-02 13:07:06 -03:00
|
|
|
f {
|
|
|
|
|
inherit pkgs;
|
|
|
|
|
inherit (pkgs) lib;
|
|
|
|
|
});
|
2025-02-05 10:22:46 -03:00
|
|
|
|
2025-02-06 13:05:13 -03:00
|
|
|
# Home manager NixOS module
|
|
|
|
|
homeNixOSModules = [
|
2025-02-05 10:22:46 -03:00
|
|
|
home-manager.nixosModules.home-manager
|
2025-02-06 16:09:15 -03:00
|
|
|
./colors.nix
|
2024-04-08 16:37:29 -03:00
|
|
|
];
|
2025-02-05 10:22:46 -03:00
|
|
|
in {
|
|
|
|
|
nixosConfigurations = {
|
|
|
|
|
"battleship" = nixpkgs.lib.nixosSystem {
|
2025-02-11 11:30:11 -03:00
|
|
|
system = "x86_64-linux";
|
2025-02-05 10:22:46 -03:00
|
|
|
specialArgs = {inherit inputs self;};
|
|
|
|
|
modules =
|
2025-02-06 13:05:13 -03:00
|
|
|
homeNixOSModules
|
2025-02-05 10:22:46 -03:00
|
|
|
++ [
|
|
|
|
|
./hosts/battleship/configuration.nix
|
2025-02-06 16:09:15 -03:00
|
|
|
inputs.stylix.nixosModules.stylix
|
|
|
|
|
./home/guz/configuration.nix
|
2025-02-05 10:22:46 -03:00
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
"fighter" = nixpkgs.lib.nixosSystem {
|
2025-02-11 11:30:11 -03:00
|
|
|
system = "x86_64-linux";
|
2025-02-05 10:22:46 -03:00
|
|
|
specialArgs = {inherit inputs self;};
|
|
|
|
|
modules =
|
2025-02-06 13:05:13 -03:00
|
|
|
homeNixOSModules
|
2025-02-05 10:22:46 -03:00
|
|
|
++ [
|
|
|
|
|
./hosts/fighter/configuration.nix
|
2025-02-06 16:09:15 -03:00
|
|
|
inputs.stylix.nixosModules.stylix
|
|
|
|
|
./home/guz-lite/configuration.nix
|
2025-02-05 10:22:46 -03:00
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2025-02-05 10:25:00 -03:00
|
|
|
homeConfigurations = {
|
2025-02-06 16:09:15 -03:00
|
|
|
"guz-lite" = home-manager.lib.homeManagerConfiguration {
|
|
|
|
|
extraSpecialArgs = {inherit inputs self;};
|
|
|
|
|
modules = [
|
|
|
|
|
inputs.stylix.homeManagerModules.stylix
|
|
|
|
|
./colors.nix
|
|
|
|
|
inputs.xremap.homeManagerModules.default
|
|
|
|
|
./home/guz-lite
|
|
|
|
|
];
|
|
|
|
|
};
|
2025-02-05 10:25:00 -03:00
|
|
|
"guz" = home-manager.lib.homeManagerConfiguration {
|
|
|
|
|
extraSpecialArgs = {inherit inputs self;};
|
|
|
|
|
modules = [
|
|
|
|
|
inputs.stylix.homeManagerModules.stylix
|
2025-02-06 13:05:13 -03:00
|
|
|
./colors.nix
|
2025-02-06 16:09:15 -03:00
|
|
|
inputs.xremap.homeManagerModules.default
|
|
|
|
|
./home/guz
|
2025-02-05 10:25:00 -03:00
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2025-03-05 18:07:04 -03:00
|
|
|
nixosModules = {
|
|
|
|
|
neovim = inputs.neovim.nixosModules.default;
|
|
|
|
|
};
|
|
|
|
|
|
2025-02-05 10:27:12 -03:00
|
|
|
homeManagerModules = {
|
2025-02-12 11:23:24 -03:00
|
|
|
devkit = ./modules/home-manager/devkit.nix;
|
2025-03-05 18:07:04 -03:00
|
|
|
neovim = inputs.neovim.homeManagerModules.default;
|
2025-02-10 18:28:24 -03:00
|
|
|
eww = ./modules/home-manager/eww.nix;
|
2025-02-05 10:27:12 -03:00
|
|
|
};
|
2025-02-12 11:21:55 -03:00
|
|
|
|
2025-03-02 13:09:52 -03:00
|
|
|
packages = forAllSystems ({
|
2025-03-02 13:07:06 -03:00
|
|
|
lib,
|
2025-03-02 13:09:52 -03:00
|
|
|
pkgs,
|
2025-03-02 13:07:06 -03:00
|
|
|
...
|
2025-03-02 13:09:52 -03:00
|
|
|
}: {
|
2025-03-05 16:08:43 -03:00
|
|
|
neovim = inputs.neovim.packages.${pkgs.system}.default;
|
|
|
|
|
|
|
|
|
|
devkit =
|
|
|
|
|
(import ./packages/devkit {inherit pkgs inputs;})
|
|
|
|
|
// {
|
|
|
|
|
neovim = self.packages.${pkgs.system}.neovim;
|
|
|
|
|
};
|
2025-03-02 17:19:56 -03:00
|
|
|
devkit-shell = let
|
|
|
|
|
devkit = self.packages.${pkgs.system}.devkit;
|
2025-03-05 16:08:43 -03:00
|
|
|
packages = with devkit; [
|
|
|
|
|
git
|
|
|
|
|
lazygit
|
|
|
|
|
neovim
|
|
|
|
|
starship
|
|
|
|
|
tmux
|
|
|
|
|
yazi
|
|
|
|
|
zellij
|
|
|
|
|
zsh
|
2025-03-02 14:22:04 -03:00
|
|
|
|
2025-03-05 16:08:43 -03:00
|
|
|
# Useful on new Nix installations
|
|
|
|
|
(pkgs.writeShellScriptBin "nix" ''
|
|
|
|
|
${lib.getExe pkgs.nix} \
|
|
|
|
|
--experimental-features 'nix-command flakes' \
|
|
|
|
|
"$@"
|
|
|
|
|
'')
|
|
|
|
|
];
|
2025-03-02 17:19:56 -03:00
|
|
|
in
|
|
|
|
|
pkgs.writeShellScriptBin "devkit-shell" ''
|
|
|
|
|
export PATH="$PATH:${lib.makeBinPath packages}"
|
|
|
|
|
${lib.getExe devkit.zsh} "$@"
|
|
|
|
|
'';
|
2025-03-02 12:43:48 -03:00
|
|
|
});
|
2025-03-02 13:18:08 -03:00
|
|
|
|
|
|
|
|
devShells = forAllSystems ({
|
|
|
|
|
lib,
|
|
|
|
|
pkgs,
|
|
|
|
|
...
|
|
|
|
|
}: {
|
|
|
|
|
devkit = pkgs.mkShell {
|
|
|
|
|
name = "devkit-shell";
|
|
|
|
|
shellHook = "${lib.getExe self.packages.${pkgs.system}.devkit-shell}";
|
|
|
|
|
};
|
|
|
|
|
default = self.devShells.${pkgs.system}.devkit;
|
|
|
|
|
});
|
2024-04-08 16:37:29 -03:00
|
|
|
};
|
2024-01-03 22:53:34 -03:00
|
|
|
}
|