This repository has been archived on 2024-05-02. You can view files and clone it, but cannot push or open issues or pull requests.
home-manager-flake/flake.nix

110 lines
3.1 KiB
Nix

{
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
home-manager = {
url = "github:nix-community/home-manager/release-23.11";
};
neovim-nightly-overlay = {
url = "github:nix-community/neovim-nightly-overlay";
};
neovim-flake = {
url = "git+ssh://gitea@pi1.odie.intranet/odie/neovim-flake.git";
};
nur.url = "github:nix-community/NUR";
nixgl.url = "github:nix-community/nixGL";
};
outputs = inputs@{ self, nixpkgs, flake-utils, home-manager, ... }:
let
inherit (self) outputs;
vars = rec {
name = "Patrick Neff";
username = "odie";
homeDirectory = "/home/${username}";
locale = "de_DE.UTF-8";
email = "odie86@gmail.com";
};
inputOverlays = [
inputs.neovim-nightly-overlay.overlays.default
inputs.neovim-flake.overlays.default
inputs.nur.overlay
inputs.nixgl.overlay
];
unstableOverlay = final: _prev: {
unstable = import inputs.nixpkgs-unstable {
inherit (final) system;
config.allowUnfree = true;
overlays = inputOverlays;
};
};
overlays = [
unstableOverlay
] ++ inputOverlays;
mkPkgs = system:
import nixpkgs {
inherit system overlays;
config.allowUnfree = true;
};
pkgs = mkPkgs "x86_64-linux";
extraSpecialArgs = { inherit inputs outputs vars; };
in
rec {
homeModules = rec {
base = import ./modules/base.nix;
gui = import ./modules/gui.nix;
shell = import ./modules/shell.nix;
dev = import ./modules/dev.nix;
};
homeConfigurations = rec {
odie-shell = home-manager.lib.homeManagerConfiguration {
inherit pkgs extraSpecialArgs;
modules = [
homeModules.base
homeModules.shell
];
};
odie-dev = home-manager.lib.homeManagerConfiguration {
inherit pkgs extraSpecialArgs;
modules = [
inputs.neovim-flake.homeModules.neovim-ide
homeModules.base
homeModules.shell
homeModules.dev
];
};
odie-gui = home-manager.lib.homeManagerConfiguration {
inherit pkgs extraSpecialArgs;
modules = [
inputs.neovim-flake.homeModules.neovim-ide
homeModules.base
homeModules.shell
homeModules.dev
homeModules.gui
];
};
odie = odie-gui;
};
} // flake-utils.lib.eachDefaultSystem
(system:
let
pkgs = mkPkgs system;
in
{
formatter = pkgs.alejandra;
devShells = {
default = pkgs.mkShell {
name = "home-manager";
buildInputs = with pkgs; [
inputs.home-manager.packages.${system}.default
];
};
};
});
}