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

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 ().

Comentários

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

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *