diff --git a/.gitignore b/.gitignore index 22f5a547..be078dd5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,14 @@ # Setup/Install /MANIFEST -/dist/ /build/ /deploy/ +/dist/ +/dist_deb/ *.spec *.egg-info setup.iss -novelwriter.desktop -novelWriter.pyw +/novelwriter.desktop +/novelWriter.pyw # Translations /novelwriter/assets/i18n/*.qm diff --git a/MANIFEST.in b/MANIFEST.in index c78958b1..0c89f7ca 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,6 @@ include setup.py include LICENSE.md +include CREDITS.md include CHANGELOG.md recursive-include setup * recursive-include novelwriter/assets * diff --git a/docs/source/setup_windows.rst b/docs/source/setup_windows.rst index d958c83e..1bd01317 100644 --- a/docs/source/setup_windows.rst +++ b/docs/source/setup_windows.rst @@ -115,7 +115,7 @@ The above steps can be reverted by running: .. code-block:: console python setup.py win-uninstall - pip uninstall -r pywin32 + pip uninstall pywin32 pip uninstall -r requirements.txt .. _Python Package Index: https://pypi.org/ diff --git a/novelwriter/assets/icons/fallback/edit-dark.svg b/novelwriter/assets/icons/fallback/edit-dark.svg new file mode 100644 index 00000000..f7665c6b --- /dev/null +++ b/novelwriter/assets/icons/fallback/edit-dark.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/novelwriter/assets/icons/fallback/edit.svg b/novelwriter/assets/icons/fallback/edit.svg new file mode 100644 index 00000000..ddd96f64 --- /dev/null +++ b/novelwriter/assets/icons/fallback/edit.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/novelwriter/gui/theme.py b/novelwriter/gui/theme.py index f643f0c8..700f83a7 100644 --- a/novelwriter/gui/theme.py +++ b/novelwriter/gui/theme.py @@ -534,7 +534,7 @@ class GuiIcons: "cls_entity": (QStyle.SP_DriveHDIcon, "drive-harddisk"), "cls_custom": (QStyle.SP_DriveHDIcon, "drive-harddisk"), "cls_archive": (QStyle.SP_DriveHDIcon, "drive-harddisk"), - "cls_trash": (QStyle.SP_DriveHDIcon, "drive-harddisk"), + "cls_trash": (QStyle.SP_TrashIcon, "user-trash"), "proj_document": (QStyle.SP_FileIcon, "x-office-document"), "proj_title": (QStyle.SP_FileIcon, "x-office-document"), "proj_chapter": (QStyle.SP_FileIcon, "x-office-document"), diff --git a/setup.py b/setup.py index ba5bcb62..1be0014f 100755 --- a/setup.py +++ b/setup.py @@ -27,7 +27,9 @@ along with this program. If not, see . import os import sys import shutil +import datetime import subprocess +import email.utils OS_NONE = 0 OS_LINUX = 1 @@ -49,6 +51,7 @@ def extractVersion(): numVers = "Unknown" hexVers = "Unknown" + relDate = "Unknown" initFile = os.path.join("novelwriter", "__init__.py") try: with open(initFile, mode="r", encoding="utf-8") as inFile: @@ -57,14 +60,24 @@ def extractVersion(): numVers = getValue((aLine)) if aLine.startswith("__hexversion__"): hexVers = getValue((aLine)) + if aLine.startswith("__date__"): + relDate = getValue((aLine)) except Exception as e: print("Could not read file: %s" % initFile) print(str(e)) - print("novelWriter version is: %s (%s)" % (numVers, hexVers)) + print("novelWriter version is: %s (%s) at %s" % (numVers, hexVers, relDate)) print("") - return numVers, hexVers + return numVers, hexVers, relDate + + +def compactVersion(numVers): + """Make the version number more compact.""" + numVers = numVers.replace("-alpha", "a") + numVers = numVers.replace("-beta", "b") + numVers = numVers.replace("-rc", "rc") + return numVers def sysCall(callArgs): @@ -75,6 +88,20 @@ def sysCall(callArgs): return stdOut.decode("utf-8"), stdErr.decode("utf-8"), sysP.returncode +def createLauncher(execName, writePath): + """Generate a novelwriter.desktop file with a given exec name. + """ + desktopData = "" + with open(os.path.join("setup", "data", "novelwriter.desktop"), mode="r") as inFile: + desktopData = inFile.read() + + desktopData = desktopData.replace("Exec=novelwriter", f"Exec={execName}") + with open(os.path.join(writePath, "novelwriter.desktop"), mode="w+") as outFile: + outFile.write(desktopData) + + return + + # =============================================================================================== # # General # =============================================================================================== # @@ -390,7 +417,7 @@ def makeMinimalPackage(targetOS): from zipfile import ZipFile, ZIP_DEFLATED # Get the version - numVers, _ = extractVersion() + numVers, _, _ = extractVersion() # Make sample.zip first try: @@ -506,7 +533,151 @@ def makeMinimalPackage(targetOS): ## -# Make Simple Package (pack-pyz) +# Make Debian Package (build-deb) +## + +def makeDebianPackage(): + """Build a Debian package. + """ + print("") + print("Build Debian Package") + print("====================") + print("") + + # Version Info + # ============ + + numVers, _, relDate = extractVersion() + pkgVers = compactVersion(numVers) + relDate = datetime.datetime.strptime(relDate, "%Y-%m-%d") + pkgDate = email.utils.format_datetime(relDate.replace(hour=12, tzinfo=None)) + + # Set Up Folder + # ============= + + bldDir = "dist_deb" + pkgDir = f"novelWriter-{pkgVers}" + outDir = f"{bldDir}/{pkgDir}" + debDir = f"{outDir}/debian" + datDir = f"{outDir}/data" + + if not os.path.isdir(bldDir): + os.mkdir(bldDir) + + if os.path.isdir(outDir): + print("Removing old build files ...") + print("") + shutil.rmtree(outDir) + + os.mkdir(outDir) + + # Build Additional Assets + # ======================= + + buildQtI18n() + buildSampleZip() + buildPdfManual() + + # Copy novelWriter Source + # ======================= + + print("Copying novelWriter source ...") + print("") + + for nPath, _, nFiles in os.walk("novelwriter"): + if nPath.endswith("__pycache__"): + print("Skipped: %s" % nPath) + continue + + pPath = f"{outDir}/{nPath}" + if not os.path.isdir(pPath): + os.mkdir(pPath) + + fCount = 0 + for fFile in nFiles: + nFile = f"{nPath}/{fFile}" + pFile = f"{pPath}/{fFile}" + + if fFile.endswith(".pyc"): + print("Skipped: %s" % nFile) + continue + + shutil.copyfile(nFile, pFile) + fCount += 1 + + print("Copied: %s/* [Files: %d]" % (nPath, fCount)) + + print("") + print("Copying or generating additional files ...") + print("") + + # Root Files + + copyFiles = [ + "setup.cfg", + "pyproject.toml", + "LICENSE.md", + "CREDITS.md", + "CHANGELOG.md", + ] + for copyFile in copyFiles: + shutil.copyfile(copyFile, f"{outDir}/{copyFile}") + print("Copied: %s" % copyFile) + + with open(f"{outDir}/MANIFEST.in", mode="w") as outFile: + outFile.write( + "include LICENSE.md\n" + "include CREDITS.md\n" + "include CHANGELOG.md\n" + "include data/*\n" + "recursive-include novelwriter/assets *\n" + ) + print("Wrote: MANIFEST.in") + + with open(f"{outDir}/setup.py", mode="w") as outFile: + outFile.write( + "import setuptools\n" + "setuptools.setup()\n" + ) + print("Wrote: setup.py") + + # Copy Debian and Data Folders + + shutil.copytree("setup/debian", debDir) + print("Copied: debian/*") + shutil.copytree("setup/data", datDir) + print("Copied: data/*") + + # Generate debian/changelog File + + with open(f"{debDir}/changelog", mode="w") as outFile: + outFile.write( + f"novelwriter ({pkgVers}) unstable; urgency=medium\n\n" + f" * Update to version {pkgVers}\n\n" + f" -- Veronica Berglyd Olsen {pkgDate}\n" + ) + print("Wrote: debian/changelog") + + # Build Package + + print("") + print("Running dpkg-buildpackage ...") + print("") + + currDir = os.curdir + os.chdir(outDir) + subprocess.call(["dpkg-buildpackage", "-us", "-ui", "-uc"]) + os.chdir(currDir) + + print("") + print("Done!") + print("") + + return + + +## +# Make Simple Package (build-pyz) ## def makeSimplePackage(embedPython): @@ -745,13 +916,8 @@ def xdgInstall(): # Create and Install Launcher # =========================== - desktopData = "" - with open("./setup/novelwriter.desktop", mode="r") as inFile: - desktopData = inFile.read() - - desktopData = desktopData.replace(r"%%exec%%", useExec) - with open("./novelwriter.desktop", mode="w+") as outFile: - outFile.write(desktopData) + # Generate launcher + createLauncher(useExec, ".") # Remove old desktop icon exCode = subprocess.call( @@ -760,7 +926,7 @@ def xdgInstall(): # Install application launcher exCode = subprocess.call( - ["xdg-desktop-menu", "install", "--novendor", "./novelwriter.desktop"] + ["xdg-desktop-menu", "install", "--novendor", "novelwriter.desktop"] ) if exCode == 0: print("Installed menu launcher file") @@ -771,8 +937,7 @@ def xdgInstall(): # ================ exCode = subprocess.call([ - "xdg-mime", "install", - "./setup/mime/x-novelwriter-project.xml" + "xdg-mime", "install", "setup/data/x-novelwriter-project.xml" ]) if exCode == 0: print("Installed mimetype") @@ -782,16 +947,15 @@ def xdgInstall(): # Install Icons # ============= - sizeArr = ["16", "22", "24", "32", "48", "64", "96", "128", "256", "512"] + iconRoot = "setup/data/hicolor" + sizeArr = ["16", "24", "32", "48", "64", "128", "256"] # App Icon for aSize in sizeArr: exCode = subprocess.call([ - "xdg-icon-resource", "install", - "--novendor", "--noupdate", - "--context", "apps", - "--size", aSize, - f"./setup/icons/scaled/icon-novelwriter-{aSize}.png", + "xdg-icon-resource", "install", "--novendor", "--noupdate", + "--context", "apps", "--size", aSize, + f"{iconRoot}/{aSize}x{aSize}/apps/novelwriter.png", "novelwriter" ]) if exCode == 0: @@ -802,11 +966,9 @@ def xdgInstall(): # Mimetype for aSize in sizeArr: exCode = subprocess.call([ - "xdg-icon-resource", "install", - "--noupdate", - "--context", "mimetypes", - "--size", aSize, - f"./setup/icons/scaled/mime-novelwriter-{aSize}.png", + "xdg-icon-resource", "install", "--noupdate", + "--context", "mimetypes", "--size", aSize, + f"{iconRoot}/{aSize}x{aSize}/mimetypes/application-x-novelwriter-project.png", "application-x-novelwriter-project" ]) if exCode == 0: @@ -863,6 +1025,7 @@ def xdgUninstall(): else: print(f"Error {exCode}: Could not uninstall desktop launcher file") + # Also include no longer used sizes sizeArr = ["16", "22", "24", "32", "48", "64", "96", "128", "256", "512"] # App Icons @@ -925,7 +1088,7 @@ def winInstall(): print("===============") print("") - numVers, hexVers = extractVersion() + numVers, hexVers, _ = extractVersion() nwTesting = not hexVers[-2] == "f" wShell = win32com.client.Dispatch("WScript.Shell") @@ -1051,7 +1214,7 @@ def winUninstall(): print("=================") print("") - numVers, hexVers = extractVersion() + numVers, hexVers, _ = extractVersion() nwTesting = not hexVers[-2] == "f" wShell = win32com.client.Dispatch("WScript.Shell") @@ -1137,7 +1300,7 @@ def innoSetup(): with open(os.path.join("setup", "win_setup_pyz.iss"), mode="r") as inFile: issData = inFile.read() - numVers, _ = extractVersion() + numVers, _, _ = extractVersion() issData = issData.replace(r"%%version%%", numVers) issData = issData.replace(r"%%dir%%", os.getcwd()) @@ -1219,11 +1382,12 @@ if __name__ == "__main__": " all the other source files. Defaults to tailor the zip file", " for the current OS, but accepts a target OS flag to build", " for another OS.", - " pack-pyz Creates a .pyz package in a folder with all dependencies", + " build-deb Buiild a .deb package for Debian and Ubuntu.", + " build-pyz Buiild a .pyz package in a folder with all dependencies", " using the zipapp tool. On Windows, python embeddable is", " added to the folder.", " setup-pyz Build a Windows executable installer from a zipapp package", - " using Inno Setup. Must run 'pack-pyz' first.", + " using Inno Setup. Must run 'build-pyz' first.", "", "System Install:", "", @@ -1258,7 +1422,7 @@ if __name__ == "__main__": if "version" in sys.argv: sys.argv.remove("version") - numVers, hexVers = extractVersion() + numVers, hexVers, _ = extractVersion() print("Semantic Version: %s" % numVers) print("Hexadecimal Version: %s" % hexVers) sys.exit(0) @@ -1301,8 +1465,16 @@ if __name__ == "__main__": sys.argv.remove("minimal-zip") makeMinimalPackage(targetOS) - if "pack-pyz" in sys.argv: - sys.argv.remove("pack-pyz") + if "build-deb" in sys.argv: + sys.argv.remove("build-deb") + if hostOS == OS_LINUX: + makeDebianPackage() + else: + print("ERROR: Command 'build-deb' can only be used on Linux") + sys.exit(1) + + if "build-pyz" in sys.argv: + sys.argv.remove("build-pyz") simplePack = True if hostOS == OS_WIN: embedPython = True diff --git a/setup/icons/scaled/icon-novelwriter-128.png b/setup/data/hicolor/128x128/apps/novelwriter.png similarity index 100% rename from setup/icons/scaled/icon-novelwriter-128.png rename to setup/data/hicolor/128x128/apps/novelwriter.png diff --git a/setup/icons/scaled/mime-novelwriter-128.png b/setup/data/hicolor/128x128/mimetypes/application-x-novelwriter-project.png similarity index 100% rename from setup/icons/scaled/mime-novelwriter-128.png rename to setup/data/hicolor/128x128/mimetypes/application-x-novelwriter-project.png diff --git a/setup/icons/scaled/icon-novelwriter-16.png b/setup/data/hicolor/16x16/apps/novelwriter.png similarity index 100% rename from setup/icons/scaled/icon-novelwriter-16.png rename to setup/data/hicolor/16x16/apps/novelwriter.png diff --git a/setup/icons/scaled/mime-novelwriter-16.png b/setup/data/hicolor/16x16/mimetypes/application-x-novelwriter-project.png similarity index 100% rename from setup/icons/scaled/mime-novelwriter-16.png rename to setup/data/hicolor/16x16/mimetypes/application-x-novelwriter-project.png diff --git a/setup/icons/scaled/icon-novelwriter-24.png b/setup/data/hicolor/24x24/apps/novelwriter.png similarity index 100% rename from setup/icons/scaled/icon-novelwriter-24.png rename to setup/data/hicolor/24x24/apps/novelwriter.png diff --git a/setup/icons/scaled/mime-novelwriter-24.png b/setup/data/hicolor/24x24/mimetypes/application-x-novelwriter-project.png similarity index 100% rename from setup/icons/scaled/mime-novelwriter-24.png rename to setup/data/hicolor/24x24/mimetypes/application-x-novelwriter-project.png diff --git a/setup/icons/scaled/icon-novelwriter-256.png b/setup/data/hicolor/256x256/apps/novelwriter.png similarity index 100% rename from setup/icons/scaled/icon-novelwriter-256.png rename to setup/data/hicolor/256x256/apps/novelwriter.png diff --git a/setup/icons/scaled/mime-novelwriter-256.png b/setup/data/hicolor/256x256/mimetypes/application-x-novelwriter-project.png similarity index 100% rename from setup/icons/scaled/mime-novelwriter-256.png rename to setup/data/hicolor/256x256/mimetypes/application-x-novelwriter-project.png diff --git a/setup/icons/scaled/icon-novelwriter-16@2.png b/setup/data/hicolor/32x32/apps/novelwriter.png similarity index 100% rename from setup/icons/scaled/icon-novelwriter-16@2.png rename to setup/data/hicolor/32x32/apps/novelwriter.png diff --git a/setup/icons/scaled/mime-novelwriter-16@2.png b/setup/data/hicolor/32x32/mimetypes/application-x-novelwriter-project.png similarity index 100% rename from setup/icons/scaled/mime-novelwriter-16@2.png rename to setup/data/hicolor/32x32/mimetypes/application-x-novelwriter-project.png diff --git a/setup/icons/scaled/icon-novelwriter-48.png b/setup/data/hicolor/48x48/apps/novelwriter.png similarity index 100% rename from setup/icons/scaled/icon-novelwriter-48.png rename to setup/data/hicolor/48x48/apps/novelwriter.png diff --git a/setup/icons/scaled/mime-novelwriter-48.png b/setup/data/hicolor/48x48/mimetypes/application-x-novelwriter-project.png similarity index 100% rename from setup/icons/scaled/mime-novelwriter-48.png rename to setup/data/hicolor/48x48/mimetypes/application-x-novelwriter-project.png diff --git a/setup/icons/scaled/icon-novelwriter-64.png b/setup/data/hicolor/64x64/apps/novelwriter.png similarity index 100% rename from setup/icons/scaled/icon-novelwriter-64.png rename to setup/data/hicolor/64x64/apps/novelwriter.png diff --git a/setup/icons/scaled/mime-novelwriter-32@2.png b/setup/data/hicolor/64x64/mimetypes/application-x-novelwriter-project.png similarity index 100% rename from setup/icons/scaled/mime-novelwriter-32@2.png rename to setup/data/hicolor/64x64/mimetypes/application-x-novelwriter-project.png diff --git a/setup/data/hicolor/scalable/apps/novelwriter.svg b/setup/data/hicolor/scalable/apps/novelwriter.svg new file mode 100644 index 00000000..18be89c1 --- /dev/null +++ b/setup/data/hicolor/scalable/apps/novelwriter.svg @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/setup/data/hicolor/scalable/mimetypes/application-x-novelwriter-project.svg b/setup/data/hicolor/scalable/mimetypes/application-x-novelwriter-project.svg new file mode 100644 index 00000000..08546d15 --- /dev/null +++ b/setup/data/hicolor/scalable/mimetypes/application-x-novelwriter-project.svg @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/setup/novelwriter.desktop b/setup/data/novelwriter.desktop similarity index 66% rename from setup/novelwriter.desktop rename to setup/data/novelwriter.desktop index 37236fab..2666fa13 100644 --- a/setup/novelwriter.desktop +++ b/setup/data/novelwriter.desktop @@ -2,8 +2,8 @@ Type=Application Encoding=UTF-8 Name=novelWriter -Comment=Multi-document markdown-like editor for novels -Exec=%%exec%% %f +Comment=A markdown-like text editor for planning and writing novels +Exec=novelwriter %f Icon=novelwriter Categories=Qt;Office;WordProcessor; Terminal=false diff --git a/setup/data/novelwriter.png b/setup/data/novelwriter.png new file mode 100644 index 00000000..3d3fce1d Binary files /dev/null and b/setup/data/novelwriter.png differ diff --git a/setup/mime/x-novelwriter-project.xml b/setup/data/x-novelwriter-project.xml similarity index 100% rename from setup/mime/x-novelwriter-project.xml rename to setup/data/x-novelwriter-project.xml diff --git a/setup/debian/compat b/setup/debian/compat new file mode 100644 index 00000000..f599e28b --- /dev/null +++ b/setup/debian/compat @@ -0,0 +1 @@ +10 diff --git a/setup/debian/control b/setup/debian/control new file mode 100644 index 00000000..f72735f8 --- /dev/null +++ b/setup/debian/control @@ -0,0 +1,19 @@ +Source: novelwriter +Maintainer: Veronica Berglyd Olsen +Section: text +Priority: optional +Build-Depends: dh-python, python3-setuptools, python3-all, debhelper (>= 9) +Standards-Version: 4.5.1 +Homepage: https://novelwriter.io +X-Python3-Version: >= 3.6 + +Package: novelwriter +Architecture: all +Depends: ${misc:Depends}, ${python3:Depends}, python3 (>=3.6), python3-pyqt5 (>= 5.3), python3-lxml (>= 4.0), python3-enchant (>= 2.0) +Description: A markdown-like text editor for planning and writing novels + novelWriter is a plain text editor designed for writing novels assembled from + many smaller text documents. It uses a minimal formatting syntax inspired by + Markdown, and adds a meta data syntax for comments, synopsis, and + cross-referencing. It's designed to be a simple text editor that allows for + easy organisation of text and notes, using human readable text files as + storage for robustness. diff --git a/setup/debian/copyright b/setup/debian/copyright new file mode 100644 index 00000000..d4ce5b80 --- /dev/null +++ b/setup/debian/copyright @@ -0,0 +1,16 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: novelWriter +Upstream-Contact: Veronica Berglyd Olsen +Source: https://github.com/vkbo/novelWriter + +Files: novelwriter/assets/fonts/Cantarell/* +Copyright: 2009-2010, Understanding Limited +License: OFL-1.1 + +Files: novelwriter/assets/icons/typicons_*.svg +Copyright: 2019, Stephen Hutchings +License: CC-BY-SA-4.0 + +Files: novelwriter/* +Copyright: 2018-2021, Veronica Berglyd Olsen +License: GPL-3.0-or-later diff --git a/setup/debian/install b/setup/debian/install new file mode 100644 index 00000000..67583e15 --- /dev/null +++ b/setup/debian/install @@ -0,0 +1,4 @@ +data/hicolor usr/share/icons +data/novelwriter.desktop usr/share/applications +data/novelwriter.png usr/share/pixmaps +data/x-novelwriter-project.xml usr/share/mime/packages diff --git a/setup/debian/py3dist-overrides b/setup/debian/py3dist-overrides new file mode 100644 index 00000000..2c65b5a4 --- /dev/null +++ b/setup/debian/py3dist-overrides @@ -0,0 +1 @@ +pyqt5 python3-pyqt5 diff --git a/setup/debian/rules b/setup/debian/rules new file mode 100755 index 00000000..20a171c8 --- /dev/null +++ b/setup/debian/rules @@ -0,0 +1,5 @@ +#!/usr/bin/make -f + +export PYBUILD_NAME=novelwriter +%: + dh $@ --with python3 --buildsystem=pybuild diff --git a/setup/debian/source/format b/setup/debian/source/format new file mode 100644 index 00000000..89ae9db8 --- /dev/null +++ b/setup/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/setup/icons/scaled/icon-novelwriter-1024.png b/setup/icons/scaled/icon-novelwriter-1024.png deleted file mode 100644 index 5406d82e..00000000 Binary files a/setup/icons/scaled/icon-novelwriter-1024.png and /dev/null differ diff --git a/setup/icons/scaled/icon-novelwriter-18@2.png b/setup/icons/scaled/icon-novelwriter-18@2.png deleted file mode 100644 index f049a526..00000000 Binary files a/setup/icons/scaled/icon-novelwriter-18@2.png and /dev/null differ diff --git a/setup/icons/scaled/icon-novelwriter-192.png b/setup/icons/scaled/icon-novelwriter-192.png deleted file mode 100644 index c4161426..00000000 Binary files a/setup/icons/scaled/icon-novelwriter-192.png and /dev/null differ diff --git a/setup/icons/scaled/icon-novelwriter-22.png b/setup/icons/scaled/icon-novelwriter-22.png deleted file mode 100644 index 27ca5f32..00000000 Binary files a/setup/icons/scaled/icon-novelwriter-22.png and /dev/null differ diff --git a/setup/icons/scaled/icon-novelwriter-32.png b/setup/icons/scaled/icon-novelwriter-32.png deleted file mode 100644 index d0046519..00000000 Binary files a/setup/icons/scaled/icon-novelwriter-32.png and /dev/null differ diff --git a/setup/icons/scaled/icon-novelwriter-512.png b/setup/icons/scaled/icon-novelwriter-512.png deleted file mode 100644 index 83fc8812..00000000 Binary files a/setup/icons/scaled/icon-novelwriter-512.png and /dev/null differ diff --git a/setup/icons/scaled/icon-novelwriter-96.png b/setup/icons/scaled/icon-novelwriter-96.png deleted file mode 100644 index a9f2b5bc..00000000 Binary files a/setup/icons/scaled/icon-novelwriter-96.png and /dev/null differ diff --git a/setup/icons/scaled/icon-novelwriter32@2.png b/setup/icons/scaled/icon-novelwriter32@2.png deleted file mode 100644 index 57f5e307..00000000 Binary files a/setup/icons/scaled/icon-novelwriter32@2.png and /dev/null differ diff --git a/setup/icons/scaled/mime-novelwriter-1024.png b/setup/icons/scaled/mime-novelwriter-1024.png deleted file mode 100644 index 235e6b4b..00000000 Binary files a/setup/icons/scaled/mime-novelwriter-1024.png and /dev/null differ diff --git a/setup/icons/scaled/mime-novelwriter-18@2.png b/setup/icons/scaled/mime-novelwriter-18@2.png deleted file mode 100644 index 3bce02e9..00000000 Binary files a/setup/icons/scaled/mime-novelwriter-18@2.png and /dev/null differ diff --git a/setup/icons/scaled/mime-novelwriter-192.png b/setup/icons/scaled/mime-novelwriter-192.png deleted file mode 100644 index 7a65986d..00000000 Binary files a/setup/icons/scaled/mime-novelwriter-192.png and /dev/null differ diff --git a/setup/icons/scaled/mime-novelwriter-22.png b/setup/icons/scaled/mime-novelwriter-22.png deleted file mode 100644 index 384e2ca4..00000000 Binary files a/setup/icons/scaled/mime-novelwriter-22.png and /dev/null differ diff --git a/setup/icons/scaled/mime-novelwriter-32.png b/setup/icons/scaled/mime-novelwriter-32.png deleted file mode 100644 index 78889afa..00000000 Binary files a/setup/icons/scaled/mime-novelwriter-32.png and /dev/null differ diff --git a/setup/icons/scaled/mime-novelwriter-512.png b/setup/icons/scaled/mime-novelwriter-512.png deleted file mode 100644 index 858703b7..00000000 Binary files a/setup/icons/scaled/mime-novelwriter-512.png and /dev/null differ diff --git a/setup/icons/scaled/mime-novelwriter-64.png b/setup/icons/scaled/mime-novelwriter-64.png deleted file mode 100644 index b941a2f2..00000000 Binary files a/setup/icons/scaled/mime-novelwriter-64.png and /dev/null differ diff --git a/setup/icons/scaled/mime-novelwriter-96.png b/setup/icons/scaled/mime-novelwriter-96.png deleted file mode 100644 index 11e780a8..00000000 Binary files a/setup/icons/scaled/mime-novelwriter-96.png and /dev/null differ