116 lines
3.6 KiB
Nix
116 lines
3.6 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
{
|
|
nixpkgs.config.allowUnfree = true;
|
|
# TODO: Consider adding a randomized delay.
|
|
nix.gc = {
|
|
automatic = true;
|
|
dates = "weekly";
|
|
options = "--delete-older-than 30d";
|
|
};
|
|
nix.settings = {
|
|
auto-optimise-store = true;
|
|
experimental-features = [ "nix-command" "flakes" ];
|
|
};
|
|
|
|
# https://datatracker.ietf.org/doc/html/rfc8375
|
|
networking.domain = lib.mkDefault "home.arpa";
|
|
|
|
# TODO: Consider enabling automatic-timezoned on laptops that move between TZs
|
|
time.timeZone = lib.mkDefault "America/Chicago";
|
|
services.automatic-timezoned.enable = lib.mkDefault false;
|
|
|
|
i18n.defaultLocale = "en_US.UTF-8";
|
|
i18n.extraLocaleSettings = {
|
|
LC_ADDRESS = "en_US.UTF-8";
|
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
|
LC_MEASUREMENT = "en_US.UTF-8";
|
|
LC_MONETARY = "en_US.UTF-8";
|
|
LC_NAME = "en_US.UTF-8";
|
|
LC_NUMERIC = "en_US.UTF-8";
|
|
LC_PAPER = "en_US.UTF-8";
|
|
LC_TELEPHONE = "en_US.UTF-8";
|
|
LC_TIME = "en_US.UTF-8";
|
|
};
|
|
|
|
console.font = null; # Kernel will automatically choose a font.
|
|
console.keyMap = "us";
|
|
# 4-bit ANSI -> Catpuccin Mocha Colors: https://catppuccin.com/palette/
|
|
console.colors = [
|
|
"11111b" # black -> crust
|
|
"f38ba8" # red -> red
|
|
"a6e3a1" # green -> green
|
|
"fab387" # yellow -> peach
|
|
"89b4fa" # blue -> blue
|
|
"cba6f7" # magenta -> mauve
|
|
"74c7ec" # cyan -> sapphire
|
|
"6c7086" # white -> overlay 0
|
|
"313244" # bright black (gray) -> surface 0
|
|
"eba0ac" # bright red -> maroon
|
|
"94e2d5" # bright green -> teal
|
|
"f9e2af" # bright yellow -> yellow
|
|
"b4befe" # bright blue -> lavender
|
|
"f5c2e7" # bright magenta -> pink
|
|
"89dceb" # bright cyan -> sky
|
|
"cdd6f4" # bright white -> text
|
|
];
|
|
|
|
networking.firewall.enable = true;
|
|
|
|
# Installed on every NixOS Host.
|
|
environment.systemPackages = with pkgs; [
|
|
wget curl
|
|
ripgrep
|
|
];
|
|
programs = {
|
|
less = {
|
|
enable = true;
|
|
# https://ascending.wordpress.com/2011/02/11/unix-tip-make-less-more-friendly/
|
|
# https://www.topbug.net/blog/2016/09/27/make-gnu-less-more-powerful/
|
|
envVariables = {
|
|
LESS = lib.concatStrings [
|
|
"--quit-if-one-screen "
|
|
"--ignore-case "
|
|
"--long-prompt "
|
|
"--raw-control-chars " # raw ANSI colors
|
|
"--hilite-unread " # first unread line after forward screen
|
|
"--tabs=4 "
|
|
"--no-init " # Don't use termcap init/deinit strings.
|
|
];
|
|
# Render colors
|
|
# TODO: Figure out how to represent those termcap sequences properly.
|
|
LESS_TERMCAP_mb="\E[1;31m"; # begin bold
|
|
LESS_TERMCAP_md="\E[1;36m"; # begin blink
|
|
LESS_TERMCAP_me="\E[0m"; # reset bold/blink
|
|
LESS_TERMCAP_so="\E[01;44;33m"; # begin reverse video
|
|
LESS_TERMCAP_se="\E[0m"; # reset reverse video
|
|
LESS_TERMCAP_us="\E[1;32m"; # begin underline
|
|
LESS_TERMCAP_ue="\E[0m"; # reset underline
|
|
};
|
|
};
|
|
|
|
git.enable = true;
|
|
htop.enable = true;
|
|
bat.enable = true;
|
|
bandwhich.enable = true;
|
|
|
|
command-not-found.enable = false;
|
|
#nix-index.enable = true;
|
|
|
|
nano.enable = false;
|
|
neovim = {
|
|
enable = true;
|
|
defaultEditor = true;
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
};
|
|
};
|
|
|
|
services.openssh.enable = lib.mkDefault false;
|
|
# services.openssh = {
|
|
# enable = true;
|
|
# settings = {
|
|
# PasswordAuthentication = false;
|
|
# PermitRootLogin = "no";
|
|
# };
|
|
# };
|
|
}
|