nix-dotfiles/profiles/base.nix

186 lines
4.4 KiB
Nix

{ config, pkgs, lib, ... }:
{
imports =
[
../packages/vim.nix
../services/ssh.nix
./sops.nix
];
environment.systemPackages = with pkgs; [
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
git
unzip
zip
gnutar
wget
rsync
ripgrep
neofetch
htop
bottom
killall
foot.terminfo
tailscale
sops
];
#just allow unfree, im fine with it.
nixpkgs.config.allowUnfree = true;
zramSwap = {
enable = true;
memoryPercent = 25;
};
# Set your time zone.
time.timeZone = "Europe/Oslo";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
# Configure console
console = {
font = "Lat2-Terminus16";
keyMap = "no";
};
#tailscale
services.tailscale.enable = true;
networking.firewall.interfaces."tailscale0" = let
all = { from = 0; to = 65535; };
in {
allowedUDPPortRanges = [ all ];
allowedTCPPortRanges = [ all ];
};
#system vide bash aliases. TODO: check if only one of these works so i dont need duplicates.
programs.bash.shellAliases = config.environment.shellAliases;
environment.shellAliases = {
gst="git status";
gcm="git commit -m";
gca="git commit --amend";
gsw="git switch";
gaa="git add -A";
gb="git branch";
dc="cd";
la="ls -la";
lls="ls";
};
environment.interactiveShellInit = ''
alias gst='git status'
alias gcm='git commit -m'
alias gca='git commit --amend'
alias gsw='git switch'
alias gaa='git add -A'
alias gb='git branch'
alias dc='cd'
alias la='ls -la'
alias lls='ls'
'';
## some insecure packages
nixpkgs.config.permittedInsecurePackages = [
"python3.11-youtube-dl-2021.12.17"
];
sops.secrets."github/api" = {
mode = "0444";
group = "root";
};
#nix stuff
nix.gc.automatic = true;
nix = {
extraOptions = ''
builders-use-substitutes = true
experimental-features = nix-command flakes impure-derivations ca-derivations
!include ${config.sops.secrets."github/api".path}
'';
settings = {
trusted-users = [ "gunalx" "root" ];
experimental-features = [ "nix-command" "flakes" ];
substituters = [
"https://cache.nixos.org/"
"https://cuda-maintainers.cachix.org"
"https://nix-community.cachix.org"
"https://nixos-rocm.cachix.org"
"https://nixpkgs-unfree.cachix.org"
];
trusted-public-keys = [
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixos-rocm.cachix.org-1:VEpsf7pRIijjd8csKjFNBGzkBqOmw8H9PRmgAq14LnE="
"nixpkgs-unfree.cachix.org-1:hqvoInulhbV4nJ9yJOEr+4wxhDV4xq2d1DK7S6Nj6rs="
];
};
buildMachines = [
# { hostName = "bob.pvv.ntnu.no";
# system = "x86_64-linux";
# maxJobs = 12;
# supportedFeatures = [ "big-parallel" ];
# speedFactor = 129270;
# }
{ hostName = "bolle.pbsds.net";
system = "x86_64-linux";
maxJobs = 6;
speedFactor = 12857;
}
{ hostName = "garp.pbsds.net";
system = "x86_64-linux";
maxJobs = 4;
# i7-6700
speedFactor = 8088;
}
{ hostName = "aragon";
system = "x86_64-linux";
# if the builder supports building for multiple architectures,
# replace the previous line by, e.g.,
# systems = ["x86_64-linux" "aarch64-linux"];
maxJobs = 6;
#speedFactor = 13199;
speedFactor = 6000;
supportedFeatures = [ ];
mandatoryFeatures = [ ];
}
{ hostName = "galadriel";
system = "x86_64-linux";
maxJobs = 4;
#speedFactor = 8066;
speedFactor = 4000;
supportedFeatures = [ "cuda" ];
mandatoryFeatures = [ ];
}
# {
# hostName = "isvegg.pvv.ntnu.no";
# system = "x86_64-linux";
# maxJobs = 4;
# speedFactor = 4961;
# supportedFeatures = [ "big-parallel" ];
# mandatoryFeatures = [ ];
# }
];
distributedBuilds = true;
};
system.autoUpgrade = {
enable = true;
flake = "git+https://github.com/adrlau/nix-dotfiles.git";
flags = [
"--update-input" "nixpkgs"
"--update-input" "nixpkgs-unstable"
"--no-write-lock-file"
];
};
}