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 @@
+
+
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 @@
+
+
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 @@
+
+
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 @@
+
+
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