# awesomerc.lua boilerplate Boilerplate to help getting started with Awesome. This repository contains the default `awesomerc.lua` file with pre-configured tools. ## Features - Luacheck: Statically check the Lua code - Stylua: Lua code formatter - cSpell: Fix typo in code - Live run with Xephyr and restart on change with Luamon (run `make dev` command) - VSCode settings and recommended extensions - VSCode debugger with local-lua-debugger-vscode - Busted: Unit test Lua ## How to use ### Dev mode Run in live development with the command ```sh make dev ``` Edit the config and get live update in the Xephyr window! The Awesome WM entrypoint is the `config/awesome/rc.lua` file. This is what Awesome uses as the configuration file. The role of this file is to initialize the environment (load luarocks, start the debugger when required, ...). The actual user configuration should go to the `src/awesomerc` directory. Every files from the sources should be mapped by the `awesomerc-dev-1.rockspec`'s `build.modules` table. It is required to package the configuration as a rock. ### Debug with VSCode Terminate the dev mode. Then run the `Debug with Xephyr` debug profile from VSCode. ### Deploy When ready, deploy the config to your home directory with the command ```sh make deploy ``` The deploy recipe builds the rock and install it locally with `luarocks --local build`. It have to effect to pushes the rock to the `~/.luarocks` directory. For now, it have no effect to the current Awesome configuration. To complete the configuration installation, `cp config/awesome ~/.config/awesome` must be run manually. The `make try-current` recipe can be optionally used to start Awesome in Xephyr with the actual user installed configuration. Restart Awesome, now enjoy your new config! ## TODOs - Install the config to ~/.config/awesome -> Partially done, we build a rock, but don't write to the user dotfiles - Pipeline (GitHub Actions?) - Automated integration tests (with Xephyr/headless?) - Migrate to Teal?