add: pacman list

This commit is contained in:
Melvin Ragusa
2026-02-02 11:20:24 +01:00
parent 139c28ec9c
commit 9b2e4c23d3
7 changed files with 1791 additions and 1 deletions

View File

@@ -15,6 +15,8 @@
./modules/apps.nix # User applications
./modules/dev.nix # Docker, dev tools
./modules/theming.nix # Fonts, themes, cursors
./modules/virtualization.nix # QEMU, KVM, virt-manager
./modules/power.nix # Power management, CPU governors
];
# ═══════════════════════════════════════════════════════════════

View File

@@ -47,11 +47,16 @@
unrar
# ─────────────────────────────────────────────────────────────
# Screenshots
# Screenshots & Screen Recording
# ─────────────────────────────────────────────────────────────
swappy # Screenshot annotation tool
# grim + slurp already in your base config
# Screen recording
obs-studio # Full-featured streaming/recording suite
gpu-screen-recorder # Lightweight GPU-accelerated recorder (AMD/NVIDIA/Intel)
kooha # Simple GNOME-style screen recorder
# ─────────────────────────────────────────────────────────────
# Security & Passwords
# ─────────────────────────────────────────────────────────────

View File

@@ -12,6 +12,7 @@
pwvucontrol # Modern PipeWire volume control (Qt)
pavucontrol # Classic PulseAudio volume control (GTK) - as backup
helvum # PipeWire patchbay for routing audio
qpwgraph # PipeWire graph editor (visual audio routing)
# Media player control
playerctl # Control media players via D-Bus (for media keys)

39
modules/power.nix Normal file
View File

@@ -0,0 +1,39 @@
# modules/power.nix
# Power management for desktop: CPU governor control, power profiles
{ config, pkgs, lib, ... }:
{
# ═══════════════════════════════════════════════════════════════
# POWER PROFILES DAEMON
# ═══════════════════════════════════════════════════════════════
# Provides power-saver, balanced, and performance profiles
# Can be switched via CLI or desktop integration
services.power-profiles-daemon.enable = true;
# ═══════════════════════════════════════════════════════════════
# CPU FREQUENCY SCALING
# ═══════════════════════════════════════════════════════════════
# Use schedutil for modern AMD CPUs (responds to load dynamically)
powerManagement.cpuFreqGovernor = "schedutil";
# Enable powertop auto-tune for additional optimizations
# (reduces power draw even on desktop when idle)
powerManagement.powertop.enable = true;
# ═══════════════════════════════════════════════════════════════
# PACKAGES
# ═══════════════════════════════════════════════════════════════
environment.systemPackages = with pkgs; [
powertop # Power consumption analyzer
power-profiles-daemon # Already enabled as service, CLI tool for control
];
# ═══════════════════════════════════════════════════════════════
# KERNEL PARAMETERS FOR POWER EFFICIENCY
# ═══════════════════════════════════════════════════════════════
# These help reduce power draw on idle desktop systems
boot.kernelParams = [
# Enable AMD P-State driver for modern Ryzen CPUs
"amd_pstate=active"
];
}

110
modules/shell.nix Normal file
View File

