-
--[[
-
- 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, Luke Bonham
+ * (c) 2010-2012, Peter Hofmann
+
--]]
local awful = require("awful")
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
-- {{{ 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