Configuración

xfetch utiliza un archivo de configuración JSONC (JSON con comentarios). La ubicación predeterminada es ~/.config/xfetch/config.jsonc. Puede generar una configuración predeterminada con xfetch --gen-config o usar una ruta personalizada con xfetch --config <ruta>.

Formato del Archivo de Configuración

JSONC extiende JSON estándar permitiendo comentarios de estilo C (//) y C++ (/* */) y comas finales en objetos y arrays.

Referencia Completa de Configuración

{
    "layout": "section",
    "modules": [
        {
            "type": "group",
            "title": "Hardware",
            "modules": [
                "hostname",
                "cpu",
                "gpu",
                "memory",
                "swap",
                "disk",
                "battery"
            ]
        },
        {
            "type": "group",
            "title": "Software",
            "modules": [
                "os",
                "kernel",
                "packages",
                "shell",
                "wm",
                "terminal",
                "local_ip"
            ]
        },
        "palette"
    ],
    "show_colors": true,
    "icons": {
        "hostname": "\uf109",
        "cpu": "\uf2db",
        "gpu": "\uf0b9"
    },
    "colors": {
        "hostname": "Green",
        "cpu": "Green",
        "os": "Yellow"
    },
    "palette_style": "squares",
    "logo_path": null,
    "ascii": null,
    "header_icons": null,
    "footer_text": null,
    "disable_ip_fetching": false,
    "disable_cache": false,
    "logo_animation": null,
    "info_plugins": []
}

Referencia de Campos

Campos de Primer Nivel

CampoTipoPredeterminadoDescripción
layoutstring o nullnull (clásico)Nombre del estilo de diseño
modulesarray(ver abajo)Lista ordenada de módulos o grupos de módulos
show_colorsbooleantrueHabilitar salida de color ANSI
iconsobject(valores internos predeterminados)Asignaciones de iconos por módulo
colorsobject(valores internos predeterminados)Asignaciones de colores por módulo
palette_stylestring"squares"Estilo de visualización de la paleta
logo_pathstring o nullnullRuta a un archivo de logo personalizado
asciistring o nullnullRuta a un archivo de arte ASCII (alternativa a logo_path)
logo_widthnumber o nullauto (28% del ancho de la terminal, limitado 12-42)Ancho máximo para logos de imagen (en columnas de terminal, auto-calculado si no se establece)
logo_heightnumber o nullnullAltura máxima para logos de imagen (en filas de terminal)
logo_gapnumber o null12Espacio entre el logo/imagen y el texto de información (en columnas)
logo_kittyboolean o nulltrue (en Kitty)Usar protocolo nativo de Kitty (true) o renderizado half-block (false). Half-block da menor resolución pero evita problemas de layout
logo_colorstring o nullnullColor aplicado al logo ASCII: nombre ("Cyan"), índice 256-colores ("196") o hex RGB ("#FF0000")
logo_paddingnumber o null0Espacios a la izquierda agregados antes del logo
logo_typestring o null"auto""auto" (por extensión), "ascii" (fuerza texto), "image" (fuerza imagen)
show_keysbooleanfalseRenderiza clave: valor en los diseños con iconos
key_widthnumber o nullautoRellena la clave hasta esta cantidad de columnas para alinear los valores
labelsobject o null{}Renombra la clave de cada fila por módulo; un string vacío oculta la clave
formatsobject o null{}Plantillas de valor con placeholders {campo} por módulo
header_iconsarray o nullnullIconos para el borde superior (diseño Pac-Man)
footer_textstring o nullnullTexto para el borde inferior (diseño Pac-Man)
disable_ip_fetchingbooleanfalseDeshabilitar la obtención de IP pública por privacidad
disable_cachebooleanfalseDeshabilitar el almacenamiento en caché de datos
os_wsl_stylestring"minimal"Presentación del SO en WSL (solo Linux): off (nombre simple), minimal (añade (WSL)), full (añade versión de WSL y WSLg)
logo_animationobject o nullnullConfiguración de animación del logo
info_pluginsarray[]Lista de plugins de información a ejecutar
config_providersarray[]Lista de extensiones proveedoras de configuración a ejecutar después de la fusión del tema
themestring o nullnullNombre del tema a aplicar (solo campos visuales)
daemonbooleanfalseEjecutar en modo daemon animado (fija el fetch en la parte superior de la terminal)
daemon_min_rowsnumber6Filas mínimas de terminal requeridas para el daemon animado
daemon_livebooleanfalseFijar un bloque de estadísticas en vivo en la parte superior de la terminal, re-consultando módulos periódicamente
daemon_live_refreshnumber o null(por plataforma)Intervalo de actualización del daemon en vivo en segundos
daemon_live_modulesarray o null(por plataforma)Módulos mostrados por el daemon en vivo
daemon_live_reloadbooleanfalseRecarga en caliente de la configuración en modo daemon en vivo
custom_xobject o nullnullPlantillas de borde para el diseño custom-x
effectsobject, array o nullnullEfectos de introducción aplicados a las líneas de contenido

Módulos Predeterminados

Cuando no se especifican módulos, xfetch utiliza:

["os", "kernel", "uptime", "packages", "wm", "shell", "disk", "cpu", "gpu", "memory", "battery"]

Grupos de Módulos

Los módulos se pueden organizar en grupos con título para los diseños section, tree y side-block:

{
    "type": "group",
    "title": "Hardware",
    "modules": ["cpu", "gpu", "memory"]
}

Los grupos se pueden anidar:

{
    "type": "group",
    "title": "System",
    "modules": [
        {
            "type": "group",
            "title": "Hardware",
            "modules": ["cpu", "gpu"]
        },
        {
            "type": "group",
            "title": "Software",
            "modules": ["os", "kernel"]
        }
    ]
}

Iconos

Los iconos asignan nombres de módulos a cadenas de visualización. Los glifos Nerd Font se usan comúnmente, pero cualquier cadena Unicode o de texto funciona.

{
    "icons": {
        "os": "\uf17c",
        "kernel": "\uf17c",
        "hostname": "\uf109",
        "cpu": "\uf2db",
        "gpu": "\uf0b9",
        "memory": "\ue266",
        "swap": "\uf0c5",
        "disk": "\uf0a0",
        "battery": "\uf240",
        "uptime": "\uf253",
        "packages": "\uf187",
        "shell": "\uf0e7",
        "terminal": "\uf0e7",
        "wm": "\uf08e",
        "user": "\uf007",
        "datetime": "\uf017",
        "local_ip": "\uf0ac",
        "palette": "\uf0eb",
        "plugin:<nombre>": "\uf271"
    }
}

Las claves de módulo con el prefijo plugin: (ej., plugin:docker) se usan para información proporcionada por plugins.

Colores

Los colores asignan nombres de módulos a nombres de colores ANSI:

{
    "colors": {
        "os": "Cyan",
        "kernel": "White",
        "wm": "Blue",
        "shell": "Green",
        "cpu": "Green",
        "gpu": "Green",
        "memory": "Green",
        "disk": "Green",
        "battery": "Green",
        "packages": "Yellow",
        "hostname": "Green",
        "uptime": "Yellow",
        "terminal": "Green",
        "user": "Magenta"
    }
}

Nombres de colores disponibles:

NombreCódigo ANSI
Black30
Red31
Green32
Yellow33
Blue34
Magenta35
Cyan36
White37
Grey o Gray90

Los nombres de color no distinguen mayúsculas/minúsculas. También se aceptan índices 256-colores ("196") y hex RGB ("#FF0000").

Estilos de Paleta

El módulo palette muestra una muestra de color. Estilos disponibles:

EstiloDescripción
"squares"Bloques de color de fondo (predeterminado)
"circles"Círculos de color de primer plano
"triangles"Triángulos de color de primer plano
"lines"Barras de color horizontales gruesas

Configuración de Animación

El campo logo_animation habilita la animación del logo ASCII mediante un plugin:

{
    "logo_animation": {
        "plugin": "animate-logo",
        "fps": 12,
        "duration_ms": 1200,
        "loop": false,
        "style": "sweep",
        "frames_path": "~/.config/xfetch/logos/frames.txt"
    }
}
CampoTipoDescripción
pluginstringNombre del plugin (ej., "animate-logo")
fpsnumberFotogramas por segundo (1-60)
duration_msnumberDuración total de la animación en milisegundos (ignorado en modo daemon)
loopbooleanSi se debe repetir la animación en bucle (ignorado en modo daemon)
stylestringEstilo de animación: "sweep", "wave", "rainbow", "sparkle", "breathing", "frame", "none"
frames_pathstringRuta a conjuntos de fotogramas preconstruidos (para estilo "frame"). Varios conjuntos separados por \n===\n
timeout_secsnumberTiempo de espera opcional para el plugin de animación en segundos

Integración de Plugins

Los plugins de información se configuran en el array info_plugins:

{
    "info_plugins": [
        {
            "plugin": "github-stats",
            "args": {
                "username": "myuser",
                "max_lines": 3
            }
        },
        {
            "plugin": "docker"
        }
    ]
}
CampoTipoDescripción
pluginstringNombre del plugin (instalado como xfetch-plugin-<nombre>)
argsobject o nullArgumentos JSON arbitrarios pasados al plugin
timeout_secsnumber o nullTiempo de espera opcional por plugin en segundos

Los datos de plugins se acceden mediante claves de módulo con el prefijo plugin::

{
    "modules": ["os", "kernel", "plugin:github-stats", "plugin:docker"]
}

Proveedores de Configuración

El campo config_providers permite que extensiones a nivel de configuración modifiquen la configuración antes del renderizado. Las extensiones se ejecutan después de la fusión del tema, en orden de declaración:

{
    "config_providers": [
        {
            "extension": "config-roulette",
            "args": {
                "routes": "~/.config/xfetch/routes.json",
                "strategy": "random"
            }
        },
        {
            "extension": "layout-override",
            "args": {
                "layout": "tree"
            }
        }
    ]
}
CampoTipoDescripción
extensionstringNombre de la extensión (binario: xfetch-extension-<nombre>)
argsobject o nullArgumentos JSON arbitrarios pasados a la extensión
timeout_secsnumber o nullTiempo de espera opcional por extensión en segundos

Las extensiones se comunican mediante stdin/stdout JSON, recibiendo la configuración completamente resuelta y devolviendo una versión modificada. Consulte Extensiones para más detalles.

Ubicaciones del Archivo de Configuración por Plataforma

PlataformaRuta de Configuración Predeterminada
Linux~/.config/xfetch/config.jsonc
macOS~/Library/Application Support/xfetch/config.jsonc
Windows%APPDATA%\xfetch\config.jsonc