mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 17:17:22 +01:00
89 lines
2.6 KiB
Nix
89 lines
2.6 KiB
Nix
{ self, lib, pkgs, config, ... }:
|
||
let
|
||
inherit (config.swarselsystems) mainUser flakePath isNixos isLinux;
|
||
in
|
||
{
|
||
options.swarselmodules.general = lib.mkEnableOption "general nix settings";
|
||
config =
|
||
let
|
||
nix-version = "2_30";
|
||
in
|
||
lib.mkIf config.swarselmodules.general {
|
||
nix = lib.mkIf (!config.swarselsystems.isNixos) {
|
||
package = lib.mkForce pkgs.nixVersions."nix_${nix-version}";
|
||
# extraOptions = ''
|
||
# plugin-files = ${pkgs.dev.nix-plugins}/lib/nix/plugins
|
||
# extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
||
# '';
|
||
extraOptions =
|
||
let
|
||
nix-plugins = pkgs.nix-plugins.override {
|
||
nixComponents = pkgs.nixVersions."nixComponents_${nix-version}";
|
||
};
|
||
in
|
||
''
|
||
plugin-files = ${nix-plugins}/lib/nix/plugins
|
||
extra-builtins-file = ${self + /nix/extra-builtins.nix}
|
||
'';
|
||
settings = {
|
||
experimental-features = [
|
||
"nix-command"
|
||
"flakes"
|
||
"ca-derivations"
|
||
"cgroups"
|
||
"pipe-operators"
|
||
];
|
||
trusted-users = [ "@wheel" "${mainUser}" ];
|
||
connect-timeout = 5;
|
||
bash-prompt-prefix = "[33m$SHLVL:\\w [0m";
|
||
bash-prompt = "$(if [[ $? -gt 0 ]]; then printf \"[31m\"; else printf \"[32m\"; fi)λ [0m";
|
||
fallback = true;
|
||
min-free = 128000000;
|
||
max-free = 1000000000;
|
||
auto-optimise-store = true;
|
||
warn-dirty = false;
|
||
max-jobs = 1;
|
||
use-cgroups = lib.mkIf isLinux true;
|
||
};
|
||
};
|
||
|
||
nixpkgs.overlays = lib.mkIf isNixos (lib.mkForce null);
|
||
|
||
programs = {
|
||
# home-manager.enable = lib.mkIf (!isNixos) true;
|
||
man = {
|
||
enable = true;
|
||
generateCaches = true;
|
||
};
|
||
};
|
||
|
||
targets.genericLinux.enable = lib.mkIf (!isNixos) true;
|
||
|
||
home = {
|
||
username = lib.mkDefault mainUser;
|
||
homeDirectory = lib.mkDefault "/home/${mainUser}";
|
||
stateVersion = lib.mkDefault "23.05";
|
||
keyboard.layout = "us";
|
||
sessionVariables = {
|
||
FLAKE = "/home/${mainUser}/.dotfiles";
|
||
};
|
||
extraOutputsToInstall = [
|
||
"doc"
|
||
"info"
|
||
"devdoc"
|
||
];
|
||
packages = lib.mkIf (!isNixos) [
|
||
(pkgs.symlinkJoin {
|
||
name = "home-manager";
|
||
buildInputs = [ pkgs.makeWrapper ];
|
||
paths = [ pkgs.home-manager ];
|
||
postBuild = ''
|
||
wrapProgram $out/bin/home-manager \
|
||
--append-flags '--flake ${flakePath}#$(hostname)'
|
||
'';
|
||
})
|
||
];
|
||
};
|
||
};
|
||
|
||
}
|