Personalización

xfetch ofrece una amplia personalización visual a través de logos, iconos, colores y efectos de animación. Toda la personalización se configura en el archivo de configuración JSONC.

Logos

xfetch admite tres tipos de logos: arte ASCII, archivos de imagen y el logo interno predeterminado.

Logo ASCII Predeterminado

Cuando no se especifica un logo personalizado, xfetch muestra su arte ASCII integrado:


__  __
  \ \/ /
   \  /
   /  \
  /_/\_\
 /____/linux
---------BEGIN PUBLIC KEY----------
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMII
...
----------END PUBLIC KEY-----------

Logo ASCII Personalizado

Para usar un logo ASCII personalizado, establezca el campo logo_path o ascii:

{
    "logo_path": "~/.config/xfetch/logos/arch.txt"
}

Los archivos de logo ASCII son archivos de texto plano. Se pueden usar códigos de escape ANSI para colorear:

\x1b[34m    /\            /\
\x1b[34m   /  \          /  \
\x1b[34m  /\   \        /   /\
\x1b[34m /  \   \      /   /  \
\x1b[34m/   /\   \    /   /\   \
\x1b[34m   /  \   \  /   /  \
\x1b[34m  /    \   \/   /    \
\x1b[34m /______\      /______\
\x1b[0m

Se incluyen logos de muestra en la instalación de xfetch en ~/.config/xfetch/logos/:

ArchivoDescripción
arch.txtLogo ASCII azul de Arch Linux (7 líneas)
x_logo.txtForma de "X" con gradiente cian a verde (9 líneas)
minimal.txtUna etiqueta simple [ xfetch ] (1 línea)

Logos de Imagen

Opciones del Logo ASCII

CampoTipoDefaultDescripción
logo_colorstringningunoColor aplicado al logo ASCII. Acepta nombres ("Cyan"), índices 256-colores ("196") y hex RGB ("#FF0000"). También aplica a logos animados; las líneas que ya contienen códigos ANSI no se modifican.
logo_paddingnumber0Espacios a la izquierda agregados antes del logo (y sus fotogramas si está animado).
logo_typestring"auto""auto" detecta por extensión de archivo, "ascii" fuerza renderizado de texto, "image" fuerza renderizado de imagen.
{
    "ascii": "~/.config/xfetch/logos/arch.txt",
    "logo_color": "#00FF87",
    "logo_padding": 2
}

xfetch puede renderizar imágenes PNG, JPG y SVG como logos usando la librería viuer. Esto requiere soporte de terminal para visualización de imágenes (iTerm2, Kitty o terminales compatibles con Sixel):

{
    "logo_path": "~/.config/xfetch/logos/my-logo.png"
}

El renderizado de imágenes usa el protocolo nativo de imagen de la terminal:

  • iTerm2: protocolo de imagen inline
  • Kitty: protocolo nativo de imagen de Kitty (alta resolución)
  • Sixel: gráficos Sixel (terminales compatibles como xterm, mlterm)

Si la terminal no soporta visualización de imágenes, xfetch usa ASCII como fallback.

Tamaño y Posicionamiento de Imágenes

Controle las dimensiones de la imagen y el espaciado con estos campos:

{
    "logo_path": "~/.config/xfetch/images/mi-imagen.png",
    "logo_width": 30,
    "logo_height": null,
    "logo_gap": 5
}
CampoPredeterminadoDescripción
logo_widthAuto (28% del ancho de terminal, clamp 12–42 cols)Ancho de imagen en columnas de terminal
logo_heightAuto (relación de aspecto preservada)Altura de imagen en filas de terminal
logo_gap12Espacio en columnas entre la imagen y el texto de información

El cálculo automático del ancho escala con su terminal: terminales más anchos obtienen imágenes proporcionalmente más grandes.

Campos del Logo ASCII

CampoPredeterminadoDescripción
logo_colornoneColor para logos ASCII (nombre, hex o RGB)
logo_colorsAutoColores por fila para logos ASCII (array; la fila i usa logo_colors[i % len])
logo_padding0Relleno alrededor del logo
logo_typeAutoTipo de logo: auto, ascii o image

Renderizado de Imágenes en Kitty

En terminales Kitty, xfetch soporta dos modos de renderizado controlados por logo_kitty:

{
    "logo_kitty": true
}
ValorModoDescripción
true (predeterminado)Protocolo nativoImágenes de resolución completa usando el protocolo gráfico \x1b_G de Kitty. Mejor calidad.
falseHalf-blockImágenes renderizadas con caracteres Unicode half-block (). Menor resolución vertical pero totalmente compatible con todas las funciones de la terminal.

Establezca logo_kitty: false si experimenta problemas de layout con el renderizado nativo de Kitty (como superposición de texto o desalineación). El fallback half-block garantiza un layout lado a lado correcto a costa de algo de fidelidad de imagen.

Animación de Logo

Los logos ASCII se pueden animar usando el plugin animate-logo. Los estilos de animación transforman el logo con efectos de color a lo largo del tiempo.

Configuración

{
    "logo_animation": {
        "plugin": "animate-logo",
        "fps": 12,
        "duration_ms": 1200,
        "loop": false,
        "style": "sweep"
    }
}

Estilos de Animación

EstiloDescripción
sweepLos colores barren de izquierda a derecha usando una paleta ANSI de 6 colores (rojo, verde, amarillo, azul, magenta, cian)
waveUn patrón de color de onda sinusoidal se mueve a través del logo
rainbowGradiente RGB completo que cambia sobre el logo usando color interpolado de 24 bits
sparkleCaracteres aleatorios se iluminan brevemente en colores brillantes
breathingTodos los caracteres pulsan en tonos ámbar cálidos (brillo basado en seno)
frameCicla a través de conjuntos de fotogramas ASCII precargados desde un archivo
noneVisualización estática, sin transformación de color

Animación Basada en Fotogramas

El estilo frame cicla a través de conjuntos de fotogramas ASCII predefinidos. Los conjuntos de fotogramas se cargan desde un archivo especificado en frames_path:

{
    "logo_animation": {
        "plugin": "animate-logo",
        "style": "frame",
        "fps": 60,
        "duration_ms": 7500,
        "loop": true,
        "frames_path": "~/.config/xfetch/logos/frames.txt"
    }
}

El formato del archivo de fotogramas usa === como separador entre conjuntos de fotogramas:

frame 1 line 1
frame 1 line 2

===

frame 2 line 1
frame 2 line 2

===

frame 3 line 1
frame 3 line 2

Iconos

Cada módulo puede tener un icono personalizado. Los iconos se configuran en el objeto icons del archivo de configuración:

{
    "icons": {
        "os": "\u2302",
        "kernel": "\u2699",
        "hostname": "\u2394",
        "cpu": "\u269b",
        "gpu": "\u26a1",
        "memory": "\u2261",
        "disk": "\u2b23",
        "battery": "\u26a1",
        "uptime": "\u23f1",
        "packages": "\u2b1a",
        "shell": "\u276f",
        "terminal": "\u2b21",
        "wm": "\u25c6",
        "user": "\u263a",
        "datetime": "\u23f0",
        "local_ip": "\u25c9",
        "palette": "\u2588",
        "plugin:<nombre>": "\u25c8"
    }
}

Los iconos pueden ser:

  • Glifos Nerd Font: Caracteres Unicode del conjunto de fuentes Nerd Fonts
  • Símbolos Unicode: Caracteres Unicode estándar
  • Cadenas de texto: Cualquier texto corto (ej., ">>", "+", "OS:")
  • Cadena vacía: Para ocultar el icono por completo

Iconos Predeterminados

Si no se especifican en la configuración, xfetch usa asignaciones de iconos internas predeterminadas para todos los módulos estándar.

Colores

Los colores de los módulos se configuran en el objeto colors:

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

Colores Disponibles

NombreCódigo ANSIDescripción
Black30Negro estándar
Red31Rojo estándar
Green32Verde estándar
Yellow33Amarillo estándar
Blue34Azul estándar
Magenta35Magenta estándar
Cyan36Cian estándar
White37Blanco estándar
Grey / Gray90Negro brillante

Modos de Color

La salida de color se puede deshabilitar por completo:

{
    "show_colors": false
}

Claves (Etiquetas)

Por defecto xfetch renderiza cada módulo como icono valor. Para mostrar también la etiqueta del módulo, active show_keys; use key_width para rellenar las etiquetas a una cantidad fija de columnas y que los valores queden alineados verticalmente.

CampoTipoDefaultDescripción
show_keysbooleanfalseRenderiza clave: valor en los diseños con iconos (clásico, section, compact, custom-x, variantes box).
key_widthnumberautoRellena la clave hasta esta cantidad de columnas antes del separador :. Aplica donde se muestren claves, incluyendo section y minimal.
{
    "show_keys": true,
    "key_width": 12
}

Ejemplo con show_keys y key_width: 12:

cpu       : Apple M4 (10) @ 4.46 GHz
memory    : 10.88 GiB / 16.00 GiB (68%)
disk      : 152.80 GiB / 931.32 GiB (16%) - apfs

Visualización de Paleta

El módulo palette renderiza una muestra de color ANSI. El estilo se controla mediante el campo palette_style:

{
    "palette_style": "squares"
}

Estilos de Paleta

EstiloVista Previa
squaresBloques de color de fondo rellenos
circlesSímbolos de círculo coloreados
trianglesSímbolos de triángulo coloreados
linesBarras de color horizontales gruesas

La paleta muestra 8 colores que coinciden con la paleta ANSI estándar: Black, Red, Green, Yellow, Blue, Magenta, Cyan, White.

Renombrar Claves: labels

El mapa labels renombra la clave que se muestra para cualquier módulo, en todos los layouts (classic y variantes, compact, minimal, section, section-box, tree, custom-x). Un string vacío oculta la clave — la fila muestra solo icono valor. Los módulos sin entrada conservan su nombre.

{
    "labels": {
        "cpu": "procesador",
        "gpu": ""
    }
}

Plantillas de Valor: formats

El mapa formats reemplaza el valor de un módulo con una plantilla. Los placeholders {campo} se sustituyen con los campos del módulo; los placeholders desconocidos se renderizan vacíos y {{ / }} escapan llaves literales. Los módulos sin entrada conservan su salida predeterminada.

MóduloCamposEjemplo
todos los módulos{value} (salida actual), {key} (nombre del módulo)"os": "Sistema: {value}"
cpu{brand} (crudo), {model} (limpio), {cores}, {freq}"cpu": "{model} · {cores} núcleos · {freq}"
gpu{name}, {vendor}, {model}, {vram}"gpu": "{vendor} {model}"
memory, swap{used}, {total} (con unidad), {percent}"memory": "{used} / {total} ({percent}%)"
diskcampos de memory más {fs}"disk": "{used} en {fs}"
os{distro}, {version}, {arch}, {wsl}"os": "{distro} {version} ({arch})"
packagesun campo por gestor ({pacman}, {aur}, ...), más {count}, {manager}, {managers}"packages": "pkg: {pacman} · aur: {aur}"
battery{percent}, {state}"battery": "{percent}% [{state}]"
uptime{days}, {hours}, {mins}"uptime": "{days}d {hours}h {mins}m"
datetime{date}, {time}`"datetime": "{date}

Por ejemplo, Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz (4) @ 3.00 GHz se convierte en Intel Core i5-7400 con {model}, y NVIDIA GeForce GTX 1060 6GB en NVIDIA GTX 1060 con {vendor} {model}.

{
    "formats": {
        "cpu": "{model} ({cores}) @ {freq}",
        "gpu": "{vendor} {model}"
    }
}

Configuraciones Predefinidas

xfetch incluye numerosas configuraciones predefinidas que demuestran diferentes estilos visuales.

Predefinidos de Muestra (23 ejemplos)

Ubicados en configs/xfetch/presets/showcase/, estos predefinidos demuestran varias combinaciones de iconos, colores y logos:

PredefinidoDiseñoCaracterísticas Clave
arch_compact_cyan.jsoncclassicLogo Arch, todo Cyan
arch_full_blue.jsoncclassicLogo Arch, todo Blue
green_chevrons_core.jsoncclassicIconos >>, todo Green
minimal_plus_monochrome.jsoncclassicLogo minimalista, iconos +, Grey
minimal_red_compact.jsoncclassicIconos de texto como "OS:", todo Red
monochrome_no_icons.jsoncclassicSin iconos, todo White
neon_hardware_compact.jsoncclassicTema neón Cyan+Magenta
rainbow_letters.jsoncclassicIconos R-O-Y-G-B-I-V, colores arcoíris
x_logo_full_system.jsoncclassicLogo X, coloreado arcoíris
x_logo_red_hardware.jsoncclassicLogo X, iconos de punto, todo Red
pacman_full_white.jsoncpacmanLogo X, mayormente White
pacman_system_compact.jsoncpacman3 módulos, Cyan
pacman_abc_shell.jsoncpacmanCabecera A-B-C
pacman_minus_uptime.jsoncpacmanCabecera de signo menos
pacman_numeric_hardware.jsoncpacmanCabecera 1-2-3
pacman_plus_os.jsoncpacmanCabecera de signo más
pacman_question_packages.jsoncpacmanCabecera de signo de interrogación
pacman_star_uptime.jsoncpacmanCabecera de estrella
pacman_symbols_portable.jsoncpacmanCabecera !-@-#
pacman_xox_kernel.jsoncpacmanCabecera X-O-X
pacman_palette_dots.jsoncpacmanEstilo de paleta dots
pacman_palette_lines.jsoncpacmanEstilo de paleta lines
pacman_palette_triangles.jsoncpacmanEstilo de paleta triangles

Predefinidos de Diseño (6 ejemplos)

Ubicados en configs/xfetch/presets/layouts/:

PredefinidoDiseñoNotas
layout_box_full.jsoncboxConjunto completo de módulos con separadores sep
layout_dots_full.jsoncdotsGrupos de módulos coloreados
layout_pacman_full.jsoncpacmanIconos Pac-Man y pie "GAME OVER"
layout_section.jsoncsectionTres grupos: Hardware, Software, Session
layout_side_block.jsoncside-blockEtiquetas de texto como iconos
layout_tree.jsonctreeGrupos anidados OS/DE/PC

Uso de Predefinidos

# Ejecutar con un predefinido específico
xfetch --config /path/to/presets/showcase/arch_compact_cyan.jsonc

O copie un predefinido para usarlo como predeterminado:

cp configs/xfetch/presets/showcase/neon_hardware_compact.jsonc ~/.config/xfetch/config.jsonc