Hi,

When I commented out 600 and 601 of naughty.lua *before* changing rc.lua, I
got:
naughty.lua:604: bad arg #1 to 'ipairs' (table expected, got nil)
on both screens.

Then, when I added the updated naughy.notify function to rc.lua, I got:
rc.lua:22 attempt to call a nil value (method 'insert')
on only one screen

Ironically, the previous solution would work perfectly if it wasn't for the
error messages (which are critical and have to be clicked away)!
Is there a way to selectively silence the error messages related to
naughty.lua without silencing all errors?

Thanks,
Abe


On Thu, Jun 4, 2015 at 2:08 AM, Alexis BRENON <[email protected]>
wrote:

> Hum, well, you will have to update a little bit your config!
>
> First, the default naughty.notify function returns a table representing
> the notification, but your new notify function doesn't, so update it :
>
> naughty.notify_ = naughty.notify
> naughty.notify = function (args,...)
>   notifications = {}
>    for i = 1, screen.count() do
>        args.screen = i
>        notifications:insert(i, naughty.notify_(args,...))
>    end
>    return notifications
> end
>
> Then line 600 you update to something like :
> local notifs = naughty.notify(args)
> local id = {}
> for notif in ipairs(notifs) do
>   id:insert(notif.id)
> end
>
> Nevertheless, I think that you use the id value to replace the
> notification, do you ? In this case, you will have to update again your
> custom notification to handle the case if args.id is a table (instead of
> a number) :
>
> naughty.notify = function (args,...)
>    notifications = {}
>    naughty_args = args
>    for i = 1, screen.count() do
>        if args.replaces_id and type(args.replaces_id) == "table" then
>           naughty_args.replaces_id = args.replaces_id[i]
>        end
>        naughty_args.screen = i
>        notifications:insert(i, naughty.notify_(args,...))
>    end
>    return notifications
> end
>
> Or something like that.
>
> Cheers,
> Alexis
>
> Le mer. 3 juin 2015 à 22:30, Abraham Baker <[email protected]> a
> écrit :
>
>> That actually works, but also generates an error (in the form of a
>> critical notification on both screens) at the same time:
>> /usr/share/awesome/lib/naughty.lua:600: attempt to index a nil value
>>
>> For context, line 600 is:
>> local id = naughty.notify(args).id
>>
>> Looks like this is close to working right! Thanks!
>>
>> On Wed, Jun 3, 2015 at 2:24 PM, Elv1313 . <[email protected]> wrote:
>>
>>> This should help:
>>>
>>> local naughty = require('naughty')
>>> naughty.notify_ = naughty.notify
>>> naughty.notify = function (args,...)
>>>    for i = 1, screen.count() do
>>>        args.screen = i
>>>        naughty.notify_(args,...)
>>>    end
>>> end
>>>
>>> On 3 June 2015 at 10:42, Abraham Baker <[email protected]>
>>> wrote:
>>> > I tried adding that code right after the local naughty =
>>> require("naughty")
>>> > that was already there, but it didn't work and actually stopped any
>>> > notifications from showing on any monitor.
>>> >
>>> > I doubt it was the cause, but some other functions in my rc.lua also
>>> use
>>> > local i as a counter;  these shouldn't interfere with each other as
>>> long as
>>> > they are inside their own functions, right?
>>> >
>>> > Thanks,
>>> > Abe
>>> >
>>> > On Wed, Jun 3, 2015 at 8:20 AM, Alexis BRENON <[email protected]
>>> >
>>> > wrote:
>>> >>
>>> >> Hi Abraham,
>>> >>
>>> >> you have to call the anughty.notift() function twice, once for each
>>> >> screen.
>>> >> Maybe you can define a function which do it for you :
>>> >>
>>> >> local naughty = require('naughty')
>>> >> naughty.notify = function (args)
>>> >> local i = 1
>>> >> while i <= screen.count() do
>>> >>     args.screen = i
>>> >>     naughty.notify(args)
>>> >> end
>>> >> end
>>> >>
>>> >> Or something like that
>>> >>
>>> >> Regards,
>>> >> Alexis
>>> >>
>>> >> Le mer. 3 juin 2015 à 15:13, Abraham Baker <[email protected]>
>>> a
>>> >> écrit :
>>> >>>
>>> >>> Hi,
>>> >>>
>>> >>> I have a standing/sitting monitor arrangement on my desk that makes
>>> it
>>> >>> hard to see notifications on the upper monitor while sitting and
>>> vice versa.
>>> >>> I've been trying to change the default naughty config so
>>> notifications
>>> >>> appear on both monitors at once, but so far I'm only able to just
>>> change
>>> >>> which monitor it shows up on (not both).
>>> >>>
>>> >>> Is there an easy way to have notifications shown on all monitors?
>>> >>>
>>> >>> Thanks,
>>> >>> Abe Baker
>>> >
>>> >
>>>
>>
>>

Reply via email to