Hur separerar jag Awesome ' s `rc.lua`-konfiguration i flera filer?

Jag har just flyttat till Awesome WM från OpenBox. Jag tycker att det är mycket utdragbart, anpassningsbart och jag har enorm kontroll över fönsterlayouten. Jag gillar strukturerade och organiserade saker och jag vill separera den enorma .config/awesome/rc.lua -konfigurationen i flera filer.

Svar

Du kan helt enkelt placera koden i en separat fil och inkludera den med

dofile("somefile.lua") 

Obs! Arbetskatalogen är $HOME. För att ange en fil i förhållande till rc.lua kan du använda

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

Om det är mer än bara någon kod och det kan användas av andra också, kan det vara vettigt att skapa en lua-modul som kan ingå i

somemodule = require("somemodule") 

Kommentarer

  • Det fungerar på 50%, jag måste ange hela sökvägen istället för relativ sökväg
  • @Miro fixad, se uppdatering.
  • På Ubuntu ser Awesome ' -funktionen automatiskt ut i .config / awesome /, så att du kan göra krav på alla filer du har sätta det.

Svara

För att flytta koden till en annan fil skapar du en modul och kräver modulen i rc.lua.

För att skapa en modul ringer du helt enkelt module (name [, ···]) i skriptet som har koden som du drog ut ur originalskriptet. Lua-referens – modul .

För att använda modulen du skapade ringer du bara till require (modname) . Lua-referens – kräver .

Det finns en utmärkt handledning på Lua-wiki som förklarar detta med exempel. Och om du vill se hur module() verkligen fungerar finns det en artikel om Play With Lua som börjar med att skriva en implementering av modul ().

Kommentarer

  • Observera att från och med awesome-3.5 uppdaterades lua-versionen till 5.2, där module() -funktionen har upphört. Därför måste modulen tilldelas en variabel, som modname = require ("modname")

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *