Saltearse al contenido

Your language is missing?

Help us translate this documentation!

See how to contribute translations →

Waybar

📂 ~/.config/waybar/
├── 📂 layouts/
├── 📂 menus/
├── 📂 modules/
├── 📂 styles/
├── 📂 includes/
├── 📄 config.jsonc
├── 📄 style.css
├── 📄 theme.css
└── 📄 user-style.css
  • config.jsonc

    • Copia de una configuración de layout. Ver layouts.
    • Es un archivo transitorio, por lo tanto las ediciones deben guardarse en ~/.config/waybar/layouts/.
  • style.css

    • Archivo autogenerado.
    • style.css importa 3 archivos:
      • Actual: styles/*.css que coincide con layout.jsonc. Ver styles.
      • theme.css: Generado por los temas; esto puede sobrescribir el estilo seleccionado.
      • user-style.css: Archivo opcional donde puedes añadir tus propias anulaciones. También puedes probar tu CSS aquí.
  • theme.css

    • Archivo generado por el tema.

Directorio: ./modules/

└── 📂 modules/
├── 📄 backlight.jsonc
├── 📄 clock.jsonc
├── 📄 cpu.jsonc
├── 📄 custom-cpuinfo.jsonc
├── 📄 hyprland-language.jsonc
├── 📄 idle_inhibitor.jsonc
├── 📄 pulseaudio#microphone.jsonc
├── 📄 pulseaudio.jsonc
├── 📄 tray.jsonc
├── 📄 wlr-taskbar#windows.jsonc
└── 📄 wlr-taskbar.jsonc
  • Almacena todos los módulos en ~/.config/waybar/modules/.
  • Los archivos aquí se agregan recursivamente como entrada en includes/includes.jsonc.
  • Todos los módulos bajo un árbol específico tendrán la convención parent-child. Ejemplo: custom/cpuinfo se convertirá en custom-cpuinfo. Esto se utiliza para determinar fácilmente el nombre de la clase en CSS sin confusión.

Ejemplo:

.custom-cpuinfo {
padding: 1em;
}

Directorio: ./layouts/

└── 📂 layouts/
├── 📄 layout-1.jsonc
├── 📄 layout-2.jsonc
├── 📄 khing.jsonc
├── 📄 macos.jsonc
└── 📄 ....jsonc

HyDE almacena todas las configuraciones listas para usar en el directorio layouts/. Estas se pueden navegar usando el script hyde-shell waybar.

Para el estilo CSS de los layouts, ver styles.

Directorio: ./styles/

└── 📂 styles/
└── 📂 groups/
├── 📄 layout-1.css
├── 📄 layout-2.css
├── 📄 khing.css
├── 📄 macos.css
└── 📄 ...*.css

El directorio styles/ contiene los archivos CSS equivalentes para los layouts. Al elegir un layout, HyDE intentará usar el estilo CSS equivalente coincidiendo los nombres base, p. ej., khing.jsonc usará khing.css.

Las opciones explícitas --config <archivo> y --style <archivo> también son compatibles.

Directorio: ./includes/

└── 📂 includes/
├── 📄 includes.jsonc
├── 📄 border-radius.css
└── 📄 global.css
  • border-radius.css
    • Radio de borde dinámico para los grupos.

Sin Redondeo en Hyprland

0 redondeo en hyprland

Squircle (Redondeo 10) en Hyprland

10 redondeo en hyprland

Círculo (Redondeo 100) en Hyprland

100 redondeo en hyprland

¿Entiendes la idea?

  • global.css - Incluye el tamaño de fuente y familia de fuente dinámicos. Esto es dinámico para que los temas puedan anular estos valores a través de hypr.theme >> $BAR_FONT.

Directorio: ./menus/

Almacena todos los archivos XML de Objetos GTK. Para gestionar correctamente los archivos, agregamos los archivos XML GObject en ~/.config/waybar/menus/.

Debes saber que Waybar SOLO proporciona 3 opciones de posicionamiento para los módulos: modules-left (izquierda), modules-center (centro) y modules-right (derecha). Para lograr el posicionamiento deseado o el popular efecto de píldora (“pill”), necesitamos usar la clase group.

Por ejemplo: Grupos en forma de píldora

El contenido de ../waybar/styles/groups/ se utiliza para estilizar el radio de borde del grupo dado. Los grupos son la combinación de módulos; algunos los llaman islas.

En HyDE, para poder hacer uso de los grupos, primero debemos declarar los módulos en un grupo:

Ejemplo en ~/.config/waybar/layouts/my_config.jsonc:

{
"group/pill": {
"orientation": "inherit",
"modules": [
"custom/gpuinfo",
"clock"
]
}
}

Ahora podemos agregar el grupo en los módulos de waybar:

{
"modules-center": [
"group/pill",
"group/pill#tag1",
"group/pill-in"
]
}

Estilizar esto es fácil ya que agrupamos los módulos. De esta manera podemos usar el nombre del grupo como nombre de clase:

#pill,
#pill-in {
/* Tus estilos aquí */
}

