add: pacman list
This commit is contained in:
@@ -15,6 +15,8 @@
|
|||||||
./modules/apps.nix # User applications
|
./modules/apps.nix # User applications
|
||||||
./modules/dev.nix # Docker, dev tools
|
./modules/dev.nix # Docker, dev tools
|
||||||
./modules/theming.nix # Fonts, themes, cursors
|
./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
|
unrar
|
||||||
|
|
||||||
# ─────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────
|
||||||
# Screenshots
|
# Screenshots & Screen Recording
|
||||||
# ─────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────
|
||||||
swappy # Screenshot annotation tool
|
swappy # Screenshot annotation tool
|
||||||
# grim + slurp already in your base config
|
# 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
|
# Security & Passwords
|
||||||
# ─────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
pwvucontrol # Modern PipeWire volume control (Qt)
|
pwvucontrol # Modern PipeWire volume control (Qt)
|
||||||
pavucontrol # Classic PulseAudio volume control (GTK) - as backup
|
pavucontrol # Classic PulseAudio volume control (GTK) - as backup
|
||||||
helvum # PipeWire patchbay for routing audio
|
helvum # PipeWire patchbay for routing audio
|
||||||
|
qpwgraph # PipeWire graph editor (visual audio routing)
|
||||||
|
|
||||||
# Media player control
|
# Media player control
|
||||||
playerctl # Control media players via D-Bus (for media keys)
|
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