From 3121214091b3a243ca086fccf6fbe7e0db5f125d Mon Sep 17 00:00:00 2001 From: Marcus Minhorst Date: Fri, 11 Jul 2025 12:02:48 -0400 Subject: [PATCH] Added mime type associations and quick launch options --- src/CMakeLists.txt | 7 ++++ .../freedesktop/org.zdoom.GZDoom-mime.xml | 33 ++++++++++++++++++ .../freedesktop/org.zdoom.GZDoom.desktop | 34 ++++++++++++++++++- 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 src/posix/freedesktop/org.zdoom.GZDoom-mime.xml diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9e04739be..e860b8232 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1464,6 +1464,13 @@ if( UNIX AND NOT APPLE ) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/posix/freedesktop/org.zdoom.GZDoom.svg DESTINATION share/icons/hicolor/scalable/apps PERMISSIONS WORLD_READ GROUP_READ GROUP_EXECUTE OWNER_READ OWNER_WRITE) + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/posix/freedesktop/org.zdoom.GZDoom-mime.xml + DESTINATION share/mime/packages + PERMISSIONS WORLD_READ GROUP_READ GROUP_EXECUTE OWNER_READ OWNER_WRITE) + # note: + # A post-install script would most likely need to run the following to register the desktop and mime files with the system + # update-mime-database /usr/local/share/mime + # update-desktop-database endif() if( DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE ) diff --git a/src/posix/freedesktop/org.zdoom.GZDoom-mime.xml b/src/posix/freedesktop/org.zdoom.GZDoom-mime.xml new file mode 100644 index 000000000..fc1f1e33f --- /dev/null +++ b/src/posix/freedesktop/org.zdoom.GZDoom-mime.xml @@ -0,0 +1,33 @@ + + + + Doom WAD file + + + + + + + + + + + + + Doom PK3 file + + + + + + + + + Doom PK7 file + + + + + + + diff --git a/src/posix/freedesktop/org.zdoom.GZDoom.desktop b/src/posix/freedesktop/org.zdoom.GZDoom.desktop index 748253b86..c3b1022f1 100644 --- a/src/posix/freedesktop/org.zdoom.GZDoom.desktop +++ b/src/posix/freedesktop/org.zdoom.GZDoom.desktop @@ -3,9 +3,41 @@ Name=GZDoom Comment=Multi-game launcher for Doom era games Icon=org.zdoom.GZDoom Categories=Game;Shooter; -Exec=gzdoom +Exec=gzdoom %F StartupNotify=true PrefersNonDefaultGPU=true Terminal=false Type=Application Keywords=Doom;Heretic;Hexen;strife;pwad;iwad;first;person;shooter; +MimeType=application/x-doom-wad;application/x-doom-pk7;application/x-doom-pk3; +Actions=launch-safemode;launch-doom-1;launch-doom-2;launch-heretic;launch-hexen;launch-strife; + +[Desktop Action launch-safemode] +Name=GZDoom Safemode +Icon=org.zdoom.GZDoom +Exec=gzdoom -noautoload -noautoexec %F + +[Desktop Action launch-doom-1] +Name=Launch Doom +Icon=org.zdoom.GZDoom +Exec=gzdoom -iwad DOOM.WAD %F + +[Desktop Action launch-doom-2] +Name=Launch Doom 2 +Icon=org.zdoom.GZDoom +Exec=gzdoom -iwad DOOM2.WAD %F + +[Desktop Action launch-heretic] +Name=Launch Heretic +Icon=org.zdoom.GZDoom +Exec=gzdoom -iwad HERETIC.WAD %F + +[Desktop Action launch-hexen] +Name=Launch Hexen +Icon=org.zdoom.GZDoom +Exec=gzdoom -iwad HEXEN.WAD %F + +[Desktop Action launch-strife] +Name=Launch Strife +Icon=org.zdoom.GZDoom +Exec=gzdoom -iwad STRIFE1.WAD %F