216 lines
5.4 KiB
Nix
216 lines
5.4 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
sops-nix = {
|
|
url = "github:Mic92/sops-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
xivlauncher-rb = {
|
|
url = "github:dawei-nh/xivlauncher-rb-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
cheatengine = {
|
|
url = "github:Hy4ri/cheatengine-flake";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
scopebuddy = {
|
|
url = "github:HikariKnight/ScopeBuddy";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
nixpkgs-xr = {
|
|
url = "github:nix-community/nixpkgs-xr";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
lazyvim = {
|
|
url = "github:pfassina/lazyvim-nix/v16.0.0";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
nix-flatpak = {
|
|
url = "github:gmodena/nix-flatpak/?ref=latest";
|
|
};
|
|
|
|
appimage-manager = {
|
|
url = "github:kem-a/AppManager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
pi = {
|
|
url = "github:earendil-works/pi/stable";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
nix-darwin = {
|
|
url = "github:nix-darwin/nix-darwin";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
affinity-thumbnailer-kde = {
|
|
url = "path:./packages/affinity-thumbnailer-kde";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
inputs@{
|
|
self,
|
|
nixpkgs,
|
|
nixpkgs-xr,
|
|
nix-darwin,
|
|
nix-flatpak,
|
|
home-manager,
|
|
sops-nix,
|
|
affinity-thumbnailer-kde,
|
|
cheatengine,
|
|
xivlauncher-rb,
|
|
...
|
|
}:
|
|
let
|
|
home-manager-configuration = { home-manager, ... }: {
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
extraSpecialArgs = { inherit inputs; };
|
|
users.frank = ./home/frank.nix;
|
|
};
|
|
};
|
|
|
|
trusted-users-configuration = { nix, config, ... }: {
|
|
nix.settings.trusted-users = [ config.users.users.frank.name ];
|
|
};
|
|
|
|
systems = [
|
|
"x86_64-linux"
|
|
"aarch64-darwin"
|
|
];
|
|
|
|
forAllSystems = nixpkgs.lib.genAttrs systems;
|
|
|
|
packagesFor =
|
|
system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
in
|
|
nixpkgs.lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux {
|
|
heidisql = pkgs.callPackage ./packages/heidisql/package.nix { };
|
|
aseprite-thumbnailer-kde = pkgs.callPackage ./packages/aseprite-thumbnailer-kde/package.nix { };
|
|
};
|
|
|
|
formatterFor =
|
|
system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
in
|
|
pkgs.writeShellApplication {
|
|
name = "nixfmt";
|
|
runtimeInputs = [ pkgs.nixfmt ];
|
|
text = ''
|
|
flags=()
|
|
paths=()
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
-*) flags+=("$arg") ;;
|
|
*) paths+=("$arg") ;;
|
|
esac
|
|
done
|
|
if [ "''${#paths[@]}" -eq 0 ]; then
|
|
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
mapfile -t paths < <(git ls-files '*.nix')
|
|
else
|
|
mapfile -t paths < <(find . -name '*.nix' -not -path './.devenv/*')
|
|
fi
|
|
fi
|
|
nixfmt "''${flags[@]}" "''${paths[@]}"
|
|
'';
|
|
};
|
|
in
|
|
{
|
|
packages = forAllSystems packagesFor;
|
|
|
|
formatter = forAllSystems formatterFor;
|
|
nixosConfigurations = {
|
|
nero = nixpkgs.lib.nixosSystem {
|
|
specialArgs = { inherit inputs; };
|
|
|
|
modules = [
|
|
home-manager.nixosModules.home-manager
|
|
home-manager-configuration
|
|
trusted-users-configuration
|
|
|
|
nixpkgs-xr.nixosModules.nixpkgs-xr
|
|
nix-flatpak.nixosModules.nix-flatpak
|
|
affinity-thumbnailer-kde.nixosModules.default
|
|
sops-nix.nixosModules.sops
|
|
|
|
./hosts/nero/hardware.nix
|
|
./hosts/nero/configuration.nix
|
|
];
|
|
};
|
|
|
|
vergil = nixpkgs.lib.nixosSystem {
|
|
specialArgs = { inherit inputs; };
|
|
|
|
modules = [
|
|
home-manager.nixosModules.home-manager
|
|
home-manager-configuration
|
|
trusted-users-configuration
|
|
|
|
sops-nix.nixosModules.sops
|
|
|
|
./hosts/vergil/hardware.nix
|
|
./hosts/vergil/configuration.nix
|
|
];
|
|
};
|
|
|
|
pdw-frankiel = nixpkgs.lib.nixosSystem {
|
|
specialArgs = { inherit inputs; };
|
|
|
|
modules = [
|
|
home-manager.nixosModules.home-manager
|
|
home-manager-configuration
|
|
trusted-users-configuration
|
|
|
|
nix-flatpak.nixosModules.nix-flatpak
|
|
affinity-thumbnailer-kde.nixosModules.default
|
|
sops-nix.nixosModules.sops
|
|
|
|
./hosts/pdw-frankiel/hardware.nix
|
|
./hosts/pdw-frankiel/configuration.nix
|
|
];
|
|
};
|
|
};
|
|
|
|
darwinConfigurations = {
|
|
franks-macbook-pro = nix-darwin.lib.darwinSystem {
|
|
specialArgs = {
|
|
inherit inputs;
|
|
inherit self;
|
|
};
|
|
|
|
modules = [
|
|
home-manager.darwinModules.home-manager
|
|
home-manager-configuration
|
|
|
|
sops-nix.darwinModules.sops
|
|
|
|
{
|
|
users.users.frank.home = "/Users/frank";
|
|
}
|
|
|
|
./hosts/franks-macbook-pro/configuration.nix
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|