Jak rozdzielić konfigurację Awesome ' s `rc.lua` na wiele plików?

Właśnie przeniosłem się do Awesome WM z OpenBox. Podoba mi się, że jest on bardzo rozszerzalny, dostosowywalny i mam ogromną kontrolę nad układem okien. Lubię rzeczy ustrukturyzowane i zorganizowane i chciałbym rozdzielić tę ogromną .config/awesome/rc.lua konfigurację na wiele plików.

Odpowiedź

Możesz po prostu umieścić kod w oddzielnym pliku i dołączyć go do

dofile("somefile.lua") 

Uwaga: katalog roboczy to $HOME. Aby określić plik względem rc.lua, możesz użyć

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

Jeśli jest to coś więcej niż tylko jakiś kod i może być również używany przez innych, sensowne może być utworzenie modułu Lua, który można dołączyć do

somemodule = require("somemodule") 

Komentarze

  • Działa na 50%, muszę podać pełną ścieżkę zamiast ścieżki względnej
  • @Miro naprawiono, patrz aktualizacja.
  • W Ubuntu, Awesome ' s require function wygląda automatycznie w .config / awesome /, więc możesz wymagać dowolnego pliku, umieść tam.

Odpowiedz

Aby przenieść kod do innego pliku, tworzysz moduł i potrzebujesz go w rc.lua.

Aby utworzyć moduł, po prostu zadzwoń pod numer module (name [, ···]) w skrypcie zawierającym kod wyciągnięty z oryginalnego skryptu. Dokumentacja Lua – moduł .

Aby skorzystać z utworzonego modułu, wystarczy zadzwonić pod numer require (modname) . Dokumentacja Lua – wymaga .

Istnieje doskonały samouczek na wiki Lua , który wyjaśnia to przykładami. A jeśli chcesz zobaczyć, jak naprawdę działa module(), istnieje artykuł w Play With Lua , który zaczyna się od napisania implementacja module ().

Komentarze

  • Zauważ, że począwszy od awesome-3.5, wersja lua została zaktualizowana do 5.2, gdzie module() funkcja jest przestarzała. Dlatego moduł musi być przypisany do zmiennej, takiej jak modname = require ("modname")

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *