Open ph00lt0 opened 2 years ago
@m3nu You are more familiar with MacOS.
Currently it uses an icon that works on dark and light themes. So the issue isn't urgent.
Will see if there is a simple way to update the icon when a scheme change is detected. Like we do with other icons.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Currently it uses an icon that works on dark and light themes
This does not look good though :/
I made two alternatives. I prefer the second one, which one do you think might be better? @m3nu Also, the docstring for this function:
def set_tray_icon(self, active=False):
"""
Use white tray icon, when on Gnome or in dark mode. Otherwise use dark icon.
"""
icon_name = f"icons/hdd-o{'-active' if active else ''}.png"
icon = QIcon(get_asset(icon_name))
self.setIcon(icon)
mentions that it uses white tray icon when on gnome/in dark mode, otherwise it should use a dark icon. However, the icon being selected is either the active/non-active icon. Should I just update the hdd-o.png file to use a transparent body instead of a black one and update this docstring, or should I add code to check the current theme preferences too (don't know how to do this yet)?
4 icons are needed in total: dark/light x normal/active
I'm also not sure if Qt gets the signal regarding the theme change, if it's in the background only. That's why I didn't implement this and went for a simple icon that works for all cases. If you can make it work, it would be a nice addition though.
4 icons are needed in total: dark/light x normal/active I'm also not sure if Qt gets the signal regarding the theme change, if it's in the background only.
I am on a Linux machine running Ubuntu 22.04 so I won't be able to test how Vorta responds to changes to the system's theme on MacOS. But I feel like a transparent body for the hdd icon might be more suitable than the current black body.
The other icons use solid shapes instead of contours. So maybe your first option is better @diivi.
I would also prefer the first option.
I found a way to check which theme is being used by using darkdetect. I wanted to ask is there a good way of checking if we are running GNOME or not?
Edit: NVM, Found a solution on the tray_menu.py
file itself.
Feel free to use the designs I shared, just request access so I can allow you to export the icons!
I wondered why detecting via QPalette doesn't work. Or maybe it does...
I wondered why detecting via QPalette doesn't work. Or maybe it does...
It does! I'm using self.app.paletteChanged.connect(self.set_tray_icon)
along with darkdetect to detect and change the icon for light or dark mode.
But I'm having problems importing the module, It says it's installed but when run it gives a module not found error. It runs fine on another adjacent python files.
Can you enclose relevant output including the error message?
Can you enclose relevant output including the error message?
It's a normal module not found error:
2023-04-01 13:37:38,971 - root - CRITICAL - Uncaught exception, file a report at https://github.com/borgbase/vorta/issues/new/choose
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/bin/vorta", line 8, in <module>
sys.exit(main())
File "/Users/1tsm3ky/Desktop/Vorta/vorta/src/vorta/__main__.py", line 69, in main
from vorta.application import VortaApp
File "/Users/1tsm3ky/Desktop/Vorta/vorta/src/vorta/application.py", line 20, in <module>
from vorta.tray_menu import TrayMenu
File "/Users/1tsm3ky/Desktop/Vorta/vorta/src/vorta/tray_menu.py", line 3, in <module>
import darkdetect
ModuleNotFoundError: No module named 'darkdetect'
But as suggested by @m3nu, adding a new dependency just for correcting the icon colour isn't something we are willing to do. So I think a white icon for both light and dark modes on GNOME and MacOS and rest could have the original black/dark one?
Can this be used to determine the colour of the tray icon?
Can this be used to determine the colour of the tray icon?
It should be used. It may not change the icon right away, but eventually. Not sure if it triggers with the app in the BG or no window open.
Can this be used to determine the colour of the tray icon?
I guess, Yes. Let me check if this works. BTW thanks for the snippet.
I tried this, but it didn't worked reliably, It returns False
even when in dark mode.
For now I've implemented the white icons for GNOME and MacOS(I think the white one fits better with the rest of MacOS's solid icons) and for rest it uses the previous black ones.
I've opened a PR #1676 for this as well, please someone verify the implementation.
I tried this, but it didn't worked reliably, It returns
False
even when in dark mode.
Which attribute of the MacOS palette is the cause of this?
Which attribute of the MacOS palette is the cause of this?
The uses_dark_modes
works on the principle of checking the contrast between text colour and window colour but on MacOS when used inside the tray_menu.py
it returns the same lightness values for both the theme modes. But when used on a separate file it outputs the correct values, I think it only works with the default palette of PyQt.
when used inside the
tray_menu.py
it returns the same lightness values for both the theme modes
Did you call it after QApplication
was initialized completely?
Did you call it after
QApplication
was initialized completely?
Yes, it was called after QApplication was completely initialized.
I just found these two things that are worth testing for solving this issue. The background being the template feature of NSImage
that native apps use to display their icon in the correct colour.
https://doc.qt.io/qt-6/qicon.html#setIsMask
https://stackoverflow.com/questions/38039262/creating-a-template-image-dynamically-for-osx-menu-bar
The system will automatically mark an image loaded from a file as a template image if its filename-minus-extension ends with "Template". So, for example, fooTemplate.png or barTemplate.pdf.
When I use vorta on gnome with the "blur my shell" extension, the icon isn't transparent as you can see above. I am using manjaro/arch linux and should be on the latest version. Is this the correct place to report this issue?
Describe the bug Please add a white icon to conform with the design standard of menu bar icons in Monterey / Big Sur
Environment (please complete the following information):