¿Cómo separar la configuración de Awesome ' s `rc.lua` en varios archivos?

Me acabo de mudar a Awesome WM desde OpenBox. Me gusta que es muy extensible, personalizable y tengo un gran control sobre el diseño de las ventanas. Me gustan las cosas estructuradas y organizadas y me gustaría separar esa enorme configuración .config/awesome/rc.lua en varios archivos.

Respuesta

Simplemente puede colocar el código en un archivo separado e incluirlo con

dofile("somefile.lua") 

Nota: El directorio de trabajo es $HOME. Para especificar un archivo relativo a rc.lua puede usar

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

Si se trata de algo más que un código y también puede ser utilizado por otros, podría tener sentido crear un módulo lua que se pueda incluir con

somemodule = require("somemodule") 

Comentarios

  • Funciona al 50%, tengo que especificar la ruta completa en lugar de la ruta relativa
  • @Miro arreglado, ver actualización.
  • En Ubuntu, Awesome ' s require función se ve automáticamente en .config / awesome /, por lo que puede hacer un requerimiento de cualquier archivo que poner allí.

Responder

Para mover código a un archivo diferente, crea un módulo y requiere el módulo en rc.lua.

Para crear un módulo, simplemente llame a module (name [, ···]) en el script que tiene el código que extrajo del script original. Referencia de Lua – módulo .

Para usar el módulo que creó, simplemente llame a require (modname) . Referencia de Lua – requiere .

Hay un excelente tutorial en la wiki de Lua que explica esto con ejemplos. Y si quieres ver cómo module() funciona realmente, hay un artículo sobre Jugar con Lua que comienza por escribir una implementación de module ().

Comentarios

  • Tenga en cuenta que a partir de awesome-3.5, la versión lua se actualizó a 5.2, donde el module() La función está obsoleta. Por lo tanto, el módulo debe asignarse a una variable, como modname = require ("modname")

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *