]>
git.madduck.net Git - etc/awesome.git/blobdiff - util/init.lua
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
-
- 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")
--]]
local awful = require("awful")
-local beautiful = require("beautiful")
-local math = { sqrt = math.sqrt }
-local string = { gsub = string.gsub }
local tonumber = tonumber
local tonumber = tonumber
local wrequire = require("lain.helpers").wrequire
local setmetatable = setmetatable
local wrequire = require("lain.helpers").wrequire
local setmetatable = setmetatable
end
-- Magnify a client: set it to "float" and resize it.
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
if c and not c.floating then
util.magnified_client = c
util.magnified_client = c
+ util.mc(c, width_f, height_f)
util.magnified_client = nil
util.magnified_client = nil
--- 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()
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 tag = s.selected_tag
- local mwfact = beautiful.master_width_factor or 0.5
- g.width = math.sqrt(mwfact) * mg.width
- g.height = math.sqrt(mwfact) * mg.height
+ local mwfact = width_f or s.selected_tag.master_width_factor or 0.5
+ g.width = sqrt(mwfact) * mg.width
+ 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
g.x = mg.x + (mg.width - g.width) / 2
g.y = mg.y + (mg.height - g.height) / 2
-- {{{ Dynamic tagging
-- Add a new tag
-- {{{ Dynamic tagging
-- Add a new 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.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()
-- pos in {-1, 1} <-> {previous, next} tag position
function util.move_tag(pos)
local tag = awful.screen.focused().selected_tag
-- 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
if tonumber(pos) <= -1 then
- awful.tag.move(id x - 1, tag)
+ awful.tag.move(tag.inde x - 1, tag)
- awful.tag.move(id x + 1, tag)
+ awful.tag.move(tag.inde x + 1, tag)
-- }}}
-- On the fly useless gaps change
-- }}}
-- On the fly useless gaps change
-function util.useless_gaps_resize(thatmuch)
- beautiful.useless_gap = beautiful.useless_gap or 0
- beautiful.useless_gap = tonumber(beautiful.useless_gap) + thatmuch
- awful.layout.arrange(awful.screen.focused())
+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
return setmetatable(util, { __index = wrequire })
end
return setmetatable(util, { __index = wrequire })