Saltar a contenido

PFI (Pacman-FZF Installer)

Un gestor avanzado de paquetes para Arch Linux/Mabox Linux con interfaz interactiva basada en fzf.

Descripción

PFI Manager es un script que proporciona una interfaz intuitiva y visual para gestionar paquetes del sistema usando pacman. Permite buscar, instalar y desinstalar paquetes de manera interactiva, mostrando información detallada de cada paquete en tiempo real.

Características Principales

  • Interfaz basada en fzf con navegación fluida
  • Búsqueda en tiempo real mientras escribes
  • Preview en vivo con información detallada de cada paquete

📋 Estados Visuales

  • [*] - Paquete instalado (se desinstalará si se selecciona)
  • [ ] - Paquete disponible (se instalará si se selecciona)
  • [UPD] - Opción para actualizar base de datos de paquetes

🔄 Gestión Completa

  • Instalación y desinstalación de paquetes
  • Selección múltiple con <TAB>
  • Actualización de base de datos bajo demanda
  • Flujo continuo sin cerrar el programa

📊 Información Detallada

  • Descripción completa del paquete
  • Estado de instalación claramente marcado
  • Lista de archivos incluidos en el paquete
  • Contador de actualizaciones disponibles

Requisitos

  • Arch Linux o distribuciones basadas (como Mabox Linux)
  • fzf - Instalado y disponible en PATH
  • pacman - Gestor de paquetes del sistema
  • bash - Shell compatible

Instalación de dependencias

sudo pacman -S fzf

Instalación

  1. Descarga el script:
wget https://example.com/pfi.sh
# o copia el código del script a un archivo llamado pfi.sh
  1. Dale permisos de ejecución:
chmod +x pfi.sh
  1. Opcionalmente, muévelo a un directorio en tu PATH:
sudo mv pfi.sh /usr/local/bin/pfi

Uso

Ejecución Básica

./pfi.sh
# o si está en PATH:
pfi

Controles de Navegación

  • ↑/↓ - Navegar por la lista de paquetes
  • Escribir - Filtrar paquetes en tiempo real
  • - Seleccionar múltiples paquetes
  • - Confirmar selección
  • o Ctrl+C - Salir del programa

Controles del Preview

  • Ctrl+X - Página anterior del preview
  • Ctrl+Z - Página siguiente del preview
  • Ctrl+Space - Línea anterior del preview
  • Space - Línea siguiente del preview

Operaciones Disponibles

1. Instalar Paquetes

  • Selecciona paquetes marcados con [ ]
  • Usa <TAB> para selección múltiple
  • Presiona <ENTER> para instalar

2. Desinstalar Paquetes

  • Selecciona paquetes marcados con [*]
  • El sistema preguntará confirmación antes de desinstalar
  • Se usa pacman -Rs para eliminar dependencias huérfanas

3. Actualizar Base de Datos

  • Selecciona [UPD] Actualizar base de datos
  • Ejecuta sudo pacman -Sy
  • Útil antes de buscar paquetes nuevos

4. Operaciones Mixtas

  • Puedes seleccionar múltiples paquetes para instalar y desinstalar
  • El script procesará todas las operaciones secuencialmente

Interfaz Visual

Elementos de la Pantalla

┌─ [ PFI - Manager Enhanced ] ───────────────┐ ┌─] DESCRIPCION - DETALLES | ✓ Sistema actualizado [─
│ <TAB> para seleccion multiple              │ │ 
│                                            │ │ Repository      : extra
│ [UPD] Actualizar base de datos             │ │ Name            : firefox 
│ [*] firefox                           ▶   │ │ Version         : 120.0-1
│ [ ] chromium                               │ │ Description     : Standalone web browser from mozilla.org
│ [ ] thunderbird                            │ │ 
│ [*] vim                                    │ │ >>> INSTALADO <<<
│                                            │ │ 
│                                            │ │ Seleccionar este paquete lo DESINSTALARA
│                                            │ └─────────────────────────────────────────────────
│                                            │
└────────────────────────────────────────────┘ 

Códigos de Color

  • Amarillo - Mensajes de estado (INSTALADO/NO INSTALADO)
  • Azul - Interfaz principal y bordes
  • Verde - Marcadores de selección
  • Rojo - Puntero de selección

Características Avanzadas

Flujo Continuo

  • Después de cada operación, el script vuelve automáticamente al listado
  • No necesitas relanzar el programa para hacer múltiples operaciones
  • Solo se cierra cuando cancelas explícitamente

Optimizaciones de Velocidad

  • Preview de archivos con timeout de 2 segundos
  • Listado limitado a los primeros 5 archivos por velocidad
  • Cache de estados de paquetes para navegación fluida

Compatibilidad

  • Funciona en cualquier terminal (TTY, X11, Wayland)
  • Caracteres ASCII para máxima compatibilidad
  • Detección automática del entorno gráfico

Ejemplos de Uso

Instalar un paquete

  1. Ejecuta ./pfi.sh
  2. Escribe el nombre del paquete para buscarlo
  3. Selecciona el paquete deseado (marcado con [ ])
  4. Presiona <ENTER>

Instalar múltiples paquetes

  1. Busca el primer paquete
  2. Presiona <TAB> para seleccionarlo
  3. Busca otros paquetes y selecciónalos con <TAB>
  4. Presiona <ENTER> para instalar todos

Desinstalar un paquete

  1. Busca un paquete instalado (marcado con [*])
  2. Selecciónalo y presiona <ENTER>
  3. Confirma la desinstalación

Actualizar antes de instalar

  1. Selecciona [UPD] Actualizar base de datos
  2. Presiona <ENTER>
  3. Busca e instala los paquetes deseados

Solución de Problemas

El script no encuentra paquetes

  • Verifica que pacman esté funcionando: pacman -Slq | head
  • Actualiza la base de datos: selecciona la opción [UPD] en el script

Fzf no funciona correctamente

  • Verifica la instalación: fzf --version
  • Reinstala si es necesario: sudo pacman -S fzf

Problemas de permisos

  • El script necesita sudo para instalar/desinstalar paquetes
  • Asegúrate de que tu usuario esté en el grupo wheel o tenga permisos sudo

Preview muy lento

  • El script ya incluye optimizaciones con timeout
  • Si sigue siendo lento, considera deshabilitar la sección de archivos

Personalización

Modificar colores

Edita la línea --color= en el script para cambiar el esquema de colores.

Cambiar número de archivos mostrados

Modifica el valor en head -5 para mostrar más o menos archivos.

Ajustar timeout

Cambia el valor en timeout 2 para mayor o menor tiempo de espera.

Contribución

Para reportar bugs o sugerir mejoras: 1. Describe el problema específico 2. Incluye la versión de tu sistema 3. Proporciona los pasos para reproducir el issue

Autor

Script desarrollado para Mabox Linux y sistemas basados en Arch Linux.

Licencia

Script de uso libre para la comunidad Linux.


Nota: Este script está diseñado específicamente para sistemas que usan pacman como gestor de paquetes. No es compatible con otras distribuciones que usen apt, yum, zypper, etc.