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.
xfetch admite tres tipos de logos: arte ASCII, archivos de imagen y el logo interno predeterminado.
Cuando no se especifica un logo personalizado, xfetch muestra su arte ASCII integrado:
__ __
\ \/ /
\ /
/ \
/_/\_\
/____/linux
---------BEGIN PUBLIC KEY----------
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMII
...
----------END PUBLIC KEY-----------
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/:
| Archivo | Descripción |
|---|---|
arch.txt | Logo ASCII azul de Arch Linux (7 líneas) |
x_logo.txt | Forma de "X" con gradiente cian a verde (9 líneas) |
minimal.txt | Una etiqueta simple [ xfetch ] (1 línea) |
| Campo | Tipo | Default | Descripción |
|---|---|---|---|
logo_color | string | ninguno | Color 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_padding | number | 0 | Espacios a la izquierda agregados antes del logo (y sus fotogramas si está animado). |
logo_type | string | "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:
Si la terminal no soporta visualización de imágenes, xfetch usa ASCII como fallback.
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
}
| Campo | Predeterminado | Descripción |
|---|---|---|
logo_width | Auto (28% del ancho de terminal, clamp 12–42 cols) | Ancho de imagen en columnas de terminal |
logo_height | Auto (relación de aspecto preservada) | Altura de imagen en filas de terminal |
logo_gap | 12 | Espacio 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.
| Campo | Predeterminado | Descripción |
|---|---|---|
logo_color | none | Color para logos ASCII (nombre, hex o RGB) |
logo_colors | Auto | Colores por fila para logos ASCII (array; la fila i usa logo_colors[i % len]) |
logo_padding | 0 | Relleno alrededor del logo |
logo_type | Auto | Tipo de logo: auto, ascii o image |
En terminales Kitty, xfetch soporta dos modos de renderizado controlados por logo_kitty:
{
"logo_kitty": true
}
| Valor | Modo | Descripción |
|---|---|---|
true (predeterminado) | Protocolo nativo | Imágenes de resolución completa usando el protocolo gráfico \x1b_G de Kitty. Mejor calidad. |
false | Half-block | Imá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.
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.
{
"logo_animation": {
"plugin": "animate-logo",
"fps": 12,
"duration_ms": 1200,
"loop": false,
"style": "sweep"
}
}
| Estilo | Descripción |
|---|---|
sweep | Los colores barren de izquierda a derecha usando una paleta ANSI de 6 colores (rojo, verde, amarillo, azul, magenta, cian) |
wave | Un patrón de color de onda sinusoidal se mueve a través del logo |
rainbow | Gradiente RGB completo que cambia sobre el logo usando color interpolado de 24 bits |
sparkle | Caracteres aleatorios se iluminan brevemente en colores brillantes |
breathing | Todos los caracteres pulsan en tonos ámbar cálidos (brillo basado en seno) |
frame | Cicla a través de conjuntos de fotogramas ASCII precargados desde un archivo |
none | Visualización estática, sin transformación de color |
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
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:
">>", "+", "OS:")Si no se especifican en la configuración, xfetch usa asignaciones de iconos internas predeterminadas para todos los módulos estándar.
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"
}
}
| Nombre | Código ANSI | Descripción |
|---|---|---|
Black | 30 | Negro estándar |
Red | 31 | Rojo estándar |
Green | 32 | Verde estándar |
Yellow | 33 | Amarillo estándar |
Blue | 34 | Azul estándar |
Magenta | 35 | Magenta estándar |
Cyan | 36 | Cian estándar |
White | 37 | Blanco estándar |
Grey / Gray | 90 | Negro brillante |
La salida de color se puede deshabilitar por completo:
{
"show_colors": false
}
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.
| Campo | Tipo | Default | Descripción |
|---|---|---|---|
show_keys | boolean | false | Renderiza clave: valor en los diseños con iconos (clásico, section, compact, custom-x, variantes box). |
key_width | number | auto | Rellena 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
El módulo palette renderiza una muestra de color ANSI. El estilo se controla mediante el campo palette_style:
{
"palette_style": "squares"
}
| Estilo | Vista Previa |
|---|---|
squares | Bloques de color de fondo rellenos |
circles | Símbolos de círculo coloreados |
triangles | Símbolos de triángulo coloreados |
lines | Barras 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.
labelsEl 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": ""
}
}
formatsEl 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ódulo | Campos | Ejemplo |
|---|---|---|
| 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}%)" |
disk | campos de memory más {fs} | "disk": "{used} en {fs}" |
os | {distro}, {version}, {arch}, {wsl} | "os": "{distro} {version} ({arch})" |
packages | un 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}"
}
}
xfetch incluye numerosas configuraciones predefinidas que demuestran diferentes estilos visuales.
Ubicados en configs/xfetch/presets/showcase/, estos predefinidos demuestran varias combinaciones de iconos, colores y logos:
| Predefinido | Diseño | Características Clave |
|---|---|---|
arch_compact_cyan.jsonc | classic | Logo Arch, todo Cyan |
arch_full_blue.jsonc | classic | Logo Arch, todo Blue |
green_chevrons_core.jsonc | classic | Iconos >>, todo Green |
minimal_plus_monochrome.jsonc | classic | Logo minimalista, iconos +, Grey |
minimal_red_compact.jsonc | classic | Iconos de texto como "OS:", todo Red |
monochrome_no_icons.jsonc | classic | Sin iconos, todo White |
neon_hardware_compact.jsonc | classic | Tema neón Cyan+Magenta |
rainbow_letters.jsonc | classic | Iconos R-O-Y-G-B-I-V, colores arcoíris |
x_logo_full_system.jsonc | classic | Logo X, coloreado arcoíris |
x_logo_red_hardware.jsonc | classic | Logo X, iconos de punto, todo Red |
pacman_full_white.jsonc | pacman | Logo X, mayormente White |
pacman_system_compact.jsonc | pacman | 3 módulos, Cyan |
pacman_abc_shell.jsonc | pacman | Cabecera A-B-C |
pacman_minus_uptime.jsonc | pacman | Cabecera de signo menos |
pacman_numeric_hardware.jsonc | pacman | Cabecera 1-2-3 |
pacman_plus_os.jsonc | pacman | Cabecera de signo más |
pacman_question_packages.jsonc | pacman | Cabecera de signo de interrogación |
pacman_star_uptime.jsonc | pacman | Cabecera de estrella |
pacman_symbols_portable.jsonc | pacman | Cabecera !-@-# |
pacman_xox_kernel.jsonc | pacman | Cabecera X-O-X |
pacman_palette_dots.jsonc | pacman | Estilo de paleta dots |
pacman_palette_lines.jsonc | pacman | Estilo de paleta lines |
pacman_palette_triangles.jsonc | pacman | Estilo de paleta triangles |
Ubicados en configs/xfetch/presets/layouts/:
| Predefinido | Diseño | Notas |
|---|---|---|
layout_box_full.jsonc | box | Conjunto completo de módulos con separadores sep |
layout_dots_full.jsonc | dots | Grupos de módulos coloreados |
layout_pacman_full.jsonc | pacman | Iconos Pac-Man y pie "GAME OVER" |
layout_section.jsonc | section | Tres grupos: Hardware, Software, Session |
layout_side_block.jsonc | side-block | Etiquetas de texto como iconos |
layout_tree.jsonc | tree | Grupos anidados OS/DE/PC |
# 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