nixos-config/modules/nixos/base.nix
Jay Looney aa4a8347ec Refining modules/nixos/base.nix to make sense for more machines
There is a few additional changes due to typos introduced while working
on other stuff.
2025-12-02 16:39:50 -06:00

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";
# };
# };
}