2022-07-15 13:11:54 +02:00
|
|
|
{ config
|
|
|
|
, lib
|
|
|
|
, pkgs
|
|
|
|
, ...
|
|
|
|
}:
|
|
|
|
|
|
|
|
with lib;
|
2023-02-24 12:04:53 +01:00
|
|
|
let
|
|
|
|
nom-system = pkgs.writeShellApplication {
|
|
|
|
name = "nom-system";
|
|
|
|
runtimeInputs = with pkgs; [ nix-output-monitor ];
|
|
|
|
text = ''
|
|
|
|
nom build --no-link "/home/moritz/.dotfiles#nixosConfigurations.$(hostname).config.system.build.toplevel"
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
nom-system-command = command: "${nom-system}/bin/nom-system && ${command}";
|
|
|
|
in
|
2022-07-15 13:11:54 +02:00
|
|
|
{
|
|
|
|
users.users.moritz = {
|
|
|
|
isNormalUser = true;
|
|
|
|
home = "/home/moritz";
|
2022-10-06 20:19:59 +02:00
|
|
|
extraGroups = [ "wheel" "networkmanager" "video" ];
|
2022-07-15 13:11:54 +02:00
|
|
|
initialPassword = "password"; # CHANGE ME PLEASE
|
|
|
|
openssh.authorizedKeys.keys = [
|
|
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGoAqa2m7hIzZ2LS96Z+RCIlRvhBM/j7h27tMBCwMT+a" # Moritz
|
|
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDhtwHDGAZshiQWKkCcPWV9tC83b+bKBgjDcjP/N2CKO" # Laptop
|
|
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKl8gMhwSf1NsP5gp14xbbyjqQLZzcHLb/XKRMoHdXgI" # Desktop
|
|
|
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDHlemuKagHwz2T5rEwgJNlVUdUdOXyPtCEzD73CrwY2zmpR4AMj7y9u3Rm7HwHUDjLap1ZFwg+53bAsVP6HFZccCXoIfO/8BL0WDGQJrfgb+A+UiRhSqSvyZ77bGJkadbBkadguz3qR3PHcb41DOlhuqVcHxsY8ceHMxAuyb0pLJVJLeytMD+CHS/r7hoj2hckTNAZ+VhCXBtdZfZ7uPUBxLfluYRNNMmdwCglsg3RUS242nJUzy3A84+CXIGeWmNG9Fu45IDkwMthxSW9klyU9R38R9DBDcugkyb6vz+JKSuRVAa47qh/kmtsYekfL3ul9D2JN32P8S+6ZoXx+gXupGJ0ltwJWAFkhLJ+yeXj9kCOv/mIUmCB14jMGsvKiSwV25O/twyjqe2LEkMVgimgrjEYoHu+ZTyp0iFtUvSrFo4tsAhfWPV9yj4F/hUksW7xKIwq5Niyx7he5M/XddudtnAximyiBDGCdJm1Ejl0UaGa6ZQv7y6VZdx0PyZuraT7l9ub8so6JlE4cVgSSU9vE0IS2QqBuHhsIjh8RVksoTR2NQbeDdGaGpGnq2C8y0rDXwE/EJA4LK45khX/GPn73n8F0kBG8dBrWgRDAEODpmebScO7d5mCeM0z3lPcRmh+3e3DPnVVOl+uR7udlc7NauLzl7q913UtxZaF1PlD7Q==" # GPG
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
time.timeZone = "Europe/Berlin";
|
|
|
|
|
|
|
|
my = {
|
2022-10-15 20:00:09 +02:00
|
|
|
nix = {
|
|
|
|
gc.enable = true;
|
|
|
|
optimise.enable = true;
|
|
|
|
};
|
|
|
|
bin.enable = true;
|
2022-07-15 13:11:54 +02:00
|
|
|
shell = {
|
|
|
|
abbreviations = {
|
|
|
|
us = "systemctl --user";
|
2022-10-09 20:49:35 +02:00
|
|
|
rs = "sudo systemctl";
|
2022-07-15 13:11:54 +02:00
|
|
|
};
|
|
|
|
aliases = {
|
|
|
|
ls = "exa -lh --icons --git";
|
|
|
|
cat = "bat";
|
|
|
|
grep = "rg";
|
|
|
|
rm = "rm -i";
|
|
|
|
mv = "mv -i";
|
|
|
|
|
2023-02-24 12:04:53 +01:00
|
|
|
nixos-switch = nom-system-command "sudo nixos-rebuild switch --flake ~/.dotfiles";
|
|
|
|
nixos-boot = nom-system-command "sudo nixos-rebuild boot --flake ~/.dotfiles";
|
2023-01-01 15:28:13 +01:00
|
|
|
nixos-update = "pushd ~/.dotfiles && nix flake update && popd";
|
2022-07-15 13:11:54 +02:00
|
|
|
|
|
|
|
latexwatch = ''find -type f -name "*.tex" | entr -c latexmk -pdf -silent'';
|
|
|
|
};
|
|
|
|
variables = { EDITOR = "vim"; };
|
|
|
|
};
|
2022-08-20 14:21:15 +02:00
|
|
|
programs = {
|
2022-10-15 20:00:09 +02:00
|
|
|
direnv.enable = true;
|
2022-10-09 20:51:45 +02:00
|
|
|
fish.enable = true;
|
2022-10-15 20:00:09 +02:00
|
|
|
git.enable = true;
|
|
|
|
gpg.enable = true;
|
|
|
|
vim.enable = true;
|
2022-08-20 14:21:15 +02:00
|
|
|
};
|
2022-07-15 13:11:54 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
console.keyMap = "de";
|
|
|
|
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
# archives
|
|
|
|
p7zip
|
|
|
|
unzip
|
|
|
|
zip
|
|
|
|
|
|
|
|
# file management
|
|
|
|
trash-cli
|
|
|
|
|
|
|
|
# monitoring
|
|
|
|
htop
|
|
|
|
bottom
|
|
|
|
|
|
|
|
# nix
|
|
|
|
comma
|
|
|
|
nix-index
|
|
|
|
nixpkgs-fmt
|
|
|
|
statix
|
2022-07-31 21:46:46 +02:00
|
|
|
manix
|
2023-02-24 12:04:53 +01:00
|
|
|
nix-output-monitor
|
2023-02-24 18:42:20 +01:00
|
|
|
attic
|
2022-07-15 13:11:54 +02:00
|
|
|
|
|
|
|
# other
|
|
|
|
bat
|
|
|
|
cht-sh
|
|
|
|
du-dust
|
|
|
|
duf
|
|
|
|
entr
|
|
|
|
exa
|
|
|
|
gparted
|
|
|
|
neofetch
|
2022-12-23 12:40:37 +01:00
|
|
|
ripgrep
|
2022-07-15 13:11:54 +02:00
|
|
|
tmux
|
|
|
|
up
|
|
|
|
viu
|
|
|
|
wget
|
|
|
|
];
|
|
|
|
|
|
|
|
fonts.fonts = with pkgs; [
|
|
|
|
(nerdfonts.override {
|
2022-12-23 12:40:37 +01:00
|
|
|
fonts = [ "FiraCode" ];
|
2022-07-15 13:11:54 +02:00
|
|
|
})
|
|
|
|
];
|
|
|
|
|
|
|
|
programs = {
|
|
|
|
mtr.enable = true;
|
|
|
|
command-not-found.enable = true;
|
2022-11-24 13:47:48 +01:00
|
|
|
starship.enable = true;
|
2022-07-15 13:11:54 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
services = {
|
|
|
|
sshd.enable = true; # for agenix
|
|
|
|
btrfs.autoScrub.enable =
|
|
|
|
lib.mkDefault
|
|
|
|
(builtins.any (filesystem: filesystem.fsType == "btrfs")
|
|
|
|
(builtins.attrValues config.fileSystems));
|
|
|
|
};
|
|
|
|
|
2022-10-09 20:49:35 +02:00
|
|
|
i18n.extraLocaleSettings = {
|
2023-01-28 13:46:23 +01:00
|
|
|
# LC_NUMERIC = "de_DE.UTF-8";
|
2022-10-09 20:49:35 +02:00
|
|
|
LC_PAPER = "de_DE.UTF-8";
|
|
|
|
LC_TIME = "de_DE.UTF-8";
|
|
|
|
};
|
|
|
|
|
2022-07-15 13:11:54 +02:00
|
|
|
home-manager.users.moritz = {
|
|
|
|
programs = {
|
|
|
|
# Let Home Manager install and manage itself.
|
|
|
|
home-manager.enable = true;
|
|
|
|
fzf.enable = true;
|
2023-02-28 12:54:34 +01:00
|
|
|
zoxide.enable = true;
|
2022-07-15 13:11:54 +02:00
|
|
|
};
|
|
|
|
home = {
|
|
|
|
username = "moritz";
|
|
|
|
homeDirectory = "/home/moritz";
|
|
|
|
stateVersion = "21.05";
|
|
|
|
};
|
|
|
|
xdg.userDirs.enable = true;
|
|
|
|
};
|
2023-02-20 19:04:38 +01:00
|
|
|
|
|
|
|
system.activationScripts.diff = ''
|
|
|
|
if [ -e /run/current-system ]; then
|
|
|
|
${pkgs.nvd}/bin/nvd --nix-bin-dir ${pkgs.nix}/bin diff /run/current-system/ "$systemConfig"
|
|
|
|
fi
|
|
|
|
'';
|
2022-07-15 13:11:54 +02:00
|
|
|
}
|