Added launchbar
This commit is contained in:
parent
247b4a0c82
commit
af0ad340e2
|
@ -0,0 +1,61 @@
|
||||||
|
-- Quick launchbar widget for Awesome WM
|
||||||
|
-- http://awesome.naquadah.org/wiki/Quick_launch_bar_widget/3.5
|
||||||
|
-- Put into your awesome/ folder and add the following to rc.lua:
|
||||||
|
-- local launchbar = require('launchbar')
|
||||||
|
-- local mylb = launchbar("/path/to/directory/with/shortcuts/")
|
||||||
|
-- Then add mylb to the wibox.
|
||||||
|
|
||||||
|
local naughty = require('naughty')
|
||||||
|
local layout = require("wibox.layout")
|
||||||
|
local util = require("awful.util")
|
||||||
|
local launcher = require("awful.widget.launcher")
|
||||||
|
|
||||||
|
local launchbar = {}
|
||||||
|
|
||||||
|
local function getValue(t, key)
|
||||||
|
local _, _, res = string.find(t, key .. " *= *([^%c]+)%c")
|
||||||
|
return res
|
||||||
|
end
|
||||||
|
|
||||||
|
local function find_icon(icon_name)
|
||||||
|
if string.sub(icon_name, 1, 1) == '/' then
|
||||||
|
if util.file_readable(icon_name) then
|
||||||
|
return icon_name
|
||||||
|
else
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if launchbar.icon_dirs then
|
||||||
|
for _, v in ipairs(launchbar.icon_dirs) do
|
||||||
|
if util.file_readable(v .. "/" .. icon_name) then
|
||||||
|
return v .. '/' .. icon_name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function launchbar.new(filedir)
|
||||||
|
if not filedir then
|
||||||
|
error("Launchbar: filedir was not specified")
|
||||||
|
end
|
||||||
|
local items = {}
|
||||||
|
local widget = layout.fixed.horizontal()
|
||||||
|
local files = io.popen("ls " .. filedir .. "*.desktop")
|
||||||
|
for f in files:lines() do
|
||||||
|
local t = io.open(f):read("*all")
|
||||||
|
table.insert(items, { image = find_icon(getValue(t,"Icon")),
|
||||||
|
command = getValue(t,"Exec"),
|
||||||
|
position = tonumber(getValue(t,"Position")) or 255 })
|
||||||
|
end
|
||||||
|
table.sort(items, function(a,b) return a.position < b.position end)
|
||||||
|
for _, v in ipairs(items) do
|
||||||
|
if v.image then
|
||||||
|
widget:add(launcher(v))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return widget
|
||||||
|
end
|
||||||
|
|
||||||
|
return setmetatable(launchbar, { __call = function(_, ...) return launchbar.new(...) end })
|
|
@ -179,6 +179,7 @@ local tasklist_buttons = awful.util.table.join(
|
||||||
local battery = require('battery')
|
local battery = require('battery')
|
||||||
local volume = require('volume')
|
local volume = require('volume')
|
||||||
local calendar = require('calendar')
|
local calendar = require('calendar')
|
||||||
|
local launchbar = require('launchbar')
|
||||||
local delimiter = wibox.widget.textbox(" | ")
|
local delimiter = wibox.widget.textbox(" | ")
|
||||||
|
|
||||||
local function set_wallpaper(s)
|
local function set_wallpaper(s)
|
||||||
|
@ -229,6 +230,8 @@ awful.screen.connect_for_each_screen(function(s)
|
||||||
layout = wibox.layout.fixed.horizontal,
|
layout = wibox.layout.fixed.horizontal,
|
||||||
mylauncher,
|
mylauncher,
|
||||||
s.mytaglist,
|
s.mytaglist,
|
||||||
|
launchbar("~/Desktop/"),
|
||||||
|
delimiter,
|
||||||
s.mypromptbox,
|
s.mypromptbox,
|
||||||
},
|
},
|
||||||
s.mytasklist, -- Middle widget
|
s.mytasklist, -- Middle widget
|
||||||
|
|
Loading…
Reference in New Issue