. π xdg_config/waybar
βββ π config.jsonc
βββ π includes.json
βββ π layouts/
β βββ π layout-1.jsonc
β βββ π khing.jsonc
β βββ π macos.jsonc
βββ π menus/
β βββ π clipboard.xml
β βββ π dunst-notification.xml
β βββ π gpuinfo.xml
β βββ π power.xml
β βββ π pulseaudio.xml
β βββ π spotify.xml
βββ π modules/
β βββ π backlight.jsonc
β βββ π clock.jsonc
β βββ π cpu.jsonc
β βββ π custom-cpuinfo.jsonc
β βββ π hyprland-language.jsonc
β βββ π idle_inhibitor.jsonc
β βββ π pulseaudio#microphone.jsonc
β βββ π pulseaudio.jsonc
β βββ π tray.json
β βββ π wlr-taskbar#windows.json
β βββ π wlr-taskbar.json
βββ π style.css
βββ π styles/
β βββ π dynamic/
β βββ π border-radius.css
β βββ π global.css
β βββ π groups/
β βββ π leaf-inverse.css
β βββ π leaf.css
β βββ π pill-down.css
β βββ π pill-in.css
β βββ π pill-left.css
β βββ π pill-out.css
β βββ π pill-right.css
β βββ π pill-up.css
β βββ π pill.css
β βββ π layout-1.css
β βββ π khing.css
β βββ π macos.css
βββ π theme.css
βββ π user-style.css
. π xdg_config_home/waybar
βββ π layouts/
βββ π menus/
βββ π modules/
βββ π styles/
βββ π theme.css
βββ π config.jsonc
βββ π includes.json
βββ π user-style.css
-
config.json
- this is a copy of a layout configuration. See layouts.
- a transient file therefore edits must be saved at
xdg_config_home/waybar/layouts
-
stye.json
- auto-generated file.
- style.css imports 3 files:
- current
style/*.css
that matches thelayout.json
. See styles - theme.css generated by themes and this can override the selected style.
- user-style.css is an optional file where you can add you own overrides. You can also test your CSS in here.
- current
-
includes.json
- auto generated list of modules from
xdg_config_home/waybar/modules
- to avoid redundant configurations file we will just store the modules and include it in the config
- DEPRECATION: This approach will soon be deprecated as upstream waybar supports regex.
- auto generated list of modules from
-
theme.css
- theme generated file.
βββ π modules/
β βββ π backlight.jsonc
β βββ π clock.jsonc
β βββ π cpu.jsonc
β βββ π custom-cpuinfo.jsonc
β βββ π hyprland-language.jsonc
β βββ π idle_inhibitor.jsonc
β βββ π pulseaudio#microphone.jsonc
β βββ π pulseaudio.jsonc
β βββ π tray.json
β βββ π wlr-taskbar#windows.json
β βββ π wlr-taskbar.json
- Store all modules in xdg_config_home/waybar/modules.
- Files in here are recursively added as entry in
includes.json
- all modules under a specific tree will have the
parent/child
convention. Wherecustom/cpuinfo
will be converted intocustom-cpuinfo
. This is used to easily determine the class name in CSS without confusion. example: custom-cpuinfo { padding: 1em; }
Directory: ./layouts
...
βββ π layouts/
β βββ π layout-1.jsonc
β βββ π layout-2.jsonc
β βββ π khing.jsonc
β βββ π macos.jsonc
β βββ π ....jsonc
...
HyDE stores all the ready to use configuration to layouts
directory.
For css styling of the layouts see styles
Directory: ./styles
βββ π styles/
β βββ π layout-1.css
β βββ π layout-2.css
β βββ π khing.css
β βββ π macos.css
β βββ π ...*.css
β βββ π dynamic/
β βββ π border-radius.css
β βββ π global.css
The styles
are the counterpart of layouts.
When choosing a layout, HyDE will try to use the equivalent CSS style by matching the base names e.g. khing.jsonc
will use khing.css
.
Explicit --config <file>
and --style <file>
is also supported.
dynamic
as the name implies, are dynamically modified/generated css files.
- border-radius.css
- dynamic border radius for the groups.
Circle 100 rounding in hyprland
Squircle 0 rounding in hyprland
Something between 5 rounding in hyprland
Get the Idea?
- global.css
- includes the dynamic font-size, and font-family.
- This is dynamic so that themes can override these values via the
hypr.theme
>>$WAYBAR_FONT
Stores all the GTK Object XML files. To correctly manage the files we added the GObject XML files in xdg_confg_home/wayabr/menus
Contents of ../waybar/styles/groups/
are use for styling the border-radius of the given group. Groups are the combination of modules some call it islands.
In HyDE, to be able to make use of the groups, we can declare modules in a group first:
Example in ~/.config/waybar/layouts/my_config.jsonc
...
{
"group/pill": {
"orientation": "inherit",
"modules": [
"custom/gpuinfo",
"clock"
]
}
}
...
Now we can add the group in the waybar modules:
"modules-center" : [
"group/pill",
"group/pill#tag1"
"group/pill-in",
....
]
}
Styling this is easy as we already group the modules. In this way we can use the group name as the class name
#pill,
#pill-in,
Note: pill
and pill#tag*
have a class name of pill
. This is waybar convention to enable users add a similar module.
@dieBakterie Updated, let me know what should we add. The manpages for waybar were very good for reference.We should add the linsk as reference. I don't want to repeat what is already in there manpages.