naughty: Expose 3 previously internal properties.
* app_name: To be used in filters when no clients are found. * max_width: Allow to set it from the rules, it might be different when a `widget_template` is used. * widget_template: Now it can be set from the rules without further boilerplate code.
This commit is contained in:
parent
e77ca1f4d8
commit
f8cbb54913
|
@ -141,9 +141,12 @@ function notif_methods.Notify(sender, object_path, interface, method, parameters
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if appname ~= "" then
|
if appname ~= "" then
|
||||||
args.appname = appname
|
args.appname = appname --TODO v6 Remove this.
|
||||||
|
args.app_name = appname
|
||||||
end
|
end
|
||||||
|
|
||||||
local preset = args.preset or cst.config.defaults
|
local preset = args.preset or cst.config.defaults
|
||||||
local notification
|
local notification
|
||||||
if actions then
|
if actions then
|
||||||
|
|
|
@ -17,6 +17,7 @@ local popup = require("awful.popup")
|
||||||
local awcommon = require("awful.widget.common")
|
local awcommon = require("awful.widget.common")
|
||||||
local placement = require("awful.placement")
|
local placement = require("awful.placement")
|
||||||
local abutton = require("awful.button")
|
local abutton = require("awful.button")
|
||||||
|
local dpi = require("beautiful").xresources.apply_dpi
|
||||||
|
|
||||||
local default_widget = require("naughty.widget._default")
|
local default_widget = require("naughty.widget._default")
|
||||||
|
|
||||||
|
@ -136,9 +137,13 @@ end
|
||||||
|
|
||||||
local function generate_widget(args, n)
|
local function generate_widget(args, n)
|
||||||
local w = wibox.widget.base.make_widget_from_value(
|
local w = wibox.widget.base.make_widget_from_value(
|
||||||
args.widget_template or default_widget
|
args.widget_template or (n and n.widget_template) or default_widget
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if w.set_width then
|
||||||
|
w:set_width(n.max_width or beautiful.notification_max_width or dpi(500))
|
||||||
|
end
|
||||||
|
|
||||||
-- Call `:set_notification` on all children
|
-- Call `:set_notification` on all children
|
||||||
awcommon._set_common_property(w, "notification", n or args.notification)
|
awcommon._set_common_property(w, "notification", n or args.notification)
|
||||||
|
|
||||||
|
@ -224,7 +229,7 @@ local function new(args)
|
||||||
new_args = args and setmetatable(new_args, {__index = args}) or new_args
|
new_args = args and setmetatable(new_args, {__index = args}) or new_args
|
||||||
|
|
||||||
-- Generate the box before the popup is created to avoid the size changing
|
-- Generate the box before the popup is created to avoid the size changing
|
||||||
new_args.widget = generate_widget(new_args)
|
new_args.widget = generate_widget(new_args, new_args.notification)
|
||||||
|
|
||||||
local ret = popup(new_args)
|
local ret = popup(new_args)
|
||||||
ret._private.args = new_args
|
ret._private.args = new_args
|
||||||
|
|
|
@ -407,6 +407,31 @@ local notification = {}
|
||||||
-- @property clients
|
-- @property clients
|
||||||
-- @param table
|
-- @param table
|
||||||
|
|
||||||
|
--- The maximum popup width.
|
||||||
|
--
|
||||||
|
-- Some notifications have overlong message, cap them to this width. Note that
|
||||||
|
-- this is ignored by `naughty.list.notifications` because it delegate this
|
||||||
|
-- decision to the layout.
|
||||||
|
--
|
||||||
|
-- @property[opt=500] max_width
|
||||||
|
-- @param number
|
||||||
|
|
||||||
|
--- The application name specified by the notification.
|
||||||
|
--
|
||||||
|
-- This can be anything. It is usually less relevant than the `clients`
|
||||||
|
-- property, but can sometime to specified for remote or headless notifications.
|
||||||
|
-- In these case, it helps to triage and detect the notification from the rules.
|
||||||
|
-- @property app_name
|
||||||
|
-- @param string
|
||||||
|
|
||||||
|
--- The widget template used to represent the notification.
|
||||||
|
--
|
||||||
|
-- Some notifications, such as chat messages or music applications are better
|
||||||
|
-- off with a specialized notification widget.
|
||||||
|
--
|
||||||
|
-- @property widget_template
|
||||||
|
-- @param table
|
||||||
|
|
||||||
--FIXME remove the screen attribute, let the handlers decide
|
--FIXME remove the screen attribute, let the handlers decide
|
||||||
-- document all handler extra properties
|
-- document all handler extra properties
|
||||||
|
|
||||||
|
@ -526,7 +551,8 @@ local properties = {
|
||||||
"shape" , "opacity" , "margin" , "ignore_suspend",
|
"shape" , "opacity" , "margin" , "ignore_suspend",
|
||||||
"destroy" , "preset" , "callback", "actions" ,
|
"destroy" , "preset" , "callback", "actions" ,
|
||||||
"run" , "id" , "ignore" , "auto_reset_timeout",
|
"run" , "id" , "ignore" , "auto_reset_timeout",
|
||||||
"urgency" , "image" , "images" ,
|
"urgency" , "image" , "images" , "widget_template",
|
||||||
|
"max_width", "app_name",
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, prop in ipairs(properties) do
|
for _, prop in ipairs(properties) do
|
||||||
|
|
Loading…
Reference in New Issue