@@ -0,0 +1,110 @@
# modules/shell.nix
# Fish shell configuration with plugins and aliases
{ config, pkgs, lib, ... }:
{
# Enable Fish shell
programs.fish = {
enable = true;
# Interactive shell init (equivalent to config.fish)
interactiveShellInit = ''
# Disable greeting
set -g fish_greeting
# Ghostty shell integration
if set -q GHOSTTY_RESOURCES_DIR
source "$GHOSTTY_RESOURCES_DIR/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish"
end
# Pure prompt configuration
set -g pure_show_system_time false
set -g pure_enable_single_line_prompt true
# Key bindings (vi mode optional)
# fish_vi_key_bindings
# Better directory navigation
set -g fish_prompt_pwd_dir_length 3
'';
# Shell aliases
shellAliases = {
# Modern replacements
ll = "eza -la --icons --git";
ls = "eza --icons";
la = "eza -la --icons";
lt = "eza --tree --icons --level=2";
cat = "bat";
find = "fd";
grep = "rg";
df = "duf";
du = "dust";
sed = "sd";
# Docker shortcuts
dc = "docker compose";
dps = "docker ps";
dpa = "docker ps -a";
dl = "docker logs -f";
dex = "docker exec -it";
# Git shortcuts
gs = "git status";
gd = "git diff";
gds = "git diff --staged";
gl = "git log --oneline -20";
glo = "git log --oneline --graph --all";
ga = "git add";
gc = "git commit";
gp = "git push";
gpu = "git pull";
gco = "git checkout";
gb = "git branch";
gst = "git stash";
# NixOS shortcuts
rebuild = "sudo nixos-rebuild switch --flake .";
rebuild-boot = "sudo nixos-rebuild boot --flake .";
rebuild-test = "sudo nixos-rebuild test --flake .";
update = "nix flake update";
search = "nix search nixpkgs";
gc-nix = "sudo nix-collect-garbage -d";
# System
ports = "ss -tulanp";
myip = "curl -s ifconfig.me";
".." = "cd ..";
"..." = "cd ../..";
"...." = "cd ../../..";
# Safety
rm = "rm -i";
mv = "mv -i";
cp = "cp -i";
};
# Shell abbreviations (expand on space, more flexible than aliases)
shellAbbrs = {
g = "git";
d = "docker";
n = "nix";
v = "nvim";
c = "code";
z = "zed";
};
};
# Fish plugins (managed by NixOS)
environment.systemPackages = with pkgs; [
# Fish plugins
fishPlugins.pure # Pure prompt (minimal & fast)
fishPlugins.autopair # Auto-close brackets, quotes
fishPlugins.fzf-fish # Fzf integration for fish
fishPlugins.done # Notification when long command finishes
fishPlugins.grc # Colorize command output
# Required by aliases
dust # Better du
];
}

View File

@@ -0,0 +1,62 @@
# modules/virtualization.nix
# Virtual machine support: QEMU, KVM, libvirt, virt-manager
{ config, pkgs, lib, ... }:
{
# ═══════════════════════════════════════════════════════════════
# LIBVIRT & QEMU
# ═══════════════════════════════════════════════════════════════
virtualisation.libvirtd = {
enable = true;
# QEMU configuration
qemu = {
package = pkgs.qemu_kvm;
# Enable UEFI support for VMs
ovmf = {
enable = true;
packages = [ pkgs.OVMFFull.fd ];
};
# Enable TPM emulation for Windows 11
swtpm.enable = true;
# Run QEMU as non-root for better security
runAsRoot = false;
};
};
# ═══════════════════════════════════════════════════════════════
# SPICE SUPPORT (for better VM display/clipboard/USB)
# ═══════════════════════════════════════════════════════════════
virtualisation.spiceUSBRedirection.enable = true;
# ═══════════════════════════════════════════════════════════════
# NETWORKING FOR VMS
# ═══════════════════════════════════════════════════════════════
# Enable default NAT network (virbr0)
networking.firewall.trustedInterfaces = [ "virbr0" ];
# ═══════════════════════════════════════════════════════════════
# PACKAGES
# ═══════════════════════════════════════════════════════════════
environment.systemPackages = with pkgs; [
virt-manager # GUI for managing VMs
virt-viewer # Viewer for VM displays (SPICE/VNC)
virtiofsd # Fast file sharing between host and VM
qemu-utils # QEMU utilities (qemu-img, etc.)
spice-gtk # SPICE client libraries
];
# ═══════════════════════════════════════════════════════════════
# USER PERMISSIONS
# ═══════════════════════════════════════════════════════════════
users.users.pinj.extraGroups = [ "libvirtd" ];
# ═══════════════════════════════════════════════════════════════
# DCONF SETTINGS FOR VIRT-MANAGER
# ═══════════════════════════════════════════════════════════════
# Auto-connect to the system QEMU/KVM
programs.virt-manager.enable = true;
}

1571
pacman.txt Normal file

File diff suppressed because it is too large Load Diff