dotfiles/flake.nix

169 lines
4.5 KiB
Nix
Executable file

{
description = "Emile's Nix Dotfiles";
inputs = {
#nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
spicetify-nix = {
url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixcord.url = "github:kaylorben/nixcord";
grub2-themes.url = "github:vinceliuice/grub2-themes";
# is this necessary? (aren't I enabling it in `configuration.nix` anyways?)
hyprland.url = "github:hyprwm/Hyprland";
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";
hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
colmena.url = "github:zhaofengli/colmena";
};
outputs = {
self,
nixpkgs,
home-manager,
hyprland,
grub2-themes,
nixcord,
colmena,
...
} @ inputs: let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config = {
allowUnfree = true;
# Colmena's latest stable version is
# unusable so get latest unstable version.
#packageOverrides = pkgsBuild: let
# src = pkgsBuild.fetchFromGitHub {
# owner = "zhaofengli";
# repo = "colmena";
# rev = "47b6414d800c8471e98ca072bc0835345741a56a";
# sha256 = "rINodqeUuezuCWOnpJgrH7u9vJ86fYT+Dj8Mu8T/IBc=";
# };:cl
# #flake = import (src + "/flake.nix");
#in {
# colmena = let
# flake = pkgsBuild.callPackage "${src}/flake.nix" {};
# #flake = import "${src}/package.nix";
# #flake = import "${src}/flake.nix";
# #flake-outputs = flake.outputs {
# # inherit self;
# # inherit nixpkgs;
# # inherit stable;
# # inherit flake-utils;
# #
# #};
# in
# flake;
# #flake.outputs.packages."${system}".colmena {};
#
# #pkgsBuild.callPackage flake.packages.${system}.colmena {};
# #colmena = flake.packages."${system}".colmena;
#};
};
};
# colmena-new = pkgs.colmena.overrideAttrs (old: {
# src = pkgs.fetchFromGitHub {
# owner = "zhaofengli";
# repo = "colmena";
# rev = "47b6414d800c8471e98ca072bc0835345741a56a";
# sha256 = "rINodqeUuezuCWOnpJgrH7u9vJ86fYT+Dj8Mu8T/IBc=";
# };
# cargoHash = pkgs.lib.fakeHash;
# cargoSha256 = pkgs.lib.fakeSha256;
# });
#pkgsColmena = import (builtins.fetchGit {
# name = "nixpkgs-unstable-colmena";
# url = "https://github.com/NixOS/nixpkgs/";
# ref = "refs/heads/nixpkgs-unstable";
# rev = "21808d22b1cda1898b71cf1a1beb524a97add2c4";
#}) {};
#pkgsColmena = import (builtins.fetchTarball {
# url = "https://github.com/NixOS/nixpkgs/archive/21808d22b1cda1898b71cf1a1beb524a97add2c4.tar.gz";
# sha256 = "0v2z6jphhbk1ik7fqhlfnihcyff5np9wb3pv19j9qb9mpildx0cg";
#}) {inherit system;};
# TODO: come back to this its really cool
# this is just something I'm experimenting with
PROJECT_ROOT = builtins.toString ./.;
in {
# `nix develop` shell
devShells."x86_64-linux".default = pkgs.mkShell {
buildInputs = [
#colmena-new
];
};
nixosConfigurations = {
# i be on my puter fr
myputer = nixpkgs.lib.nixosSystem {
# nix passes these to every single module
specialArgs = {inherit inputs pkgs;};
modules = [
./hosts/myputer
grub2-themes.nixosModules.default
];
};
# my laptop 0w0
lolcathost = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs pkgs;};
modules = [
./hosts/lolcathost
grub2-themes.nixosModules.default
];
};
# meine vps
#imbored = nixpkgs.lib.nixosSystem {
# specialargs = {inherit inputs pkgs;};
#
# modules = [
# ./hosts/imbored
# ];
#};
};
# remote deployment to my servers!!
#colmenaHive = colmena.lib.makeHive self.outputs.colmena;
#colmena = {
colmenaHive = colmena.lib.makeHive {
meta = {
# set nixpkgs global
nixpkgs = pkgs;
# set nixpkgs per server
# nodeNixpkgs = {
# hyrule = pkgs;
# };
};
# meine vps
hyrule = import ./hosts/hyrule;
};
};
}