X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/83b96b3c3ada021e47d6ef1ad48c03710f0dc24a..3328e738bdc1223583fb98730668dfed24395dfc:/util/init.lua?ds=inline diff --git a/util/init.lua b/util/init.lua index 2f9e14a..55bfa26 100644 --- a/util/init.lua +++ b/util/init.lua @@ -1,15 +1,14 @@ - --[[ - - Lain - Layouts, widgets and utilities for Awesome WM - - Utilities section - - Licensed under GNU General Public License v2 - * (c) 2013, Luke Bonham - * (c) 2010-2012, Peter Hofmann - + + Lain + Layouts, widgets and utilities for Awesome WM + + Utilities section + + Licensed under GNU General Public License v2 + * (c) 2013, Luca CPZ + * (c) 2010-2012, Peter Hofmann + --]] local awful = require("awful") @@ -67,28 +66,28 @@ function util.menu_clients_current_tags(menu, args) end -- Magnify a client: set it to "float" and resize it. -function util.magnify_client(c) +function util.magnify_client(c, width_f, height_f) if c and not c.floating then - util.mc(c) util.magnified_client = c + util.mc(c, width_f, height_f) else - c.floating = false util.magnified_client = nil + c.floating = false end end --- https://github.com/copycat-killer/lain/issues/195 -function util.mc(c) +-- https://github.com/lcpz/lain/issues/195 +function util.mc(c, width_f, height_f) c = c or util.magnified_client if not c then return end c.floating = true local s = awful.screen.focused() - local mg = s.geometry - local mwfact = s.selected_tag.master_width_factor or 0.5 + local mg = s.workarea local g = {} + local mwfact = width_f or s.selected_tag.master_width_factor or 0.5 g.width = sqrt(mwfact) * mg.width - g.height = sqrt(mwfact) * mg.height + g.height = sqrt(height_f or mwfact) * mg.height g.x = mg.x + (mg.width - g.width) / 2 g.y = mg.y + (mg.height - g.height) / 2 @@ -111,13 +110,13 @@ end -- {{{ Dynamic tagging -- Add a new tag -function util.add_tag() +function util.add_tag(layout) awful.prompt.run { prompt = "New tag name: ", textbox = awful.screen.focused().mypromptbox.widget, exe_callback = function(name) if not name or #name == 0 then return end - awful.tag.add(name, { screen = awful.screen.focused() }):view_only() + awful.tag.add(name, { screen = awful.screen.focused(), layout = layout or awful.layout.suit.tile }):view_only() end } end @@ -141,11 +140,10 @@ end -- pos in {-1, 1} <-> {previous, next} tag position function util.move_tag(pos) local tag = awful.screen.focused().selected_tag - local idx = awful.tag.getidx(tag) if tonumber(pos) <= -1 then - awful.tag.move(idx - 1, tag) + awful.tag.move(tag.index - 1, tag) else - awful.tag.move(idx + 1, tag) + awful.tag.move(tag.index + 1, tag) end end @@ -160,9 +158,10 @@ end -- }}} -- On the fly useless gaps change -function util.useless_gaps_resize(thatmuch) - local scr = awful.screen.focused() - scr.selected_tag.gap = scr.selected_tag.gap + thatmuch +function util.useless_gaps_resize(thatmuch, s, t) + local scr = s or awful.screen.focused() + local tag = t or scr.selected_tag + tag.gap = tag.gap + tonumber(thatmuch) awful.layout.arrange(scr) end