diff --git a/modules/.sidepanel.lua.swp b/modules/.sidepanel.lua.swp deleted file mode 100644 index 308e029..0000000 Binary files a/modules/.sidepanel.lua.swp and /dev/null differ diff --git a/modules/sidepanel.lua b/modules/sidepanel.lua index d02327c..41be3c0 100644 --- a/modules/sidepanel.lua +++ b/modules/sidepanel.lua @@ -5,6 +5,8 @@ local timer = require("gears.timer") local beautiful = require('beautiful') local dpi = beautiful.xresources.apply_dpi +local thumbnail = require('modules.thumbnail') + screen.connect_signal("request::desktop_decoration", function(s) local dock = wibox({ @@ -13,7 +15,7 @@ screen.connect_signal("request::desktop_decoration", function(s) stretch = false, width = dpi(64), height = s.workarea.height, - visible = false, + visible = true, y = 48 }) s.mytasklist = awful.widget.tasklist { diff --git a/modules/thumbnail.lua b/modules/thumbnail.lua new file mode 100644 index 0000000..35379d3 --- /dev/null +++ b/modules/thumbnail.lua @@ -0,0 +1,43 @@ +local wibox = require("wibox") +local surface = require("gears.surface") +local shape = require("gears.shape") + +local module = {} + +local function fit(self, context, width, height) + local size = math.min(width, height) + return size, size +end + +local function set_client(self, c) + ret._private.client[1] = c + self:emit_signal("widget::redraw_needed") +end + +local function draw(self, content, cr, width, height) + local c = self._private.client[1] + local s, geo = surface(c.content), c:geometry() + local scale = math.min(width/geo.width, height/geo.height) + local w, h = geo.width*scale, geo.height*scale + local dx, dy = (width-w)/2, (height-h)/2 + cr:translate(dx, dy) + shape.rounded_rect(cr, w, h) + cr:clip() + cr:scale(scale, scale) + cr:set_source_surface(s) + cr:paint() +end + +local function new(c) + local ret = wibox.widget.base.make_widget(nil, nil, { + enable_properties = true, + }) + + rawset(ret, "fit" , fit ) + rawset(ret, "draw" , draw ) + rawset(ret, "set_client", set_client) + ret._private.client = setmetatable({c}, {__mode="v"}) + return ret +end + +return setmetatable(module, {__call=function(_,...) return new(...) end}) diff --git a/rc.lua b/rc.lua index 6c5b145..7736cb3 100644 --- a/rc.lua +++ b/rc.lua @@ -15,7 +15,7 @@ require('modules.client') require('modules.titlebar') require('modules.panel') require('modules.sidepanel') -require('modules.appdrawer') +-- require('modules.appdrawer') require('bindings.keys') -- BELOW NEEDS CLEANUP -- @@ -66,7 +66,9 @@ myawesomemenu = { } mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon }, - { "open terminal", terminal } + { "open terminal", terminal }, + { "firefox", "firefox" }, + { "files", "nautilus" } } })