8000 Waybar/man/waybar-cffi.5.scd at fix-2882 · dominikake/Waybar · GitHub
[go: up one dir, main page]

Skip to content

Latest commit

 

History

History
55 lines (35 loc) · 1.48 KB

waybar-cffi.5.scd

File metadata and controls

55 lines (35 loc) · 1.48 KB

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/

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.

0