Add nix.nix with nix-related options
This commit is contained in:
parent
26085edbc6
commit
4adc24b8bf
@ -5,5 +5,6 @@
|
||||
./me.nix
|
||||
./remote.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 [
|
||||
(lib.mkIf cfg.enable {
|
||||
|
||||
# Enable my account
|
||||
nixfiles.common.me.enable = lib.mkDefault true;
|
||||
nixfiles.common = {
|
||||
# Enable my account
|
||||
me.enable = lib.mkDefault true;
|
||||
# Enable system Nix configuration
|
||||
nix.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
# locale settings
|
||||
i18n = {
|
||||
@ -25,10 +29,6 @@ in
|
||||
# Enable 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
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
@ -83,12 +83,6 @@ in
|
||||
|
||||
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.fuse.userAllowOther = lib.mkDefault true;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user