198 lines
6.2 KiB
Lua
198 lines
6.2 KiB
Lua
--DOC_NO_USAGE --DOC_GEN_IMAGE --DOC_HIDE_START
|
|
local awful = require("awful")
|
|
local wibox = require("wibox")
|
|
local beautiful = require("beautiful")
|
|
local naughty = require("naughty")
|
|
local s = screen[1]
|
|
screen[1]._resize {width = 640, height = 320}
|
|
|
|
local wb = awful.wibar { position = "top" }
|
|
local modkey = "Mod4"
|
|
|
|
-- Create the same number of tags as the default config
|
|
awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, screen[1], awful.layout.layouts[1])
|
|
|
|
-- Only bother with widgets that are visible by default
|
|
local mykeyboardlayout = awful.widget.keyboardlayout()
|
|
local mytextclock = wibox.widget.textclock()
|
|
local mytaglist = awful.widget.taglist(screen[1], awful.widget.taglist.filter.all, {})
|
|
local mytasklist = awful.widget.tasklist(screen[1], awful.widget.tasklist.filter.currenttags, {})
|
|
|
|
client.connect_signal("request::titlebars", function(c)
|
|
local top_titlebar = awful.titlebar(c, {
|
|
height = 20,
|
|
bg_normal = beautiful.bg_normal,
|
|
})
|
|
|
|
top_titlebar : setup {
|
|
{ -- Left
|
|
awful.titlebar.widget.iconwidget(c),
|
|
layout = wibox.layout.fixed.horizontal
|
|
},
|
|
{ -- Middle
|
|
{ -- Title
|
|
align = "center",
|
|
widget = awful.titlebar.widget.titlewidget(c)
|
|
},
|
|
layout = wibox.layout.flex.horizontal
|
|
},
|
|
{ -- Right
|
|
awful.titlebar.widget.floatingbutton (c),
|
|
awful.titlebar.widget.maximizedbutton(c),
|
|
awful.titlebar.widget.stickybutton (c),
|
|
awful.titlebar.widget.ontopbutton (c),
|
|
awful.titlebar.widget.closebutton (c),
|
|
layout = wibox.layout.fixed.horizontal()
|
|
},
|
|
layout = wibox.layout.align.horizontal
|
|
}
|
|
end)
|
|
|
|
wb:setup {
|
|
layout = wibox.layout.align.horizontal,
|
|
{
|
|
mytaglist,
|
|
layout = wibox.layout.fixed.horizontal,
|
|
},
|
|
mytasklist,
|
|
{
|
|
layout = wibox.layout.fixed.horizontal,
|
|
mykeyboardlayout,
|
|
mytextclock,
|
|
},
|
|
}
|
|
|
|
require("gears.timer").run_delayed_calls_now()
|
|
local counter = 0
|
|
|
|
local function gen_client(label)
|
|
local c = client.gen_fake {hide_first=true}
|
|
|
|
c:geometry {
|
|
x = 45 + counter*1.75,
|
|
y = 30 + counter,
|
|
height = 60,
|
|
width = 230,
|
|
}
|
|
c._old_geo = {c:geometry()}
|
|
c:set_label(label)
|
|
c:emit_signal("request::titlebars")
|
|
c.border_color = beautiful.bg_highlight
|
|
counter = counter + 40
|
|
|
|
return c
|
|
end
|
|
|
|
gen_client("C1")
|
|
gen_client("C2")
|
|
|
|
--DOC_HIDE_END
|
|
|
|
|
|
local function saved_screenshot(args)
|
|
local ss = awful.screenshot(args)
|
|
|
|
--DOC_NEWLINE
|
|
local function notify(self)
|
|
naughty.notification {
|
|
title = self.file_name,
|
|
message = "Screenshot saved",
|
|
icon = self.surface,
|
|
icon_size = 128,
|
|
}
|
|
end
|
|
--DOC_NEWLINE
|
|
|
|
if args.auto_save_delay > 0 then
|
|
ss:connect_signal("file::saved", notify)
|
|
else
|
|
notify(ss)
|
|
end
|
|
--DOC_NEWLINE
|
|
|
|
return ss
|
|
end
|
|
--DOC_NEWLINE
|
|
local function delayed_screenshot(args)
|
|
local ss = saved_screenshot(args)
|
|
local notif = naughty.notification {
|
|
title = "Screenshot in:",
|
|
message = tostring(args.auto_save_delay) .. " seconds"
|
|
}
|
|
--DOC_NEWLINE
|
|
|
|
ss:connect_signal("timer::tick", function(_, remain)
|
|
notif.message = tostring(remain) .. " seconds"
|
|
end)
|
|
--DOC_NEWLINE
|
|
|
|
ss:connect_signal("timer::timeout", function()
|
|
if notif then notif:destroy() end
|
|
end)
|
|
--DOC_NEWLINE
|
|
|
|
return ss
|
|
end
|
|
--DOC_NEWLINE
|
|
client.connect_signal("request::default_keybindings", function()
|
|
awful.keyboard.append_client_keybindings({
|
|
awful.key({modkey}, "Print",
|
|
function (c) saved_screenshot { auto_save_delay = 0, client = c } end ,
|
|
{description = "take client screenshot", group = "client"}),
|
|
awful.key({modkey, "Shift"}, "Print",
|
|
function (c) saved_screenshot { auto_save_delay = 0, interactive = true, client = c } end ,
|
|
{description = "take interactive client screenshot", group = "client"}),
|
|
awful.key({modkey, "Control"}, "Print",
|
|
function (c) delayed_screenshot { auto_save_delay = 5, client = c } end ,
|
|
{description = "take screenshot in 5 seconds", group = "client"}),
|
|
awful.key({modkey, "Shift", "Control"}, "Print",
|
|
function (c) delayed_screenshot { auto_save_delay = 5, interactive = true, client = c } end ,
|
|
{description = "take interactive screenshot in 5 seconds", group = "client"}),
|
|
})
|
|
end)
|
|
--DOC_NEWLINE
|
|
|
|
awful.keyboard.append_global_keybindings({
|
|
awful.key({}, "Print",
|
|
function () saved_screenshot { auto_save_delay = 0 } end ,
|
|
{description = "take screenshot", group = "client"}),
|
|
awful.key({"Shift"}, "Print",
|
|
function () saved_screenshot { auto_save_delay = 0, interactive = true } end ,
|
|
{description = "take interactive screenshot", group = "client"}),
|
|
awful.key({"Control"}, "Print",
|
|
function () delayed_screenshot { auto_save_delay = 5 } end ,
|
|
{description = "take screenshot in 5 seconds", group = "client"}),
|
|
awful.key({"Shift", "Control"}, "Print",
|
|
function () delayed_screenshot { auto_save_delay = 5, interactive = true } end ,
|
|
{description = "take interactive screenshot in 5 seconds", group = "client"}),
|
|
})
|
|
|
|
--DOC_HIDE_START
|
|
|
|
client.emit_signal("request::default_keybindings")
|
|
|
|
-- A notification popup using the default widget_template.
|
|
naughty.connect_signal("request::display", function(n)
|
|
naughty.layout.box {notification = n}
|
|
end)
|
|
|
|
awful.wallpaper {
|
|
screen = s,
|
|
widget = {
|
|
image = beautiful.wallpaper,
|
|
resize = true,
|
|
widget = wibox.widget.imagebox,
|
|
horizontal_fit_policy = "fit",
|
|
vertical_fit_policy = "fit",
|
|
}
|
|
}
|
|
|
|
saved_screenshot { auto_save_delay = 0 }
|
|
delayed_screenshot { auto_save_delay = 5 }
|
|
|
|
require("gears.timer").run_delayed_calls_now() --DOC_HIDE
|
|
--DOC_HIDE_END
|
|
|
|
|
|
|