Re: Naughty Notifications on multiple monitors
Once again, updating to awesome v3.5.9 led to me needing to re-edit line 600 of naughty.lua. Is there a way I can permanently implement this change, or should I just anticipate this for every update? Thanks, Abe On Wed, Feb 3, 2016 at 8:02 PM, Abraham Baker wrote: > Just in case anyone finds this interesting/useful: > After updating to awesome v3.5.8, I had to re-remove the .id from line 600 > of naughty.lua to avoid the error I got before. > > Re-removing the .id returned the notification behavior to the way it was, > which works really well! > > Abe > > On Fri, Jun 5, 2015 at 11:58 AM, Abraham Baker > wrote: > >> Hi, >> >> Changing naughty.lua:600 to >> local id = naughty.notify(args) --no .id >> results in notifications on all screens + no error! Thanks! >> >> So, for clarification, my naughy.lua now looks like this on line 600: >> local id = naughty.notify(args) >> >> and my rc.lua looks like this where the local naughty module is defined: >> 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 >> >> @David: removing the .id part in naughty.lua:600 is necessary to prevent >> the error that happens when not trying to deal with keeping the id's in a >> table (which is what Alexis was suggesting). If I understand it correctly, >> if you want to be able to change the same notification without creating a >> new one, you have to manage the id's. >> >> e.g. without managing id's, changing the backlight from 0 to 100% might >> result in 100 1% notifications piling up! >> >> However, since I don't use high-frequency notifications on my desktop, I >> can ignore the need for notification id's for now. >> >> Thanks everyone! >> Abe >> >> On Fri, Jun 5, 2015 at 8:31 AM, David Sorkovsky < >> davidsorkov...@hotmail.com> wrote: >> >>> >>> >>> Of I understand the… >>> >>> >>> >>> 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 >>> >>> >>> >>> >>> >>> … code correctly, would you even need to modify naughty.lua? >>> >>> >>> >>> >>> >>> Regards >>> >>> >>> >>> Dave >>> >>> >>> -- >>> >>> *From:* Alexis BRENON [mailto:brenon.ale...@gmail.com] >>> *Sent:* Friday, 5 June 2015 11:07 PM >>> *To:* Abraham Baker >>> *Cc:* Elv1313 .; awesome >>> *Subject:* Re: Naughty Notifications on multiple monitors >>> >>> >>> >>> Instead of hidding the error just replace line 600 from: >>> local id = naughty.notify(args).id >>> >>> to >>> >>> naughty.notify(args) >>> >>> >>> >>> You don't need the id any more if you don't use it. This way, no more >>> error. >>> >>> Le ven. 5 juin 2015 à 14:57, Abraham Baker >>> a écrit : >>> >>> Hi, >>> >>> My goal is to get every notification to show up on all monitors. This >>> isn't critical; it just makes switching between standing/sitting easier. >>> >>> >>> I don't use often-updating notifications, so I (for now) don't care >>> about the notification id's. So, I'm thinking Elv1313's solution + hiding >>> the naughty.lua:600 error would be enough. >>> >>> >>> >>> The relevant part of my rc.lua: >>> >>> -- Standard awesome library >>> local gears = require("gears") >>> local awful = require("awful") >>> awful.rules = require("awful.rules") >>> require("awful.autofocus") >>> -- Widget and layout library >>> local wibox = require("wibox") >>> -- Theme handling library >>> local beautiful = require("beautiful") >>> -- Notification library >>> >>> >>> local naughty = require("naughty") >>> naughty.notify_ = naughty.notify >>> naughty.notify = functio
Re: Naughty Notifications on multiple monitors
Just in case anyone finds this interesting/useful: After updating to awesome v3.5.8, I had to re-remove the .id from line 600 of naughty.lua to avoid the error I got before. Re-removing the .id returned the notification behavior to the way it was, which works really well! Abe On Fri, Jun 5, 2015 at 11:58 AM, Abraham Baker wrote: > Hi, > > Changing naughty.lua:600 to > local id = naughty.notify(args) --no .id > results in notifications on all screens + no error! Thanks! > > So, for clarification, my naughy.lua now looks like this on line 600: > local id = naughty.notify(args) > > and my rc.lua looks like this where the local naughty module is defined: > 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 > > @David: removing the .id part in naughty.lua:600 is necessary to prevent > the error that happens when not trying to deal with keeping the id's in a > table (which is what Alexis was suggesting). If I understand it correctly, > if you want to be able to change the same notification without creating a > new one, you have to manage the id's. > > e.g. without managing id's, changing the backlight from 0 to 100% might > result in 100 1% notifications piling up! > > However, since I don't use high-frequency notifications on my desktop, I > can ignore the need for notification id's for now. > > Thanks everyone! > Abe > > On Fri, Jun 5, 2015 at 8:31 AM, David Sorkovsky < > davidsorkov...@hotmail.com> wrote: > >> >> >> Of I understand the… >> >> >> >> 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 >> >> >> >> >> >> … code correctly, would you even need to modify naughty.lua? >> >> >> >> >> >> Regards >> >> >> >> Dave >> >> >> -- >> >> *From:* Alexis BRENON [mailto:brenon.ale...@gmail.com] >> *Sent:* Friday, 5 June 2015 11:07 PM >> *To:* Abraham Baker >> *Cc:* Elv1313 .; awesome >> *Subject:* Re: Naughty Notifications on multiple monitors >> >> >> >> Instead of hidding the error just replace line 600 from: >> local id = naughty.notify(args).id >> >> to >> >> naughty.notify(args) >> >> >> >> You don't need the id any more if you don't use it. This way, no more >> error. >> >> Le ven. 5 juin 2015 à 14:57, Abraham Baker a >> écrit : >> >> Hi, >> >> My goal is to get every notification to show up on all monitors. This >> isn't critical; it just makes switching between standing/sitting easier. >> >> >> I don't use often-updating notifications, so I (for now) don't care about >> the notification id's. So, I'm thinking Elv1313's solution + hiding the >> naughty.lua:600 error would be enough. >> >> >> >> The relevant part of my rc.lua: >> >> -- Standard awesome library >> local gears = require("gears") >> local awful = require("awful") >> awful.rules = require("awful.rules") >> require("awful.autofocus") >> -- Widget and layout library >> local wibox = require("wibox") >> -- Theme handling library >> local beautiful = require("beautiful") >> -- Notification library >> >> >> 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 >> >> local menubar = require("menubar") >> local revelation=require("revelation") >> -- {{{ Error handling >> -- Check if awesome encountered an error during startup and fell back to >> -- another config (This code will only ever execute for the fallback >> config) >> if awesome.startup_errors then >> naughty.notify({ preset = naughty.config.presets.critical, >> title = "Oops, there were errors during startup!", >> text = awesome.startup_errors }) >> end >> >> -- Handle runtime errors after start
Re: Naughty Notifications on multiple monitors
Hi, Changing naughty.lua:600 to local id = naughty.notify(args) --no .id results in notifications on all screens + no error! Thanks! So, for clarification, my naughy.lua now looks like this on line 600: local id = naughty.notify(args) and my rc.lua looks like this where the local naughty module is defined: 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 @David: removing the .id part in naughty.lua:600 is necessary to prevent the error that happens when not trying to deal with keeping the id's in a table (which is what Alexis was suggesting). If I understand it correctly, if you want to be able to change the same notification without creating a new one, you have to manage the id's. e.g. without managing id's, changing the backlight from 0 to 100% might result in 100 1% notifications piling up! However, since I don't use high-frequency notifications on my desktop, I can ignore the need for notification id's for now. Thanks everyone! Abe On Fri, Jun 5, 2015 at 8:31 AM, David Sorkovsky wrote: > > > Of I understand the… > > > > 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 > > > > > > … code correctly, would you even need to modify naughty.lua? > > > > > > Regards > > > > Dave > > > -- > > *From:* Alexis BRENON [mailto:brenon.ale...@gmail.com] > *Sent:* Friday, 5 June 2015 11:07 PM > *To:* Abraham Baker > *Cc:* Elv1313 .; awesome > *Subject:* Re: Naughty Notifications on multiple monitors > > > > Instead of hidding the error just replace line 600 from: > local id = naughty.notify(args).id > > to > > naughty.notify(args) > > > > You don't need the id any more if you don't use it. This way, no more > error. > > Le ven. 5 juin 2015 à 14:57, Abraham Baker a > écrit : > >Hi, > > My goal is to get every notification to show up on all monitors. This > isn't critical; it just makes switching between standing/sitting easier. > > > I don't use often-updating notifications, so I (for now) don't care about > the notification id's. So, I'm thinking Elv1313's solution + hiding the > naughty.lua:600 error would be enough. > > > > The relevant part of my rc.lua: > > -- Standard awesome library > local gears = require("gears") > local awful = require("awful") > awful.rules = require("awful.rules") > require("awful.autofocus") > -- Widget and layout library > local wibox = require("wibox") > -- Theme handling library > local beautiful = require("beautiful") > -- Notification library > > > 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 > > local menubar = require("menubar") > local revelation=require("revelation") > -- {{{ Error handling > -- Check if awesome encountered an error during startup and fell back to > -- another config (This code will only ever execute for the fallback > config) > if awesome.startup_errors then > naughty.notify({ preset = naughty.config.presets.critical, > title = "Oops, there were errors during startup!", > text = awesome.startup_errors }) > end > > -- Handle runtime errors after startup > do > local in_error = false > awesome.connect_signal("debug::error", function (err) > -- Make sure we don't go into an endless error loop > if in_error then return end > in_error = true > > naughty.notify({ preset = naughty.config.presets.critical, > title = "Oops, an error happened!", > text = err }) > in_error = false > end) > end > -- }}} > > The relevant part of naughty.lua (the only part changed from default): > local id = naughty.notify(args).id > return "u", id > --local notifs = naughty.notify(args) > --local id = {} > --for notif in ipairs(notifs) do > -- id:insert(notif.id) > --end > > Thanks, > > Abe > > > > On Fri, Jun 5, 2015 at 2:22 AM, Alexis BRENON > wrote: > > Hi Abraham, > &
RE: Naughty Notifications on multiple monitors
Of I understand the 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 code correctly, would you even need to modify naughty.lua? Regards Dave _ From: Alexis BRENON [mailto:brenon.ale...@gmail.com] Sent: Friday, 5 June 2015 11:07 PM To: Abraham Baker Cc: Elv1313 .; awesome Subject: Re: Naughty Notifications on multiple monitors Instead of hidding the error just replace line 600 from: local id = naughty.notify(args).id to naughty.notify(args) You don't need the id any more if you don't use it. This way, no more error. Le ven. 5 juin 2015 à 14:57, Abraham Baker a écrit : Hi, My goal is to get every notification to show up on all monitors. This isn't critical; it just makes switching between standing/sitting easier. I don't use often-updating notifications, so I (for now) don't care about the notification id's. So, I'm thinking Elv1313's solution + hiding the naughty.lua:600 error would be enough. The relevant part of my rc.lua: -- Standard awesome library local gears = require("gears") local awful = require("awful") awful.rules = require("awful.rules") require("awful.autofocus") -- Widget and layout library local wibox = require("wibox") -- Theme handling library local beautiful = require("beautiful") -- Notification library 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 local menubar = require("menubar") local revelation=require("revelation") -- {{{ Error handling -- Check if awesome encountered an error during startup and fell back to -- another config (This code will only ever execute for the fallback config) if awesome.startup_errors then naughty.notify({ preset = naughty.config.presets.critical, title = "Oops, there were errors during startup!", text = awesome.startup_errors }) end -- Handle runtime errors after startup do local in_error = false awesome.connect_signal("debug::error", function (err) -- Make sure we don't go into an endless error loop if in_error then return end in_error = true naughty.notify({ preset = naughty.config.presets.critical, title = "Oops, an error happened!", text = err }) in_error = false end) end -- }}} The relevant part of naughty.lua (the only part changed from default): local id = naughty.notify(args).id return "u", id --local notifs = naughty.notify(args) --local id = {} --for notif in ipairs(notifs) do -- id:insert(notif.id) --end Thanks, Abe On Fri, Jun 5, 2015 at 2:22 AM, Alexis BRENON wrote: Hi Abraham, I'm sorry, I don't understand what and when did commented out ? Can you please post your config file on pastebin (http://pastebin.com/) or something like that (github?). To fix the error about 'insert' method, you can replace the line : notifications:insert(i, naughty.notify_(args,...)) by table.insert(notifications, i, naughty.notify) Maybe you will have also to cheat a little bit if i doesn't start to 1... Maybe I can explain you a little deeper what are the goals, this way you will be able to debug yourself. So, you want to have your notifications displayed on many screens (the exact number is not important). To do so, you have to redefine the classic naughty.notify function, to call the initial naughty.notify function with the screen arg which loop over all your screen. This is what is done by the code sent by Elv1313. Nevertheless, the initial notify function returns a table representing the notification, containing for example an ID (the id field). If you don't need it, so fine, stick to the Elv1313 solution and remove any naughty.notify(...).id code in your config. But this ID can be useful if you need to replace a notification instead of adding a new one (this can be the case if you use notification to display volume changement, backlight modification, battery alert, whatever). To handle this, your new notify function must return the created notifications, or at least their ID. This is what my code intend to do. For each call to the initial notify function, I put the resulting table in a 'result' table, indexed by the index of the screen on which the notification is displayed. Up to ypu after to use it the right way. The last chunk of code I sent you, handle the case where you want to use the replaces_id argument of notify. As, in your case, you will have n
Re: Naughty Notifications on multiple monitors
Instead of hidding the error just replace line 600 from: local id = naughty.notify(args).id to naughty.notify(args) You don't need the id any more if you don't use it. This way, no more error. Le ven. 5 juin 2015 à 14:57, Abraham Baker a écrit : > Hi, > > My goal is to get every notification to show up on all monitors. This > isn't critical; it just makes switching between standing/sitting easier. > > I don't use often-updating notifications, so I (for now) don't care about > the notification id's. So, I'm thinking Elv1313's solution + hiding the > naughty.lua:600 error would be enough. > > The relevant part of my rc.lua: > > -- Standard awesome library > local gears = require("gears") > local awful = require("awful") > awful.rules = require("awful.rules") > require("awful.autofocus") > -- Widget and layout library > local wibox = require("wibox") > -- Theme handling library > local beautiful = require("beautiful") > -- Notification library > > 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 > local menubar = require("menubar") > local revelation=require("revelation") > -- {{{ Error handling > -- Check if awesome encountered an error during startup and fell back to > -- another config (This code will only ever execute for the fallback > config) > if awesome.startup_errors then > naughty.notify({ preset = naughty.config.presets.critical, > title = "Oops, there were errors during startup!", > text = awesome.startup_errors }) > end > > -- Handle runtime errors after startup > do > local in_error = false > awesome.connect_signal("debug::error", function (err) > -- Make sure we don't go into an endless error loop > if in_error then return end > in_error = true > > naughty.notify({ preset = naughty.config.presets.critical, > title = "Oops, an error happened!", > text = err }) > in_error = false > end) > end > -- }}} > > > The relevant part of naughty.lua (the only part changed from default): > local id = naughty.notify(args).id > return "u", id > --local notifs = naughty.notify(args) > --local id = {} > --for notif in ipairs(notifs) do > -- id:insert(notif.id) > --end > > Thanks, > Abe > > On Fri, Jun 5, 2015 at 2:22 AM, Alexis BRENON > wrote: > >> Hi Abraham, >> >> I'm sorry, I don't understand what and when did commented out ? >> Can you please post your config file on pastebin (http://pastebin.com/) >> or something like that (github?). >> >> To fix the error about 'insert' method, you can replace the line : >> notifications:insert(i, naughty.notify_(args,...)) >> by >> table.insert(notifications, i, naughty.notify) >> >> Maybe you will have also to cheat a little bit if i doesn't start to 1... >> >> Maybe I can explain you a little deeper what are the goals, this way you >> will be able to debug yourself. >> >> So, you want to have your notifications displayed on many screens (the >> exact number is not important). >> To do so, you have to redefine the classic naughty.notify function, to >> call the initial naughty.notify function with the screen arg which loop >> over all your screen. This is what is done by the code sent by Elv1313. >> >> Nevertheless, the initial notify function returns a table representing >> the notification, containing for example an ID (the id field). If you don't >> need it, so fine, stick to the Elv1313 solution and remove any >> naughty.notify(...).id code in your config. >> But this ID can be useful if you need to replace a notification instead >> of adding a new one (this can be the case if you use notification to >> display volume changement, backlight modification, battery alert, whatever). >> To handle this, your new notify function must return the created >> notifications, or at least their ID. >> This is what my code intend to do. For each call to the initial notify >> function, I put the resulting table in a 'result' table, indexed by the >> index of the screen on which the notification is displayed. Up to ypu after >> to use it the right way. >> >> The last chunk of code I sent you, handle the case where you want to use >> the replaces_id argument of notify. As, in your case, you will have not >> only one, but many notifications to replace (one on each screen), you will >> pass the replaces_id argument as a table. This is not handled by the >> initial notify function, so for the actual call you use the value at the >> index representing your screen, as we do for the 'screen' arg. >> >> I hope the reasonning is clear. >> >> Alexis >> >> Le ven. 5 juin 2015 à 05:13, Abraham Baker a >> écrit : >> >>> 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' (tabl
Re: Naughty Notifications on multiple monitors
Hi, My goal is to get every notification to show up on all monitors. This isn't critical; it just makes switching between standing/sitting easier. I don't use often-updating notifications, so I (for now) don't care about the notification id's. So, I'm thinking Elv1313's solution + hiding the naughty.lua:600 error would be enough. The relevant part of my rc.lua: -- Standard awesome library local gears = require("gears") local awful = require("awful") awful.rules = require("awful.rules") require("awful.autofocus") -- Widget and layout library local wibox = require("wibox") -- Theme handling library local beautiful = require("beautiful") -- Notification library 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 local menubar = require("menubar") local revelation=require("revelation") -- {{{ Error handling -- Check if awesome encountered an error during startup and fell back to -- another config (This code will only ever execute for the fallback config) if awesome.startup_errors then naughty.notify({ preset = naughty.config.presets.critical, title = "Oops, there were errors during startup!", text = awesome.startup_errors }) end -- Handle runtime errors after startup do local in_error = false awesome.connect_signal("debug::error", function (err) -- Make sure we don't go into an endless error loop if in_error then return end in_error = true naughty.notify({ preset = naughty.config.presets.critical, title = "Oops, an error happened!", text = err }) in_error = false end) end -- }}} The relevant part of naughty.lua (the only part changed from default): local id = naughty.notify(args).id return "u", id --local notifs = naughty.notify(args) --local id = {} --for notif in ipairs(notifs) do -- id:insert(notif.id) --end Thanks, Abe On Fri, Jun 5, 2015 at 2:22 AM, Alexis BRENON wrote: > Hi Abraham, > > I'm sorry, I don't understand what and when did commented out ? > Can you please post your config file on pastebin (http://pastebin.com/) > or something like that (github?). > > To fix the error about 'insert' method, you can replace the line : > notifications:insert(i, naughty.notify_(args,...)) > by > table.insert(notifications, i, naughty.notify) > > Maybe you will have also to cheat a little bit if i doesn't start to 1... > > Maybe I can explain you a little deeper what are the goals, this way you > will be able to debug yourself. > > So, you want to have your notifications displayed on many screens (the > exact number is not important). > To do so, you have to redefine the classic naughty.notify function, to > call the initial naughty.notify function with the screen arg which loop > over all your screen. This is what is done by the code sent by Elv1313. > > Nevertheless, the initial notify function returns a table representing the > notification, containing for example an ID (the id field). If you don't > need it, so fine, stick to the Elv1313 solution and remove any > naughty.notify(...).id code in your config. > But this ID can be useful if you need to replace a notification instead of > adding a new one (this can be the case if you use notification to display > volume changement, backlight modification, battery alert, whatever). > To handle this, your new notify function must return the created > notifications, or at least their ID. > This is what my code intend to do. For each call to the initial notify > function, I put the resulting table in a 'result' table, indexed by the > index of the screen on which the notification is displayed. Up to ypu after > to use it the right way. > > The last chunk of code I sent you, handle the case where you want to use > the replaces_id argument of notify. As, in your case, you will have not > only one, but many notifications to replace (one on each screen), you will > pass the replaces_id argument as a table. This is not handled by the > initial notify function, so for the actual call you use the value at the > index representing your screen, as we do for the 'screen' arg. > > I hope the reasonning is clear. > > Alexis > > Le ven. 5 juin 2015 à 05:13, Abraham Baker a > écrit : > >> 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 withou
Re: Naughty Notifications on multiple monitors
Hi Abraham, I'm sorry, I don't understand what and when did commented out ? Can you please post your config file on pastebin (http://pastebin.com/) or something like that (github?). To fix the error about 'insert' method, you can replace the line : notifications:insert(i, naughty.notify_(args,...)) by table.insert(notifications, i, naughty.notify) Maybe you will have also to cheat a little bit if i doesn't start to 1... Maybe I can explain you a little deeper what are the goals, this way you will be able to debug yourself. So, you want to have your notifications displayed on many screens (the exact number is not important). To do so, you have to redefine the classic naughty.notify function, to call the initial naughty.notify function with the screen arg which loop over all your screen. This is what is done by the code sent by Elv1313. Nevertheless, the initial notify function returns a table representing the notification, containing for example an ID (the id field). If you don't need it, so fine, stick to the Elv1313 solution and remove any naughty.notify(...).id code in your config. But this ID can be useful if you need to replace a notification instead of adding a new one (this can be the case if you use notification to display volume changement, backlight modification, battery alert, whatever). To handle this, your new notify function must return the created notifications, or at least their ID. This is what my code intend to do. For each call to the initial notify function, I put the resulting table in a 'result' table, indexed by the index of the screen on which the notification is displayed. Up to ypu after to use it the right way. The last chunk of code I sent you, handle the case where you want to use the replaces_id argument of notify. As, in your case, you will have not only one, but many notifications to replace (one on each screen), you will pass the replaces_id argument as a table. This is not handled by the initial notify function, so for the actual call you use the value at the index representing your screen, as we do for the 'screen' arg. I hope the reasonning is clear. Alexis Le ven. 5 juin 2015 à 05:13, Abraham Baker a écrit : > 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 > 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 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 . 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
Re: Naughty Notifications on multiple monitors
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 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 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 . 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 >>> 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 >> > >>> > 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 >>> 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 >>> > >>> > >>> >> >>
Re: Naughty Notifications on multiple monitors
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 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 . 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 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 >> > 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 >> 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 >> > >> > >> > >
Re: Naughty Notifications on multiple monitors
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 . 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 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 > > 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 > 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 > > > > >
Re: Naughty Notifications on multiple monitors
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 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 > 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 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 > > -- To unsubscribe, send mail to awesome-unsubscr...@naquadah.org.
Re: Naughty Notifications on multiple monitors
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 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 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 >> >
Re: Naughty Notifications on multiple monitors
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 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 >