X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/a89bbec6f39985515c33aa71dab1689f863b7851..53ebca2867c5d9c9ab7c5d3f37ccc91784322cd7:/util/quake.lua diff --git a/util/quake.lua b/util/quake.lua index 0ec1081..e323732 100644 --- a/util/quake.lua +++ b/util/quake.lua @@ -1,10 +1,9 @@ - --[[ - - Licensed under GNU General Public License v2 - * (c) 2016, Luke Bonham - * (c) 2015, unknown - + + Licensed under GNU General Public License v2 + * (c) 2016, Luca CPZ + * (c) 2015, unknown + --]] local awful = require("awful") @@ -34,7 +33,7 @@ function quake:display() for c in awful.client.iterate(function (c) -- c.name may be changed! return c.instance == self.name - end, nil, self.screen) + end) do i = i + 1 if i == 1 then @@ -64,7 +63,7 @@ function quake:display() client.floating = true client.border_width = self.border client.size_hints_honor = false - client:geometry(self:compute_size()) + client:geometry(self.geometry[self.screen] or self:compute_size()) -- Set not sticky and on top client.sticky = false @@ -72,6 +71,9 @@ function quake:display() client.above = true client.skip_taskbar = true + -- Additional user settings + if self.settings then self.settings(client) end + -- Toggle display if self.visible then client.hidden = false @@ -127,6 +129,7 @@ function quake:new(config) conf.followtag = conf.followtag or false -- spawn on currently focused screen conf.overlap = conf.overlap or false -- overlap wibox conf.screen = conf.screen or awful.screen.focused() + conf.settings = conf.settings -- If width or height <= 1 this is a proportion of the workspace conf.height = conf.height or 0.25 -- height @@ -155,7 +158,10 @@ function quake:toggle() if self.followtag then self.screen = awful.screen.focused() end local current_tag = self.screen.selected_tag if current_tag and self.last_tag ~= current_tag and self.visible then - self:display():move_to_tag(current_tag) + local c=self:display() + if c then + c:move_to_tag(current_tag) + end else self.visible = not self.visible self:display()