138 lines
2.6 KiB
Nix
138 lines
2.6 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
{
|
|
imports = [ ../hardware-configuration.nix ];
|
|
|
|
# === System Packages ===
|
|
environment.systemPackages = with pkgs; [
|
|
papirus-icon-theme
|
|
# Core development tools
|
|
qmd
|
|
nodejs
|
|
bun
|
|
git
|
|
zsh
|
|
curl
|
|
wget
|
|
|
|
# System utilities
|
|
htop
|
|
fastfetch
|
|
ripgrep
|
|
fd
|
|
jq
|
|
tree
|
|
tmux
|
|
unzip
|
|
neovim
|
|
|
|
# SSH essentials
|
|
openssh
|
|
mosh
|
|
];
|
|
|
|
# === DNS ===
|
|
networking.networkmanager.insertNameservers = [ "1.1.1.1" "8.8.8.8" ];
|
|
|
|
# === Wallpaper ===
|
|
|
|
# === Shell ===
|
|
programs.zsh = {
|
|
enable = true;
|
|
autosuggestions.enable = true;
|
|
syntaxHighlighting.enable = true;
|
|
shellAliases = {
|
|
ll = "ls -la";
|
|
la = "ls -A";
|
|
l = "ls -CF";
|
|
nix-rebuild = "sudo nixos-rebuild switch --flake ~/laptop-config#laptop";
|
|
nix-clean = "sudo nix-collect-garbage -d && nix-collect-garbage -d";
|
|
vault-search = "qmd query";
|
|
pi-run = "pi";
|
|
};
|
|
ohMyZsh = {
|
|
enable = true;
|
|
plugins = [ "git" "node" "npm" "ssh-agent" "sudo" "history" ];
|
|
theme = "robbyrussell";
|
|
};
|
|
};
|
|
|
|
# Default to zsh
|
|
users.defaultUserShell = pkgs.zsh;
|
|
|
|
# === SSH ===
|
|
# === SSH Server ===
|
|
services.openssh = {
|
|
enable = true;
|
|
settings.PasswordAuthentication = false;
|
|
};
|
|
|
|
programs.ssh = {
|
|
startAgent = true;
|
|
extraConfig = ''
|
|
Host n97-mini
|
|
HostName 192.168.168.41
|
|
User sscoble
|
|
ForwardAgent yes
|
|
IdentityFile ~/.ssh/id_ed25519
|
|
|
|
Host n97-mini-ext
|
|
HostName os.scoble.me
|
|
Port 22
|
|
User sscoble
|
|
ForwardAgent yes
|
|
IdentityFile ~/.ssh/id_ed25519
|
|
|
|
Host forgejo
|
|
HostName os.scoble.me
|
|
User git
|
|
IdentityFile ~/.ssh/id_ed25519
|
|
'';
|
|
};
|
|
|
|
# === Fonts (for pi TUI) ===
|
|
fonts.packages = with pkgs; [
|
|
nerd-fonts.jetbrains-mono
|
|
nerd-fonts.fira-code
|
|
];
|
|
|
|
# === Nix Settings ===
|
|
nix = {
|
|
settings = {
|
|
experimental-features = [ "nix-command" "flakes" ];
|
|
auto-optimise-store = true;
|
|
};
|
|
gc = {
|
|
automatic = true;
|
|
dates = "weekly";
|
|
options = "--delete-older-than 30d";
|
|
};
|
|
};
|
|
|
|
# === User ===
|
|
users.users.sscoble = {
|
|
isNormalUser = true;
|
|
description = "Scott Scoble";
|
|
extraGroups = [ "networkmanager" "wheel" "docker" ];
|
|
shell = pkgs.zsh;
|
|
packages = with pkgs; [
|
|
neovim
|
|
tmux
|
|
ripgrep
|
|
fd
|
|
bat
|
|
eza
|
|
delta
|
|
];
|
|
};
|
|
|
|
# === Locale ===
|
|
time.timeZone = "America/Los_Angeles";
|
|
i18n.defaultLocale = "en_US.UTF-8";
|
|
|
|
# === Boot ===
|
|
boot.loader.systemd-boot.enable = true;
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
}
|
|
|
|
|