Wie trenne ich die `rc.lua` -Konfiguration von Awesome ' in mehrere Dateien?

Ich bin gerade von OpenBox zu Awesome WM gewechselt. Ich finde es gut, dass es sehr erweiterbar und anpassbar ist und ich eine große Kontrolle über das Fensterlayout habe. Ich mag strukturierte und organisierte Dinge und möchte diese riesige .config/awesome/rc.lua -Konfiguration in mehrere Dateien aufteilen.

Antwort

Sie können Code einfach in eine separate Datei einfügen und ihn in

dofile("somefile.lua") 

einfügen. Hinweis: Das Arbeitsverzeichnis ist $HOME. Um eine Datei relativ zu rc.lua anzugeben, können Sie

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

verwenden Wenn es mehr als nur ein Code ist und möglicherweise auch von anderen verwendet wird, ist es möglicherweise sinnvoll, ein Lua-Modul zu erstellen, das in

Kommentare

  • Es funktioniert zu 50%, ich muss den vollständigen Pfad anstelle des relativen Pfads
  • @Miro angeben behoben, siehe Update.
  • Unter Ubuntu wird die erforderliche Funktion von Awesome ' automatisch in .config / awesome / angezeigt, sodass Sie jede gewünschte Datei anfordern können dort platzieren.

Antwort

Um Code in eine andere Datei zu verschieben, erstellen Sie ein Modul und benötigen das Modul in der rc.lua.

Um ein Modul zu erstellen, rufen Sie einfach im Skript, das den Code enthält, den Sie aus dem ursprünglichen Skript gezogen haben. Lua-Referenzmodul .

Um das von Ihnen erstellte Modul zu verwenden, rufen Sie einfach require (modname) auf . Lua-Referenz – erforderlich .

Es gibt ein ausgezeichnetes Tutorial im Lua-Wiki das erklärt dies anhand von Beispielen. Und wenn Sie sehen möchten, wie module() wirklich funktioniert, gibt es einen Artikel über Play With Lua , der mit dem Schreiben beginnt eine Implementierung von module ().

Kommentare

  • Beachten Sie, dass die lua-Version ab awesome-3.5 auf 5.2 aktualisiert wurde, wobei die module() Funktion ist veraltet. Daher muss das Modul einer Variablen wie modname = require ("modname")

zugewiesen werden

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.