dotfiles/flake.nix

148 lines
3.8 KiB
Nix
Raw Permalink Normal View History

2024-10-30 13:51:36 +10:00
{
description = "Emile's Nix Dotfiles";
inputs = {
2025-02-19 12:14:25 +10:00
# nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
#nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
2024-11-07 17:37:15 +10:00
2025-02-19 12:14:25 +10:00
#home-manager = {
# url = "github:nix-community/home-manager";
# inputs.nixpkgs.follows = "nixpkgs";
#};
2024-10-30 13:51:36 +10:00
2024-11-07 17:37:15 +10:00
spicetify-nix = {
2024-10-30 23:25:57 +10:00
url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-11-04 11:59:14 +10:00
nixcord.url = "github:kaylorben/nixcord";
2024-11-07 17:37:15 +10:00
grub2-themes.url = "github:vinceliuice/grub2-themes";
2024-10-30 23:25:57 +10:00
2024-11-07 17:37:15 +10:00
# is this necessary? (aren't I enabling it in `configuration.nix` anyways?)
2024-10-30 13:51:36 +10:00
hyprland.url = "github:hyprwm/Hyprland";
2024-11-04 11:59:14 +10:00
2024-11-07 17:37:15 +10:00
swww.url = "github:LGFae/swww";
# TODO: declarative flatpak management
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
ags.url = "github:Aylur/ags";
2024-11-11 12:29:10 +10:00
hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
2025-02-19 12:14:25 +10:00
# colmena.url = "github:zhaofengli/colmena";
colmena.url = "github:zhaofengli/colmena/?rev=47b6414d800c8471e98ca072bc0835345741a56a";
# alternative to colmena (currently in testing)
#deploy-rs.url = "github:serokell/deploy-rs";
#wishlist.url = "path:/home/me/nixdots/flakes/wishlist";
2024-10-30 13:51:36 +10:00
};
outputs = {
self,
nixpkgs,
2025-02-19 12:14:25 +10:00
#home-manager,
hyprland,
grub2-themes,
nixcord,
colmena,
2025-02-19 12:14:25 +10:00
#deploy-rs,
...
} @ inputs: let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config = {
allowUnfree = true;
};
};
2024-10-30 13:51:36 +10:00
2025-02-12 20:03:33 +10:00
# TODO: come back to this its really cool
# this is just something I'm experimenting with
PROJECT_ROOT = builtins.toString ./.;
in {
2025-02-12 20:03:33 +10:00
# `nix develop` shell
devShells."x86_64-linux".default = pkgs.mkShell {
2025-02-12 20:03:33 +10:00
buildInputs = [
#colmena-new
];
};
nixosConfigurations = {
# i be on my puter fr
myputer = nixpkgs.lib.nixosSystem {
2025-02-11 15:47:56 +10:00
# nix passes these to every single module
specialArgs = {inherit inputs pkgs;};
modules = [
./hosts/myputer
grub2-themes.nixosModules.default
];
2024-10-30 13:51:36 +10:00
};
# my laptop 0w0
lolcathost = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs pkgs;};
modules = [
./hosts/lolcathost
grub2-themes.nixosModules.default
];
2024-10-30 13:51:36 +10:00
};
2025-02-11 15:47:56 +10:00
# meine vps
2025-02-19 12:14:25 +10:00
# hyrule = nixpkgs.lib.nixosSystem {
# # manually set system architecture since
# # this is for a remote deployment
# system = "x86_64-linux";
# specialargs = {inherit inputs pkgs;};
#
2025-02-19 12:14:25 +10:00
# modules = [
# ./hosts/hyrule
# ];
# };
};
2025-02-11 15:47:56 +10:00
2025-02-19 12:14:25 +10:00
# remote deployment with deploy-rs
# deploy.nodes.hyrule = {
# hostname = "imbored.dev";
# # create a primary profile called "system"
# profiles.system = {
# user = "root"; # user to deploy to
# path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.hyrule;
#
# # ssh configuration for reaching the server
# sshUser = "ae";
# #interactiveSudo = true; # TODO: use this and revoke passwordless sudo for ae
# sshOpts = ["-i" "/home/me/.ssh/id_hyrule"];
# remoteBuild = false; # build locally then deploy to remote host
# };
# };
# remote deployment to my servers!!
colmenaHive = colmena.lib.makeHive {
meta = {
# set nixpkgs global
nixpkgs = pkgs;
# set nixpkgs per server
2025-02-19 12:14:25 +10:00
nodeNixpkgs = {
hyrule = import nixpkgs {
system = "x86_64-linux";
config.allowUnfree = false;
};
};
# we can use `specialArgs.inputs` to inject wishlist into hyrule's module
#specialArgs.inputs = with inputs; {inherit wishlist;};
2025-02-11 15:47:56 +10:00
};
# meine vps
hyrule = import ./hosts/hyrule;
};
};
2024-10-30 13:51:36 +10:00
}