nix/os/devices/sj-vps-htz0: bump versions nix/os/devices/elias-e525: bump versions nix/os/devices/steveej-t14: bump versions nix/os/devices/justyna-p300: bump versions
189 lines
5.1 KiB
Nix
189 lines
5.1 KiB
Nix
# flake.nix
|
|
{
|
|
inputs = {
|
|
# flake and infra basics
|
|
nixpkgs-2211.url = "github:nixos/nixpkgs/nixos-22.11";
|
|
nixpkgs-2305.url = "github:nixos/nixpkgs/nixos-23.05";
|
|
nixpkgs.follows = "nixpkgs-2305";
|
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
get-flake.url = "github:ursi/get-flake";
|
|
|
|
srvos.url = "github:numtide/srvos";
|
|
srvos.inputs.nixpkgs.follows = "nixpkgs";
|
|
nixos-anywhere.url = github:numtide/nixos-anywhere/main;
|
|
nixos-anywhere.inputs.nixpkgs.follows = "nixpkgs";
|
|
disko.follows = "nixos-anywhere/disko";
|
|
|
|
nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
|
|
|
|
colmena = {
|
|
url = "github:zhaofengli/colmena";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
# libraries for building applications
|
|
fenix = {
|
|
url = "github:nix-community/fenix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
crane = {
|
|
url = "github:ipetkov/crane";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
sops-nix.url = "github:Mic92/sops-nix";
|
|
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
# applications
|
|
aphorme_launcher = {
|
|
url = "github:Iaphetes/aphorme_launcher/main";
|
|
flake = false;
|
|
};
|
|
|
|
yofi = {
|
|
url = "github:l4l/yofi/master";
|
|
flake = true;
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
ofi-pass = {
|
|
url = "github:sereinity/ofi-pass";
|
|
flake = false;
|
|
};
|
|
|
|
jay = {
|
|
url = "github:mahkoh/jay";
|
|
flake = false;
|
|
};
|
|
|
|
magmawm = {
|
|
url = "github:MagmaWM/MagmaWM";
|
|
flake = false;
|
|
};
|
|
|
|
salut = {
|
|
url = "gitlab:snakedye/salut";
|
|
flake = false;
|
|
};
|
|
|
|
logseqNightly = {
|
|
# url = "file:///dev/null";
|
|
url = "https://github.com/logseq/logseq/releases/download/nightly/Logseq-linux-x64-0.9.10-nightly.20230706.AppImage";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
outputs = inputs @ {
|
|
self,
|
|
flake-parts,
|
|
nixpkgs,
|
|
...
|
|
}: let
|
|
inherit (nixpkgs) lib;
|
|
|
|
systems = [
|
|
"x86_64-linux"
|
|
"aarch64-linux"
|
|
];
|
|
in
|
|
flake-parts.lib.mkFlake {inherit inputs;}
|
|
({withSystem, ...}: {
|
|
flake.colmena =
|
|
lib.lists.foldl (sum: cur: lib.attrsets.recursiveUpdate sum cur)
|
|
{
|
|
meta.nixpkgs = import inputs.nixpkgs.outPath {
|
|
system = builtins.elemAt systems 0;
|
|
};
|
|
}
|
|
# FIXME: this doesn't seem to work to apply overlays into a node's nixpkgs import
|
|
# try this instead: https://github.com/zhaofengli/colmena/issues/60#issuecomment-1510496861
|
|
(builtins.map (nodeName:
|
|
import ./nix/os/devices/${nodeName} {
|
|
inherit nodeName;
|
|
repoFlake = self;
|
|
repoFlakeWithSystem = withSystem;
|
|
nodeFlake = self.inputs.get-flake ./nix/os/devices/${nodeName};
|
|
}) [
|
|
"sj-vps-htz0"
|
|
"steveej-t14"
|
|
"srv0-dmz0"
|
|
"elias-e525"
|
|
"justyna-p300"
|
|
]);
|
|
|
|
# this makes nixos-anywhere work
|
|
flake.nixosConfigurations = (inputs.colmena.lib.makeHive self.outputs.colmena).nodes;
|
|
|
|
inherit systems;
|
|
|
|
perSystem = {
|
|
inputs',
|
|
system,
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: rec {
|
|
imports = [
|
|
./nix/modules/flake-parts/perSystem/default.nix
|
|
];
|
|
|
|
packages = let
|
|
dcpj4110dw = pkgs.callPackage (self + /nix/pkgs/dcpj4110dw) {};
|
|
|
|
craneLib =
|
|
inputs.crane.lib.${system}.overrideToolchain
|
|
inputs'.fenix.packages.stable.toolchain;
|
|
|
|
craneLibOfiPass =
|
|
inputs.crane.lib.${system}.overrideToolchain
|
|
(
|
|
inputs'.fenix.packages.stable.toolchain
|
|
# .override {
|
|
# date = "1.60.0";
|
|
# }
|
|
);
|
|
in {
|
|
dcpj4110dwDriver = dcpj4110dw.driver;
|
|
dcpj4110dwCupswrapper = dcpj4110dw.cupswrapper;
|
|
|
|
# broken as of 2023-04-27 because it doesn't load without a config
|
|
# aphorme_launcher = craneLib.buildPackage {src = inputs.aphorme_launcher;};
|
|
# yofi = inputs'.yofi.packages.default;
|
|
# ofi-pass = craneLibOfiPass.buildPackage {src = inputs.ofi-pass;};
|
|
|
|
inherit (inputs'.colmena.packages) colmena;
|
|
|
|
# jay = pkgs.callPackage (self + /nix/pkgs/jay.nix) {
|
|
# src = inputs.jay;
|
|
# rustPlatform = pkgs.makeRustPlatform {
|
|
# cargo = inputs'.fenix.packages.stable.toolchain;
|
|
# rustc = inputs'.fenix.packages.stable.toolchain;
|
|
# };
|
|
# };
|
|
|
|
# magmawm = pkgs.callPackage (self + /nix/pkgs/magmawm.nix) {
|
|
# inherit craneLib;
|
|
# src = inputs.magmawm;
|
|
# };
|
|
|
|
salut = craneLib.buildPackage {
|
|
src = inputs.salut;
|
|
nativeBuildInputs = [
|
|
pkgs.pkg-config
|
|
];
|
|
buildInputs = [
|
|
pkgs.libxkbcommon
|
|
pkgs.fontconfig
|
|
];
|
|
};
|
|
};
|
|
|
|
formatter = pkgs.alejandra;
|
|
devShells.default = import ./nix/devShells.nix {
|
|
inherit inputs' pkgs;
|
|
packages' = packages;
|
|
};
|
|
};
|
|
});
|
|
}
|