Nota: pill y pill#tag* tienen un nombre de clase pill. Esta es una convención de waybar para permitir a los usuarios agregar un módulo similar pero compartiendo un nombre de clase común.

Este es el archivo de layout completo usado para las instrucciones

Sección titulada «Este es el archivo de layout completo usado para las instrucciones»
MyBar.jsonc
{
/*
┌─────────────────────────────────────────────────────────────────────────────┐
│ Opciones Globales para la configuración de Waybar │
└─────────────────────────────────────────────────────────────────────────────┘
*/
"layer": "top",
"output": ["*"],
"position": "top",
"reload_style_on_change": true,
/*
┌────────────────────────────────────────────────────────────────────────────┐
│ │
│ Esta es una de las partes vitales de la configuración, te permite │
│ incluir otros │
│ archivos │
│ El `"$XDG_CONFIG_HOME/waybar/includes/includes.json"` es autogenerado │
│ por el script waybar.py │
│ │
│ 1. Incluye todos los módulos en `./waybar/modules` │
│ 2. Resuelve todos los tamaños para los íconos que style.css en waybar │
│ NO PUEDE │
│ manejar │
│ 3. Por supuesto, esto es opcional, puedes eliminarlo si no quieres usarlo │
│ e incluir tu propio conjunto de módulos. │
│ │
└────────────────────────────────────────────────────────────────────────────┘
*/
"include": ["$XDG_CONFIG_HOME/waybar/includes/includes.json"],
/*
┌────────────────────────────────────────────────────────────────────────────┐
│ Declara los módulos dentro de tus formas de grupo deseadas │
│ Hasta ahora tenemos: │
│ │
│ - pill-left - la curva mira hacia la izquierda │
│ - pill-right - la curva mira hacia la derecha │
│ - pill-up - la curva mira hacia arriba │
│ - pill-down - la curva mira hacia abajo │
│ - pill-in - la curva mira hacia adentro sin importar la posición │
│ - pill-out - la curva mira hacia afuera sin importar la posición │
│ - leaf - forma de hoja │
│ - leaf-inverse - forma de hoja invertida │
│ │
└────────────────────────────────────────────────────────────────────────────┘
*/
"group/pill-left": {
"orientation": "inherit",
"modules": ["custom/keybindhint", "custom/updates"]
},
"group/pill-right": {
"orientation": "inherit",
"modules": ["battery", "custom/hyde-menu"]
},
"group/pill-up": {
"orientation": "inherit",
"modules": ["wlr/taskbar"]
},
"group/pill-down": {
"orientation": "inherit",
"modules": ["hyprland/workspaces"]
},
"group/pill-in": {
"orientation": "inherit",
"modules": ["idle_inhibitor", "clock"]
},
"group/pill-out": {
"orientation": "inherit",
"modules": ["custom/weather", "hyprland/language"]
},
"group/leaf": {
"orientation": "inherit",
"modules": ["custom/workflows", "memory"]
},
"group/leaf-inverse": {
"orientation": "inherit",
"modules": ["custom/gpuinfo", "custom/cpuinfo"]
},
/*
┌─────────────────────────────────────────────────────────────────────────┐
│ Reutilizar un grupo es simple, solo necesitas agregar un #tag al nombre │
│ del grupo. │
└─────────────────────────────────────────────────────────────────────────┘
*/
"group/pill-down#right": {
"orientation": "inherit",
"modules": ["pulseaudio", "pulseaudio#microphone", "tray"]
},
"group/pill-up#right": {
"orientation": "inherit",
"modules": ["privacy", "custom/hyprsunset", "backlight#intel_backlight"]
},
/*
┌────────────────────────────────────────────────────────────────────────────┐
│ │
│ Declara los grupos en la posición del módulo proporcionada por waybar │
│ │
└────────────────────────────────────────────────────────────────────────────┘
*/
"modules-left": ["group/pill-left", "group/pill-down", "group/pill-up"],
"modules-center": ["group/leaf", "group/pill-in", "group/leaf-inverse"],
"modules-right": [
"group/pill-up#right",
"group/pill-down#right",
"group/pill-right"
]
}

