Refactor overlays
This commit is contained in:
parent
28d4016f88
commit
6e60f26cf7
|
@ -425,9 +425,6 @@
|
||||||
"nixos-mailserver": "nixos-mailserver",
|
"nixos-mailserver": "nixos-mailserver",
|
||||||
"nixos-stable": "nixos-stable",
|
"nixos-stable": "nixos-stable",
|
||||||
"nixos-unstable": "nixos-unstable",
|
"nixos-unstable": "nixos-unstable",
|
||||||
"nixpkgs": [
|
|
||||||
"nixos-unstable"
|
|
||||||
],
|
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
"secrets": "secrets"
|
"secrets": "secrets"
|
||||||
}
|
}
|
||||||
|
|
20
flake.nix
20
flake.nix
|
@ -36,7 +36,6 @@
|
||||||
url = "git+https://gitlab.com/simple-nixos-mailserver/nixos-mailserver.git";
|
url = "git+https://gitlab.com/simple-nixos-mailserver/nixos-mailserver.git";
|
||||||
};
|
};
|
||||||
nixos-stable.url = "nixpkgs/nixos-22.11";
|
nixos-stable.url = "nixpkgs/nixos-22.11";
|
||||||
nixpkgs.follows = "nixos-unstable";
|
|
||||||
flake-parts.inputs.nixpkgs-lib.follows = "nixos-unstable";
|
flake-parts.inputs.nixpkgs-lib.follows = "nixos-unstable";
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "home-manager/release-22.11";
|
url = "home-manager/release-22.11";
|
||||||
|
@ -58,21 +57,26 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ {nixos-hardware, ...}:
|
outputs = inputs @ {
|
||||||
|
nixos-hardware,
|
||||||
|
self,
|
||||||
|
...
|
||||||
|
}:
|
||||||
inputs.flake-parts.lib.mkFlake {inherit inputs;} {
|
inputs.flake-parts.lib.mkFlake {inherit inputs;} {
|
||||||
imports = [
|
imports = [
|
||||||
inputs.pre-commit-hooks.flakeModule
|
inputs.pre-commit-hooks.flakeModule
|
||||||
./nixos/flake-parts.nix
|
./nixos/flake-parts.nix
|
||||||
./home-manager/flake-parts.nix
|
./home-manager/flake-parts.nix
|
||||||
./packages/flake-parts.nix
|
./packages/flake-parts.nix
|
||||||
|
./overlays/flake-parts.nix
|
||||||
];
|
];
|
||||||
systems = ["x86_64-linux"];
|
systems = ["x86_64-linux"];
|
||||||
perSystem = {
|
perSystem = {
|
||||||
self',
|
self',
|
||||||
inputs',
|
inputs',
|
||||||
pkgs,
|
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
devShells = {
|
devShells = {
|
||||||
|
@ -81,14 +85,14 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
checks = {
|
checks = {
|
||||||
system-checks = pkgs.runCommand "system-checks" {} ''
|
system-checks = pkgs.recursiveLinkFarm "all-configs" {
|
||||||
mkdir -p $out
|
nixos-configurations = lib.mapAttrs (_: config: config.config.system.build.toplevel) self.nixosConfigurations;
|
||||||
${lib.concatMapStringsSep "\n" (x: x) (lib.mapAttrsToList (name: x: "ln -s ${x.config.system.build.toplevel} $out/${name}-system") inputs.self.nixosConfigurations)}
|
home-manager-configurations = self.homeModes;
|
||||||
${lib.concatMapStringsSep "\n" (x: x) (lib.mapAttrsToList (name: x: "ln -s ${x} $out/${name}-home") inputs.self.homeModes)}
|
};
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
pre-commit = {
|
pre-commit = {
|
||||||
|
pkgs = inputs'.nixos-unstable.legacyPackages;
|
||||||
check.enable = true;
|
check.enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
settings.ormolu.defaultExtensions = [
|
settings.ormolu.defaultExtensions = [
|
||||||
|
|
|
@ -4,8 +4,11 @@
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
flake = withSystem "x86_64-linux" ({inputs', ...}: let
|
flake = withSystem "x86_64-linux" ({
|
||||||
pkgs = inputs'.nixos-stable.legacyPackages;
|
self',
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
flattenAttrs = attrs:
|
flattenAttrs = attrs:
|
||||||
lib.listToAttrs (lib.flatten (lib.mapAttrsToList
|
lib.listToAttrs (lib.flatten (lib.mapAttrsToList
|
||||||
(
|
(
|
||||||
|
@ -22,14 +25,14 @@
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
modules = [
|
modules = [
|
||||||
config
|
config
|
||||||
inputs.self.nixosModules.insertOverlays
|
|
||||||
inputs.emanote.homeManagerModule
|
inputs.emanote.homeManagerModule
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
buildModesForHost = host: modes:
|
buildModesForHost = host: modes:
|
||||||
pkgs.runCommandLocal "${host}-modes" {} ''
|
pkgs.recursiveLinkFarm "${host}-modes"
|
||||||
mkdir $out
|
(lib.mapAttrs
|
||||||
${lib.concatStringsSep "\n" (lib.mapAttrsToList (mode: config: "ln -s ${(buildHomeManager config).activationPackage} $out/${mode}") modes)}'';
|
(_: config: (buildHomeManager config).activationPackage)
|
||||||
|
modes);
|
||||||
in {
|
in {
|
||||||
homeConfigurations = lib.mapAttrs (_: buildHomeManager) (flattenAttrs machines);
|
homeConfigurations = lib.mapAttrs (_: buildHomeManager) (flattenAttrs machines);
|
||||||
homeModes = lib.mapAttrs buildModesForHost machines;
|
homeModes = lib.mapAttrs buildModesForHost machines;
|
||||||
|
|
|
@ -55,6 +55,7 @@ in {
|
||||||
move-to-monitor-up = [];
|
move-to-monitor-up = [];
|
||||||
move-to-workspace-left = [];
|
move-to-workspace-left = [];
|
||||||
move-to-workspace-right = [];
|
move-to-workspace-right = [];
|
||||||
|
toggle-fullscreen = ["<Super>f"];
|
||||||
};
|
};
|
||||||
|
|
||||||
"org/gnome/mutter/keybindings" = {
|
"org/gnome/mutter/keybindings" = {
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
playlist_dir = "${audio_dir}/playlists";
|
playlist_dir = "${audio_dir}/playlists";
|
||||||
in {
|
in {
|
||||||
home.file."media/audio/playlists" = {
|
home.file."media/audio/playlists" = {
|
||||||
source = pkgs.setToDirectories (lib.mapAttrs' (name: content: lib.nameValuePair "${name}.m3u" (builtins.toFile "${name}.m3u" content)) {
|
source = pkgs.recursiveLinkFarm "mpd-playlists" (lib.mapAttrs' (name: content: lib.nameValuePair "${name}.m3u" (builtins.toFile "${name}.m3u" content)) {
|
||||||
"radio-swiss-classic" = "https://stream.srg-ssr.ch/m/rsc_de/aacp_96";
|
"radio-swiss-classic" = "https://stream.srg-ssr.ch/m/rsc_de/aacp_96";
|
||||||
"radio-swiss-jazz" = "https://stream.srg-ssr.ch/m/rsj/aacp_96";
|
"radio-swiss-jazz" = "https://stream.srg-ssr.ch/m/rsj/aacp_96";
|
||||||
"br-klassik" = "http://dispatcher.rndfnk.com/br/brklassik/live/mp3/high";
|
"br-klassik" = "http://dispatcher.rndfnk.com/br/brklassik/live/mp3/high";
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
flake-inputs,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
fix-tasks = pkgs.writeShellScriptBin "fix-tasks" ''
|
fix-tasks = pkgs.writeShellScriptBin "fix-tasks" ''
|
||||||
|
@ -76,10 +75,10 @@ in {
|
||||||
dataLocation = "${config.home.homeDirectory}/.task";
|
dataLocation = "${config.home.homeDirectory}/.task";
|
||||||
config = {
|
config = {
|
||||||
taskd = {
|
taskd = {
|
||||||
certificate = "${flake-inputs.secrets}/taskwarrior/public.cert";
|
certificate = "${pkgs.flake-inputs.secrets}/taskwarrior/public.cert";
|
||||||
credentials = pkgs.privateValue "" "taskwarrior/credentials";
|
credentials = pkgs.privateValue "" "taskwarrior/credentials";
|
||||||
ca = "${flake-inputs.secrets}/taskwarrior/ca.cert";
|
ca = "${pkgs.flake-inputs.secrets}/taskwarrior/ca.cert";
|
||||||
key = "${flake-inputs.secrets}/taskwarrior/private.key";
|
key = "${pkgs.flake-inputs.secrets}/taskwarrior/private.key";
|
||||||
server = "hera.m-0.eu:53589";
|
server = "hera.m-0.eu:53589";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,22 +4,25 @@
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
flake = withSystem "x86_64-linux" ({
|
flake = {
|
||||||
inputs',
|
nixosConfigurations = withSystem "x86_64-linux" ({
|
||||||
system,
|
system,
|
||||||
|
self',
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
networkingModule = name: "${inputs.nixos-unstable}/nixos/modules/services/networking/${name}.nix";
|
machines = builtins.attrNames (builtins.readDir ./machines);
|
||||||
modules = [
|
makeSystem = name:
|
||||||
# nftables using module not available in 22.11.
|
pkgs.nixos {
|
||||||
(networkingModule "firewall-iptables")
|
imports = [
|
||||||
(networkingModule "firewall-nftables")
|
(import (./. + "/machines/${name}/configuration.nix") inputs)
|
||||||
(networkingModule "firewall")
|
inputs.secrets.nixosModules.default
|
||||||
(networkingModule "nat-iptables")
|
inputs.self.nixosModules.unstableNFTables
|
||||||
(networkingModule "nat-nftables")
|
];
|
||||||
(networkingModule "nat")
|
};
|
||||||
(networkingModule "nftables")
|
in
|
||||||
(_: {
|
lib.genAttrs machines makeSystem);
|
||||||
|
nixosModules.unstableNFTables = _: {
|
||||||
disabledModules = [
|
disabledModules = [
|
||||||
"services/networking/firewall.nix"
|
"services/networking/firewall.nix"
|
||||||
"services/networking/nftables.nix"
|
"services/networking/nftables.nix"
|
||||||
|
@ -29,47 +32,18 @@
|
||||||
"services/audio/roon-server.nix"
|
"services/audio/roon-server.nix"
|
||||||
"services/audio/roon-bridge.nix"
|
"services/audio/roon-bridge.nix"
|
||||||
];
|
];
|
||||||
})
|
imports = let
|
||||||
|
networkingModule = name: "${inputs.nixos-unstable}/nixos/modules/services/networking/${name}.nix";
|
||||||
|
in [
|
||||||
|
# nftables using module not available in 22.11.
|
||||||
|
(networkingModule "firewall-iptables")
|
||||||
|
(networkingModule "firewall-nftables")
|
||||||
|
(networkingModule "firewall")
|
||||||
|
(networkingModule "nat-iptables")
|
||||||
|
(networkingModule "nat-nftables")
|
||||||
|
(networkingModule "nat")
|
||||||
|
(networkingModule "nftables")
|
||||||
];
|
];
|
||||||
makeSystem = name:
|
|
||||||
inputs'.nixos-stable.legacyPackages.nixos {
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
(import (./. + "/machines/${name}/configuration.nix") inputs)
|
|
||||||
inputs.secrets.nixosModules.default
|
|
||||||
inputs.self.nixosModules.insertOverlays
|
|
||||||
]
|
|
||||||
++ modules;
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
nixosModules.insertOverlays = _: {
|
|
||||||
_module.args = {
|
|
||||||
flake-inputs = inputs // {inherit modules;};
|
|
||||||
flake-inputs' = inputs';
|
|
||||||
};
|
|
||||||
nixpkgs.overlays =
|
|
||||||
[
|
|
||||||
(_: _:
|
|
||||||
{
|
|
||||||
nix-output-monitor = inputs'.nix-output-monitor.packages.default;
|
|
||||||
unstable = inputs'.nixos-unstable.legacyPackages;
|
|
||||||
unfree = import inputs.nixos-stable {
|
|
||||||
inherit system;
|
|
||||||
config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
android_sdk.accept_license = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
unstableUnfree = import inputs.nixos-unstable {
|
|
||||||
config.allowUnfree = true;
|
|
||||||
inherit system;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
// inputs.secrets.private)
|
|
||||||
inputs.self.overlays.addMyHaskellPackages
|
|
||||||
]
|
|
||||||
++ import ../overlays {inherit lib;};
|
|
||||||
};
|
|
||||||
nixosConfigurations = lib.genAttrs (builtins.attrNames (builtins.readDir ./machines)) makeSystem;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
flake-inputs,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
adminCreds =
|
adminCreds =
|
||||||
|
@ -77,13 +76,12 @@
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
privateNetwork = true;
|
privateNetwork = true;
|
||||||
hostBridge = "bridge";
|
hostBridge = "bridge";
|
||||||
config = {pkgs, ...}: {
|
config = _: {
|
||||||
imports =
|
imports = [
|
||||||
[
|
|
||||||
../../roles
|
../../roles
|
||||||
flake-inputs.self.nixosModules.insertOverlays
|
pkgs.flake-inputs.self.nixosModules.unstableNFTables
|
||||||
]
|
];
|
||||||
++ flake-inputs.modules;
|
nixpkgs = {inherit pkgs;};
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
interfaces.eth0 = {
|
interfaces.eth0 = {
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
flake-inputs,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
gitoliteCfg = config.services.gitolite;
|
gitoliteCfg = config.services.gitolite;
|
||||||
|
@ -110,7 +109,7 @@ in {
|
||||||
cd $dir
|
cd $dir
|
||||||
git clone git@localhost:gitolite-admin
|
git clone git@localhost:gitolite-admin
|
||||||
cd gitolite-admin
|
cd gitolite-admin
|
||||||
cp -r ${flake-inputs.secrets}/gitolite/* .
|
cp -r ${pkgs.flake-inputs.secrets}/gitolite/* .
|
||||||
if [[ "$(git status --porcelain)" != "" ]]; then
|
if [[ "$(git status --porcelain)" != "" ]]; then
|
||||||
git "config" "user.email" "git@hera.m-0.eu"
|
git "config" "user.email" "git@hera.m-0.eu"
|
||||||
git "config" "user.name" "git user"
|
git "config" "user.name" "git user"
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
{
|
{pkgs, ...}: let
|
||||||
pkgs,
|
nur = pkgs.flake-inputs'.hexa-nur-packages.packages;
|
||||||
flake-inputs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
nur = flake-inputs.hexa-nur-packages.packages.x86_64-linux;
|
|
||||||
|
|
||||||
mkLovelaceModule = name: {
|
mkLovelaceModule = name: {
|
||||||
url = "custom/${name}.js?${nur.hassLovelaceModules."${name}".version}";
|
url = "custom/${name}.js?${nur.hassLovelaceModules."${name}".version}";
|
||||||
|
|
|
@ -70,7 +70,7 @@ in {
|
||||||
LimitNOFILE = "1024000";
|
LimitNOFILE = "1024000";
|
||||||
};
|
};
|
||||||
after = ["network.target"];
|
after = ["network.target"];
|
||||||
preStart = "ln -sfT ${pkgs.setToDirectories (addTimeouts cfg.cfgFiles)} ${cfgDir}";
|
preStart = "ln -sfT ${pkgs.recursiveLinkFarm "laminar-config-dir" (addTimeouts cfg.cfgFiles)} ${cfgDir}";
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
nginx = {
|
nginx = {
|
||||||
|
|
|
@ -38,7 +38,7 @@ in {
|
||||||
"paths.fhs".template_dir =
|
"paths.fhs".template_dir =
|
||||||
lib.mkForce
|
lib.mkForce
|
||||||
(
|
(
|
||||||
pkgs.setToDirectories {
|
pkgs.recursiveLinkFarm "mailman-templates" {
|
||||||
site.de = {
|
site.de = {
|
||||||
"list:user:notice:goodbye.txt" = builtins.toFile "goodbye" ''
|
"list:user:notice:goodbye.txt" = builtins.toFile "goodbye" ''
|
||||||
Du erhältst nun keine E-Mails mehr über diese Mailingliste.
|
Du erhältst nun keine E-Mails mehr über diese Mailingliste.
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
self: super: {
|
|
||||||
inherit (super.unfree) discord zoom-us minecraft teamviewer steam androidsdk_9_0;
|
|
||||||
inherit (super.unstableUnfree) minecraft-server;
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
final: prev: let
|
|
||||||
myPkgs = import ./packages.nix;
|
|
||||||
in {
|
|
||||||
myHaskellPackages = myPkgs.makeHaskellPackages prev.unstableHaskellPackages;
|
|
||||||
myHaskellScriptPackages = myPkgs.makeHaskellScriptPackages prev.haskellPackages;
|
|
||||||
ghcWithPackages = prev.unstableGhc.withHoogle (p: builtins.attrValues (myPkgs.makeHaskellPackages p));
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
{lib}: let
|
|
||||||
overlayPath = ./.;
|
|
||||||
candidates = lib.attrNames (builtins.readDir overlayPath);
|
|
||||||
pathToOverlay = n: overlayPath + ("/" + n);
|
|
||||||
isNixFile = n: builtins.match ".*\\.nix" n != null;
|
|
||||||
isNixDir = n: builtins.pathExists (pathToOverlay n + "/default.nix");
|
|
||||||
notDefault = n: n != "default.nix";
|
|
||||||
isOverlay = n: (isNixDir n || isNixFile n) && notDefault n;
|
|
||||||
overlays = builtins.filter isOverlay candidates;
|
|
||||||
importOverlay = n: import (pathToOverlay n);
|
|
||||||
in
|
|
||||||
map importOverlay overlays
|
|
|
@ -1,18 +1,20 @@
|
||||||
_: prev: let
|
final: _: let
|
||||||
inherit (prev) lib;
|
inherit (final) lib;
|
||||||
linkToPath = path: fileOrDir: (
|
linkToPath = path: fileOrDir: (
|
||||||
if prev.lib.types.path.check fileOrDir
|
if final.lib.types.path.check fileOrDir
|
||||||
then ["ln -sT ${fileOrDir} ${path}"]
|
then [
|
||||||
|
{
|
||||||
|
name = lib.concatStringsSep "/" path;
|
||||||
|
path = fileOrDir;
|
||||||
|
}
|
||||||
|
]
|
||||||
else
|
else
|
||||||
["mkdir -p ${path}"]
|
lib.concatLists (
|
||||||
++ lib.concatLists (
|
|
||||||
lib.mapAttrsToList
|
lib.mapAttrsToList
|
||||||
(dirName: linkToPath "${path}/${dirName}")
|
(dirName: linkToPath (path ++ [dirName]))
|
||||||
fileOrDir
|
fileOrDir
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
in {
|
in {
|
||||||
setToDirectories = files:
|
recursiveLinkFarm = name: files: final.linkFarm name (linkToPath [] files);
|
||||||
prev.runCommand "set-to-directories" {}
|
|
||||||
(lib.concatStringsSep "\n" (linkToPath "$out" files));
|
|
||||||
}
|
}
|
||||||
|
|
33
overlays/flake-parts.nix
Normal file
33
overlays/flake-parts.nix
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
perSystem = {
|
||||||
|
inputs',
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
_module.args.pkgs = inputs'.nixos-stable.legacyPackages.appendOverlays (
|
||||||
|
[
|
||||||
|
(_: _: {
|
||||||
|
flake-inputs = inputs;
|
||||||
|
flake-inputs' = inputs';
|
||||||
|
})
|
||||||
|
inputs.self.overlays.addMyHaskellPackages
|
||||||
|
]
|
||||||
|
++ (let
|
||||||
|
overlayPath = ./.;
|
||||||
|
candidates = lib.attrNames (builtins.readDir overlayPath);
|
||||||
|
pathToOverlay = n: overlayPath + ("/" + n);
|
||||||
|
isNixFile = n: builtins.match ".*\\.nix" n != null;
|
||||||
|
isNixDir = n: builtins.pathExists (pathToOverlay n + "/default.nix");
|
||||||
|
notDefault = n: n != "flake-parts.nix";
|
||||||
|
isOverlay = n: (isNixDir n || isNixFile n) && notDefault n;
|
||||||
|
overlays = builtins.filter isOverlay candidates;
|
||||||
|
importOverlay = n: import (pathToOverlay n);
|
||||||
|
in
|
||||||
|
map importOverlay overlays)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
7
overlays/ghc/default.nix
Normal file
7
overlays/ghc/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
final: _: let
|
||||||
|
myPkgs = import ./packages.nix;
|
||||||
|
in {
|
||||||
|
myHaskellPackages = myPkgs.makeHaskellPackages final.unstableHaskellPackages;
|
||||||
|
myHaskellScriptPackages = myPkgs.makeHaskellScriptPackages final.haskellPackages;
|
||||||
|
ghcWithPackages = final.unstableGhc.withHoogle (p: builtins.attrValues (myPkgs.makeHaskellPackages p));
|
||||||
|
}
|
|
@ -1,4 +1,6 @@
|
||||||
self: super: {
|
self: super: {
|
||||||
|
nix-output-monitor = self.flake-inputs'.nix-output-monitor.packages.default;
|
||||||
|
unstable = self.flake-inputs'.nixos-unstable.legacyPackages;
|
||||||
unstableHaskellPackages = self.unstable.haskellPackages;
|
unstableHaskellPackages = self.unstable.haskellPackages;
|
||||||
unstableGhc = self.unstable.ghc;
|
unstableGhc = self.unstable.ghc;
|
||||||
inherit
|
inherit
|
1
overlays/private.nix
Normal file
1
overlays/private.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
_: prev: prev.flake-inputs.secrets.private
|
16
overlays/unfree.nix
Normal file
16
overlays/unfree.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
self: super: let
|
||||||
|
unfree = import self.flake-inputs.nixos-stable {
|
||||||
|
inherit (self) system;
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
android_sdk.accept_license = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
unstableUnfree = import self.flake-inputs.nixos-unstable {
|
||||||
|
config.allowUnfree = true;
|
||||||
|
inherit (self) system;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
inherit (unfree) discord zoom-us minecraft teamviewer steam androidsdk_9_0;
|
||||||
|
inherit (unstableUnfree) minecraft-server;
|
||||||
|
}
|
Loading…
Reference in a new issue