Initial: Nix flake reproducing MacBook capabilities on x86_64 NixOS
- pi coding agent (from sscoble/pi-mono Forgejo mirror) - qmd vault search (via bunx @tobilu/qmd) - zsh + oh-my-zsh + developer tooling - home-manager config for sscoble user - Forgejo Action to check pi version drift daily
This commit is contained in:
commit
8155b9b64c
5 changed files with 461 additions and 0 deletions
113
modules/laptop.nix
Normal file
113
modules/laptop.nix
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# === System Packages ===
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Core development tools
|
||||
pi-coding-agent
|
||||
qmd
|
||||
nodejs
|
||||
bun
|
||||
git
|
||||
zsh
|
||||
curl
|
||||
wget
|
||||
|
||||
# System utilities
|
||||
htop
|
||||
neofetch
|
||||
ripgrep
|
||||
fd
|
||||
jq
|
||||
tree
|
||||
tmux
|
||||
unzip
|
||||
|
||||
# SSH essentials
|
||||
openssh
|
||||
mosh
|
||||
];
|
||||
|
||||
# === 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 ===
|
||||
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;
|
||||
};
|
||||
|
||||
# === Locale ===
|
||||
time.timeZone = "America/Los_Angeles";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
# === Boot ===
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue