This commit is contained in:
crater2150 2011-12-01 13:03:54 +01:00
parent c6b1dbc895
commit e53d6c6853

View file

@ -1,50 +1,66 @@
-- aweswt.lua -- aweswt.lua
local io=io -- Application switcher using dmenu
local table=table --
local pairs=pairs local io = io
local awful=awful local table = table
local client=client local pairs = pairs
local string=string local awful = awful
local USE_T=true local client = client
module("aweswt") local string = string
function get_out (a) local USE_NAME = true
local f=io.popen (a)
t={}
for line in f:lines() do
table.insert(t, line )
end
return t
end
function get_input (a)
s1='echo -e "'..a..'"|dmenu -i'
return get_out(s1)
end
function switch() module("aweswt")
local clients = client.get()
if table.getn(clients) == 0 then function get_out (a)
return local f = io.popen(a)
end t = {}
local m1="" for line in f:lines() do
local t2={} table.insert(t, line)
local tmp end
for i, c in pairs(clients) do return t
if USE_T then do end
tmp=i..':'..string.sub(c['name'], 1, 20)
end function get_input (a)
else do local dmenu = "dmenu -nf '#888888' -nb '#222222' -sf '#ffffff' -sb '#285577' -p 'switch to application:' -fn 'Terminus 8' -i"
tmp=i..':'..c['instance']..'.'..c['class'] s1 = 'echo "' .. a .. '" | ' .. dmenu
end return get_out(s1)
end end
m1=m1..tmp..'\n'
t2[tmp]=c function switch ()
end local clients = client.get()
local t6=t2[get_input(m1)[1]]
if t6 then if table.getn(clients) == 0 then
local ctags = t6:tags() return
awful.tag.viewonly(ctags[1]) end
client.focus = t6
t6:raise() local client_list_table = {}
end local apps = {}
end
for key, client in pairs(clients) do
local app
if USE_NAME then
--app = key .. ':' .. string.sub(client['name'], 1, 20)
app = client['name']
else
app = key .. ':' .. client['instance'] .. '.' .. client['class']
end
table.insert(client_list_table, app)
apps[app] = client
end
table.sort(client_list_table, function(a, b)
return string.lower(a) < string.lower(b)
end)
local client_list = table.concat(client_list_table, "\n")
local client_selected = apps[get_input(client_list)[1]]
if client_selected then
local ctags = client_selected:tags()
awful.tag.viewonly(ctags[1])
client.focus = client_selected
client_selected:raise()
end
end