dotfiles/modules/profiles/base.nix

157 lines
4.0 KiB
Nix
Raw Normal View History

2022-07-15 13:11:54 +02:00
{ config
, lib
, pkgs
, ...
}:
with lib;
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-03-02 09:20:35 +01:00
cd = "z";
2022-07-15 13:11:54 +02: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;
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
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
vim
2022-07-15 13:11:54 +02:00
];
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;
};
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
}