Merge pull request #1066 from Akulen/fix_gap_ignore

awful.tag: Add `gap_single_client` property and user changeable defau…
This commit is contained in:
Emmanuel Lepage Vallée 2016-09-15 16:01:19 -04:00 committed by GitHub
commit f02b73b0ee
2 changed files with 103 additions and 8 deletions

View File

@ -137,7 +137,15 @@ function layout.parameters(t, screen)
local p = {} local p = {}
local useless_gap = t and t.gap or 0 local clients = client.tiled(screen)
local gap_single_client = true
if(t and t.gap_single_client ~= nil) then
gap_single_client = t.gap_single_client
end
local min_clients = gap_single_client and 1 or 2
local useless_gap = t and (#clients >= min_clients and t.gap or 0) or 0
p.workarea = screen:get_bounding_geometry { p.workarea = screen:get_bounding_geometry {
honor_padding = true, honor_padding = true,
@ -146,7 +154,7 @@ function layout.parameters(t, screen)
} }
p.geometry = screen.geometry p.geometry = screen.geometry
p.clients = client.tiled(screen) p.clients = clients
p.screen = screen.index p.screen = screen.index
p.padding = screen.padding p.padding = screen.padding
p.useless_gap = useless_gap p.useless_gap = useless_gap

View File

@ -42,6 +42,27 @@ data.tags = setmetatable({}, { __mode = 'k' })
tag.history = {} tag.history = {}
tag.history.limit = 20 tag.history.limit = 20
-- Default values
local defaults = {}
-- The gap between clients (in points).
defaults.gap = 0
-- The default gap_count.
defaults.gap_single_client = true
-- The default master fill policy.
defaults.master_fill_policy = "expand"
-- The default master width factor.
defaults.master_width_factor = 0.5
-- The default master count.
defaults.master_count = 1
-- The default column count.
defaults.column_count = 1
-- screen.tags depend on index, it cannot be used by awful.tag -- screen.tags depend on index, it cannot be used by awful.tag
local function raw_tags(scr) local function raw_tags(scr)
local tmp_tags = {} local tmp_tags = {}
@ -56,6 +77,7 @@ end
--- The number of elements kept in the history. --- The number of elements kept in the history.
-- @tfield integer awful.tag.history.limit -- @tfield integer awful.tag.history.limit
-- @tparam[opt=20] integer limit
--- The tag index. --- The tag index.
-- --
@ -543,6 +565,13 @@ function tag.selected(s)
return s.selected_tag return s.selected_tag
end end
--- The default master width factor
--
-- @beautiful beautiful.master_width_factor
-- @param number (default: 0.5)
-- @see master_width_factor
-- @see gap
--- The tag master width factor. --- The tag master width factor.
-- --
-- The master width factor is one of the 5 main properties used to configure -- The master width factor is one of the 5 main properties used to configure
@ -571,7 +600,9 @@ function tag.object.set_master_width_factor(t, mwfact)
end end
function tag.object.get_master_width_factor(t) function tag.object.get_master_width_factor(t)
return tag.getproperty(t, "master_width_factor") or 0.5 return tag.getproperty(t, "master_width_factor")
or beautiful.master_width_factor
or defaults.master_width_factor
end end
--- Set master width factor. --- Set master width factor.
@ -765,6 +796,7 @@ end
-- @beautiful beautiful.useless_gap -- @beautiful beautiful.useless_gap
-- @param number (default: 0) -- @param number (default: 0)
-- @see gap -- @see gap
-- @see gap_single_client
--- The gap (spacing, also called `useless_gap`) between clients. --- The gap (spacing, also called `useless_gap`) between clients.
-- --
@ -777,6 +809,7 @@ end
-- --
-- @property gap -- @property gap
-- @param number The value has to be greater than zero. -- @param number The value has to be greater than zero.
-- @see gap_single_client
function tag.object.set_gap(t, useless_gap) function tag.object.set_gap(t, useless_gap)
if useless_gap >= 0 then if useless_gap >= 0 then
@ -785,7 +818,9 @@ function tag.object.set_gap(t, useless_gap)
end end
function tag.object.get_gap(t) function tag.object.get_gap(t)
return tag.getproperty(t, "useless_gap") or beautiful.useless_gap or 0 return tag.getproperty(t, "useless_gap")
or beautiful.useless_gap
or defaults.gap
end end
--- Set the spacing between clients --- Set the spacing between clients
@ -809,6 +844,32 @@ function tag.incgap(add, t)
tag.object.set_gap(t, tag.object.get_gap(t) + add) tag.object.set_gap(t, tag.object.get_gap(t) + add)
end end
--- Enable gaps for a single client.
--
-- @beautiful beautiful.gap_single_client
-- @param boolean (default: true)
-- @see gap
-- @see gap_single_client
--- Enable gaps for a single client.
--
-- **Signal:**
--
-- * *property::gap\_single\_client*
--
-- @property gap_single_client
-- @param boolean Enable gaps for a single client
function tag.object.set_gap_single_client(t, gap_single_client)
tag.setproperty(t, "gap_single_client", gap_single_client == true)
end
function tag.object.get_gap_single_client(t)
return tag.getproperty(t, "gap_single_client")
or beautiful.gap_single_client
or defaults.gap_single_client
end
--- Get the spacing between clients. --- Get the spacing between clients.
-- @deprecated awful.tag.getgap -- @deprecated awful.tag.getgap
-- @see gap -- @see gap
@ -826,6 +887,12 @@ function tag.getgap(t, numclients)
return tag.object.get_gap(t or ascreen.focused().selected_tag) return tag.object.get_gap(t or ascreen.focused().selected_tag)
end end
--- The default fill policy
--
-- @beautiful beautiful.master_fill_policy
-- @param string (default: "expand")
-- @see master_fill_policy
--- Set size fill policy for the master client(s). --- Set size fill policy for the master client(s).
-- --
-- **Signal:** -- **Signal:**
@ -836,7 +903,9 @@ end
-- @param string "expand" or "master_width_factor" -- @param string "expand" or "master_width_factor"
function tag.object.get_master_fill_policy(t) function tag.object.get_master_fill_policy(t)
return tag.getproperty(t, "master_fill_policy") or "expand" return tag.getproperty(t, "master_fill_policy")
or beautiful.master_fill_policy
or defaults.master_fill_policy
end end
--- Set size fill policy for the master client(s) --- Set size fill policy for the master client(s)
@ -879,9 +948,17 @@ function tag.getmfpol(t)
util.deprecate("Use t.master_fill_policy instead of awful.tag.getmfpol") util.deprecate("Use t.master_fill_policy instead of awful.tag.getmfpol")
t = t or ascreen.focused().selected_tag t = t or ascreen.focused().selected_tag
return tag.getproperty(t, "master_fill_policy") or "expand" return tag.getproperty(t, "master_fill_policy")
or beautiful.master_fill_policy
or defaults.master_fill_policy
end end
--- The default number of master windows.
--
-- @beautiful beautiful.master_count
-- @param integer (default: 1)
-- @see master_count
--- Set the number of master windows. --- Set the number of master windows.
-- --
-- **Signal:** -- **Signal:**
@ -900,7 +977,9 @@ function tag.object.set_master_count(t, nmaster)
end end
function tag.object.get_master_count(t) function tag.object.get_master_count(t)
return tag.getproperty(t, "master_count") or 1 return tag.getproperty(t, "master_count")
or beautiful.master_count
or defaults.master_count
end end
--- ---
@ -988,6 +1067,12 @@ function tag.geticon(_tag)
return tag.getproperty(_tag, "icon") return tag.getproperty(_tag, "icon")
end end
--- The default number of columns.
--
-- @beautiful beautiful.column_count
-- @param integer (default: 1)
-- @see column_count
--- Set the number of columns. --- Set the number of columns.
-- --
-- **Signal:** -- **Signal:**
@ -1006,7 +1091,9 @@ function tag.object.set_column_count(t, ncol)
end end
function tag.object.get_column_count(t) function tag.object.get_column_count(t)
return tag.getproperty(t, "column_count") or 1 return tag.getproperty(t, "column_count")
or beautiful.column_count
or defaults.column_count
end end
--- Set number of column windows. --- Set number of column windows.