Compare commits
3 Commits
e34d610685
...
bde6ae6da1
Author | SHA1 | Date | |
---|---|---|---|
bde6ae6da1 | |||
004770c410 | |||
ee9f7ff199 |
17
flake.lock
generated
17
flake.lock
generated
@ -1179,6 +1179,22 @@
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
|
||||
}
|
||||
},
|
||||
"nixpkgs-mopidy": {
|
||||
"locked": {
|
||||
"lastModified": 1734856068,
|
||||
"narHash": "sha256-Q+CB1ajsJg4Z9HGHTBAGY1q18KpnnkmF/eCTLUY6FQ0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "93ff48c9be84a76319dac293733df09bbbe3f25c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "93ff48c9be84a76319dac293733df09bbbe3f25c",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-nix-du": {
|
||||
"locked": {
|
||||
"lastModified": 1722785290,
|
||||
@ -1335,6 +1351,7 @@
|
||||
"nix-wsl": "nix-wsl",
|
||||
"nixfiles-assets": "nixfiles-assets",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-mopidy": "nixpkgs-mopidy",
|
||||
"nixpkgs-nix-du": "nixpkgs-nix-du",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"rust-overlay": "rust-overlay_2",
|
||||
|
46
flake.nix
46
flake.nix
@ -9,6 +9,7 @@
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
|
||||
nixpkgs-nix-du.url = "github:NixOS/nixpkgs/c933cf4698e5189b35dd83bf4d7a81aef16d464a";
|
||||
nixpkgs-mopidy.url = "github:NixOS/nixpkgs/93ff48c9be84a76319dac293733df09bbbe3f25c";
|
||||
|
||||
# this seems to be a popular way to declare systems
|
||||
systems.url = "github:nix-systems/default";
|
||||
@ -150,6 +151,7 @@
|
||||
perSystem = {
|
||||
config,
|
||||
pkgs,
|
||||
self',
|
||||
...
|
||||
}: {
|
||||
treefmt = {
|
||||
@ -157,6 +159,32 @@
|
||||
alejandra.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
devShells = {
|
||||
ci = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
nix-update
|
||||
nix-fast-build
|
||||
];
|
||||
};
|
||||
default = let
|
||||
formatter =
|
||||
pkgs.runCommandNoCC "flake-formatter" {
|
||||
formatter = lib.getExe self'.formatter;
|
||||
} ''
|
||||
mkdir -p $out/bin
|
||||
ln -s "$formatter" "$out/bin/formatter"
|
||||
'';
|
||||
in
|
||||
pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
alejandra
|
||||
nix-update
|
||||
formatter
|
||||
inputs.agenix.packages.${system}.default
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nixfiles = {
|
||||
@ -249,24 +277,6 @@
|
||||
};
|
||||
# }}}
|
||||
in {
|
||||
devShells = eachSystem (system: let
|
||||
pkgs = import nixpkgs-unstable {inherit system;};
|
||||
in {
|
||||
ci = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
nix-update
|
||||
nix-fast-build
|
||||
];
|
||||
};
|
||||
default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
alejandra
|
||||
nix-update
|
||||
inputs.agenix.packages.${system}.default
|
||||
];
|
||||
};
|
||||
});
|
||||
|
||||
# nix flake modules are meant to be portable so we cannot rely on
|
||||
# (extraS|s)pecialArgs to pass variables
|
||||
nixosModules = (import ./modules/nixos) moduleInputs;
|
||||
|
@ -6,7 +6,7 @@
|
||||
inputs,
|
||||
self,
|
||||
...
|
||||
}: let
|
||||
} @ flakeArgs: let
|
||||
cfg = config.nixfiles.systems;
|
||||
inherit
|
||||
(lib)
|
||||
@ -227,14 +227,22 @@ in {
|
||||
++ lib.optional config.wsl wslModule;
|
||||
extraConfig = {
|
||||
inherit (config) system modules;
|
||||
# TODO get rid of specialArgs and pass things as a module
|
||||
specialArgs = let
|
||||
inherit (self) outputs;
|
||||
in {
|
||||
inherit inputs outputs;
|
||||
inherit (outerConfig.nixfiles) vars;
|
||||
specialArgs = {
|
||||
# TODO this is temporary, i prefer to not use specialArgs because
|
||||
# it can't be exported. these are still better than my clunky
|
||||
# "vars" arg that i would arbitrarily add things to.
|
||||
#
|
||||
# we need to merge all of the module args like this because the
|
||||
# module evaluator only calls each module with the args it asks
|
||||
# for, but we explicitly want *all* args to be made available.
|
||||
flakeArgs = outerConfig._module.args // outerConfig._module.specialArgs // flakeArgs;
|
||||
|
||||
# still unsure of what the best way to deal with this is. i can
|
||||
# probably pass this submodule's args for a fairly clean way to
|
||||
# pass it, but i'd want to refactor it because config.nixpkgs and
|
||||
# config.home-manager.input are named inconsistently
|
||||
inherit (config) nixpkgs;
|
||||
inherit (config.home-manager) input;
|
||||
home-manager = config.home-manager.input;
|
||||
};
|
||||
};
|
||||
result = config.nixpkgs.lib.nixosSystem config.extraConfig;
|
||||
|
@ -2,9 +2,11 @@
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
vars,
|
||||
flakeConfig,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
inherit (flakeConfig.nixfiles) vars;
|
||||
in {
|
||||
config = {
|
||||
networking.hostName = "nixos-wsl";
|
||||
|
||||
|
@ -6,7 +6,6 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
|
@ -6,7 +6,6 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
vars,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
|
@ -12,7 +12,7 @@
|
||||
pkgsStable = import nixfiles.inputs.nixpkgs.outPath {inherit (prev) system;};
|
||||
updateTime = nixfiles.inputs.nixpkgs-unstable.lastModified;
|
||||
|
||||
inherit (final) lib callPackage fetchFromGitHub;
|
||||
inherit (final) callPackage fetchFromGitHub;
|
||||
inherit
|
||||
(lib)
|
||||
recurseIntoAttrs
|
||||
@ -55,35 +55,71 @@
|
||||
prev.gimp-with-plugins.override {inherit plugins;};
|
||||
# this also causes an infinite recursion and i have no idea why
|
||||
# in nixfiles.inputs.nixpkgs.lib.filterAttrs (k: v: v != null) {
|
||||
in {
|
||||
nix-du = let
|
||||
old = prev.nix-du;
|
||||
new = (pkgsFromInput "nixpkgs-nix-du").nix-du;
|
||||
in
|
||||
pickNewer old new;
|
||||
in
|
||||
{
|
||||
nix-du = let
|
||||
old = prev.nix-du;
|
||||
new = (pkgsFromInput "nixpkgs-nix-du").nix-du;
|
||||
in
|
||||
pickNewer old new;
|
||||
|
||||
gimp-with-plugins = gimp-with-plugins-good;
|
||||
gimp-with-plugins = gimp-with-plugins-good;
|
||||
|
||||
nwg-displays = let
|
||||
stable = pkgsStable.nwg-displays;
|
||||
unstable = prev.nwg-displays;
|
||||
now = 1739114541;
|
||||
in
|
||||
hold now 7 stable unstable;
|
||||
nwg-displays = let
|
||||
stable = pkgsStable.nwg-displays;
|
||||
unstable = prev.nwg-displays;
|
||||
now = 1739114541;
|
||||
in
|
||||
hold now 7 stable unstable;
|
||||
|
||||
libreoffice = let
|
||||
stable = pkgsStable.libreoffice;
|
||||
unstable = prev.libreoffice;
|
||||
now = 1739558971;
|
||||
in
|
||||
hold now 7 stable unstable;
|
||||
libreoffice = let
|
||||
stable = pkgsStable.libreoffice;
|
||||
unstable = prev.libreoffice;
|
||||
now = 1739558971;
|
||||
in
|
||||
hold now 7 stable unstable;
|
||||
|
||||
redlib = let
|
||||
redlib-new = final.callPackage nixfiles.packages.${prev.system}.redlib.override {};
|
||||
inherit (prev) redlib;
|
||||
in
|
||||
pickNewer redlib-new redlib;
|
||||
};
|
||||
redlib = let
|
||||
redlib-new = final.callPackage nixfiles.packages.${prev.system}.redlib.override {};
|
||||
inherit (prev) redlib;
|
||||
in
|
||||
pickNewer redlib-new redlib;
|
||||
}
|
||||
// (
|
||||
lib.genAttrs [
|
||||
"mopidyPackages"
|
||||
"mopidy"
|
||||
"mopidy-bandcamp"
|
||||
"mopidy-iris"
|
||||
"mopidy-jellyfin"
|
||||
"mopidy-local"
|
||||
"mopidy-moped"
|
||||
"mopidy-mopify"
|
||||
"mopidy-mpd"
|
||||
"mopidy-mpris"
|
||||
"mopidy-muse"
|
||||
"mopidy-musicbox-webclient"
|
||||
"mopidy-notify"
|
||||
"mopidy-podcast"
|
||||
"mopidy-scrobbler"
|
||||
"mopidy-somafm"
|
||||
"mopidy-soundcloud"
|
||||
"mopidy-spotify"
|
||||
"mopidy-subidy"
|
||||
"mopidy-tidal"
|
||||
"mopidy-tunein"
|
||||
"mopidy-youtube"
|
||||
"mopidy-ytmusic"
|
||||
] (name: let
|
||||
pkgs-mopidy = (import inputs.nixpkgs-mopidy) {inherit (prev) system;};
|
||||
unstable = prev."${name}";
|
||||
stable = pkgs-mopidy."${name}";
|
||||
now = 1740786429;
|
||||
in
|
||||
# pin for at least 90 days because who knows when this will be fixed
|
||||
# https://github.com/mopidy/mopidy/issues/2183
|
||||
hold now 90 stable unstable)
|
||||
);
|
||||
in {
|
||||
config.flake.overlays.mitigations = overlay;
|
||||
}
|
||||
|
@ -3,10 +3,11 @@
|
||||
lib,
|
||||
config,
|
||||
options,
|
||||
inputs,
|
||||
flakeArgs,
|
||||
nixpkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (flakeArgs) inputs;
|
||||
cfg = config.nixfiles.common.nix;
|
||||
in {
|
||||
options.nixfiles.common.nix = {
|
||||
|
@ -3,9 +3,9 @@
|
||||
config,
|
||||
lib,
|
||||
options,
|
||||
flakeArgs,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
inputs,
|
||||
utils,
|
||||
...
|
||||
} @ args:
|
||||
@ -14,8 +14,15 @@
|
||||
# inputs/outputs/overlays/etc into scope. this might even make nixfiles
|
||||
# portable (it still shouldn't be imported by other flakes probably)
|
||||
let
|
||||
inherit (flakeArgs) inputs;
|
||||
|
||||
cfg = config.nixfiles;
|
||||
flakeType = cfg.lib.types.flake;
|
||||
mkReadOnlyOption = {...} @ args:
|
||||
lib.mkOption ({
|
||||
readOnly = true;
|
||||
}
|
||||
// args);
|
||||
in {
|
||||
imports = [
|
||||
./common
|
||||
@ -35,7 +42,15 @@ in {
|
||||
inputs.lanzaboote.nixosModules.lanzaboote
|
||||
./stylix.nix # imports inputs.stylix
|
||||
];
|
||||
config = {};
|
||||
config = {
|
||||
_module.args.flakeConfig = flakeArgs.config;
|
||||
};
|
||||
options.debug = {
|
||||
args = mkReadOnlyOption {
|
||||
description = "all module args";
|
||||
default = config._module.args // config._module.specialArgs // args;
|
||||
};
|
||||
};
|
||||
options.nixfiles = {
|
||||
meta.wayland = lib.mkOption {
|
||||
description = "Whether to prefer wayland applications and configuration";
|
||||
@ -44,12 +59,6 @@ in {
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
utils = lib.mkOption {
|
||||
description = "nixpkgs `utils` argument passthrough";
|
||||
default = utils;
|
||||
readOnly = true;
|
||||
};
|
||||
|
||||
workarounds.nvidiaPrimary = lib.mkOption {
|
||||
description = "Whether to enable workarounds for NVIDIA as the primary GPU";
|
||||
default = false;
|
||||
|
@ -2,11 +2,12 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
flakeArgs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.nixfiles.hardware.sound;
|
||||
inherit (flakeArgs) inputs;
|
||||
inherit (lib) optionals mkEnableOption mkIf mkDefault;
|
||||
cfg = config.nixfiles.hardware.sound;
|
||||
in {
|
||||
# Enable sound.
|
||||
# sound.enable = true;
|
||||
|
@ -2,9 +2,11 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
flakeArgs,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
inherit (flakeArgs) inputs;
|
||||
in {
|
||||
imports = [
|
||||
inputs.nix-minecraft.nixosModules.minecraft-servers
|
||||
];
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
nixpkgs,
|
||||
flakeArgs,
|
||||
...
|
||||
}: let
|
||||
inherit (flakeArgs) inputs;
|
||||
p5 = config.services.xserver.desktopManager.plasma5.enable;
|
||||
p6 = config.services.desktopManager.plasma6.enable;
|
||||
|
||||
|
@ -2,7 +2,6 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
cfg = config.nixfiles.packageSets.gaming;
|
||||
|
@ -2,9 +2,6 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
options,
|
||||
inputs,
|
||||
outputs,
|
||||
...
|
||||
} @ args: let
|
||||
cfg = config.nixfiles.profile.base;
|
||||
|
@ -2,10 +2,10 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
outputs,
|
||||
vars,
|
||||
flakeConfig,
|
||||
...
|
||||
} @ args: let
|
||||
inherit (flakeConfig.nixfiles) vars;
|
||||
cfg = config.nixfiles.programs.adb;
|
||||
in {
|
||||
options.nixfiles.programs.adb = {
|
||||
|
@ -2,9 +2,10 @@
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
inputs,
|
||||
flakeArgs,
|
||||
...
|
||||
}: let
|
||||
inherit (flakeArgs) inputs;
|
||||
cfg = config.nixfiles.sessions.hyprland;
|
||||
flake-package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
flake-portal = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
|
||||
|
@ -2,9 +2,11 @@
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
inputs,
|
||||
flakeArgs,
|
||||
...
|
||||
} @ args: {
|
||||
} @ args: let
|
||||
inherit (flakeArgs) inputs;
|
||||
in {
|
||||
imports = [inputs.stylix.nixosModules.stylix];
|
||||
|
||||
config = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user