add: pacman list
This commit is contained in:
@@ -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
|
||||
];
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
|
||||
@@ -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
|
||||
# ─────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -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
39
modules/power.nix
Normal 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
110
modules/shell.nix
Normal 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
|
||||
];
|
||||
}
|
||||
62
modules/virtualization.nix
Normal file
62
modules/virtualization.nix
Normal 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
1571
pacman.txt
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user