awesome/tests/examples/sequences/client/tasklist_layout1.lua

118 lines
3.1 KiB
Lua

--DOC_GEN_IMAGE --DOC_HIDE_START --DOC_NO_USAGE
local module = ...
require("ruled.client")
local awful = {
tag = require("awful.tag"),
widget = {
tasklist = require("awful.widget.tasklist")
},
button = require("awful.button")
}
require("awful.ewmh")
local wibox = require("wibox")
screen[1]:fake_resize(0, 0, 800, 480)
awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, screen[1])
local s = screen[1]
--DOC_HIDE_END
local tasklist = awful.widget.tasklist {
screen = s,
filter = awful.widget.tasklist.filter.currenttags,
base_layout = wibox.widget {
spacing = 2,
layout = wibox.layout.fixed.horizontal,
},
buttons = {
awful.button({ }, 1, function (c)
c:activate {
context = "tasklist",
action = "toggle_minimization"
}
end),
awful.button({ }, 3, function() awful.menu.client_list { theme = { width = 250 } } end),
awful.button({ }, 4, function() awful.client.focus.byidx(-1) end),
awful.button({ }, 5, function() awful.client.focus.byidx( 1) end),
},
}
--DOC_NEWLINE
tasklist:connect_signal("property::count", function(self)
local count = self.count
--DOC_NEWLINE
if count > 5 and not self.is_grid then
self.base_layout = wibox.widget {
forced_num_rows = 2,
homogeneous = true,
expand = true,
spacing = 2,
layout = wibox.layout.grid.horizontal
}
--DOC_NEWLINE
self.is_grid = true
elseif count <= 5 and self.is_grid then
self.base_layout = wibox.widget {
spacing = 2,
layout = wibox.layout.fixed.horizontal
}
--DOC_NEWLINE
self.is_grid = false
end
end)
--DOC_NEWLINE
--DOC_HIDE_START
local _tl = tasklist
function awful.spawn(name)
client.gen_fake{class = name, name = name, x = 2094, y=10, width = 60, height =50, screen=screen[1]}
end
--DOC_NEWLINE
module.add_event("Spawn 5 clients.", function()
--DOC_HIDE_END
-- Spawn 5 clients.
for i=1, 5 do
awful.spawn("Client #"..i)
end
--DOC_NEWLINE
--DOC_HIDE_START
client.get()[2]:activate {}
client.get()[2].color = "#ff777733"
end)
--DOC_NEWLINE
module.display_widget(_tl, nil, 22)
module.add_event("Spawn another client.", function()
--DOC_HIDE_END
-- Spawn another client.
awful.spawn("Client #6")
--DOC_NEWLINE
--DOC_HIDE_START
end)
module.display_widget(_tl, nil, 44)
module.add_event("Kill 3 clients.", function()
--DOC_HIDE_END
-- Kill 3 clients.
for _=1, 3 do
client.get()[1]:kill()
end
--DOC_HIDE_START
end)
module.display_widget(_tl, nil, 22)
module.execute { display_screen = true , display_clients = true,
display_label = false, display_client_name = true,
display_mouse = true ,
}