diff --git a/extragear/kdeconnect-kde/SnoreNotify.nsh b/extragear/kdeconnect-kde/SnoreNotify.nsh new file mode 100644 --- /dev/null +++ b/extragear/kdeconnect-kde/SnoreNotify.nsh @@ -0,0 +1,22 @@ +!include LogicLib.nsh +!include WordFunc.nsh + +Function SnoreWinVer + ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion + ${VersionCompare} "6.2" $R0 $R0 + ${If} $R0 == 1 + Push "NotWin8" + ${Else} + Push "AtLeastWin8" + ${EndIf} +FunctionEnd + +!macro SnoreShortcut path exe appID + Call SnoreWinVer + Pop $0 + ${If} $0 == "AtLeastWin8" + nsExec::ExecToLog '"${SnoreToastExe}" -install "${path}" "${exe}" "${appID}"' + ${Else} + CreateShortCut "${path}" "${exe}" + ${EndIf} +!macroend \ No newline at end of file diff --git a/extragear/kdeconnect-kde/blacklist.txt b/extragear/kdeconnect-kde/blacklist.txt --- a/extragear/kdeconnect-kde/blacklist.txt +++ b/extragear/kdeconnect-kde/blacklist.txt @@ -30,4 +30,4 @@ bin/Qt5DesignerComponents\.dll # strip most executables -bin/(?!(kdeconnect-indicator|kdeconnect-cli|kdeconnectd|dbus-daemon|kcmshell5|kbuildsycoca5|update-mime-database|kioslave)).*\.exe +bin/(?!(kdeconnect-indicator|kdeconnect-cli|kdeconnectd|dbus-daemon|kcmshell5|kbuildsycoca5|update-mime-database|kioslave|SnoreToast)).*\.exe diff --git a/extragear/kdeconnect-kde/kdeconnect-kde.py b/extragear/kdeconnect-kde/kdeconnect-kde.py --- a/extragear/kdeconnect-kde/kdeconnect-kde.py +++ b/extragear/kdeconnect-kde/kdeconnect-kde.py @@ -25,16 +25,35 @@ class Package(CMakePackageBase): def __init__(self): CMakePackageBase.__init__(self) - self.blacklist_file = [ - PackagerLists.runtimeBlacklist, - os.path.join(os.path.dirname(__file__), "blacklist.txt") - ] def createPackage(self): - self.defines["executable"] = "bin\\kdeconnect-indicator.exe" + self.blacklist_file.append(os.path.join(self.packageDir(), "blacklist.txt")) + + self.defines["caption"] = self.binaryArchiveName(fileType=None).capitalize() self.defines["icon"] = os.path.join(os.path.dirname(__file__), "icon.ico") self.defines["appname"] = "kdeconnect-indicator" + self.defines["nsis_include"] = f"!include {self.packageDir()}\\SnoreNotify.nsh" + self.defines["sections"] = r""" + !define MyApp_AppUserModelId org.kde.kdeconnect.daemon + !define SnoreToastExe "$INSTDIR\bin\SnoreToast.exe" + + Section "@{productname}" + SectionIn 1 + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + !insertmacro SnoreShortcut "$SMPROGRAMS\@{productname}.lnk" "$INSTDIR\bin\@{appname}.exe" "${MyApp_AppUserModelId}" + CreateShortCut "$SMPROGRAMS\Startup\@{productname}.lnk" "$INSTDIR\bin\@{appname}.exe" + CreateShortCut "$DESKTOP\@{productname}.lnk" "$INSTDIR\bin\@{appname}.exe" + !insertmacro MUI_STARTMENU_WRITE_END + SectionEnd + """ + self.defines["un_sections"]=r""" + Section "Un.Remove Shortcuts" + Delete "$SMPROGRAMS\@{productname}.lnk" + Delete "$SMPROGRAMS\Startup\@{productname}.lnk" + Delete "$DESKTOP\@{productname}.lnk" + SectionEnd + """ self.ignoredPackages.append("binary/mysql") return TypePackager.createPackage(self)