sethyuan / logseq-plugin-reminder

System notification for Scheduled and Deadline.
MIT License
27 stars 1 forks source link

Make the source graph identifyable in the Reminder [Enhancement] #15

Closed acsr closed 8 months ago

acsr commented 9 months ago

TL;DR;

The issue targets Reminder messages from multiple graphs, some not visible on the current screen. Goal: Make it easier to identify the corresponding graph and get a grip at the dialog, when clicked not closed.

Prerequisites

Logseq 0.10.5 Desktop on macOS Ventura 13.6.4 , Reminders v0.8.4

  1. I have multiple graphs using reminders and have them open simultaneously, but some minified in the dock or on other screens in full window mode.
  2. We are setting Reminders in multiple graphs. This works in general.
  3. Reminder Notification works when the corresponding graph is open (testing when closed is not part of the issue)
  4. I use sticky macOS message banners and need to actively close them
  5. We sometimes have 3-4 graphs open, only one window in the Finder viewport, but 3 minified or on other screens.

Issue / challenge

It is not obvious which graph issues the message, especially when a long Reminders list pops up,

You need to click on the banner to open the dialog displayed on top of the graphs window to identify the context (or you may have accidentially clicked it). The challenge escalates when one graph is open and another one is minified in the dock (the one that issues the Reminder message).

In this case you need to guess how to view the reminders dialog in the graph for clicked banners .

Possible Solution(s)

Thanks for this wonderful plugin

sethyuan commented 9 months ago

Add an option to bring the graph window or screen to front when minified or not the current screen.

This is not yet possible due to technical limitations, a plugin does not have enough permissions to manipulate native windows.

Make the issueing graph identifyable in the banner message, but leave the action to the user.

This I can do, I can add the graph name to the notification message if so configured.

sethyuan commented 9 months ago

Make the issueing graph identifyable in the banner message, but leave the action to the user.

This I can do, I can add the graph name to the notification message if so configured.

Graph name display is now implemented as an option, FYI.

acsr commented 9 months ago

Graph name display is now implemented as an option, FYI.

You're my hero! THX

Add an option to bring the graph window or screen to front when minified or not the current screen.

This is not yet possible due to technical limitations, a plugin does not have enough permissions to manipulate native windows.

OK, I know these hurdles, but respect these for security reasons. I need to fiddle around with the Reminder hooks and on AppleScript level.

I can close this issue after confirming testing OK or should I leave it to you?

acsr commented 9 months ago

Working for me! Good Job

acsr commented 9 months ago

After watching some alerts we recognize that the graph name is running out of the window of the message for longer block titles.

Possible solutions (at first sight)

… and another option for the wishlist

  1. Make an option to select if the graph name is a prefix or be the suffix of the message.
    • B. if the graph name itself is too long, an option to truncate the name or specify an alias for every graph (how? where?)
  2. Truncate the message from the block to make sure the beginning of the graph name shows up in the last line.

I expect solution 2 and 1B is a challenge to cover on all OS Platforms due to different settings and message length. Therefore solution 1 would be easiest and fast to implement.

Wishlist

If possible having different colors or icons (instead of the Logseq one) for different graphs could be cool as well. No idea how Logseq or a plugin can can control these properties.

sethyuan commented 8 months ago

Wishlist If possible having different colors or icons (instead of the Logseq one) for different graphs could be cool as well. No idea how Logseq or a plugin can can control these properties.

I don't think this is possible to do with the system notifications. I did however, move the graph name before the actual content.