client: Turn `rc.lua` logic into a new `request::border` signal.
The default `rc.lua` was using the focus/unfocus signals to set the border color along with `awful.rules`. This logic block was no longer aligned with the rest of `rc.lua` since it was the only place where `beautiful` variables where only used by `rc.lua`. On top of this, the new request handler also has extra contexts for the urgent and floating/maximixed use cases. So it can be used by themes to implement much smarter borders than just focus based ones. They were previously limited by the fact most of the (un-monkey-patchable) logic was in `rc.lua`. Note that this commit also shuffle the awful.rules order between the titlebar and the border and changes the tests accordignly. After some consideration, I came to the conclusion the previous behavior was bogus and the fact that the placement tests required to know about the titlebar height is simply a proof of that. The change was required in this commit because since the border is no longer in the default rules, a new buggy edge case surfaced.
This commit is contained in:
parent
c10bdc3cfe
commit
04c757322c
|
@ -441,9 +441,7 @@ awful.rules.rules = {
|
|||
-- @DOC_GLOBAL_RULE@
|
||||
-- All clients will match this rule.
|
||||
{ rule = { },
|
||||
properties = { border_width = beautiful.border_width,
|
||||
border_color = beautiful.border_normal,
|
||||
focus = awful.client.focus.filter,
|
||||
properties = { focus = awful.client.focus.filter,
|
||||
raise = true,
|
||||
screen = awful.screen.preferred,
|
||||
placement = awful.placement.no_overlap+awful.placement.no_offscreen
|
||||
|
@ -540,8 +538,3 @@ end)
|
|||
client.connect_signal("mouse::enter", function(c)
|
||||
c:activate { context = "mouse_enter", raise = false }
|
||||
end)
|
||||
|
||||
-- @DOC_BORDER@
|
||||
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
|
||||
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
|
||||
|
||||
|
|
|
@ -221,11 +221,6 @@ sections.DOC_CSD_TITLEBARS = [[
|
|||
See `client.requests_no_titlebar` for more details.
|
||||
]]
|
||||
|
||||
|
||||
sections.DOC_BORDER = [[
|
||||
|
||||
]]
|
||||
|
||||
-- Ask ldoc to generate links
|
||||
|
||||
local function add_links(line)
|
||||
|
|
|
@ -62,6 +62,14 @@ This document was last updated at commit v4.3-197-g9085ed631.
|
|||
objects. If you used these low level APIs to add keys and buttons dynamically,
|
||||
please migrate your code to the corresponding `:append_` and `:remove_`
|
||||
client methods.
|
||||
* `beautiful.border_width` and `beautiful.border_color` are now honored even
|
||||
when the part related to borders is removed from `rc.lua`. Set them
|
||||
appropriately in your theme or disconnect the default `request::border`
|
||||
handler.
|
||||
* The order by which the client rules compute the geometry have changed
|
||||
slightly. The border is now applied before the titlebar offset. This should
|
||||
not affect most users unless you had mitigated the bug it fixes by adding
|
||||
the titlebar offset in your rules.
|
||||
|
||||
<a name="v43"></a>
|
||||
# Awesome window manager framework version 4.3 changes
|
||||
|
|
|
@ -0,0 +1,492 @@
|
|||
*/
|
||||
|
||||
|
||||
/**
|
||||
* The fallback border color when the client is floating.
|
||||
*
|
||||
* @beautiful beautiful.border_color_floating
|
||||
* @param color
|
||||
* @see request::border
|
||||
* @see beautiful.border_color_floating_active
|
||||
* @see beautiful.border_color_floating_normal
|
||||
* @see beautiful.border_color_floating_urgent
|
||||
* @see beautiful.border_color_floating_new
|
||||
*/
|
||||
|
||||
/**
|
||||
* The fallback border color when the client is mazimized.
|
||||
*
|
||||
* @beautiful beautiful.border_color_mazimized
|
||||
* @param color
|
||||
* @see request::border
|
||||
* @see beautiful.border_color_maximized_active
|
||||
* @see beautiful.border_color_maximized_normal
|
||||
* @see beautiful.border_color_maximized_urgent
|
||||
* @see beautiful.border_color_maximized_new
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the client is active.
|
||||
*
|
||||
* @beautiful beautiful.border_color_active
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the client is not active.
|
||||
*
|
||||
* @beautiful beautiful.border_color_normal
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the client has the urgent property set.
|
||||
*
|
||||
* @beautiful beautiful.border_color_urgent
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the client is not active and new.
|
||||
*
|
||||
* @beautiful beautiful.border_color_new
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the (floating) client is active.
|
||||
*
|
||||
* @beautiful beautiful.border_color_floating_active
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the (floating) client is not active.
|
||||
*
|
||||
* @beautiful beautiful.border_color_floating_normal
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the (floating) client has the urgent property set.
|
||||
*
|
||||
* @beautiful beautiful.border_color_floating_urgent
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the (floating) client is not active and new.
|
||||
*
|
||||
* @beautiful beautiful.border_color_floating_new
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the (maximized) client is active.
|
||||
*
|
||||
* @beautiful beautiful.border_color_maximized_active
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the (maximized) client is not active.
|
||||
*
|
||||
* @beautiful beautiful.border_color_maximized_normal
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the (maximized) client has the urgent property set.
|
||||
*
|
||||
* @beautiful beautiful.border_color_maximized_urgent
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the (maximized) client is not active and new.
|
||||
*
|
||||
* @beautiful beautiful.border_color_maximized_new
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the (fullscreen) client is active.
|
||||
*
|
||||
* @beautiful beautiful.border_color_fullscreen_active
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the (fullscreen) client is not active.
|
||||
*
|
||||
* @beautiful beautiful.border_color_fullscreen_normal
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the (fullscreen) client has the urgent property set.
|
||||
*
|
||||
* @beautiful beautiful.border_color_fullscreen_urgent
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the (fullscreen) client is not active and new.
|
||||
*
|
||||
* @beautiful beautiful.border_color_fullscreen_new
|
||||
* @param color
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The fallback border width when nothing else is set.
|
||||
*
|
||||
* @beautiful beautiful.border_width
|
||||
* @param integer
|
||||
* @see request::border
|
||||
* @see beautiful.border_width_floating
|
||||
* @see beautiful.border_width_mazimized
|
||||
* @see beautiful.border_width_floating_active
|
||||
* @see beautiful.border_width_floating_normal
|
||||
* @see beautiful.border_width_floating_urgent
|
||||
* @see beautiful.border_width_floating_new
|
||||
* @see beautiful.border_width_maximized_active
|
||||
* @see beautiful.border_width_maximized_normal
|
||||
* @see beautiful.border_width_maximized_urgent
|
||||
* @see beautiful.border_width_maximized_new
|
||||
*/
|
||||
|
||||
/**
|
||||
* The fallback border width when the client is floating.
|
||||
*
|
||||
* @beautiful beautiful.border_width_floating
|
||||
* @param integer
|
||||
* @see request::border
|
||||
* @see beautiful.border_width_floating_active
|
||||
* @see beautiful.border_width_floating_normal
|
||||
* @see beautiful.border_width_floating_urgent
|
||||
* @see beautiful.border_width_floating_new
|
||||
*/
|
||||
|
||||
/**
|
||||
* The fallback border width when the client is mazimized.
|
||||
*
|
||||
* @beautiful beautiful.border_width_mazimized
|
||||
* @param integer
|
||||
* @see request::border
|
||||
* @see beautiful.border_width_maximized_active
|
||||
* @see beautiful.border_width_maximized_normal
|
||||
* @see beautiful.border_width_maximized_urgent
|
||||
* @see beautiful.border_width_maximized_new
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the normal clients.
|
||||
*
|
||||
* @beautiful beautiful.border_width_normal
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the active client.
|
||||
*
|
||||
* @beautiful beautiful.border_width_active
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the urgent clients.
|
||||
*
|
||||
* @beautiful beautiful.border_width_urgent
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the new clients.
|
||||
*
|
||||
* @beautiful beautiful.border_width_new
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the normal floating clients.
|
||||
*
|
||||
* @beautiful beautiful.border_width_floating_normal
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the active floating client.
|
||||
*
|
||||
* @beautiful beautiful.border_width_floating_active
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the urgent floating clients.
|
||||
*
|
||||
* @beautiful beautiful.border_width_floating_urgent
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the new floating clients.
|
||||
*
|
||||
* @beautiful beautiful.border_width_floating_new
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the normal maximized clients.
|
||||
*
|
||||
* @beautiful beautiful.border_width_maximized_normal
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the active maximized client.
|
||||
*
|
||||
* @beautiful beautiful.border_width_maximized_active
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the urgent maximized clients.
|
||||
*
|
||||
* @beautiful beautiful.border_width_maximized_urgent
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the new maximized clients.
|
||||
*
|
||||
* @beautiful beautiful.border_width_maximized_new
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the normal fullscreen clients.
|
||||
*
|
||||
* @beautiful beautiful.border_width_fullscreen_normal
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the active fullscreen client.
|
||||
*
|
||||
* @beautiful beautiful.border_width_fullscreen_active
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the urgent fullscreen clients.
|
||||
*
|
||||
* @beautiful beautiful.border_width_fullscreen_urgent
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width for the new fullscreen clients.
|
||||
*
|
||||
* @beautiful beautiful.border_width_fullscreen_new
|
||||
* @param integer
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the normal clients.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_normal
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the active client.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_active
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the urgent clients.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_urgent
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the new clients.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_new
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the normal floating clients.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_floating_normal
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the active floating client.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_floating_active
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the urgent floating clients.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_floating_urgent
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the new floating clients.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_floating_new
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the normal maximized clients.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_maximized_normal
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the active maximized client.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_maximized_active
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the urgent maximized clients.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_maximized_urgent
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the new maximized clients.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_maximized_new
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
/**
|
||||
* The client opacity for the normal fullscreen clients.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_fullscreen_normal
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the active fullscreen client.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_fullscreen_active
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the urgent fullscreen clients.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_fullscreen_urgent
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client opacity for the new fullscreen clients.
|
||||
*
|
||||
* A number between 0 and 1.
|
||||
*
|
||||
* @beautiful beautiful.opacity_fullscreen_new
|
||||
* @param[opt=1] number
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The marked clients border color.
|
||||
* Note that only solid colors are supported.
|
||||
* @beautiful beautiful.border_marked
|
||||
* @param color
|
||||
*/
|
||||
|
||||
/*
|
|
@ -688,6 +688,12 @@ function client.object.set_floating(c, s)
|
|||
c:geometry(client.property.get(c, "floating_geometry"))
|
||||
end
|
||||
c.screen = scr
|
||||
|
||||
if s then
|
||||
c:emit_signal("request::border", "floating", {})
|
||||
else
|
||||
c:emit_signal("request::border", (c.active and "" or "in").."active", {})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -834,6 +840,17 @@ local function update_implicitly_floating(c)
|
|||
if cur ~= new then
|
||||
client.property.set(c, "_implicitly_floating", new)
|
||||
c:emit_signal("property::floating")
|
||||
|
||||
-- Don't send the border signals as they would be sent twice (with this
|
||||
-- one having the wrong context). There is some `property::` signal
|
||||
-- sent before `request::manage`.
|
||||
if client.property.get(c, "_border_init") then
|
||||
if cur then
|
||||
c:emit_signal("request::border", "floating", {})
|
||||
else
|
||||
c:emit_signal("request::border", (c.active and "" or "in").."active", {})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1389,6 +1406,19 @@ function client.object.set_shape(self, shape)
|
|||
set_shape(self)
|
||||
end
|
||||
|
||||
-- Proxy those properties to decorate their accessors with an extra flag to
|
||||
-- define when they are set by the user. This allows to "manage" the value of
|
||||
-- those properties internally until they are manually overridden.
|
||||
for _, prop in ipairs { "border_width", "border_color", "opacity" } do
|
||||
client.object["get_"..prop] = function(self)
|
||||
return self["_"..prop]
|
||||
end
|
||||
client.object["set_"..prop] = function(self, value)
|
||||
self._private["_user_"..prop] = true
|
||||
self["_"..prop] = value
|
||||
end
|
||||
end
|
||||
|
||||
--- Activate (focus) a client.
|
||||
--
|
||||
-- This method is the correct way to focus a client. While
|
||||
|
@ -1531,7 +1561,9 @@ function client.object.set_active(c, value)
|
|||
end
|
||||
end
|
||||
|
||||
-- Register standards signals
|
||||
capi.client.connect_signal("property::active", function(c)
|
||||
c:emit_signal("request::border", (c.active and "" or "in").."active", {})
|
||||
end)
|
||||
|
||||
--- The last geometry when client was floating.
|
||||
-- @signal property::floating_geometry
|
||||
|
@ -1547,6 +1579,21 @@ end
|
|||
--- The client unmarked signal.
|
||||
-- @deprecatedsignal unmarked
|
||||
|
||||
--- Emited when the border client might need to be update.
|
||||
--
|
||||
-- The context are:
|
||||
--
|
||||
-- * **added**: When a new client is created.
|
||||
-- * **active**: When client gains the focus (or stop being urgent/floating
|
||||
-- but is active).
|
||||
-- * **inactive**: When client loses the focus (or stop being urgent/floating
|
||||
-- and is not active.
|
||||
-- * **urgent**: When a client becomes urgent.
|
||||
-- * **floating**: When the floating or maximization state changes.
|
||||
--
|
||||
-- @signal request::border
|
||||
-- @see awful.ewmh.update_border
|
||||
|
||||
-- Add clients during startup to focus history.
|
||||
-- This used to happen through ewmh.activate, but that only handles visible
|
||||
-- clients now.
|
||||
|
@ -1561,6 +1608,9 @@ capi.client.connect_signal("request::manage", function (c)
|
|||
if awesome.startup then
|
||||
client.focus.history.add(c)
|
||||
end
|
||||
|
||||
client.property.set(c, "_border_init", true)
|
||||
c:emit_signal("request::border", "added", {})
|
||||
end)
|
||||
capi.client.connect_signal("request::unmanage", client.focus.history.delete)
|
||||
|
||||
|
|
|
@ -63,9 +63,24 @@ end
|
|||
-- @client c The client object.
|
||||
-- @param prop The property which is updated.
|
||||
function urgent.add(c, prop)
|
||||
if type(c) == "client" and prop == "urgent" and c.urgent then
|
||||
assert(
|
||||
c.urgent ~= nil,
|
||||
"`awful.client.urgent.add()` takes a client as first parameter"
|
||||
)
|
||||
|
||||
if prop == "urgent" and c.urgent then
|
||||
table.insert(data, c)
|
||||
end
|
||||
|
||||
if c.urgent then
|
||||
c:emit_signal("request::border", "urgent", {})
|
||||
else
|
||||
c:emit_signal(
|
||||
"request::border",
|
||||
(c.active and "" or "in").."active",
|
||||
{}
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
--- Remove client from urgent stack.
|
||||
|
|
|
@ -17,6 +17,7 @@ local asuit = require("awful.layout.suit")
|
|||
local beautiful = require("beautiful")
|
||||
local alayout = require("awful.layout")
|
||||
local atag = require("awful.tag")
|
||||
local gdebug = require("gears.debug")
|
||||
|
||||
local ewmh = {
|
||||
generic_activate_filters = {},
|
||||
|
@ -453,6 +454,158 @@ ewmh.add_activate_filter(function(c)
|
|||
end
|
||||
end, "mouse_enter")
|
||||
|
||||
--- The default client `request::border` handler.
|
||||
--
|
||||
-- To replace this handler with your own, use:
|
||||
--
|
||||
-- client.disconnect_signal("request::border", awful.ewmh.update_border)
|
||||
--
|
||||
-- The default implementation chooses from dozens beautiful theme variables
|
||||
-- depending if the client is tiled, floating, maximized and then from its state
|
||||
-- (urgent, new, active, normal)
|
||||
--
|
||||
-- @signalhandler awful.ewmh.update_border
|
||||
-- @usebeautiful beautiful.border_color_active
|
||||
-- @usebeautiful beautiful.border_color_normal
|
||||
-- @usebeautiful beautiful.border_color_new
|
||||
-- @usebeautiful beautiful.border_color_urgent
|
||||
-- @usebeautiful beautiful.border_color_floating
|
||||
-- @usebeautiful beautiful.border_color_floating_active
|
||||
-- @usebeautiful beautiful.border_color_floating_normal
|
||||
-- @usebeautiful beautiful.border_color_floating_new
|
||||
-- @usebeautiful beautiful.border_color_floating_urgent
|
||||
-- @usebeautiful beautiful.border_color_maximized
|
||||
-- @usebeautiful beautiful.border_color_maximized_active
|
||||
-- @usebeautiful beautiful.border_color_maximized_normal
|
||||
-- @usebeautiful beautiful.border_color_maximized_new
|
||||
-- @usebeautiful beautiful.border_color_maximized_urgent
|
||||
-- @usebeautiful beautiful.border_color_fullscreen
|
||||
-- @usebeautiful beautiful.border_color_fullscreen_active
|
||||
-- @usebeautiful beautiful.border_color_fullscreen_normal
|
||||
-- @usebeautiful beautiful.border_color_fullscreen_new
|
||||
-- @usebeautiful beautiful.border_color_fullscreen_urgent
|
||||
-- @usebeautiful beautiful.border_width_active
|
||||
-- @usebeautiful beautiful.border_width_normal
|
||||
-- @usebeautiful beautiful.border_width_new
|
||||
-- @usebeautiful beautiful.border_width_urgent
|
||||
-- @usebeautiful beautiful.border_width_floating
|
||||
-- @usebeautiful beautiful.border_width_floating_active
|
||||
-- @usebeautiful beautiful.border_width_floating_normal
|
||||
-- @usebeautiful beautiful.border_width_floating_new
|
||||
-- @usebeautiful beautiful.border_width_floating_urgent
|
||||
-- @usebeautiful beautiful.border_width_maximized
|
||||
-- @usebeautiful beautiful.border_width_maximized_active
|
||||
-- @usebeautiful beautiful.border_width_maximized_normal
|
||||
-- @usebeautiful beautiful.border_width_maximized_new
|
||||
-- @usebeautiful beautiful.border_width_maximized_urgent
|
||||
-- @usebeautiful beautiful.border_width_fullscreen
|
||||
-- @usebeautiful beautiful.border_width_fullscreen_active
|
||||
-- @usebeautiful beautiful.border_width_fullscreen_normal
|
||||
-- @usebeautiful beautiful.border_width_fullscreen_new
|
||||
-- @usebeautiful beautiful.border_width_fullscreen_urgent
|
||||
-- @usebeautiful beautiful.opacity_floating
|
||||
-- @usebeautiful beautiful.opacity_floating_active
|
||||
-- @usebeautiful beautiful.opacity_floating_normal
|
||||
-- @usebeautiful beautiful.opacity_floating_new
|
||||
-- @usebeautiful beautiful.opacity_floating_urgent
|
||||
-- @usebeautiful beautiful.opacity_maximized
|
||||
-- @usebeautiful beautiful.opacity_maximized_active
|
||||
-- @usebeautiful beautiful.opacity_maximized_normal
|
||||
-- @usebeautiful beautiful.opacity_maximized_new
|
||||
-- @usebeautiful beautiful.opacity_maximized_urgent
|
||||
-- @usebeautiful beautiful.opacity_fullscreen
|
||||
-- @usebeautiful beautiful.opacity_fullscreen_active
|
||||
-- @usebeautiful beautiful.opacity_fullscreen_normal
|
||||
-- @usebeautiful beautiful.opacity_fullscreen_new
|
||||
-- @usebeautiful beautiful.opacity_fullscreen_urgent
|
||||
-- @usebeautiful beautiful.opacity_active
|
||||
-- @usebeautiful beautiful.opacity_normal
|
||||
-- @usebeautiful beautiful.opacity_new
|
||||
-- @usebeautiful beautiful.opacity_urgent
|
||||
|
||||
function ewmh.update_border(c, context)
|
||||
local suffix, fallback = "", ""
|
||||
|
||||
-- Add the sub-namespace.
|
||||
if c.fullscreen then
|
||||
suffix, fallback = "_fullscreen", "_fullscreen"
|
||||
elseif c.maximized then
|
||||
suffix, fallback = "_maximized", "_maximized"
|
||||
elseif c.floating then
|
||||
suffix, fallback = "_floating", "_floating"
|
||||
end
|
||||
|
||||
-- Add the state suffix.
|
||||
if c.urgent then
|
||||
suffix = suffix .. "_urgent"
|
||||
elseif c.active then
|
||||
suffix = suffix .. "_active"
|
||||
elseif context == "added" then
|
||||
suffix = suffix .. "_new"
|
||||
else
|
||||
suffix = suffix .. "_normal"
|
||||
end
|
||||
|
||||
if not c._private._user_border_width then
|
||||
c._border_width = beautiful["border_width"..suffix]
|
||||
or beautiful["border_width"..fallback]
|
||||
or beautiful.border_width
|
||||
end
|
||||
|
||||
if not c._private._user_border_color then
|
||||
-- First, check marked clients. This is a concept that should probably
|
||||
-- never have been added to the core. The documentation claims it works,
|
||||
-- even if it has been broken for 90% of AwesomeWM releases ever since
|
||||
-- it was added.
|
||||
if c.marked and beautiful.border_marked then
|
||||
c._border_color = beautiful.border_marked
|
||||
return
|
||||
end
|
||||
|
||||
local tv = beautiful["border_color"..suffix]
|
||||
|
||||
if fallback ~= "" and not tv then
|
||||
tv = beautiful["border_color"..fallback]
|
||||
end
|
||||
|
||||
-- The old theme variable did not have "color" in its name.
|
||||
if (not tv) and beautiful.border_normal and (not c.active) then
|
||||
gdebug.deprecate(
|
||||
"Use `beautiful.border_color_normal` instead of `beautiful.border_normal`",
|
||||
{deprecated_in=5}
|
||||
)
|
||||
tv = beautiful.border_normal
|
||||
elseif (not tv) and beautiful.border_focus then
|
||||
gdebug.deprecate(
|
||||
"Use `beautiful.border_color_active` instead of `beautiful.border_focus`",
|
||||
{deprecated_in=5}
|
||||
)
|
||||
tv = beautiful.border_focus
|
||||
end
|
||||
|
||||
if not tv then
|
||||
tv = beautiful.border_color
|
||||
end
|
||||
|
||||
if tv then
|
||||
c._border_color = tv
|
||||
end
|
||||
end
|
||||
|
||||
if not c._private._user_opacity then
|
||||
local tv = beautiful["opacity"..suffix]
|
||||
|
||||
if fallback ~= "" and not tv then
|
||||
tv = beautiful["opacity"..fallback]
|
||||
end
|
||||
|
||||
if tv then
|
||||
c._opacity = tv
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
client.connect_signal("request::border", ewmh.update_border)
|
||||
client.connect_signal("request::activate", ewmh.activate)
|
||||
client.connect_signal("request::tag", ewmh.tag)
|
||||
client.connect_signal("request::urgent", ewmh.urgent)
|
||||
|
|
|
@ -119,8 +119,8 @@ local function load_theme(a, b)
|
|||
local fallback = beautiful.get()
|
||||
if a.reset then b = fallback end
|
||||
if a == "reset" then a = fallback end
|
||||
ret.border = a.border_color or b.menu_border_color or b.border_normal or
|
||||
fallback.menu_border_color or fallback.border_normal
|
||||
ret.border = a.border_color or b.menu_border_color or b.border_color_normal or
|
||||
fallback.menu_border_color or fallback.border_color_normal
|
||||
ret.border_width= a.border_width or b.menu_border_width or b.border_width or
|
||||
fallback.menu_border_width or fallback.border_width or dpi(0)
|
||||
ret.fg_focus = a.fg_focus or b.menu_fg_focus or b.fg_focus or
|
||||
|
|
|
@ -708,7 +708,7 @@ local function get_relative_regions(geo, mode, is_absolute)
|
|||
-- Detect various types of geometry table and (try) to get rid of the
|
||||
-- differences so the code below don't have to care anymore.
|
||||
if geo.drawin then
|
||||
bw, dgeo = geo.drawin.border_width, geo.drawin:geometry()
|
||||
bw, dgeo = geo.drawin._border_width, geo.drawin:geometry()
|
||||
elseif geo.drawable and geo.drawable.get_wibox then
|
||||
bw = geo.drawable.get_wibox().border_width
|
||||
dgeo = geo.drawable.get_wibox():geometry()
|
||||
|
|
|
@ -538,6 +538,12 @@ crules._execute = function(_, c, props, callbacks)
|
|||
props.keys = props.keys or keys
|
||||
props.buttons = props.buttons or btns
|
||||
|
||||
-- Border width will also cause geometry related properties to fail
|
||||
if props.border_width then
|
||||
c.border_width = type(props.border_width) == "function" and
|
||||
props.border_width(c, props) or props.border_width
|
||||
end
|
||||
|
||||
-- This has to be done first, as it will impact geometry related props.
|
||||
if props.titlebars_enabled and (type(props.titlebars_enabled) ~= "function"
|
||||
or props.titlebars_enabled(c,props)) then
|
||||
|
@ -545,12 +551,6 @@ crules._execute = function(_, c, props, callbacks)
|
|||
c._request_titlebars_called = true
|
||||
end
|
||||
|
||||
-- Border width will also cause geometry related properties to fail
|
||||
if props.border_width then
|
||||
c.border_width = type(props.border_width) == "function" and
|
||||
props.border_width(c, props) or props.border_width
|
||||
end
|
||||
|
||||
-- Size hints will be re-applied when setting width/height unless it is
|
||||
-- disabled first
|
||||
if props.size_hints_honor ~= nil then
|
||||
|
|
|
@ -694,7 +694,7 @@ function tooltip.new(args)
|
|||
or beautiful.bg_focus or "#ffcb60"
|
||||
local border_width = args.border_width or beautiful.tooltip_border_width or 0
|
||||
local border_color = args.border_color or beautiful.tooltip_border_color
|
||||
or beautiful.border_normal or "#ffcb60"
|
||||
or beautiful.border_color_normal or "#ffcb60"
|
||||
|
||||
-- Set wibox default properties
|
||||
self.wibox_properties = {
|
||||
|
|
|
@ -131,7 +131,7 @@ local function parse_cell_options(cell, args)
|
|||
elseif prop == 'border_width' then
|
||||
default = beautiful.border_width or 0
|
||||
elseif prop == 'border_color' then
|
||||
default = beautiful.border_normal or beautiful.fg_normal
|
||||
default = beautiful.border_color_normal or beautiful.fg_normal
|
||||
end
|
||||
|
||||
-- Get default
|
||||
|
|
|
@ -132,23 +132,12 @@ local active_font
|
|||
-- @beautiful beautiful.useless_gap
|
||||
-- @param[opt=0] number
|
||||
|
||||
--- The client border width.
|
||||
--- The fallback border width.
|
||||
-- @beautiful beautiful.border_width
|
||||
-- @param number
|
||||
|
||||
--- The default clients border color.
|
||||
-- Note that only solid colors are supported.
|
||||
-- @beautiful beautiful.border_normal
|
||||
-- @param color
|
||||
|
||||
--- The focused client border color.
|
||||
-- Note that only solid colors are supported.
|
||||
-- @beautiful beautiful.border_focus
|
||||
-- @param color
|
||||
|
||||
--- The marked clients border color.
|
||||
-- Note that only solid colors are supported.
|
||||
-- @beautiful beautiful.border_marked
|
||||
--- The fallback border color.
|
||||
-- @beautiful beautiful.border_color
|
||||
-- @param color
|
||||
|
||||
--- The wallpaper path.
|
||||
|
|
|
@ -630,7 +630,7 @@ end
|
|||
-- @string[opt=`beautiful.notification_fg` or `beautiful.fg_focus` or `'#ffffff'`] args.fg Foreground color.
|
||||
-- @string[opt=`beautiful.notification_fg` or `beautiful.bg_focus` or `'#535d6c'`] args.bg Background color.
|
||||
-- @int[opt=`beautiful.notification_border_width` or 1] args.border_width Border width.
|
||||
-- @string[opt=`beautiful.notification_border_color` or `beautiful.border_focus` or `'#535d6c'`] args.border_color Border color.
|
||||
-- @string[opt=`beautiful.notification_border_color` or `beautiful.border_color_active` or `'#535d6c'`] args.border_color Border color.
|
||||
-- @tparam[opt=`beautiful.notification_shape`] gears.shape args.shape Widget shape.
|
||||
-- @tparam[opt=`beautiful.notification_opacity`] gears.opacity args.opacity Widget opacity.
|
||||
-- @tparam[opt=`beautiful.notification_margin`] gears.margin args.margin Widget margin.
|
||||
|
|
|
@ -777,7 +777,7 @@ end
|
|||
-- @string[opt=`beautiful.notification_fg` or `beautiful.bg_focus` or `'#535d6c'`] args.bg Background color.
|
||||
-- @int[opt=`beautiful.notification_border_width` or 1] args.border_width Border width.
|
||||
-- @string[opt=`beautiful.notification_border_color` or
|
||||
-- `beautiful.border_focus` or `'#535d6c'`] args.border_color Border color.
|
||||
-- `beautiful.border_color_active` or `'#535d6c'`] args.border_color Border color.
|
||||
-- @tparam[opt=`beautiful.notification_shape`] gears.shape args.shape Widget shape.
|
||||
-- @tparam[opt=`beautiful.notification_opacity`] gears.opacity args.opacity Widget opacity.
|
||||
-- @tparam[opt=`beautiful.notification_margin`] gears.margin args.margin Widget margin.
|
||||
|
|
|
@ -221,7 +221,20 @@ function wibox:get_children_by_id(name)
|
|||
return {}
|
||||
end
|
||||
|
||||
for _, k in pairs{ "struts", "geometry", "get_xproperty", "set_xproperty" } do
|
||||
-- Proxy those properties to decorate their accessors with an extra flag to
|
||||
-- define when they are set by the user. This allows to "manage" the value of
|
||||
-- those properties internally until they are manually overridden.
|
||||
for _, prop in ipairs { "border_width", "border_color", "opacity" } do
|
||||
wibox["get_"..prop] = function(self)
|
||||
return self["_"..prop]
|
||||
end
|
||||
wibox["set_"..prop] = function(self, value)
|
||||
self._private["_user_"..prop] = true
|
||||
self["_"..prop] = value
|
||||
end
|
||||
end
|
||||
|
||||
for _, k in ipairs{ "struts", "geometry", "get_xproperty", "set_xproperty" } do
|
||||
wibox[k] = function(self, ...)
|
||||
return self.drawin[k](self.drawin, ...)
|
||||
end
|
||||
|
@ -362,6 +375,14 @@ local function new(args)
|
|||
ret.shape = args.shape
|
||||
end
|
||||
|
||||
if args.border_width then
|
||||
ret.border_width = args.border_width
|
||||
end
|
||||
|
||||
if args.border_color then
|
||||
ret.border_color = args.border_color
|
||||
end
|
||||
|
||||
if args.input_passthrough then
|
||||
ret.input_passthrough = args.input_passthrough
|
||||
end
|
||||
|
|
|
@ -568,20 +568,19 @@
|
|||
* The client border width.
|
||||
* @property border_width
|
||||
* @param integer
|
||||
* @propemits false false
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border color.
|
||||
*
|
||||
* **Signal:**
|
||||
*
|
||||
* * *property::border\_color*
|
||||
*
|
||||
* @see gears.color
|
||||
*
|
||||
* @property border_color
|
||||
* @param pattern Any string, gradients and patterns will be converted to a
|
||||
* @param color Any string, gradients and patterns will be converted to a
|
||||
* cairo pattern.
|
||||
* @propemits false false
|
||||
* @see request::border
|
||||
* @see gears.color
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -593,6 +592,8 @@
|
|||
*
|
||||
* @property urgent
|
||||
* @param boolean
|
||||
* @propemits false false
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -619,6 +620,8 @@
|
|||
*
|
||||
* @property opacity
|
||||
* @param number Between 0 (transparent) to 1 (opaque)
|
||||
* @propemits false false
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -673,6 +676,8 @@
|
|||
*
|
||||
* @property maximized
|
||||
* @param boolean
|
||||
* @propemits false false
|
||||
* @see request::border
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -976,27 +981,6 @@
|
|||
* @see client.geometry
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the client is focused.
|
||||
*
|
||||
* @beautiful beautiful.border_focus
|
||||
* @param string
|
||||
*/
|
||||
|
||||
/**
|
||||
* The border color when the client is not focused.
|
||||
*
|
||||
* @beautiful beautiful.border_normal
|
||||
* @param string
|
||||
*/
|
||||
|
||||
/**
|
||||
* The client border width.
|
||||
*
|
||||
* @beautiful beautiful.border_width
|
||||
* @param integer
|
||||
*/
|
||||
|
||||
/** Return client struts (reserved space at the edge of the screen).
|
||||
*
|
||||
* @param struts A table with new strut values, or none.
|
||||
|
@ -4095,4 +4079,6 @@ client_class_setup(lua_State *L)
|
|||
|
||||
/* @DOC_cobject_COMMON@ */
|
||||
|
||||
/* @DOC_client_theme_COMMON@ */
|
||||
|
||||
// vim: filetype=c:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|
||||
|
|
|
@ -530,15 +530,15 @@ window_class_setup(lua_State *L)
|
|||
NULL,
|
||||
(lua_class_propfunc_t) luaA_window_get_window,
|
||||
NULL);
|
||||
luaA_class_add_property(&window_class, "opacity",
|
||||
luaA_class_add_property(&window_class, "_opacity",
|
||||
(lua_class_propfunc_t) luaA_window_set_opacity,
|
||||
(lua_class_propfunc_t) luaA_window_get_opacity,
|
||||
(lua_class_propfunc_t) luaA_window_set_opacity);
|
||||
luaA_class_add_property(&window_class, "border_color",
|
||||
luaA_class_add_property(&window_class, "_border_color",
|
||||
(lua_class_propfunc_t) luaA_window_set_border_color,
|
||||
(lua_class_propfunc_t) luaA_window_get_border_color,
|
||||
(lua_class_propfunc_t) luaA_window_set_border_color);
|
||||
luaA_class_add_property(&window_class, "border_width",
|
||||
luaA_class_add_property(&window_class, "_border_width",
|
||||
(lua_class_propfunc_t) luaA_window_set_border_width,
|
||||
(lua_class_propfunc_t) luaA_window_get_border_width,
|
||||
(lua_class_propfunc_t) luaA_window_set_border_width);
|
||||
|
|
|
@ -70,7 +70,7 @@ function client.gen_fake(args)
|
|||
ret.type = "normal"
|
||||
ret.valid = true
|
||||
ret.size_hints = {}
|
||||
ret.border_width = 1
|
||||
ret._border_width = 1
|
||||
ret.icon_sizes = {{16,16}}
|
||||
ret.name = "Example Client"
|
||||
ret._private._struts = { top = 0, right = 0, left = 0, bottom = 0 }
|
||||
|
|
|
@ -15,7 +15,7 @@ local function new_drawin(_, args)
|
|||
ret.y=0
|
||||
ret.width=1
|
||||
ret.height=1
|
||||
ret.border_width=0
|
||||
ret._border_width=0
|
||||
ret.ontop = false
|
||||
ret.below = false
|
||||
ret.above = false
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
local awful = require("awful")
|
||||
local gears = require("gears")
|
||||
local beautiful = require("beautiful")
|
||||
local test_client = require("_client")
|
||||
local runner = require("_runner")
|
||||
|
||||
|
@ -14,8 +12,9 @@ end
|
|||
|
||||
local tests = {}
|
||||
|
||||
local tb_height = gears.math.round(beautiful.get_font_height() * 1.5)
|
||||
local border_width = beautiful.border_width
|
||||
-- Set it to something different than the default to make sure it doesn't change
|
||||
-- due to some request::border.
|
||||
local border_width = 3
|
||||
|
||||
local class = "test-awful-placement"
|
||||
local rule = {
|
||||
|
@ -24,6 +23,7 @@ local rule = {
|
|||
},
|
||||
properties = {
|
||||
floating = true,
|
||||
border_width = border_width,
|
||||
placement = awful.placement.no_overlap + awful.placement.no_offscreen
|
||||
}
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ end
|
|||
local function default_test(c, geometry)
|
||||
check_geometry(c, geometry.expected_x, geometry.expected_y,
|
||||
geometry.expected_width or geometry.width,
|
||||
geometry.expected_height or (geometry.height + tb_height))
|
||||
geometry.expected_height or (geometry.height))
|
||||
return true
|
||||
end
|
||||
|
||||
|
@ -242,7 +242,7 @@ for _, tag_num in ipairs{1, 2, 3} do
|
|||
width = wa.width - 50,
|
||||
height = 100,
|
||||
expected_x = wa.x,
|
||||
expected_y = wa.y + tb_height + 2*border_width + 100
|
||||
expected_y = wa.y + 2*border_width + 100
|
||||
}
|
||||
end
|
||||
}
|
||||
|
@ -258,7 +258,7 @@ for _, tag_num in ipairs{1, 2, 3} do
|
|||
width = wa.width - 10,
|
||||
height = wa.height - 50,
|
||||
expected_x = wa.x,
|
||||
expected_y = wa.y + 50 - 2*border_width - tb_height
|
||||
expected_y = (wa.y + wa.height) - (wa.height - 50 + 2*border_width)
|
||||
}
|
||||
end
|
||||
}
|
||||
|
@ -270,7 +270,7 @@ for _, tag_num in ipairs{1, 2, 3} do
|
|||
return {
|
||||
width = wa.width - 10,
|
||||
height = wa.height - 50,
|
||||
expected_x = wa.x + 10 - 2*border_width,
|
||||
expected_x = (wa.x + wa.width) - (wa.width - 10 + 2*border_width),
|
||||
expected_y = wa.y
|
||||
}
|
||||
end
|
||||
|
@ -283,8 +283,8 @@ for _, tag_num in ipairs{1, 2, 3} do
|
|||
return {
|
||||
width = wa.width - 10,
|
||||
height = wa.height - 50,
|
||||
expected_x = wa.x + 10 - 2*border_width,
|
||||
expected_y = wa.y + 50 - 2*border_width - tb_height
|
||||
expected_x = (wa.x + wa.width ) - (wa.width - 10 + 2*border_width),
|
||||
expected_y = (wa.y + wa.height) - (wa.height - 50 + 2*border_width)
|
||||
}
|
||||
end
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
local awful = require("awful")
|
||||
local gears = require("gears")
|
||||
local beautiful = require("beautiful")
|
||||
local test_client = require("_client")
|
||||
local unpack = unpack or table.unpack -- luacheck: globals unpack (compatibility with Lua 5.1)
|
||||
|
||||
|
@ -10,7 +9,6 @@ local message_printed = false
|
|||
-- Magic table to store tests
|
||||
local tests = {}
|
||||
|
||||
local tb_height = gears.math.round(beautiful.get_font_height() * 1.5)
|
||||
-- local border_width = beautiful.border_width
|
||||
|
||||
-- Detect "request::manage" race conditions
|
||||
|
@ -74,7 +72,7 @@ test_rule {
|
|||
|
||||
-- The size should not have changed
|
||||
local geo = get_client_by_class(class):geometry()
|
||||
assert(geo.width == 100 and geo.height == 100+tb_height)
|
||||
assert(geo.width == 100 and geo.height == 100)
|
||||
|
||||
return true
|
||||
end
|
||||
|
|
|
@ -5,8 +5,8 @@ local runner = require("_runner")
|
|||
local awful = require("awful")
|
||||
|
||||
local beautiful = require("beautiful")
|
||||
beautiful.border_normal = "#0000ff"
|
||||
beautiful.border_focus = "#00ff00"
|
||||
beautiful.border_color_normal = "#0000ff"
|
||||
beautiful.border_color_active = "#00ff00"
|
||||
|
||||
client.connect_signal("focus", function(c)
|
||||
c.border_color = "#ff0000"
|
||||
|
|
|
@ -17,7 +17,7 @@ awful.rules.rules = {
|
|||
y = 0,
|
||||
width = 100,
|
||||
height = 100,
|
||||
border_color = beautiful.border_normal
|
||||
border_color = beautiful.border_color_normal
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -103,7 +103,7 @@ local steps = {
|
|||
function()
|
||||
local c = client.get()[1]
|
||||
|
||||
assert(not pcall(function() c.border_width = -2000 end))
|
||||
assert(not pcall(function() c._border_width = -2000 end))
|
||||
assert(c.border_width==0)
|
||||
|
||||
c.border_width = 125
|
||||
|
|
|
@ -26,8 +26,8 @@ theme.fg_minimize = "#ffffff"
|
|||
|
||||
theme.useless_gap = dpi(0)
|
||||
theme.border_width = dpi(1)
|
||||
theme.border_normal = "#000000"
|
||||
theme.border_focus = "#535d6c"
|
||||
theme.border_color_normal = "#000000"
|
||||
theme.border_color_active = "#535d6c"
|
||||
theme.border_marked = "#91231c"
|
||||
|
||||
-- There are other variable sets
|
||||
|
|
|
@ -120,9 +120,9 @@ theme.fg_minimize = mix(theme.wibar_fg, theme.wibar_bg, 0.9)
|
|||
|
||||
theme.bg_systray = theme.wibar_bg
|
||||
|
||||
theme.border_normal = theme.gtk.wm_border_unfocused_color
|
||||
theme.border_focus = theme.gtk.wm_border_focused_color
|
||||
theme.border_marked = theme.gtk.success_color
|
||||
theme.border_color_normal = theme.gtk.wm_border_unfocused_color
|
||||
theme.border_color_active = theme.gtk.wm_border_focused_color
|
||||
theme.border_color_marked = theme.gtk.success_color
|
||||
|
||||
theme.border_width = dpi(theme.gtk.button_border_width or 1)
|
||||
theme.border_radius = theme.gtk.button_border_radius
|
||||
|
|
|
@ -27,9 +27,9 @@ theme.fg_minimize = "#2e3436"
|
|||
|
||||
theme.useless_gap = dpi(0)
|
||||
theme.border_width = dpi(2)
|
||||
theme.border_normal = "#dae3e0"
|
||||
theme.border_focus = "#729fcf"
|
||||
theme.border_marked = "#eeeeec"
|
||||
theme.border_color_normal = "#dae3e0"
|
||||
theme.border_color_active = "#729fcf"
|
||||
theme.border_color_marked = "#eeeeec"
|
||||
|
||||
-- IMAGES
|
||||
theme.layout_fairh = themes_path .. "sky/layouts/fairh.png"
|
||||
|
|
|
@ -29,9 +29,9 @@ theme.fg_minimize = theme.bg_normal
|
|||
|
||||
theme.useless_gap = dpi(3)
|
||||
theme.border_width = dpi(2)
|
||||
theme.border_normal = xrdb.color0
|
||||
theme.border_focus = theme.bg_focus
|
||||
theme.border_marked = xrdb.color10
|
||||
theme.border_color_normal = xrdb.color0
|
||||
theme.border_color_active = theme.bg_focus
|
||||
theme.border_color_marked = xrdb.color10
|
||||
|
||||
-- There are other variable sets
|
||||
-- overriding the default one when
|
||||
|
|
|
@ -27,9 +27,9 @@ theme.bg_systray = theme.bg_normal
|
|||
-- {{{ Borders
|
||||
theme.useless_gap = dpi(0)
|
||||
theme.border_width = dpi(2)
|
||||
theme.border_normal = "#3F3F3F"
|
||||
theme.border_focus = "#6F6F6F"
|
||||
theme.border_marked = "#CC9393"
|
||||
theme.border_color_normal = "#3F3F3F"
|
||||
theme.border_color_active = "#6F6F6F"
|
||||
theme.border_color_marked = "#CC9393"
|
||||
-- }}}
|
||||
|
||||
-- {{{ Titlebars
|
||||
|
|
Loading…
Reference in New Issue