This one took me some time to get arround a big problem of "tk
sysnotify" on Window systems.
See https://github.com/Meshparts/sysnotify/tree/main for details.
I hope someone can test this and give me some feedback.
The actual problem, is that Windows has a display time of 7 seconds for
any notification. (could be that there is a setting for this)
Maybe other OS also have this notification behavior too, in which case sysnotify package could have a larger use.
If you are using the inbuild "tk sysnotify" to create notifications at
any speed dictated by your code, you will soon have same issue I had:
You will get a stack of N messages, delayed by 7 seconds each.
Say your application sends 10 notifications every 3 seconds.
After 30 seconds your application has finished, but Windows will need 70 seconds to finish processing the stack of 10 notifications.
So the user will keep getting notifications 40 seconds after your application has long finished.
The new package "sysnotify" implements optimal managment for system notifications, in order to avoid stacking of notification, when the notifications are sent faster than the limit imposed by the operating system.
Best regards
Alex
Say your application sends 10 notifications every 3 seconds.
After 30 seconds your application has finished, but Windows will need 70 seconds to finish processing the stack of 10 notifications.
So the user will keep getting notifications 40 seconds after your application has long finished.
On Tue, 30 Sep 2025 22:16:57 +0200
meshparts <alexandru.dadalau@meshparts.de> wrote:
[...]
Say your application sends 10 notifications every 3 seconds.
After 30 seconds your application has finished, but Windows will need 70
seconds to finish processing the stack of 10 notifications.
So the user will keep getting notifications 40 seconds after your
application has long finished.
Notifications are meant to be read. That's why they have such delay
before dissapearing.
If you send a notifications every 3 seconds, the user will be very busy reading them and not doing anything else. This also applies to message length; the longer they are, the higher the probability that they are annoying users instead of notifying them.
That's a Bad Design, and you should probably use another approach.
Just because it can be done doesn't mean it should be done.
Regards
Am 30.09.2025 um 22:16 schrieb meshparts:
This one took me some time to get arround a big problem of "tk
sysnotify" on Window systems.
See https://github.com/Meshparts/sysnotify/tree/main for details.
I hope someone can test this and give me some feedback.
The actual problem, is that Windows has a display time of 7 seconds
for any notification. (could be that there is a setting for this)
Maybe other OS also have this notification behavior too, in which case
sysnotify package could have a larger use.
If you are using the inbuild "tk sysnotify" to create notifications at
any speed dictated by your code, you will soon have same issue I had:
You will get a stack of N messages, delayed by 7 seconds each.
Say your application sends 10 notifications every 3 seconds.
After 30 seconds your application has finished, but Windows will need
70 seconds to finish processing the stack of 10 notifications.
So the user will keep getting notifications 40 seconds after your
application has long finished.
The new package "sysnotify" implements optimal managment for system
notifications, in order to avoid stacking of notification, when the
notifications are sent faster than the limit imposed by the operating
system.
Best regards
Alex
There are two small issues I'm aware of with current implementation:
First issue: Messages should be sent with a small delay of e.g. 100ms.
If not, the stack will still be build and we get the old behavior back:
after 100 [list ::sysnotify::Send "message 1"]
after 100 [list ::sysnotify::Send "message 2"]
after 100 [list ::sysnotify::Send "message 3"]
Second issue: If an external "after" is used between the messages, the
stack will still be build and we get the old behavior back:
after 100 [list ::sysnotify::Send "message 1"]
after 100
after 100 [list ::sysnotify::Send "message 2"]
after 100
after 100 [list ::sysnotify::Send "message 3"]
Both issues have a cause, that is unclear to me.
Maybe somebody can fix/explain this to me.
Am 30.09.2025 um 22:23 schrieb meshparts:
Am 30.09.2025 um 22:16 schrieb meshparts:
This one took me some time to get arround a big problem of "tk
sysnotify" on Window systems.
See https://github.com/Meshparts/sysnotify/tree/main for details.
I hope someone can test this and give me some feedback.
The actual problem, is that Windows has a display time of 7 seconds
for any notification. (could be that there is a setting for this)
Maybe other OS also have this notification behavior too, in which
case sysnotify package could have a larger use.
If you are using the inbuild "tk sysnotify" to create notifications
at any speed dictated by your code, you will soon have same issue I had: >>>
You will get a stack of N messages, delayed by 7 seconds each.
Say your application sends 10 notifications every 3 seconds.
After 30 seconds your application has finished, but Windows will need
70 seconds to finish processing the stack of 10 notifications.
So the user will keep getting notifications 40 seconds after your
application has long finished.
The new package "sysnotify" implements optimal managment for system
notifications, in order to avoid stacking of notification, when the
notifications are sent faster than the limit imposed by the operating
system.
Best regards
Alex
There are two small issues I'm aware of with current implementation:
First issue: Messages should be sent with a small delay of e.g. 100ms.
If not, the stack will still be build and we get the old behavior back:
after 100 [list ::sysnotify::Send "message 1"]
after 100 [list ::sysnotify::Send "message 2"]
after 100 [list ::sysnotify::Send "message 3"]
Second issue: If an external "after" is used between the messages, the
stack will still be build and we get the old behavior back:
after 100 [list ::sysnotify::Send "message 1"]
after 100
after 100 [list ::sysnotify::Send "message 2"]
after 100
after 100 [list ::sysnotify::Send "message 3"]
Both issues have a cause, that is unclear to me.
Maybe somebody can fix/explain this to me.
Any ideas why an additional after between the "::sysnotify::Send" calls brakes the code?
Sysop: | DaiTengu |
---|---|
Location: | Appleton, WI |
Users: | 1,072 |
Nodes: | 10 (0 / 10) |
Uptime: | 129:28:45 |
Calls: | 13,772 |
Files: | 186,986 |
D/L today: |
265 files (121M bytes) |
Messages: | 2,429,797 |