Hvordan skille Awesome ' s `rc.lua`-konfigurasjon i flere filer?

Jeg har nettopp flyttet til Awesome WM fra OpenBox. Jeg liker at den er veldig utvidbar, tilpassbar og jeg har enorm kontroll over vindusoppsettet. Jeg liker strukturerte og organiserte ting, og jeg vil skille den enorme .config/awesome/rc.lua -konfigurasjonen i flere filer.

Svar

Du kan ganske enkelt plassere koden i en egen fil og inkludere den med

dofile("somefile.lua") 

Merk: Arbeidskatalogen er $HOME. For å spesifisere en fil i forhold til rc.lua kan du bruke

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

Hvis det er mer enn bare noen kode og det også kan brukes av andre, kan det være fornuftig å lage en lua-modul som kan inngå i

somemodule = require("somemodule") 

Kommentarer

  • Det fungerer på 50%, jeg må spesifisere full sti i stedet for relativ sti
  • @Miro løst, se oppdatering.
  • På Ubuntu ser Awesome ' funksjonen automatisk ut i .config / awesome /, slik at du kan stille krav til hvilken som helst fil du har legg det.

Svar

For å flytte koden til en annen fil, oppretter du en modul og krever modulen i rc.lua.

For å opprette en modul, ringer du bare til module (name [, ···]) i skriptet som har koden du trakk ut av det originale skriptet. Lua-referanse – modul .

For å bruke modulen du opprettet, ringer du bare til require (modname) . Lua referanse – krever .

Det er en utmerket opplæring på Lua wiki som forklarer dette med eksempler. Og hvis du vil se hvordan module() virkelig fungerer, er det en artikkel om Play With Lua som begynner med å skrive en implementering av modul ().

Kommentarer

  • Merk at startende med awesome-3.5 ble lua-versjonen oppdatert til 5.2, der module() -funksjonen er avviklet. Derfor må modulen tildeles en variabel, som modname = require ("modname")

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *