Hvordan adskiller Awesome ' s `rc.lua`-konfiguration i flere filer?

Jeg er lige flyttet til Awesome WM fra OpenBox. Jeg kan godt lide, at det er meget udvideligt, kan tilpasses, og jeg har enorm kontrol over vindueslayout. Jeg kan godt lide strukturerede og organiserede ting, og jeg vil gerne adskille den enorme .config/awesome/rc.lua -konfiguration i flere filer.

Svar

Du kan simpelthen placere koden i en separat fil og inkludere den med

dofile("somefile.lua") 

Bemærk: Arbejdsmappen er $HOME. For at specificere en fil i forhold til rc.lua kan du bruge

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

Hvis det er mere end bare en kode og det muligvis også bruges af andre, kan det være fornuftigt at oprette et lua-modul, der kan inkluderes i

somemodule = require("somemodule") 

Kommentarer

  • Det fungerer med 50%, jeg skal angive den fulde sti i stedet for den relative sti
  • @Miro fast, se opdatering.
  • På Ubuntu ser fantastiske ' -funktion automatisk ud i .config / awesome /, så du kan stille krav til enhver fil, du har der.

Svar

For at flytte kode til en anden fil opretter du et modul og kræver modulet i rc.lua.

For at oprette et modul skal du blot ringe til module (name [, ···]) i det script, der har den kode, du trak ud af det originale script. Lua-reference – modul .

For at bruge det modul, du oprettede, skal du bare ringe til require (modname) . Lua-reference – kræver .

Der er en fremragende tutorial på Lua-wiki der forklarer dette med eksempler. Og hvis du vil se, hvordan module() virkelig fungerer, er der en artikel om Play With Lua , der starter med at skrive en implementering af modul ().

Kommentarer

  • Bemærk at startende med awesome-3.5 blev lua-versionen opdateret til 5.2, hvor module() -funktionen er udfaset. Derfor skal modulet tildeles en variabel som modname = require ("modname")

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *