parent
8e98d62921
commit
b3b65c1bd9
9 changed files with 9 additions and 132 deletions
14
flake/ci.nix
Normal file
14
flake/ci.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
# CI: https://github.com/Mic92/dotfiles/blob/c2f538934d67417941f83d8bb65b8263c43d32ca/flake.nix#L168
|
||||
{
|
||||
system,
|
||||
pkgs,
|
||||
self,
|
||||
}: let
|
||||
inherit (pkgs.lib) filterAttrs mapAttrs' nameValuePair;
|
||||
|
||||
nixosMachines =
|
||||
mapAttrs'
|
||||
(name: config: nameValuePair "nixos-${name}" config.config.system.build.toplevel)
|
||||
((filterAttrs (_: config: config.pkgs.system == system)) self.nixosConfigurations);
|
||||
in
|
||||
nixosMachines
|
311
flake/inputs.nix
Normal file
311
flake/inputs.nix
Normal file
|
@ -0,0 +1,311 @@
|
|||
let
|
||||
inherit (builtins) listToAttrs map removeAttrs;
|
||||
|
||||
# Misc functions
|
||||
mkInput = {type ? "github", ...} @ info: info // {inherit type;};
|
||||
mkDep = info: (mkInput info) // {inputs.nixpkgs.follows = "nixpkgs";};
|
||||
mkHyprDep = info: (mkInput info) // {inputs.hyprland.follows = "hyprland";};
|
||||
mkSrc = info: (mkInput info) // {flake = false;};
|
||||
|
||||
# Inputs
|
||||
nixTools = {
|
||||
nurl = mkDep {
|
||||
owner = "matt1432";
|
||||
repo = "nurl";
|
||||
};
|
||||
|
||||
nix-index-db = mkDep {
|
||||
owner = "Mic92";
|
||||
repo = "nix-index-database";
|
||||
};
|
||||
|
||||
nh = mkDep {
|
||||
owner = "viperML";
|
||||
repo = "nh";
|
||||
};
|
||||
|
||||
nix-melt = mkDep {
|
||||
owner = "nix-community";
|
||||
repo = "nix-melt";
|
||||
};
|
||||
|
||||
mozilla-addons-to-nix = mkDep {
|
||||
type = "sourcehut";
|
||||
owner = "~rycee";
|
||||
repo = "mozilla-addons-to-nix";
|
||||
};
|
||||
};
|
||||
|
||||
overlays = {
|
||||
nixpkgs-wayland = mkDep {
|
||||
owner = "nix-community";
|
||||
repo = "nixpkgs-wayland";
|
||||
};
|
||||
|
||||
nix-gaming = mkDep {
|
||||
owner = "fufexan";
|
||||
repo = "nix-gaming";
|
||||
};
|
||||
};
|
||||
|
||||
nvimInputs = {
|
||||
neovim-nightly = mkDep {
|
||||
owner = "nix-community";
|
||||
repo = "neovim-nightly-overlay";
|
||||
};
|
||||
|
||||
# uses nixVersions.nix_2_19
|
||||
nixd = mkDep {
|
||||
owner = "nix-community";
|
||||
repo = "nixd";
|
||||
};
|
||||
};
|
||||
|
||||
clusterInputs = {
|
||||
pcsd = mkDep {
|
||||
owner = "matt1432";
|
||||
repo = "nixos-pcsd";
|
||||
};
|
||||
|
||||
headscale = mkDep {
|
||||
owner = "juanfont";
|
||||
repo = "headscale";
|
||||
};
|
||||
|
||||
caddy-plugins = mkDep {
|
||||
owner = "matt1432";
|
||||
repo = "nixos-caddy-cloudflare";
|
||||
};
|
||||
};
|
||||
|
||||
serviviInputs = {
|
||||
minix = mkDep {
|
||||
owner = "matt1432";
|
||||
repo = "Minix";
|
||||
};
|
||||
|
||||
nix-eval-jobs = mkDep {
|
||||
owner = "nix-community";
|
||||
repo = "nix-eval-jobs";
|
||||
};
|
||||
|
||||
nix-fast-build = mkDep {
|
||||
owner = "Mic92";
|
||||
repo = "nix-fast-build";
|
||||
};
|
||||
};
|
||||
|
||||
nosInputs = {
|
||||
arion = mkDep {
|
||||
owner = "hercules-ci";
|
||||
repo = "arion";
|
||||
};
|
||||
|
||||
jellyfin-flake = mkDep {
|
||||
owner = "matt1432";
|
||||
repo = "nixos-jellyfin";
|
||||
};
|
||||
|
||||
bazarr-bulk = mkDep {
|
||||
owner = "mateoradman";
|
||||
repo = "bazarr-bulk";
|
||||
};
|
||||
|
||||
subsync = mkDep {
|
||||
owner = "matt1432";
|
||||
repo = "subsync";
|
||||
|
||||
# Keep version that uses Sphinxbase
|
||||
rev = "ee9e1592ae4ec7c694d8857aa72be079d81ea209";
|
||||
};
|
||||
};
|
||||
|
||||
desktopInputs = {
|
||||
hyprlandInputs = {
|
||||
hyprland = mkDep {
|
||||
type = "git";
|
||||
url = "https://github.com/hyprwm/Hyprland";
|
||||
submodules = true;
|
||||
};
|
||||
|
||||
hyprland-plugins = mkHyprDep {
|
||||
owner = "hyprwm";
|
||||
repo = "hyprland-plugins";
|
||||
|
||||
# type = "path";
|
||||
# path = "/home/matt/git/hyprland-plugins";
|
||||
};
|
||||
|
||||
Hyprspace = mkHyprDep {
|
||||
owner = "KZDKM";
|
||||
repo = "Hyprspace";
|
||||
};
|
||||
|
||||
hyprgrass = mkHyprDep {
|
||||
owner = "horriblename";
|
||||
repo = "hyprgrass";
|
||||
};
|
||||
|
||||
grim-hyprland = mkDep {
|
||||
owner = "eriedaberrie";
|
||||
repo = "grim-hyprland";
|
||||
};
|
||||
|
||||
discord-overlay = mkDep {
|
||||
owner = "matt1432";
|
||||
repo = "discord-nightly-overlay";
|
||||
};
|
||||
};
|
||||
|
||||
agsInputs = {
|
||||
ags = mkDep {
|
||||
owner = "Aylur";
|
||||
repo = "ags";
|
||||
};
|
||||
|
||||
astal-tray = mkDep {
|
||||
owner = "astal-sh";
|
||||
repo = "tray";
|
||||
};
|
||||
|
||||
gtk-session-lock = mkDep {
|
||||
owner = "Cu3PO42";
|
||||
repo = "gtk-session-lock";
|
||||
};
|
||||
|
||||
astal = mkDep {
|
||||
owner = "Aylur";
|
||||
repo = "Astal";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
srcs = [
|
||||
# Nvim plugins
|
||||
{
|
||||
name = "vimplugin-easytables-src";
|
||||
owner = "Myzel394";
|
||||
repo = "easytables.nvim";
|
||||
}
|
||||
{
|
||||
name = "vimplugin-ts-error-translator-src";
|
||||
owner = "dmmulroy";
|
||||
repo = "ts-error-translator.nvim";
|
||||
}
|
||||
|
||||
# Overlays & packages
|
||||
{
|
||||
owner = "rushsteve1";
|
||||
repo = "trash-d";
|
||||
}
|
||||
{
|
||||
type = "gitlab";
|
||||
owner = "mishakmak";
|
||||
repo = "pam-fprint-grosshack";
|
||||
}
|
||||
{
|
||||
type = "gitlab";
|
||||
owner = "phoneybadger";
|
||||
repo = "pokemon-colorscripts";
|
||||
}
|
||||
{
|
||||
name = "gpu-screen-recorder-src";
|
||||
type = "git";
|
||||
url = "https://repo.dec05eba.com/gpu-screen-recorder";
|
||||
}
|
||||
{
|
||||
owner = "libratbag";
|
||||
repo = "libratbag";
|
||||
}
|
||||
{
|
||||
owner = "libratbag";
|
||||
repo = "piper";
|
||||
}
|
||||
{
|
||||
owner = "gjsify";
|
||||
repo = "ts-for-gir";
|
||||
}
|
||||
|
||||
# MPV scripts
|
||||
{
|
||||
name = "modernx-src";
|
||||
owner = "cyl0";
|
||||
repo = "ModernX";
|
||||
}
|
||||
{
|
||||
owner = "d87";
|
||||
repo = "mpv-persist-properties";
|
||||
}
|
||||
{
|
||||
owner = "christoph-heinrich";
|
||||
repo = "mpv-pointer-event";
|
||||
}
|
||||
{
|
||||
owner = "christoph-heinrich";
|
||||
repo = "mpv-touch-gestures";
|
||||
}
|
||||
{
|
||||
name = "eisa-scripts-src";
|
||||
owner = "Eisa01";
|
||||
repo = "mpv-scripts";
|
||||
}
|
||||
|
||||
## Theme sources
|
||||
{
|
||||
name = "jellyfin-ultrachromic-src";
|
||||
owner = "CTalvio";
|
||||
repo = "Ultrachromic";
|
||||
}
|
||||
{
|
||||
name = "bat-theme-src";
|
||||
owner = "matt1432";
|
||||
repo = "bat";
|
||||
}
|
||||
{
|
||||
owner = "Godiesc";
|
||||
repo = "firefox-gx";
|
||||
rev = "9afe9948758871f3944e8a83046c8a51039e883a";
|
||||
}
|
||||
{
|
||||
name = "git-theme-src";
|
||||
owner = "dracula";
|
||||
repo = "git";
|
||||
}
|
||||
{
|
||||
name = "gtk-theme-src";
|
||||
owner = "dracula";
|
||||
repo = "gtk";
|
||||
}
|
||||
{
|
||||
name = "nvim-theme-src";
|
||||
owner = "Mofiqul";
|
||||
repo = "dracula.nvim";
|
||||
}
|
||||
{
|
||||
owner = "matt1432";
|
||||
repo = "dracula-plymouth";
|
||||
}
|
||||
{
|
||||
name = "sioyek-theme-src";
|
||||
owner = "dracula";
|
||||
repo = "sioyek";
|
||||
}
|
||||
];
|
||||
in {
|
||||
inherit mkDep mkInput mkSrc;
|
||||
|
||||
otherInputs =
|
||||
nixTools
|
||||
// overlays
|
||||
// nvimInputs
|
||||
// clusterInputs
|
||||
// serviviInputs
|
||||
// nosInputs
|
||||
// desktopInputs.hyprlandInputs
|
||||
// desktopInputs.agsInputs
|
||||
// (listToAttrs (map (x: {
|
||||
name = x.name or "${x.repo}-src";
|
||||
value = mkSrc (removeAttrs x ["name"]);
|
||||
})
|
||||
srcs));
|
||||
}
|
63
flake/lib.nix
Normal file
63
flake/lib.nix
Normal file
|
@ -0,0 +1,63 @@
|
|||
{...} @ inputs: rec {
|
||||
mkVersion = src: "0pre+" + src.shortRev;
|
||||
|
||||
buildPlugin = pname: src:
|
||||
inputs.pkgs.vimUtils.buildVimPlugin {
|
||||
inherit pname src;
|
||||
version = mkVersion src;
|
||||
};
|
||||
|
||||
# Import pkgs from a nixpkgs
|
||||
mkPkgs = system: input:
|
||||
import input {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
overlays = [
|
||||
inputs.discord-overlay.overlays.default
|
||||
inputs.grim-hyprland.overlays.default
|
||||
inputs.jovian.overlays.default
|
||||
inputs.nixpkgs-wayland.overlays.default
|
||||
];
|
||||
};
|
||||
|
||||
# Function that makes the attrs that make up the specialArgs
|
||||
mkArgs = system:
|
||||
inputs
|
||||
// {
|
||||
pkgs = mkPkgs system inputs.nixpkgs;
|
||||
};
|
||||
|
||||
# Default system
|
||||
mkNixOS = mods:
|
||||
inputs.nixpkgs.lib.nixosSystem rec {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = mkArgs system;
|
||||
modules =
|
||||
[
|
||||
{home-manager.extraSpecialArgs = specialArgs;}
|
||||
../common
|
||||
]
|
||||
++ mods;
|
||||
};
|
||||
|
||||
mkNixOnDroid = mods:
|
||||
inputs.nix-on-droid.lib.nixOnDroidConfiguration rec {
|
||||
extraSpecialArgs = mkArgs "aarch64-linux";
|
||||
home-manager-path = inputs.home-manager.outPath;
|
||||
pkgs = extraSpecialArgs.pkgs;
|
||||
|
||||
modules =
|
||||
[
|
||||
{
|
||||
options = with pkgs.lib; {
|
||||
environment.variables.FLAKE = mkOption {
|
||||
type = with types; nullOr str;
|
||||
};
|
||||
};
|
||||
}
|
||||
{home-manager = {inherit extraSpecialArgs;};}
|
||||
../common/nix-on-droid.nix
|
||||
]
|
||||
++ mods;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue