feat(resources): provide desktop file (#870)

* feat(resources): provide desktop file

Co-authored-by: Florian Zier <9168602+zierf@users.noreply.github.com>

* fix(ts_qt): remove duplicate logic

* fix(ts_qt): add fallback values

---------

Co-authored-by: Florian Zier <9168602+zierf@users.noreply.github.com>
This commit is contained in:
Xarvex
2025-03-17 20:35:45 -05:00
committed by GitHub
parent 0ac06a125a
commit 861df898e2
3 changed files with 27 additions and 4 deletions

View File

@@ -64,6 +64,14 @@ buildPythonApplication {
syrupy
];
# TODO: Install more icon resolutions when available.
preInstall = ''
mkdir -p $out/share/applications $out/share/icons/hicolor/512x512/apps
cp $src/src/tagstudio/resources/tagstudio.desktop $out/share/applications
cp $src/src/tagstudio/resources/icon.png $out/share/icons/hicolor/512x512/apps/tagstudio.png
'';
makeWrapperArgs =
[ "--prefix PATH : ${lib.makeBinPath [ ffmpeg-headless ]}" ]
++ lib.optional stdenv.hostPlatform.isLinux "--prefix LD_LIBRARY_PATH : ${

View File

@@ -299,10 +299,15 @@ class QtDriver(DriverMixin, QObject):
appid = "cyanvoxel.tagstudio.9"
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(appid) # type: ignore[attr-defined,unused-ignore]
if sys.platform != "darwin":
icon = QIcon()
icon.addFile(str(self.rm.get_path("icon")))
app.setWindowIcon(icon)
app.setApplicationName("tagstudio")
app.setApplicationDisplayName("TagStudio")
if platform.system() != "Darwin":
fallback_icon = QIcon()
fallback_icon.addFile(str(self.rm.get_path("icon")))
app.setWindowIcon(QIcon.fromTheme("tagstudio", fallback_icon))
if platform.system() != "Windows":
app.setDesktopFileName("tagstudio")
# Initialize the Tag Manager panel
self.tag_manager_panel = PanelModal(

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Type=Application
Name=TagStudio
GenericName=Tag Management System
Comment=Tag, find, and organize files
Icon=tagstudio
Exec=tagstudio
Terminal=false
Categories=AudioVideo;Qt;
Keywords=files;folders;tags;