2012-07-15 22:22:38 +02:00
|
|
|
-- Lookup function for icons
|
|
|
|
|
|
|
|
local paths = {
|
|
|
|
"/usr/share/icons/gnome-wine",
|
|
|
|
"/usr/share/icons/gnome",
|
|
|
|
"/usr/share/icons/hicolor",
|
|
|
|
"/usr/share/icons/HighContrast",
|
|
|
|
"/usr/share/fvwm-crystal/fvwm/icons/Default",
|
|
|
|
}
|
|
|
|
local sizes = {
|
|
|
|
'32x32',
|
|
|
|
'24x24',
|
|
|
|
'22x22',
|
|
|
|
'16x16',
|
|
|
|
}
|
|
|
|
local types = {
|
|
|
|
'apps',
|
|
|
|
'actions',
|
|
|
|
'devices',
|
|
|
|
'status',
|
|
|
|
}
|
|
|
|
local formats = {
|
|
|
|
".png",
|
|
|
|
".xpm"
|
|
|
|
}
|
|
|
|
|
|
|
|
local assert = assert
|
|
|
|
local type = type
|
|
|
|
local pairs = pairs
|
|
|
|
local awful = require("awful")
|
|
|
|
|
|
|
|
module("vbe/icons")
|
|
|
|
|
|
|
|
-- Lookup for an icon. Return full path.
|
|
|
|
function lookup(arg)
|
|
|
|
local inames = assert(arg.name)
|
|
|
|
local isizes = arg.size or sizes
|
|
|
|
local itypes = arg.type or types
|
|
|
|
local ipaths = paths
|
|
|
|
local iformats = formats
|
|
|
|
if type(isizes) ~= "table" then isizes = { isizes } end
|
|
|
|
if type(itypes) ~= "table" then itypes = { itypes } end
|
|
|
|
if type(inames) ~= "table" then inames = { inames } end
|
|
|
|
|
|
|
|
for _, path in pairs(ipaths) do
|
|
|
|
for _, size in pairs(isizes) do
|
|
|
|
for _, t in pairs(itypes) do
|
|
|
|
for _, name in pairs(inames) do
|
|
|
|
if name then
|
|
|
|
for _, name in pairs({name, name:lower()}) do
|
|
|
|
for _, ext in pairs(iformats) do
|
|
|
|
local icon = path .. "/" .. size .. "/" .. t .. "/" .. name .. ext
|
|
|
|
if awful.util.file_readable(icon) then
|
|
|
|
return icon
|
2019-12-20 22:11:29 +01:00
|
|
|
end
|
2012-07-15 22:22:38 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|