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
|
||||
end
|
||||
end
|
||||
|
||||
if appname ~= "" then
|
||||
args.appname = appname
|
||||
args.appname = appname --TODO v6 Remove this.
|
||||
args.app_name = appname
|
||||
end
|
||||
|
||||
local preset = args.preset or cst.config.defaults
|
||||
local notification
|
||||
if actions then
|
||||
|
|
|
@ -17,6 +17,7 @@ local popup = require("awful.popup")
|
|||
local awcommon = require("awful.widget.common")
|
||||
local placement = require("awful.placement")
|
||||
local abutton = require("awful.button")
|
||||
local dpi = require("beautiful").xresources.apply_dpi
|
||||
|
||||
local default_widget = require("naughty.widget._default")
|
||||
|
||||
|
@ -136,9 +137,13 @@ end
|
|||
|
||||
local function generate_widget(args, n)
|
||||
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
|
||||
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
|
||||
|
||||
-- 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)
|
||||
ret._private.args = new_args
|
||||
|
|
|
@ -407,6 +407,31 @@ local notification = {}
|
|||
-- @property clients
|
||||
-- @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
|
||||
-- document all handler extra properties
|
||||
|
||||
|
@ -526,7 +551,8 @@ local properties = {
|
|||
"shape" , "opacity" , "margin" , "ignore_suspend",
|
||||
"destroy" , "preset" , "callback", "actions" ,
|
||||
"run" , "id" , "ignore" , "auto_reset_timeout",
|
||||
"urgency" , "image" , "images" ,
|
||||
"urgency" , "image" , "images" , "widget_template",
|
||||
"max_width", "app_name",
|
||||
}
|
||||
|
||||
for _, prop in ipairs(properties) do
|
||||
|
|
Loading…
Reference in New Issue