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


14

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 vorrei separare quell'enorme .config/awesome/rc.luaconfigurazione in più file.

Risposte:


11

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 rc.luaè possibile utilizzare

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

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

somemodule = require("somemodule")

Funziona al 50%, devo specificare il percorso completo invece del percorso relativo
kravemir,

@Miro risolto, vedi aggiornamento.
Marco,

Su Ubuntu, la funzione di richiesta di Awesome appare automaticamente in .config / awesome /, quindi puoi richiedere qualsiasi file che hai inserito.
wdev,

5

Per spostare il codice in un altro file, si crea un modulo e si richiede il modulo in rc.lua.

Per creare un modulo, è sufficiente chiamare module (name [, ···])lo script che ha il codice estratto dallo script originale. Riferimento Lua - modulo .

Per usare il modulo che hai creato, devi solo chiamare require (modname). Riferimento Lua - richiede .

Esiste un eccellente tutorial sulla wiki di Lua che spiega questo con esempi. E se vuoi vedere come module()funziona davvero, c'è un articolo su Play With Lua che inizia scrivendo un'implementazione di module ().


1
Nota che a partire da awesome-3.5 la versione lua è stata aggiornata alla 5.2, dove la module()funzione è obsoleta. Pertanto, il modulo deve essere assegnato a una variabile, comemodname = require ("modname")
crater2150
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.