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)
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
logo_animationobject o nullnullConfiguración de animación del logo
info_pluginsarray[]Lista de plugins de información a ejecutar

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

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
"dots"Puntos pequeños de color de primer plano

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
loopbooleanSi se debe repetir la animación en bucle
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

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

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

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

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