Come separare la configurazione di Awesome ' s `rc.lua` in più file?

Sono appena passato a Awesome WM da OpenBox. Mi piace che sia molto estensibile, personalizzabile e ho un enorme controllo sul layout delle finestre. Mi piacciono le cose strutturate e organizzate e “mi piacerebbe separare quellenorme .config/awesome/rc.lua configurazione in più file.

Risposta

Puoi semplicemente inserire il codice in un file separato e includerlo con

dofile("somefile.lua") 

Nota: la directory di lavoro è $HOME. Per specificare un file relativo a rc.lua puoi utilizzare

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

Se “è più di un semplice codice e potrebbe essere usato anche da altri, potrebbe avere senso creare un modulo lua che può essere incluso con

somemodule = require("somemodule") 

Commenti

  • Funziona al 50%, devo specificare il percorso completo invece del percorso relativo
  • @Miro risolto, vedi aggiornamento.
  • Su Ubuntu, la funzione Awesome ' s require appare automaticamente in .config / awesome /, quindi puoi richiedere qualsiasi file tu mettere lì.

Risposta

Per spostare il codice in un file diverso, crei un modulo e richiedi il modulo in rc.lua.

Per creare un modulo, chiama semplicemente module (name [, ···]) nello script che contiene il codice che hai estratto dallo script originale. Riferimento Lua – modulo .

Per utilizzare il modulo che hai creato, chiama require (modname) . Riferimento Lua – richiesto .

Cè un eccellente tutorial sul wiki di Lua che spiega questo con esempi. E se vuoi vedere come funziona module(), cè un articolo su Play With Lua che inizia scrivendo unimplementazione di module ().

Commenti

  • Nota che a partire da awesome-3.5 la versione lua è stata aggiornata alla 5.2, dove module() la funzione è deprecata. Pertanto il modulo deve essere assegnato a una variabile, come modname = require ("modname")

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *