Hoe scheid je de Awesome ' s `rc.lua` configuratie in meerdere bestanden?

Ik “ben net van OpenBox naar Awesome WM verhuisd. Ik vind het prettig dat het zeer uitbreidbaar en aanpasbaar is en ik heb enorme controle over de lay-out van vensters. Ik hou van gestructureerde en georganiseerde dingen en ik “zou die enorme .config/awesome/rc.lua configuratie willen scheiden in meerdere bestanden.

Antwoord

U kunt de code gewoon in een apart bestand plaatsen en deze opnemen met

dofile("somefile.lua") 

Opmerking: de werkdirectory is $HOME. Om een bestand relatief aan rc.lua te specificeren, kunt u

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

Als het meer is dan alleen een code en het kan ook door anderen worden gebruikt, kan het zinvol zijn om een lua-module te maken die kan worden opgenomen in

somemodule = require("somemodule") 

Reacties

  • Het werkt op 50%, ik moet het volledige pad specificeren in plaats van het relatieve pad
  • @Miro opgelost, zie update.
  • Op Ubuntu, Awesome ' s vereist functie ziet er automatisch uit in .config / awesome /, dus je kunt een verzoek maken van elk bestand dat je wilt plaats daar.

Antwoord

Om code naar een ander bestand te verplaatsen, maak je een module aan en heb je de module nodig in de rc.lua.

Om een module te maken, roep je eenvoudig in het script met de code die je uit het originele script hebt gehaald. Lua reference – module .

Om de door jou gemaakte module te gebruiken, bel je require (modname) . Lua-referentie – vereist .

Er is een uitstekende tutorial op de Lua-wiki die dit met voorbeelden verklaart. En als je wilt zien hoe module() echt werkt, is er een artikel over Spelen met Lua dat begint met schrijven een implementatie van module ().

Reacties

  • Merk op dat vanaf awesome-3.5 de lua-versie is bijgewerkt naar 5.2, waar de module() functie is verouderd. Daarom moet de module worden toegewezen aan een variabele, zoals modname = require ("modname")

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *