Jak podzielić konfigurację `rc.lua` Awesome na wiele plików?

14

Właśnie przeniosłem się do Awesome WM z OpenBox. Podoba mi się, że jest bardzo rozszerzalny, konfigurowalny i mam ogromną kontrolę nad układem okna. Lubię uporządkowane i zorganizowane rzeczy i chciałbym podzielić tę ogromną .config/awesome/rc.luakonfigurację na wiele plików.

kravemir
źródło

Odpowiedzi:

11

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

dofile("somefile.lua")

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

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

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

somemodule = require("somemodule")
Marco
źródło
Działa przy 50%, muszę podać pełną ścieżkę zamiast ścieżki względnej
kravemir,
@Miro naprawiono, patrz aktualizacja.
Marco
W Ubuntu funkcja wymagająca Awesome wygląda automatycznie w .config / awesome /, więc możesz wymagać dowolnego pliku, który tam umieścisz.
wdev
5

Aby przenieść kod do innego pliku, należy utworzyć moduł i wymagać modułu w pliku rc.lua.

Aby utworzyć moduł, wystarczy wywołać module (name [, ···])skrypt, który ma kod wyciągnięty z oryginalnego skryptu. Referencja Lua - moduł .

Aby użyć utworzonego modułu, wystarczy zadzwonić require (modname). Odniesienie Lua - wymagają .

Na wiki Lua znajduje się doskonały samouczek, który wyjaśnia to przykładami. A jeśli chcesz zobaczyć, jak to module()naprawdę działa, jest artykuł o Play With Lua, który zaczyna się od napisania implementacji module ().

Shawn J. Goff
źródło
1
Zauważ, że począwszy od awesome-3.5 wersja lua została zaktualizowana do 5.2, gdzie module()funkcja jest przestarzała. Dlatego moduł należy przypisać do zmiennej, takiej jakmodname = require ("modname")
crater2150