Acabei de mudar para Awesome WM do OpenBox. Gosto que é muito extensível, personalizável e tenho grande controle sobre o layout da janela. Gosto de coisas estruturadas e organizadas e “gostaria de separar essa enorme .config/awesome/rc.lua
configuração em vários arquivos.
Resposta
Você pode simplesmente colocar o código em um arquivo separado e incluí-lo com
dofile("somefile.lua")
Observação: o diretório de trabalho é $HOME
. Para especificar um arquivo relativo a rc.lua
, você pode usar
dofile(awful.util.getdir("config") .. "/" .. "somefile.lua")
Se for mais do que apenas algum código e também puder ser usado por outros, pode fazer sentido criar um módulo lua que possa ser incluído com
somemodule = require("somemodule")
Comentários
- Funciona a 50%, tenho que especificar o caminho completo em vez do caminho relativo
- @Miro corrigido, consulte a atualização.
- No Ubuntu, a função Awesome ' s require parece automaticamente em .config / awesome /, então você pode exigir de qualquer arquivo colocar lá.
Resposta
Para mover o código para um arquivo diferente, você cria um módulo e exige o módulo no rc.lua.
Para criar um módulo, basta chamar module (name [, ···])
no script que contém o código que você retirou do script original. Referência de Lua – módulo .
Para usar o módulo que você criou, basta chamar require (modname)
. Referência de Lua – requer .
Há um excelente tutorial no wiki de Lua que explica isso com exemplos. E se você quiser ver como module()
realmente funciona, há um artigo sobre Brincar com Lua que começa escrevendo uma implementação do módulo ().
module()
a função está obsoleta. Portanto, o módulo deve ser atribuído a uma variável, comomodname = require ("modname")