Як розділити конфігурацію "rc.lua" Awesome на кілька файлів?


14

Я щойно перейшов до Awesome WM з OpenBox. Мені подобається, що це дуже розширюється, налаштовується, і я маю величезний контроль над компонуванням вікон. Мені подобаються структуровані та організовані речі, і я хотів би розділити цю величезну .config/awesome/rc.luaконфігурацію на кілька файлів.

Відповіді:


11

Ви можете просто помістити код в окремий файл і включити його

dofile("somefile.lua")

Примітка: робочий каталог є $HOME. Для вказівки файла відносно rc.luaвас можна скористатися

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

Якщо це більше, ніж просто якийсь код, він може бути використаний і іншими, можливо, має сенс створити модуль lua, який можна включити в

somemodule = require("somemodule")

Це працює на 50%, я маю вказати повний шлях замість відносного шляху
kravemir

@Miro виправлено, див. Оновлення.
Марко

На Ubuntu функція вимагає Awesome автоматично виглядає в .config / awesome /, тому ви можете зробити вимогу будь-якого файлу, який ви помістите туди.
вд

5

Щоб перемістити код в інший файл, ви створюєте модуль і вимагаєте його в rc.lua.

Щоб створити модуль, ви просто зателефонуєте module (name [, ···])в сценарій, який містить код, який ви витягнули з оригінального сценарію. Lua посилання - модуль .

Щоб використовувати створений вами модуль, ви просто зателефонуєте require (modname). Посилання на Луа - вимагати .

На вікі Lua є чудовий підручник, який пояснює це на прикладах. І якщо ви хочете побачити, як module()насправді працює, є стаття про Play With Lua, яка починається з написання реалізації модуля ().


1
Зауважте, що, починаючи з дивних 3.5, версія lua була оновлена ​​до 5.2, де module()функція застаріла. Тому модуль повинен бути призначений змінній, наприкладmodname = require ("modname")
crater2150
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.