Como separar a configuração do rc.lua` do Awesome em vários arquivos?

14

Acabei de me mudar para o Awesome WM do OpenBox. Gosto que é muito extensível, personalizável e tenho um controle enorme sobre o layout da janela. Eu gosto de coisas estruturadas e organizadas e gostaria de separar essa enorme .config/awesome/rc.luaconfiguração em vários arquivos.

kravemir
fonte

Respostas:

11

Você pode simplesmente colocar o código em um arquivo separado e incluí-lo com

dofile("somefile.lua")

Nota: O diretório de trabalho é $HOME. Para especificar um arquivo relativo a rc.luavocê, use

dofile(awful.util.getdir("config") .. "/" .. "somefile.lua")

Se for mais do que apenas um código e também puder ser usado por outros, pode fazer sentido criar um módulo lua que possa ser incluído no

somemodule = require("somemodule")
Marco
fonte
Ele funciona em 50%, eu tenho que especificar o caminho completo em vez de caminho relativo
kravemir
@Miro corrigido, veja atualização.
28612 Marco Marco
No Ubuntu, a função de requisição do Awesome aparece automaticamente em .config / awesome /, para que você possa exigir qualquer arquivo que colocar lá.
Wdev 22/12/13
5

Para mover o código para um arquivo diferente, você cria um módulo e requer o módulo no rc.lua.

Para criar um módulo, basta chamar module (name [, ···])o script que possui o código extraído do script original. Referência Lua - módulo .

Para usar o módulo que você criou, basta ligar require (modname). Referência Lua - requer .

Há um excelente tutorial no wiki Lua que explica isso com exemplos. E se você quiser ver como module()realmente funciona, há um artigo sobre o Play With Lua que começa escrevendo uma implementação do módulo ().

Shawn J. Goff
fonte
1
Observe que, começando com awesome-3.5, a versão lua foi atualizada para 5.2, onde a module()função está obsoleta. Portanto, o módulo deve ser atribuído a uma variável, comomodname = require ("modname")
crater2150