diff options
Diffstat (limited to 'desktop.lua')
-rw-r--r-- | desktop.lua | 42 |
1 files changed, 33 insertions, 9 deletions
diff --git a/desktop.lua b/desktop.lua index 376410b..d714dc9 100644 --- a/desktop.lua +++ b/desktop.lua @@ -1,22 +1,46 @@ local M = {} -local awful = require("awful") +local awful = require("awful") +local object = require("gears.object") + +local function desktop_show(self, screen, page_idx) + if page_idx == nil then + page_hist = self.page_history[screen] + if page_hist ~= nil then + page_idx = page_hist + else + page_idx = 1 + end + end + + page = self.pages[page_idx] -local Desktop = {} + if page then + self.page_history[screen] = page_idx + end + return page_idx +end -function Desktop:new(name, nb_pages) - o = setmetatable({}, self) +local function desktop_new(idx, name, nb_pages, layout) + local ret = object() - o.name = name + ret:add_signal("page:view") - o.pages = {} + ret.show = desktop_show + + ret.name = name + + ret.pages = {} for i = 1, nb_pages do - o.pages[i] = awful.tag.add(name .. i) + ret.pages[i] = awful.tag.add(name .. i, { layout = layout }) end - return o + -- page_history[i] is the last page viewed on screen i + ret.page_history = {} + + return ret end -M.Desktop = Desktop +M.new = desktop_new return M |