hluk / CopyQ

Clipboard manager with advanced features
GNU General Public License v3.0
8.76k stars 446 forks source link

Notifications on 4.0 #1620

Open sommella opened 3 years ago

sommella commented 3 years ago

Before creating a new issue, see list of known issues.

Describe the bug In 4.0 release note I can see "System notification popups are now used instead of own implementation.", but once installed version 4.0 on Windows 10 I can't see any popups anymore.

Also if the system notification is going to be system center one, that is very annoying. Prefer much more the previous implementation.

To Reproduce Steps to reproduce the behavior: Configure any action that procedure a popup and try.

Expected behavior Notification popups show up

Screenshots If applicable, add screenshots to help explain your problem.

Version, OS and Environment (Get details from copyq version command if possible.)

Additional context Add any other context about the problem here.

hluk commented 3 years ago

Looks like the binary handling notifications is missing in setup.exe. Fixing.

Also if the system notification is going to be system center one, that is very annoying. Prefer much more the previous implementation.

The old notifications were not working properly on some systems - e.g. Linux/Wayland or multi-monitor setup.

Also, I would rather avoid showing custom non-native notifications on top of native ones or forcing a notification to show up over fullscreen window when it's not requested or showing them when/where user cannot see them. There are too many issues with the non-native popups.

hluk commented 3 years ago

I've re-uploaded fixed copyq-v4.0.0-setup.exe: https://github.com/hluk/CopyQ/releases/download/v4.0.0/copyq-v4.0.0-setup.exe

BTW, thanks for fast bug report!

sommella commented 3 years ago

Looks like the binary handling notifications is missing in setup.exe. Fixing.

Also if the system notification is going to be system center one, that is very annoying. Prefer much more the previous implementation.

The old notifications were not working properly on some systems - e.g. Linux/Wayland or multi-monitor setup.

Also, I would rather avoid showing custom non-native notifications on top of native ones or forcing a notification to show up over fullscreen window when it's not requested or showing them when/where user cannot see them. There are too many issues with the non-native popups.

Could you consider please to have a option to use the old one? I will describe my use case: I assigned keyboard shortcuts ("copy next item" and "copy previous item") to quickly move between latest clipboards without opening the main windows. The notification, configured with a 2 seconds interval, a large geometry (500 width) and a good number of lines (300) helps me choose the right one.

System notification is not clear enough to quickly see it and not fully configurable as the non-native.

Another flaw of the system notification is with images, the visualization is too small compared to non-native.

Please please please consider to keep the non-native as not default option, but still selectable.

Thanks!

hluk commented 3 years ago

Sounds like notifications on Windows is a mess. There is now also another bug (#1623) and more probably expected soon. :cry:

I'll think about including the old notifications (maybe it's the only way to have something usable on Windows).

sommella commented 3 years ago

Sounds like notifications on Windows is a mess. There is now also another bug (#1623) and more probably expected soon. 😢

I'll think about including the old notifications (maybe it's the only way to have something usable on Windows).

Consider that I reverted to previous version because of this. Thanks

Gitoffthelawn commented 3 years ago

Just to add more helpful info to this topic:

I had some notification issues in the previous versions of CopyQ (pre-v4.0) in Win7. Sometimes, when a large amount of text was copied to the clipboard, the popup that shows the contents of what was just copied to the clipboard would not automatically disappear. I would have to click on the popup to make it disappear.

I was working on developing accurate STR (not a trivial task) when v4.0 was released, and I was hoping the new notifications system would completely resolve the issue (I'm still hopeful for that). Due to #1623, I currently have no way to test this issue, but if/when #1623 gets resolved, I'll certainly test it.

Separately, the concerns raised by @sommella seem important. I haven't gotten v4.0 notifications to work yet, so I can't comment on them, but the use case mentioned by @sommella seems quite important.

hluk commented 3 years ago

Here is a development version where you can disable native notifications (it's disabled by default on Windows 7): https://ci.appveyor.com/project/hluk/copyq/builds/38686827/artifacts

sommella commented 3 years ago

Here is a development version where you can disable native notifications (it's disabled by default on Windows 7): https://ci.appveyor.com/project/hluk/copyq/builds/38686827/artifacts

testing, looks nice, thanks!

wetware05 commented 3 years ago

He had created a thread of discussion, but in this the same problem is being treated. I have lowered the development version and notifications work, but the Script below fails.

copyq:
if (!copy())
  abort()

// http://stackoverflow.com/a/6475125/454171
String.prototype.toTitleCase = function() {
  var i, j, str, lowers, uppers;
  str = this.replace(/([^\W_]+[^\s-]*) */g, function(txt) {
    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
  });

  // Certain minor words should be left lowercase unless 
  // they are the first or last words in the string
  lowers = ['A', 'Ha', 'El', 'Y', 'Pero', 'O', 'Para', 'Las', 'Es', 'Para', 
  'Por', 'Los', 'Con', 'En', 'Que', 'Un', 'De', 'Del', 'La', 'Una', 'Cada', 'En', 'Al', 'Por', 'Uno', 'Mi', 'Tu', 'Tú', 'No', 'Ni', 'Sin', 'Se', 'Lo', 'E'];
  for (i = 0, j = lowers.length; i < j; i++)
    str = str.replace(new RegExp('\\s' + lowers[i] + '\\s', 'g'), 
      function(txt) {
        return txt.toLowerCase();
      });

  // Certain words such as initialisms or acronyms should be left uppercase
  uppers = ['Id', 'Tv'];
  for (i = 0, j = uppers.length; i < j; i++)
    str = str.replace(new RegExp('\\b' + uppers[i] + '\\b', 'g'), 
      uppers[i].toUpperCase());

  return str;
}

var text = str(clipboard())

var newText = text.toTitleCase();
if (text == newText)
  abort();

copy(newText)
paste()

He gives an error when trying to copy the clipboard. Any suggestion?

hluk commented 3 years ago

I will try to release a fixed version soon.

He had created a thread of discussion, but in this the same problem is being treated. I have lowered the development version and notifications work, but the Script below fails.

@wetware05 Can you please create a new issue? It seems to be unrelated to this one. Having one specific problem discussed in one issue helps me (and I hope others) when I have to read through it again.

yuvmel commented 3 years ago

macOS here (10.15.7) - new "native" notifications work fine, but are too distracting to my taste (it's like getting a new Slack message every time I copy something...) - could we have an option to switch back to good old Qt please?

hluk commented 3 years ago

macOS here (10.15.7) - new "native" notifications work fine, but are too distracting to my taste (it's like getting a new Slack message every time I copy something...) - could we have an option to switch back to good old Qt please?

Yes, the option to switch back to the old notification system is in recent development builds, for example: https://github.com/hluk/CopyQ/actions/runs/767472478#artifacts

image

dazzknowles commented 3 years ago

Windows 10 user here and I have a global hotkeys set to move forward and backwards through the clipboard history (Ctrl+Alt+N and Ctrl+Alt+P). I had to turn off native notifications though as they are just too slow. I rely on the notification text to tell me if I've got the item on the clipboard that I want but with the native notifications I have to wait for the previous notification to close before pressing the hotkey again as otherwise the clipboard position moves but the notification text doesn't update and a new notification isn't displayed and so I have no idea what's on the clipboard now.