Aplicaciones
Pacman
obsidiancode(VSCode OSS)nodejs(nodejs-lts-somename)obs-studiozoxideclamavflutter(flutter-bin) (instalación personalizada)qemu(instalación personalizada)opus-toolssyncthing(configuración personalizada)podman podman-compose(docker docker-compose)yt-dlpdrawio-desktop
Repositorios
parufnm
Paru
ungoogled-chromium-bin(librewolf-bin|google-chrome)bun-bingithub-desktop-binvisual-studio-code-bin(VS Code oficial de Microsoft)android-studio
Resumen comandos Paru
paru -S <package> # Instalar paquete
paru -Qua # Listar actualizaciones disponibles
paru -Sua # Actualizar paquetes AUR
paru | paru -Syu # Actualizar todo
# Limpieza
paru -Rs <package> # Eliminar paquete y sus dependencias no usadas por otro
paru -Scc # Limpiar cache
# Otros
paru <query> # Buscar paquetes
paru | paru -Syu # Actualizar todo, incluyendo AUR
paru -Qm # Listar paquetes instalados
# Limpieza
paru -R <package> # Desinstalar paquete
paru -Rns <package> # Desinstalar paquete y dependencias no necesarias
paru -Scc # Limpiar toda la cache
Configuraciones
GitHub Desktop
Configuración para tener dos cuentas de GitHub en la misma computadora. En la primera cuenta se inicia sesión desde Code (VSCode). En la segunda cuenta se utiliza GitHub Desktop
Configuración inicial
- Descargar el binario desde AUR
github-desktop-bin - Iniciar sesión
- Al preguntar por la cuenta, elegir Personalizada o Local para que los commits en todo el sistema no tengan los datos de la cuenta "secundaria"
Ya trabajando
- Clonar/crear repositorio
- Repository settings -> Git config -> Use a local git config y utilizar los datos reales de la cuenta "secundaria"
- Para hacer los commits se puede desde VSCode ya que tomara la configuración local del repositorio
- Para sincronizar el repositorio con GitHub es necesario hacerlo desde GitHub Desktop
syncthing
- Descargar
sudo pacman -Syu syncthing
- Habilitar
# Manual
syncthing
# Se ejecuta en http://127.0.0.1:8384
# Servicio de usuario
systemctl --user enable syncthing.service # Inicio automátio
systemctl --user start syncthing.service # Iniciar ahora
systemctl --user status syncthing.service # Verificar
# Servicio del sistema
sudo systemctl enable syncthing@<user>.service # Inicio automático
sudo systemctl start syncthing@<user>.service # Iniciar ahora
Android Studio
- Instalar desde AUR
android-studio - Verificar si se está utilizando la aceleración por KVM,
~/Android/Sdk/emulator/emulator -accel-check
Flutter
- Instalar dependencias básicas
sudo pacman -Syu --needed curl git unzip xz zip mesa glu
- Descargar Flutter de la página oficial
- Agregar al PATH
echo 'export PATH="$HOME/tools/flutter/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc # Refrescar terminal
-
Descomprimir (ejemplo de ruta: ~/tools/flutter)
-
Complementos de Android Studio
- Android SDK Command-line Tools
- Aceptar las licencias de Android
flutter doctor --android-licenses - Los siguientes vienen por defecto al instalar Android Studio:
- Android SDK Platform, API xx
- Android SDK Build-Tools
- Android SDK Platform-Tools
- Android Emulator
-
Deshabilitar telemetría
flutter --disable-analytics
dart --disable-analytics
KVM
Instalación
- Verificar si la virtualización está activa y si no, entonces, se debe habilitar en la BIOS.
LC_ALL=C.UTF-8 lscpu | grep Virtualization
# Ejemplo de salida
# - VT-x para Intel
# - AMD-V para AMD
Virtualization: VT-x
- Actualizar sistema
sudo pacman -Syu
- Instalar paquetes
sudo pacman -S qemu-desktop libvirt virt-manager dnsmasq bridge-utils virt-viewer spice-gtk openbsd-netcat
- qemu-desktop -> versión de QEMU con emulación completa para x86_64 y soporte gráfico (para virt-manager).
- libvirt → API y daemon para gestionar VMs. Proporciona virsh, libvirtd.
- virt-manager → Interfaz gráfica para gestionar VMs.
- dnsmasq → Servidor DNS/DHCP ligero. Usado por libvirt para la red NAT por defecto.
- bridge-utils → utilidades para configurar bridges de red (que la VM aparezca en la red LAN).
- virt-viewer → Cliente para conectarse remotamente a VMs (mejor que VNC integrado)
- spice-gtk → librerías cliente de SPICE (para gráficos acelerados, clipboard, USB redir, etc.).
- openbsd-netcat → requerido por libvirt para algunos modos de red y conexión.
- Configurar el servicio de
libvirtd
sudo systemctl enable libvirtd # Habilitar inicio automático
sudo systemctl start libvirtd # Iniciar ahora
- Agregar usuario al grupo de libvirt para no escribir
sudoen cada comando. Cerrar sesión para aplicar cambios.
sudo usermod -aG libvirt $USER
- Activar red por defecto
sudo virsh net-start default
sudo virsh net-autostart default # Para no iniciarlo para cada maquina
# Opcional. Verificar configuracion de red
sudo virsh net-edit default
Inicia la red virtual "default":
- Proporciona conectividad de red a las máquinas virtuales
- Crea un puente (bridge) virtual que permite que las VMs se comuniquen entre sí y con el exterior
- Configura NAT para que las VMs puedan acceder a internet a través del host
- Asigna direcciones IP automáticamente a las VMs mediante DHCP
- Reiniciar servicio para aplicar cambios
sudo systemctl restart libvirtd
Nuevas VMs
Ajustes globales en la aplicación virt-manager o Gestor de Máquinas Virtuales
- Tipo de gráficos: Spice (necesario tener instalado
virt-viewer) - Formato de almacenamiento: QCOW2
- CPU Predeterminada: host-passthrough
- Firmware x86: UEFI
Antes de iniciar la MV se debe marcar la casilla de Personalizar configuración dentes de instalar.
Personalizar configuración antes de instalar
Para imágenes Linux las configuraciones VirtIO generalmente están activas por defecto, pero si es Windows, se deben activar.
- Disco → Bus de disco → VirtIO
- Interfaz de red → Modelo de dispositivo → virtio
- Video → Modelo → Virtio y Activar la aceleración
- Monitor Spice → Tipo de escucha: Ninguno y OpenGL: Seleccionar gráfica
Solo Windows Buscar y descargar el complemento ISO de VirtiO
Añadir hardware → Almacenamiento → Seleccionar o crear almacenamiento personalizado
- Manage → Seleccionar la ISO, ejemplo: virtio-win-0.1.285.iso
- Tipo de dispositivo → Dispositivo CDROM
Durante el proceso de instalación de Windows, en Tipo de instalación → Custom
- Cargar driver para disco → Seleccionar CD: VirtIO/viostor/w-10/amd64
- Cargar driver para red → Seleccionar CD: VirtIO/NetKVM/w-10/amd64
Ya instalado, en la unidad de VirIO.iso (CD) buscar e instalar
- virtio-win-gt-x64.exe
- virtio-win-guest-tools.exe
Otros
SPICE
SPICE Guest Tools son herramientas que se instalan dentro de la máquina virtual (VM) para mejorar la integración entre el host y el guest.
- En la VM Linux
# Ubuntu/Debian
sudo apt install spice-vdagent
# Arch Linux
sudo pacman -Syu spice-vdagent
# CentOS/RHEL
sudo yum install spice-vdagent
- En VM Windows Descitio oficial: https://www.spice-space.org/download.html
- O desde: https://win.gnomeboxes.org (más actualizado)
- Descarga
spice-guest-tools-latest.exe - Ejecuta como administrador dentro de la VM
- Reinicia la VM
hugepages
Es opcional y requiere configurarlo en el host (/etc/libvirt/qemu.conf). Se nota más en entornos de alto rendimiento (muchas VMs, DBs pesadas, gaming VM, etc.), pero no es obligatorio para un setup normal.
KSM (Kernel Same-page Merging).
- KSM ahorra RAM cuando se ejecutan varias VMs con sistemas muy parecidos (ej. 5 VMs de Arch o Ubuntu).
- Pero consume CPU extra porque el kernel está comparando páginas de memoria.
- Si son pocas VMs y hay suficiente RAM, podría ser mejor dejarlo deshabilitado.
- (Una vez por instalación de KVM/Qemu)
sudo systemctl enable --now ksm.service
# Verificar que funciona
# Si el número va creciendo mientras tus VMs corren,
# significa que está funcionando.
cat /sys/kernel/mm/ksm/pages_shared
# Desactivar.
# Detiene el servicio inmediatamente.
# Evita que se inicie en futuros arranques.
sudo systemctl disable --now ksm.service
#sudo systemctl stop
#ksm sudo systemctl disable ksm
Otros
Configuración de red
Por defecto, libvirt crea una red NAT (virbr0).
Si necesitas acceso en red tipo bridge (que la VM esté en tu LAN), edita /etc/libvirt/qemu/networks/ o usa virt-manager → configuración de red.
Otros
- virsh (CLI): administrar vm
- virt-install (CLI): crear vm
- qemu-emulators-full: para utilizar otras arquitecturas
Otros Editar archivo de configuración de libvirt y descomentar las siguientes líneas
unix_sock_group = "libvirt"
unix_sock_rw_perms = "0770"
Steam
- Requiere descomentar
multilibde pacman.conf y despues actualizar el índice de repositorios consudo pacman -Syu