141 lines
4.6 KiB
Nix
141 lines
4.6 KiB
Nix
{
|
|
description = "mat's nix configs";
|
|
|
|
inputs = {
|
|
# base inputs
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
nix-darwin.url = "github:lnl7/nix-darwin/master";
|
|
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
|
|
home-manager.url = "github:nix-community/home-manager";
|
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
|
nixos-flake.url = "github:srid/nixos-flake";
|
|
pre-commit.url = "github:cachix/pre-commit-hooks.nix";
|
|
pre-commit.inputs.nixpkgs.follows = "nixpkgs";
|
|
disko.url = "github:nix-community/disko";
|
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
|
ghostty.url = "github:clo4/ghostty-hm-module";
|
|
mac-app-util.url = "github:hraban/mac-app-util";
|
|
mac-app-util.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
# "flag" for toggling homebrew operations
|
|
# https://www.mat.services/posts/command-line-flake-arguments/
|
|
homebrew-enabled.url = "github:boolean-option/true";
|
|
|
|
# command line text editor
|
|
helix.url = "github:helix-editor/helix";
|
|
helix.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
# nix language servers
|
|
nil.url = "github:oxalica/nil";
|
|
nil.inputs.nixpkgs.follows = "nixpkgs";
|
|
nixd.url = "github:nix-community/nixd";
|
|
nixd.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
# iA writer fonts
|
|
ia-writer-family-src.url = "github:iaolo/iA-Fonts";
|
|
ia-writer-family-src.flake = false;
|
|
|
|
# standard kitty terminal themes
|
|
terminal-themes.url = "github:mbadolato/iTerm2-Color-Schemes";
|
|
terminal-themes.flake = false;
|
|
|
|
# shell prompt
|
|
starship-src.url = "github:starship/starship";
|
|
starship-src.flake = false;
|
|
|
|
# extra fish shell plugins
|
|
fish-plugin-done.url = "github:franciscolourenco/done";
|
|
fish-plugin-done.flake = false;
|
|
fish-plugin-fish-abbr-tips.url = "github:Gazorby/fish-abbreviation-tips";
|
|
fish-plugin-fish-abbr-tips.flake = false;
|
|
fish-plugin-autopair.url = "github:jorgebucaran/autopair.fish";
|
|
fish-plugin-autopair.flake = false;
|
|
fish-plugin-replay.url = "github:jorgebucaran/replay.fish";
|
|
fish-plugin-replay.flake = false;
|
|
fish-plugin-fish-bang-bang.url = "github:oh-my-fish/plugin-bang-bang";
|
|
fish-plugin-fish-bang-bang.flake = false;
|
|
fish-plugin-colored-man-pages.url =
|
|
"github:PatrickF1/colored_man_pages.fish";
|
|
fish-plugin-colored-man-pages.flake = false;
|
|
};
|
|
|
|
outputs = { self, flake-parts, ... }@inputs:
|
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
|
systems = [ "aarch64-darwin" "aarch64-linux" ];
|
|
imports = [
|
|
inputs.nixos-flake.flakeModule
|
|
inputs.pre-commit.flakeModule
|
|
./darwin
|
|
./home
|
|
./nixos
|
|
./templates
|
|
./users
|
|
];
|
|
flake = {
|
|
nixosConfigurations = {
|
|
# pihole = self.nixos-flake.lib.mkLinuxSystem {
|
|
# nixpkgs.hostPlatform = "aarch64-linux";
|
|
# imports = [ self.nixosModules.default ./systems/nixos/pihole.nix ];
|
|
# };
|
|
};
|
|
|
|
darwinConfigurations = {
|
|
matbook = self.nixos-flake.lib.mkMacosSystem {
|
|
nixpkgs.hostPlatform = "aarch64-darwin";
|
|
imports = [
|
|
self.darwinModules.default
|
|
./darwin/games.nix
|
|
./systems/darwin/m1.nix
|
|
];
|
|
};
|
|
|
|
yelpbook-m1 = self.nixos-flake.lib.mkMacosSystem {
|
|
nixpkgs.hostPlatform = "aarch64-darwin";
|
|
imports = [
|
|
self.darwinModules.default
|
|
./systems/darwin/m1.nix
|
|
./systems/darwin/work.nix
|
|
];
|
|
};
|
|
};
|
|
};
|
|
perSystem = { self', pkgs, config, ... }:
|
|
# formatter for this flake
|
|
let formatter = pkgs.nixfmt;
|
|
in {
|
|
# controls which flake inputs are updated by `nix run .#update`
|
|
nixos-flake.primary-inputs = [
|
|
# system inputs
|
|
"nixpkgs"
|
|
"flake-parts"
|
|
"nix-darwin"
|
|
"home-manager"
|
|
"nixos-flake"
|
|
# package inputs
|
|
"helix"
|
|
"nil"
|
|
"nixd"
|
|
];
|
|
|
|
pre-commit.settings.hooks = {
|
|
deadnix.enable = true;
|
|
nil.enable = true;
|
|
nixfmt.enable = true;
|
|
statix.enable = true;
|
|
};
|
|
|
|
# TODO: how to set legacy packages with overrides, etc?
|
|
packages.default = self'.packages.activate;
|
|
devShells.default = pkgs.mkShell {
|
|
shellHook = ''
|
|
${config.pre-commit.installationScript}
|
|
echo 1>&2 "\(^ヮ^)/ welcome to the flake \(^ヮ^)/"
|
|
'';
|
|
buildInputs = [ formatter ];
|
|
};
|
|
inherit formatter;
|
|
};
|
|
};
|
|
}
|