Comienza creando un nuevo archivo ~/.config/waybar/layouts/my_config.jsonc o copia uno de los existentes desde ~/.local/share/waybar/layouts/.

Ventana de terminal
cp ~/.local/share/waybar/layouts/layout-1.jsonc ~/.config/waybar/layouts/my_config.jsonc

Paso 2: Agrega Opciones de Configuración Global

Sección titulada «Paso 2: Agrega Opciones de Configuración Global»

Comienza con las configuraciones globales esenciales que definen el comportamiento básico de tu waybar:

{
"layer": "top", // Capa de posición: "top" (arriba) o "bottom" (abajo)
"output": ["*"], // Aplicar a todos los monitores (* significa todas las salidas)
"position": "top", // Posición de la barra: top, bottom, left, right
"reload_style_on_change": true, // Autorecargar cuando el archivo de estilo cambia

Paso 3: Incluir Definiciones de Módulos HyDE

Sección titulada «Paso 3: Incluir Definiciones de Módulos HyDE»

Agrega la directiva include para cargar automáticamente todos los módulos y configuraciones de HyDE:

"include": ["$XDG_CONFIG_HOME/waybar/includes/includes.json"],

HyDE proporciona varias formas de grupos predefinidas para crear efectos de píldora y layouts personalizados. Define tus grupos antes de asignar módulos:

// Formas de grupo disponibles:
// pill-left, pill-right, pill-up, pill-down
// pill-in, pill-out, leaf, leaf-inverse
"group/pill-left": {
"orientation": "inherit",
"modules": ["custom/keybindhint", "custom/updates"]
},
"group/pill-right": {
"orientation": "inherit",
"modules": ["battery", "custom/hyde-menu"]
},
"group/pill-up": {
"orientation": "inherit",
"modules": ["wlr/taskbar"]
},
"group/pill-down": {
"orientation": "inherit",
"modules": ["hyprland/workspaces"]
},
"group/pill-in": {
"orientation": "inherit",
"modules": ["idle_inhibitor", "clock"]
},
"group/pill-out": {
"orientation": "inherit",
"modules": ["custom/weather", "hyprland/language"]
},
"group/leaf": {
"orientation": "inherit",
"modules": ["custom/workflows", "memory"]
},
"group/leaf-inverse": {
"orientation": "inherit",
"modules": ["custom/gpuinfo", "custom/cpuinfo"]
},

Puedes reutilizar la misma forma de grupo varias veces agregando etiquetas (#tagname):

"group/pill-down#right": {
"orientation": "inherit",
"modules": ["pulseaudio", "pulseaudio#microphone", "tray"]
},
"group/pill-up#right": {
"orientation": "inherit",
"modules": ["privacy", "custom/hyprsunset", "backlight#intel_backlight"]
},

Paso 6: Organizar Grupos en Posiciones de Módulos

Sección titulada «Paso 6: Organizar Grupos en Posiciones de Módulos»

Ahora puedes asignar tus grupos a las tres posiciones disponibles:

"modules-left": ["group/pill-left", "group/pill-down", "group/pill-up"],
"modules-center": ["group/leaf", "group/pill-in", "group/leaf-inverse"],
"modules-right": [
"group/pill-up#right",
"group/pill-down#right",
"group/pill-right"
]
}

Para usar tu nuevo layout, ejecuta:

Ventana de terminal
# Navega a tus layouts usando rofi
hyde-shell waybar -S
# O aplica directamente
waybar -c ~/.config/waybar/layouts/my_config.jsonc

alt text

FormaDescripción
pill-leftCurva hacia la izquierda
pill-rightCurva hacia la derecha
pill-upCurva hacia arriba
pill-downCurva hacia abajo
pill-inCurva hacia adentro sin importar la posición
pill-outCurva hacia afuera sin importar la posición
leafForma de hoja
leaf-inverseForma de hoja invertida

Para personalizar módulos individuales, edita los archivos en ~/.config/waybar/modules/ o crea nuevos siguiendo la convención de nombres descrita en la sección Modules.