Add nix.nix with nix-related options
This commit is contained in:
parent
26085edbc6
commit
4adc24b8bf
@ -5,5 +5,6 @@
|
|||||||
./me.nix
|
./me.nix
|
||||||
./remote.nix
|
./remote.nix
|
||||||
./wm.nix
|
./wm.nix
|
||||||
|
./nix.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
57
system/common/nix.nix
Normal file
57
system/common/nix.nix
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
{ pkgs, lib, config, options, inputs, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.nixfiles.common.nix;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.nixfiles.common.nix = {
|
||||||
|
enable = lib.mkEnableOption "common Nix configuration";
|
||||||
|
registerNixpkgs = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = cfg.enable;
|
||||||
|
example = "true";
|
||||||
|
description = "Whether to register the Nixpkgs revision used by Nixfiles to the system's flake registry and make it tye system's <nixpkgs> channel";
|
||||||
|
};
|
||||||
|
/* # TODO
|
||||||
|
register = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = cfg.enable;
|
||||||
|
example = "true";
|
||||||
|
description = "Whether to register Nixfiles to the system's flake registry";
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkMerge [
|
||||||
|
( lib.mkIf cfg.registerNixpkgs {
|
||||||
|
|
||||||
|
# this makes modern nix tools use the system's version of nixpkgs
|
||||||
|
nix.registry = {
|
||||||
|
nixpkgs = {
|
||||||
|
exact = true;
|
||||||
|
from = {
|
||||||
|
id = "nixpkgs";
|
||||||
|
type = "indirect";
|
||||||
|
};
|
||||||
|
flake = inputs.nixpkgs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# this makes comma and legacy nix utils use the flake nixpkgs for ABI
|
||||||
|
# compatibility becasue once `, vkcube` couldn't find the correct opengl
|
||||||
|
# driver or something (also it reduces the download size of temporary shell
|
||||||
|
# closures)
|
||||||
|
nix.nixPath = [ "nixpkgs=${inputs.nixpkgs}" ] ++ options.nix.nixPath.default;
|
||||||
|
})
|
||||||
|
( lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
# direnv is a tool to automatically load shell environments upon entering
|
||||||
|
# a directory. nix-direnv has an extensionn to keep nix shells in the
|
||||||
|
# system's gcroots so shells can be used after a gc without rebuilding.
|
||||||
|
programs.direnv.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
# fallback to building locally if binary cache fails (home-manager should be
|
||||||
|
# able to handle simple rebuilds offline)
|
||||||
|
nix.settings.fallback = lib.mkDefault true;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
@ -11,8 +11,12 @@ in
|
|||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf cfg.enable {
|
(lib.mkIf cfg.enable {
|
||||||
|
|
||||||
# Enable my account
|
nixfiles.common = {
|
||||||
nixfiles.common.me.enable = lib.mkDefault true;
|
# Enable my account
|
||||||
|
me.enable = lib.mkDefault true;
|
||||||
|
# Enable system Nix configuration
|
||||||
|
nix.enable = lib.mkDefault true;
|
||||||
|
};
|
||||||
|
|
||||||
# locale settings
|
# locale settings
|
||||||
i18n = {
|
i18n = {
|
||||||
@ -25,10 +29,6 @@ in
|
|||||||
# Enable flakes
|
# Enable flakes
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes" ];
|
nix.settings.experimental-features = ["nix-command" "flakes" ];
|
||||||
|
|
||||||
# fallback to building locally if binary cache fails (home-manager should be
|
|
||||||
# able to handle simple rebuilds offline)
|
|
||||||
nix.settings.fallback = true;
|
|
||||||
|
|
||||||
# Allow unfree packages
|
# Allow unfree packages
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
@ -83,12 +83,6 @@ in
|
|||||||
|
|
||||||
programs.neovim.defaultEditor = lib.mkDefault true;
|
programs.neovim.defaultEditor = lib.mkDefault true;
|
||||||
|
|
||||||
# this makes comma and legacy nix utils use the flake nixpkgs for ABI
|
|
||||||
# compatibility becasue once `, vkcube` couldn't find the correct opengl
|
|
||||||
# driver or something (also it reduces the download size of temporary shell
|
|
||||||
# closures)
|
|
||||||
nix.nixPath = [ "nixpkgs=${inputs.nixpkgs}" ] ++ options.nix.nixPath.default;
|
|
||||||
|
|
||||||
programs.ssh.enableAskPassword = lib.mkDefault false;
|
programs.ssh.enableAskPassword = lib.mkDefault false;
|
||||||
programs.fuse.userAllowOther = lib.mkDefault true;
|
programs.fuse.userAllowOther = lib.mkDefault true;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user