Skip to content

Javyre/wf-lua

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wf-lua

IRC: #swayfire on libera

Experiment to use Lua as an advanced configuration language for wayfire.

wf-lua is meant for use-cases where writing an actual wayfire plugin shouldn't be necessary. These use-cases include:

  • User configuration: setting options and defining custom keybinds.
  • Window management automation scripts: listening for events and calling into the exposed lua api for wayfire and other plugins at a high level.
  • (planned: Implementing ipc commands for an eventual wf-msg <command> <args>)

wf-lua is not meant for:

  • Implementing anything that requires access to an OpenGL context. (e.g.: decorations, view transformers, custom surface implementations)
  • Implementing anything requiring continuous calling-back of lua functions. (e.g.: animations)

For these use-cases, you should create a real wayfire plugin.

NOTE: wf-lua is still in very early development.

Installation

Wf-lua depends on Wayfire's master branch. Please make sure it is installed before building.

To build and install from source:

# Build and install wf-lua:
sudo zig build install --prefix /usr -Drelease-fast

Documentation

You can view the latest generated HTML documentation online here.

Wf-lua uses LDoc to generate documentation from comments in lua source code. LDoc can be installed from LuaRocks.

# Generate html documentation in ./public/:
ldoc .

Contributing

Contributions are welcome.

Wf-lua uses zig fmt for zig source code and nudge the formatter as much as possible to keep line length under 80 characters.

Wf-lua uses the c++17 standard and a modified llvm coding style defined in .clang_format. Please run clang-format --style=file -i <FILENAME> on any c/c++ source. to run the formatter before every commit.

We also use lua-format for lua source formatting (install from luarocks).