X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/206f4d0e804d12549ef06ebbe6ba979e57621f6d..a776679884b5d5f6ea026cc215d262b036f6b8b5:/util/init.lua diff --git a/util/init.lua b/util/init.lua index 4e82cd7..d99f007 100644 --- a/util/init.lua +++ b/util/init.lua @@ -38,10 +38,7 @@ function util.menu_clients_current_tags(menu, args) -- Final list of menu items. local cls_t = {} - if cls_tags == nil - then - return nil - end + if cls_tags == nil then return nil end -- For each selected tag get all clients of that tag and add them to -- the menu. A click on a menu item will raise that client. @@ -63,17 +60,11 @@ function util.menu_clients_current_tags(menu, args) end -- No clients? Then quit. - if #cls_t <= 0 - then - return nil - end + if #cls_t <= 0 then return nil end -- menu may contain some predefined values, otherwise start with a -- fresh menu. - if not menu - then - menu = {} - end + if not menu then menu = {} end -- Set the list of items and show the menu. menu.items = cls_t @@ -155,7 +146,7 @@ function util.tag_view_nonempty(direction, sc) local s = sc or mouse.screen or 1 local scr = screen[s] - for i = 1, #tags[s] do + for i = 1, #awful.tag.gettags(s) do awful.tag.viewidx(direction,s) if #awful.client.visible(s) > 0 then return @@ -163,8 +154,24 @@ function util.tag_view_nonempty(direction, sc) end end --- Dynamically rename the current tag you have focused. -function util.prompt_rename_tag(mypromptbox) +-- {{{ Dynamic tagging +-- +-- Add a new tag +function util.add_tag(mypromptbox) + awful.prompt.run({prompt="New tag name: "}, mypromptbox[mouse.screen].widget, + function(text) + if text:len() > 0 then + props = { selected = true } + tag = awful.tag.add(new_name, props) + tag.name = text + tag:emit_signal("property::name") + end + end) +end + +-- Rename current tag +-- @author: minism +function util.rename_tag(mypromptbox) local tag = awful.tag.selected(mouse.screen) awful.prompt.run({prompt="Rename tag: "}, mypromptbox[mouse.screen].widget, function(text) @@ -175,12 +182,42 @@ function util.prompt_rename_tag(mypromptbox) end) end +-- Move current tag +-- pos in {-1, 1} <-> {previous, next} tag position +function util.move_tag(pos) + local tag = awful.tag.selected(mouse.screen) + local idx = awful.tag.getidx(tag) + if tonumber(pos) <= -1 then + awful.tag.move(idx - 1, tag) + else + awful.tag.move(idx + 1, tag) + end +end + +-- Remove current tag (if empty) +-- Any rule set on the tag shall be broken +function util.remove_tag() + local tag = awful.tag.selected(mouse.screen) + local prevtag = awful.tag.gettags(mouse.screen)[awful.tag.getidx(tag) - 1] + awful.tag.delete(tag, prevtag) +end +-- +-- }}} + -- On the fly useless gaps change function util.useless_gaps_resize(thatmuch) - if beautiful.useless_gap_width then - beautiful.useless_gap_width = tonumber(beautiful.useless_gap_width) + thatmuch - awful.layout.arrange(mouse.screen) + beautiful.useless_gap_width = tonumber(beautiful.useless_gap_width) + thatmuch + awful.layout.arrange(mouse.screen) +end + +-- Check if an element exist on a table +function util.element_in_table(element, tbl) + for _, i in pairs(tbl) do + if i == element then + return true + end end + return false end return setmetatable(util, { __index = wrequire })