Files
Waybar/man/waybar-cffi.5.scd
T
AlexandClaude Opus 4.8 a3b39cfcf6 docs(man): backfill man pages with wiki-only info (source-of-truth pass)
Port information that previously lived only in the GitHub wiki into the
authoritative scdoc man pages, so the man pages become the single source
of truth for module documentation.

33 man pages enriched (options, format replacements, actions, style
selectors, troubleshooting and implementation notes). Additions were
verified against the source; stale/incorrect wiki entries were
deliberately not ported. All pages still compile with scdoc.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 02:55:57 +02:00

56 lines
1.5 KiB
Scdoc

waybar-cffi(5)
# NAME
waybar - cffi module
# DESCRIPTION
The *cffi* module gives full control of a GTK widget to a third-party dynamic library, to create more complex modules using different programming languages.
# CONFIGURATION
Addressed by *cffi/<name>*
*module_path*: ++
typeof: string ++
The path to the dynamic library to load to control the widget.
*expand*: ++
typeof: bool ++
default: false ++
Enables this module to consume all left over space dynamically.
Some additional configuration may be required depending on the cffi dynamic library being used.
# EXAMPLES
## C example:
An example module written in C can be found at https://github.com/Alexays/Waybar/resources/custom_modules/cffi_example/
Waybar config to enable the module:
```
"cffi/c_example": {
"module_path": ".config/waybar/cffi/wb_cffi_example.so"
}
```
# DEVELOPING CFFI MODULES
CFFI modules require a handful of functions and constants to be defined with C
linkage. The way to achieve this depends on the programming language being used
(search for FFI / Foreign Function Interface for that language).
The complete list of symbols to define can be found in the header file shipped with
Waybar at *resources/custom_modules/cffi_example/waybar_cffi_module.h*, and a full
example written in C is provided in *resources/custom_modules/cffi_example/*.
Language bindings exist for several languages, including Rust (the *waybar-cffi*
crate) and Zig.
# STYLE
The classes and IDs are managed by the cffi dynamic library.