feature(config): Allow pkgs config
This commit is contained in:
parent
96cf0a24c1
commit
b39db82a29
8 changed files with 104 additions and 52 deletions
|
|
@ -165,6 +165,37 @@ nixosConfigurations =
|
||||||
inputs.dashNix.dashNixLib.buildSystems { root = ./.; inherit additionalInputs; };
|
inputs.dashNix.dashNixLib.buildSystems { root = ./.; inherit additionalInputs; };
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Configuring pkgs
|
||||||
|
|
||||||
|
While DashNix offers a default pkgs config, you may want to permit an unsecure packages or add an overlay to them.
|
||||||
|
You can configure both stable and unstable pkgs the following way:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
currentSystem = "x86_64-linux";
|
||||||
|
permittedPackages = [
|
||||||
|
"some package"
|
||||||
|
];
|
||||||
|
config = {
|
||||||
|
system = currentSystem;
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
permittedInsecurePackages = permittedPackages;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
unstableBundle = {
|
||||||
|
pkgs = inputs.unstable;
|
||||||
|
inherit config;
|
||||||
|
};
|
||||||
|
inputs.dashNix.dashNixLib.buildSystems {
|
||||||
|
root = ./.;
|
||||||
|
inherit unstableBundle;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
With this you could also change your input to something different should you wish to do so.
|
||||||
|
Note that overriding inputs via the flake still works,
|
||||||
|
this way however ensures you can also configure the inputs.
|
||||||
|
|
||||||
## Stable/Unstable
|
## Stable/Unstable
|
||||||
|
|
||||||
Sometimes you want to differentiate between systems that are stable and unstable, e.g. for servers and desktops/laptops.
|
Sometimes you want to differentiate between systems that are stable and unstable, e.g. for servers and desktops/laptops.
|
||||||
|
|
|
||||||
38
flake.nix
38
flake.nix
|
|
@ -59,47 +59,27 @@
|
||||||
currentSystem = "x86_64-linux";
|
currentSystem = "x86_64-linux";
|
||||||
permittedPackages = [
|
permittedPackages = [
|
||||||
"olm-3.2.16"
|
"olm-3.2.16"
|
||||||
# well done dotnet...
|
|
||||||
# this is just for omnisharp
|
|
||||||
"dotnet-core-combined"
|
|
||||||
"dotnet-wrapped-combined"
|
|
||||||
"dotnet-combined"
|
|
||||||
"dotnet-sdk-6.0.428"
|
|
||||||
"dotnet-sdk-wrapped-6.0.428"
|
|
||||||
"dotnet-sdk-6.0.136"
|
|
||||||
"dotnet-sdk-wrapped-6.0.136"
|
|
||||||
"dotnet-sdk-7.0.120"
|
|
||||||
"dotnet-sdk-wrapped-7.0.120"
|
|
||||||
"dotnet-sdk-7.0.410"
|
|
||||||
"dotnet-sdk-wrapped-7.0.410"
|
|
||||||
"jitsi-meet-1.0.8043"
|
|
||||||
"nextcloud-27.1.11"
|
|
||||||
];
|
];
|
||||||
stable = import ./lib/importPkgs.nix {
|
importPkgsFn = import ./lib/importPkgs.nix;
|
||||||
inherit inputs permittedPackages currentSystem;
|
defaultConfigureFn = pkgs:
|
||||||
pkgs = inputs.stable;
|
importPkgsFn {
|
||||||
};
|
inherit inputs currentSystem permittedPackages pkgs;
|
||||||
unstable = import ./lib/importPkgs.nix {
|
};
|
||||||
inherit inputs permittedPackages currentSystem;
|
stable = defaultConfigureFn inputs.stable;
|
||||||
pkgs = inputs.unstable;
|
unstable = defaultConfigureFn inputs.unstable;
|
||||||
};
|
pkgsDarkreader = defaultConfigureFn inputs.pkgsDarkreader;
|
||||||
pkgsDarkreader = import ./lib/importPkgs.nix {
|
|
||||||
inherit inputs permittedPackages currentSystem;
|
|
||||||
pkgs = inputs.pkgsDarkreader;
|
|
||||||
};
|
|
||||||
in rec {
|
in rec {
|
||||||
dashNixLib = import ./lib {
|
dashNixLib = import ./lib {
|
||||||
inherit
|
inherit
|
||||||
self
|
self
|
||||||
inputs
|
inputs
|
||||||
unstable
|
unstable
|
||||||
stable
|
permittedPackages
|
||||||
;
|
;
|
||||||
dashNixAdditionalProps = {
|
dashNixAdditionalProps = {
|
||||||
inherit pkgsDarkreader;
|
inherit pkgsDarkreader;
|
||||||
};
|
};
|
||||||
system = currentSystem;
|
system = currentSystem;
|
||||||
inherit (inputs.unstable) lib;
|
|
||||||
};
|
};
|
||||||
docs = import ./docs {
|
docs = import ./docs {
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,35 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
|
||||||
unstable,
|
unstable,
|
||||||
self,
|
self,
|
||||||
stable,
|
|
||||||
system,
|
system,
|
||||||
|
permittedPackages,
|
||||||
dashNixAdditionalProps ? {},
|
dashNixAdditionalProps ? {},
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
|
defaultConfig = {
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
permittedInsecurePackages = permittedPackages;
|
||||||
|
};
|
||||||
|
overlays = [
|
||||||
|
inputs.nur.overlays.default
|
||||||
|
inputs.chaoticNyx.overlays.cache-friendly
|
||||||
|
];
|
||||||
|
inherit system;
|
||||||
|
};
|
||||||
|
mkPkgs = {
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
}: let
|
||||||
|
overlays =
|
||||||
|
if (config ? overlays)
|
||||||
|
then config.overlays
|
||||||
|
else [];
|
||||||
|
comnbinedConfig = config // {overlays = overlays ++ defaultConfig.overlays;};
|
||||||
|
in
|
||||||
|
import pkgs comnbinedConfig;
|
||||||
|
in {
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
# buildSystems
|
# buildSystems
|
||||||
|
|
@ -75,9 +97,27 @@
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
additionalInputs ? {},
|
additionalInputs ? {},
|
||||||
|
unstableBundle ? {},
|
||||||
|
stableBundle ? {},
|
||||||
overridePkgs ? false,
|
overridePkgs ? false,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
|
unstableInput = unstableBundle.pkgs or inputs.unstable;
|
||||||
|
stableInput = stableBundle.pkgs or inputs.stable;
|
||||||
|
unstableConfig = unstableBundle.config or defaultConfig;
|
||||||
|
stableConfig = stableBundle.config or defaultConfig;
|
||||||
|
|
||||||
|
unstablePkgs = mkPkgs {
|
||||||
|
pkgs = unstableInput;
|
||||||
|
config = unstableConfig;
|
||||||
|
};
|
||||||
|
stablePkgs = mkPkgs {
|
||||||
|
pkgs = stableInput;
|
||||||
|
config = stableConfig;
|
||||||
|
};
|
||||||
|
inputlib = unstableInput.lib;
|
||||||
|
inherit (unstablePkgs) lib;
|
||||||
|
in
|
||||||
builtins.listToAttrs (
|
builtins.listToAttrs (
|
||||||
map
|
map
|
||||||
(name: {
|
(name: {
|
||||||
|
|
@ -94,27 +134,28 @@
|
||||||
additionalHomeConfig
|
additionalHomeConfig
|
||||||
system
|
system
|
||||||
root
|
root
|
||||||
stable
|
|
||||||
unstable
|
|
||||||
additionalInputs
|
additionalInputs
|
||||||
dashNixAdditionalProps
|
dashNixAdditionalProps
|
||||||
|
lib
|
||||||
;
|
;
|
||||||
|
stable = stablePkgs;
|
||||||
|
unstable = unstablePkgs;
|
||||||
pkgs = lib.mkForce (
|
pkgs = lib.mkForce (
|
||||||
if overridePkgs
|
if overridePkgs
|
||||||
then stable
|
then stablePkgs
|
||||||
else unstable
|
else unstablePkgs
|
||||||
);
|
);
|
||||||
alternativePkgs =
|
alternativePkgs =
|
||||||
if overridePkgs
|
if overridePkgs
|
||||||
then unstable
|
then unstablePkgs
|
||||||
else stable;
|
else stablePkgs;
|
||||||
hostName = name;
|
hostName = name;
|
||||||
homeMods = mods.home;
|
homeMods = mods.home;
|
||||||
additionalHomeMods = additionalMods.home;
|
additionalHomeMods = additionalMods.home;
|
||||||
mkDashDefault = import ./override.nix {inherit lib;};
|
mkDashDefault = import ./override.nix {inherit lib;};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
inputs.unstable.lib.nixosSystem {
|
inputlib.nixosSystem {
|
||||||
modules =
|
modules =
|
||||||
[
|
[
|
||||||
{_module.args = args;}
|
{_module.args = args;}
|
||||||
|
|
@ -122,8 +163,8 @@
|
||||||
]
|
]
|
||||||
++ mods.nixos
|
++ mods.nixos
|
||||||
++ additionalMods.nixos
|
++ additionalMods.nixos
|
||||||
++ inputs.unstable.lib.optional (builtins.pathExists additionalNixosConfig) additionalNixosConfig
|
++ lib.optional (builtins.pathExists additionalNixosConfig) additionalNixosConfig
|
||||||
++ inputs.unstable.lib.optional (builtins.pathExists mod) mod;
|
++ lib.optional (builtins.pathExists mod) mod;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
(
|
(
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,7 @@
|
||||||
pkgs.intel-media-driver)
|
pkgs.intel-media-driver)
|
||||||
(lib.mkIf config.mods.gpu.vapi.enable pkgs.libvdpau-va-gl)
|
(lib.mkIf config.mods.gpu.vapi.enable pkgs.libvdpau-va-gl)
|
||||||
(lib.mkIf config.mods.gpu.vapi.enable pkgs.libva)
|
(lib.mkIf config.mods.gpu.vapi.enable pkgs.libva)
|
||||||
(lib.mkIf config.mods.gpu.vapi.enable pkgs.vaapiVdpau)
|
(lib.mkIf config.mods.gpu.vapi.enable pkgs.libva-vdpau-driver)
|
||||||
(lib.mkIf (config.mods.gpu.intelgpu.enable || config.mods.gpu.amdgpu.enable) pkgs.mesa)
|
(lib.mkIf (config.mods.gpu.intelgpu.enable || config.mods.gpu.amdgpu.enable) pkgs.mesa)
|
||||||
];
|
];
|
||||||
rocmPackages = [
|
rocmPackages = [
|
||||||
|
|
|
||||||
|
|
@ -102,11 +102,11 @@
|
||||||
(lib.mkIf config.mods.homePackages.orcaSlicer orca-slicer)
|
(lib.mkIf config.mods.homePackages.orcaSlicer orca-slicer)
|
||||||
(lib.mkIf config.mods.homePackages.vesktop vesktop)
|
(lib.mkIf config.mods.homePackages.vesktop vesktop)
|
||||||
(lib.mkIf config.mods.homePackages.nextcloudClient nextcloud-client)
|
(lib.mkIf config.mods.homePackages.nextcloudClient nextcloud-client)
|
||||||
(lib.mkIf (!isNull config.mods.homePackages.matrixClient) config.mods.homePackages.matrixClient)
|
(lib.mkIf (config.mods.homePackages.matrixClient != null) config.mods.homePackages.matrixClient)
|
||||||
(lib.mkIf (!isNull config.mods.homePackages.mailClient) config.mods.homePackages.mailClient)
|
(lib.mkIf (config.mods.homePackages.mailClient != null) config.mods.homePackages.mailClient)
|
||||||
(lib.mkIf (
|
(lib.mkIf (
|
||||||
# NOTE: This should be package, but nix doesn't have that....
|
# NOTE: This should be package, but nix doesn't have that....
|
||||||
builtins.isAttrs config.mods.homePackages.browser && !isNull config.mods.homePackages.browser
|
builtins.isAttrs config.mods.homePackages.browser && config.mods.homePackages.browser != null
|
||||||
)
|
)
|
||||||
config.mods.homePackages.browser)
|
config.mods.homePackages.browser)
|
||||||
adw-gtk3
|
adw-gtk3
|
||||||
|
|
@ -128,10 +128,10 @@
|
||||||
nh
|
nh
|
||||||
nix-index
|
nix-index
|
||||||
playerctl
|
playerctl
|
||||||
poppler_utils
|
poppler-utils
|
||||||
pulseaudio
|
pulseaudio
|
||||||
libsForQt5.qt5ct
|
libsForQt5.qt5ct
|
||||||
qt6ct
|
qt6Packages.qt6ct
|
||||||
fcp
|
fcp
|
||||||
ripgrep
|
ripgrep
|
||||||
rm-improved
|
rm-improved
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
options,
|
options,
|
||||||
|
mkDashDefault,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.conf) username;
|
inherit (config.conf) username;
|
||||||
|
|
@ -263,8 +264,7 @@ in {
|
||||||
config = lib.mkIf (config.mods.ironbar.enable || config.mods.hypr.hyprland.useIronbar) (
|
config = lib.mkIf (config.mods.ironbar.enable || config.mods.hypr.hyprland.useIronbar) (
|
||||||
lib.optionalAttrs (options ? programs.ironbar) {
|
lib.optionalAttrs (options ? programs.ironbar) {
|
||||||
programs.ironbar = {
|
programs.ironbar = {
|
||||||
# TODO broken
|
package = mkDashDefault pkgs.ironbar;
|
||||||
# package = mkDashDefault pkgs.ironbar;
|
|
||||||
enable = true;
|
enable = true;
|
||||||
style =
|
style =
|
||||||
if config.mods.ironbar.useDefaultCss
|
if config.mods.ironbar.useDefaultCss
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,7 @@
|
||||||
zathura
|
zathura
|
||||||
evince
|
evince
|
||||||
libreoffice-fresh
|
libreoffice-fresh
|
||||||
onlyoffice-bin
|
onlyoffice-desktopeditors
|
||||||
pdftk
|
pdftk
|
||||||
pdfpc
|
pdfpc
|
||||||
polylux2pdfpc
|
polylux2pdfpc
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
emoji = {
|
emoji = {
|
||||||
package = pkgs.noto-fonts-emoji;
|
package = pkgs.noto-fonts-color-emoji;
|
||||||
name = "Noto Color Emoji";
|
name = "Noto Color Emoji";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue