diff --git a/app-editors/sublime-text/files/sublime-text-4_p4107-remove-deprecated-key-onlyshowin-from-launcher.patch b/app-editors/sublime-text/files/sublime-text-4_p4107-remove-deprecated-key-onlyshowin-from-launcher.patch new file mode 100644 index 0000000..04dfad3 --- /dev/null +++ b/app-editors/sublime-text/files/sublime-text-4_p4107-remove-deprecated-key-onlyshowin-from-launcher.patch @@ -0,0 +1,31 @@ +From 9df21c9ec00ac34174b443cc7cd8c4053b98eb00 Mon Sep 17 00:00:00 2001 +From: webstrand +Date: Thu, 27 May 2021 17:08:03 -0400 +Subject: [PATCH 1/2] remove deprecated key OnlyShowIn from launcher + +Silences a QA notice that the key "OnlyShowIn" in group +"Desktop Action new-file" and "Desktop Action new-window" is deprecated. + +https://bugs.freedesktop.org/show_bug.cgi?id=66712 No replacement or +alternative is provided, the key is simply ignored. +--- + sublime_text.desktop | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/sublime_text.desktop b/sublime_text.desktop +index 7407709..b171254 100644 +--- a/sublime_text.desktop ++++ b/sublime_text.desktop +@@ -15,9 +15,7 @@ Actions=new-window;new-file; + [Desktop Action new-window] + Name=New Window + Exec=/opt/sublime_text/sublime_text --launch-or-new-window +-OnlyShowIn=Unity; + + [Desktop Action new-file] + Name=New File + Exec=/opt/sublime_text/sublime_text --command new_file +-OnlyShowIn=Unity; +-- +2.31.1 + diff --git a/app-editors/sublime-text/files/sublime-text-4_p4107-set-explicit-startupwmclass-in-launcher.patch b/app-editors/sublime-text/files/sublime-text-4_p4107-set-explicit-startupwmclass-in-launcher.patch new file mode 100644 index 0000000..09e835b --- /dev/null +++ b/app-editors/sublime-text/files/sublime-text-4_p4107-set-explicit-startupwmclass-in-launcher.patch @@ -0,0 +1,27 @@ +From 0eff5450cba9514559eefd8c79e98fb6b8134b68 Mon Sep 17 00:00:00 2001 +From: webstrand +Date: Thu, 27 May 2021 17:09:21 -0400 +Subject: [PATCH 2/2] Set explicit StartupWMClass in launcher + +Otherwise startup notification and grouping implicitly use the name of +the .desktop file to match against the actual WM_CLASS of windows +belonging to the application. +--- + sublime_text.desktop | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/sublime_text.desktop b/sublime_text.desktop +index b171254..5c812a9 100644 +--- a/sublime_text.desktop ++++ b/sublime_text.desktop +@@ -10,6 +10,7 @@ MimeType=text/plain; + Icon=sublime-text + Categories=TextEditor;Development; + StartupNotify=true ++StartupWMClass=Sublime_text + Actions=new-window;new-file; + + [Desktop Action new-window] +-- +2.31.1 + diff --git a/app-editors/sublime-text/sublime-text-4_p4118.ebuild b/app-editors/sublime-text/sublime-text-4_p4118.ebuild new file mode 100644 index 0000000..6b349ec --- /dev/null +++ b/app-editors/sublime-text/sublime-text-4_p4118.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit desktop wrapper xdg + +# get the major version from PV +MY_PV=$(ver_cut 3) +MY_PN=${PN/-/_} + +DESCRIPTION="Sophisticated text editor for code, markup and prose" +HOMEPAGE="https://www.sublimetext.com" +SRC_URI=" + amd64? ( https://download.sublimetext.com/sublime_text_build_${MY_PV}_x64.tar.xz )" +S="${WORKDIR}/${MY_PN}" + +LICENSE="Sublime" +SLOT="0" +KEYWORDS="~amd64" +IUSE="dbus" +RESTRICT="bindist mirror strip" + +RDEPEND=" + dev-libs/glib:2 + x11-libs/gtk+:3 + x11-libs/libX11 + dbus? ( sys-apps/dbus )" + +PATCHES=( + "${FILESDIR}"/${PN}-4_p4107-remove-deprecated-key-onlyshowin-from-launcher.patch + "${FILESDIR}"/${PN}-4_p4107-set-explicit-startupwmclass-in-launcher.patch +) + +QA_PREBUILT="*" + +# Sublime bundles the kitchen sink, which includes python and other assorted +# modules. Do not try to unbundle these because you are guaranteed to fail. + +src_install() { + insinto /opt/${MY_PN} + doins -r Packages Lib Icon # /Icon is used at runtime by the application + doins changelog.txt libcrypto.so.1.1 libssl.so.1.1 sublime_text.desktop + + # sublime_merge looks for /opt/sublime_text/sublime_text + exeinto /opt/${MY_PN} + doexe crash_reporter plugin_host-3.3 plugin_host-3.8 sublime_text + + # sublime-text sets its WM_CLASS based on its argv[0]. A wrapper script is + # used instead of a symlink to preserve a consistent WM_CLASS regardless of + # how the application is launched. This causes the WM_CLASS to be + # "sublime_text" which matches the .desktop entry. + make_wrapper subl "/opt/${MY_PN}/sublime_text --fwdargv0 \"\$0\"" + domenu sublime_text.desktop + + local size + for size in 16 32 48 128 256; do + doicon --size ${size} Icon/${size}x${size}/${PN}.png + done +} + +pkg_postinst() { + xdg_pkg_postinst + + elog 'Sublime Text 4'"'"'s window class changes from WM_CLASS="subl" to' + elog 'WM_CLASS="sublime_text" matching other distributions.' +}