base: move some shared configuration to shared
This commit is contained in:
parent
6fe9af56e7
commit
fe306085f4
11 changed files with 273 additions and 227 deletions
|
@ -17,46 +17,22 @@
|
|||
./zsh
|
||||
];
|
||||
|
||||
options.chvp = {
|
||||
stateVersion = lib.mkOption {
|
||||
example = "20.09";
|
||||
};
|
||||
|
||||
dataPrefix = lib.mkOption {
|
||||
default = "";
|
||||
example = "/data";
|
||||
};
|
||||
|
||||
cachePrefix = lib.mkOption {
|
||||
default = "";
|
||||
example = "/cache";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
|
||||
system = {
|
||||
stateVersion = config.chvp.stateVersion;
|
||||
autoUpgrade = {
|
||||
enable = true;
|
||||
flake = "gitlab:chvp/nixos-config?host=git.chvp.be";
|
||||
dates = "01/4:00";
|
||||
randomizedDelaySec = "10min";
|
||||
};
|
||||
system.autoUpgrade = {
|
||||
enable = true;
|
||||
flake = "gitlab:chvp/nixos-config?host=git.chvp.be";
|
||||
dates = "01/4:00";
|
||||
randomizedDelaySec = "10min";
|
||||
};
|
||||
home-manager.users = {
|
||||
charlotte = { ... }: {
|
||||
home.stateVersion = config.chvp.stateVersion;
|
||||
systemd.user.sessionVariables = config.home-manager.users.charlotte.home.sessionVariables;
|
||||
};
|
||||
root = { ... }: {
|
||||
home.stateVersion = config.chvp.stateVersion;
|
||||
home.stateVersion = config.chvp.homeStateVersion;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [ git htop moreutils ncdu ripgrep unzip zip ];
|
||||
|
||||
boot.kernelParams = [ "mitigations=off" ];
|
||||
|
||||
console = {
|
||||
|
@ -120,7 +96,6 @@
|
|||
charlotte = {
|
||||
isNormalUser = true;
|
||||
home = "/home/charlotte";
|
||||
description = "Charlotte Van Petegem";
|
||||
extraGroups = [ "systemd-journal" ];
|
||||
hashedPasswordFile = config.age.secrets."passwords/users/charlotte".path;
|
||||
};
|
||||
|
|
|
@ -1,39 +1,6 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
baseDirenv = {
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
};
|
||||
baseNixIndex = {
|
||||
programs.command-not-found.enable = false;
|
||||
programs.nix-index = {
|
||||
enable = true;
|
||||
package = config.programs.nix-index.package;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
options.chvp.base.nix = {
|
||||
enableDirenv = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
};
|
||||
slowGc = lib.mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
};
|
||||
# Used in /flake.nix, since we have to use it at nixpkgs import time
|
||||
unfreePackages = lib.mkOption {
|
||||
default = [ ];
|
||||
example = [ "teams" ];
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
programs.command-not-found.enable = false;
|
||||
chvp.base = {
|
||||
emacs.extraConfig = [
|
||||
''
|
||||
|
@ -48,48 +15,9 @@ in
|
|||
:config (direnv-mode)
|
||||
)
|
||||
'';
|
||||
zfs = {
|
||||
homeLinks =
|
||||
(lib.optional config.chvp.base.nix.enableDirenv { path = ".local/share/direnv"; type = "cache"; });
|
||||
systemLinks =
|
||||
(lib.optional config.chvp.base.nix.enableDirenv { path = "/root/.local/share/direnv"; type = "cache"; });
|
||||
};
|
||||
zfs.homeLinks = (lib.optional config.chvp.base.nix.enableDirenv { path = ".local/share/direnv"; type = "cache"; });
|
||||
};
|
||||
|
||||
nix = {
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = if config.chvp.base.nix.slowGc then "daily" else "hourly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
settings = {
|
||||
auto-optimise-store = true;
|
||||
substituters = [
|
||||
"https://cache.nixos.org"
|
||||
"https://accentor.cachix.org"
|
||||
"https://chvp.cachix.org"
|
||||
"https://lanzaboote.cachix.org"
|
||||
"https://nix-community.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"accentor.cachix.org-1:QP+oJwzmeq5Fsyp4Vk501UgUSbl5VIna/ard/XOePH8="
|
||||
"chvp.cachix.org-1:eIG26KkeA+R3tCpvmaayA9i3KVVL06G+qB5ci4dHBT4="
|
||||
"lanzaboote.cachix.org-1:Nt9//zGmqkg1k5iu+B3bkj3OmHKjSw9pvf3faffLLNk="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
];
|
||||
trusted-users = [ "@wheel" ];
|
||||
};
|
||||
extraOptions = lib.mkIf config.chvp.base.nix.enableDirenv ''
|
||||
keep-outputs = true
|
||||
keep-derivations = true
|
||||
'';
|
||||
};
|
||||
|
||||
home-manager.users.charlotte = { ... }:
|
||||
lib.recursiveUpdate
|
||||
(lib.optionalAttrs config.chvp.base.nix.enableDirenv baseDirenv)
|
||||
baseNixIndex;
|
||||
home-manager.users.root = { ... }: baseNixIndex;
|
||||
nix.gc.dates = if config.chvp.base.nix.slowGc then "daily" else "hourly";
|
||||
programs.command-not-found.enable = false;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,41 +2,8 @@
|
|||
|
||||
let
|
||||
base = (home: {
|
||||
home.packages = [ pkgs.autojump ];
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
autocd = true;
|
||||
dotDir = ".config/zsh";
|
||||
history = {
|
||||
expireDuplicatesFirst = true;
|
||||
path = "${config.chvp.cachePrefix}${home}/.local/share/zsh/history";
|
||||
};
|
||||
initExtra = ''
|
||||
nshell() {
|
||||
local -a drvs
|
||||
for attr in "$@"; do
|
||||
drvs+=(nixpkgs#$attr)
|
||||
done
|
||||
local paths="$(nix build --no-link --print-out-paths $drvs)"
|
||||
for p in $paths; do
|
||||
export PATH="$p/bin:$PATH"
|
||||
done
|
||||
}
|
||||
|
||||
nrun() {
|
||||
local drv="$1"
|
||||
shift 1
|
||||
nix run nixpkgs#$drv $@
|
||||
}
|
||||
|
||||
nsrun() {
|
||||
local drv="$1"
|
||||
shift 1
|
||||
nix shell nixpkgs#$drv -c $@
|
||||
}
|
||||
|
||||
lightmode() {
|
||||
printf "\033]10;rgb:4c/4f/69\007"
|
||||
printf "\033]11;rgb:ef/f1/f5\007"
|
||||
|
@ -101,27 +68,17 @@ let
|
|||
fi
|
||||
fi
|
||||
'';
|
||||
sessionVariables = { DEFAULT_USER = "charlotte"; };
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
"autojump"
|
||||
"common-aliases"
|
||||
"extract"
|
||||
"history-substring-search"
|
||||
"git"
|
||||
"systemd"
|
||||
"tmux"
|
||||
];
|
||||
theme = "robbyrussell";
|
||||
};
|
||||
};
|
||||
});
|
||||
in
|
||||
{
|
||||
chvp.base.zsh.usersToConfigure = [ "charlotte" "root" ];
|
||||
chvp.base.zfs.systemLinks = [{ path = "/root/.local/share/autojump"; type = "cache"; }];
|
||||
chvp.base.zfs.homeLinks = [{ path = ".local/share/autojump"; type = "cache"; }];
|
||||
home-manager.users.charlotte = { ... }: (base "/home/charlotte");
|
||||
home-manager.users.root = { ... }: (base "/root");
|
||||
programs.zsh.enable = true;
|
||||
} // {
|
||||
home-manager.users = builtins.foldl' (a: b: a // b) { } (
|
||||
builtins.map
|
||||
(name: { "${name}" = { ... }: (base config.users.users.${name}.home); })
|
||||
config.chvp.base.zsh.usersToConfigure
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue