Я использую Awesome 4.3 на Manjaro Linux (Arch) Я перешел с рабочего стола KDE на рабочий стол XFCE. Я написал переключатель обоев, который будет случайным образом менять обои на четырех отдельных экранах. Я написал процедуру рандомизации в стандартном файле Lua для целей разработки. Я добавил его в r c. lua, но не похоже, что таймеры Lua (luv) работают в r c. lua. Я проверил все методы отдельно, чтобы загрузить обои из моих процедур рандомизации, и они отлично работают, когда я обращаюсь напрямую к одному набору файлов для четырех экранов. Как только я добавляю интервальные таймеры, ничего не происходит, нет ошибок, вообще ничего.
Это код, упрощенный для загрузки только одного экрана, я что-то упустил, вынул удивительные объекты и заменил операторы печати, и он прекрасно работает в стандартном Lua файле
спасибо любая помощь приветствуется
local lfs = require('lfs') -- lua file system
local uv = require('luv') -- lua timer
local dir = "/home/jerry/Documents/wallpaper"
local images = {} -- images collection
local idx = 0
math.randomseed(os.time())
local function tablelength(T)
local count = 0
for _ in pairs(T) do count = count + 1 end
return count
end
local function readImages(path)
for file in lfs.dir(path) do
if file ~= "." and file ~= ".." then
images[idx] = path .. '/' .. file
idx = idx + 1
end
end
end
readImages(dir);
imageCount = tablelength(images)
local function getImage()
number = math.random(1, imageCount)
return images[number]
end
local function setInterval(interval, callback)
local timer = uv.new_timer()
uv.timer_start(timer, 0, interval, callback)
return timer
end
local function cb()
local path = getImage()
gears.wallpaper.maximized(path, screen[1], true)
end
timer1 = setInterval(1000, cb)
local function cb(gears, getImage, screen, screenIndex)
return function()
print(gears)
print(getImage())
print(screen)
print("Screen " .. screenIndex)
return gears.wallpaper.maximized(getImage(), screen[screenIndex], true)
end
end