From eca28698940be2ceb58f39ed20b00f54dab2dc51 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Thu, 22 Oct 2020 22:25:44 +0200 Subject: [PATCH 1/5] Install launcher and icons the right way --- .gitignore | 1 + setup.py | 174 +++++++++--------- .../icon-novelwriter-1024.png} | Bin .../icon-novelwriter-128.png} | Bin .../icon-novelwriter-16.png} | Bin .../icon-novelwriter-16@2.png} | Bin .../icon-novelwriter-18@2.png} | Bin setup/icons/scaled/icon-novelwriter-22.png | Bin 0 -> 985 bytes .../icon-novelwriter-24.png} | Bin .../icon-novelwriter-256.png} | Bin .../icon-novelwriter-32.png} | Bin .../icon-novelwriter-48.png} | Bin .../icon-novelwriter-512.png} | Bin .../icon-novelwriter-64.png} | Bin .../icon-novelwriter-96.png} | Bin .../icon-novelwriter32@2.png} | Bin .../mime-novelwriter-1024.png} | Bin .../mime-novelwriter-128.png} | Bin .../mime-novelwriter-16.png} | Bin .../mime-novelwriter-16@2.png} | Bin .../mime-novelwriter-18@2.png} | Bin setup/icons/scaled/mime-novelwriter-22.png | Bin 0 -> 986 bytes .../mime-novelwriter-24.png} | Bin .../mime-novelwriter-256.png} | Bin .../mime-novelwriter-32.png} | Bin .../mime-novelwriter-32@2.png} | Bin .../mime-novelwriter-48.png} | Bin .../mime-novelwriter-512.png} | Bin .../mime-novelwriter-64.png} | Bin .../mime-novelwriter-96.png} | Bin 30 files changed, 91 insertions(+), 84 deletions(-) rename setup/icons/{1024x1024/novelwriter.png => scaled/icon-novelwriter-1024.png} (100%) rename setup/icons/{128x128/novelwriter.png => scaled/icon-novelwriter-128.png} (100%) rename setup/icons/{16x16/novelwriter.png => scaled/icon-novelwriter-16.png} (100%) rename setup/icons/{16x16@2x/novelwriter.png => scaled/icon-novelwriter-16@2.png} (100%) rename setup/icons/{18x18@2x/novelwriter.png => scaled/icon-novelwriter-18@2.png} (100%) create mode 100644 setup/icons/scaled/icon-novelwriter-22.png rename setup/icons/{24x24/novelwriter.png => scaled/icon-novelwriter-24.png} (100%) rename setup/icons/{256x256/novelwriter.png => scaled/icon-novelwriter-256.png} (100%) rename setup/icons/{32x32/novelwriter.png => scaled/icon-novelwriter-32.png} (100%) rename setup/icons/{48x48/novelwriter.png => scaled/icon-novelwriter-48.png} (100%) rename setup/icons/{512x512/novelwriter.png => scaled/icon-novelwriter-512.png} (100%) rename setup/icons/{32x32@2x/novelwriter.png => scaled/icon-novelwriter-64.png} (100%) rename setup/icons/{96x96/novelwriter.png => scaled/icon-novelwriter-96.png} (100%) rename setup/icons/{64x64/novelwriter.png => scaled/icon-novelwriter32@2.png} (100%) rename setup/icons/{1024x1024/x-novelwriter-project.png => scaled/mime-novelwriter-1024.png} (100%) rename setup/icons/{128x128/x-novelwriter-project.png => scaled/mime-novelwriter-128.png} (100%) rename setup/icons/{16x16/x-novelwriter-project.png => scaled/mime-novelwriter-16.png} (100%) rename setup/icons/{16x16@2x/x-novelwriter-project.png => scaled/mime-novelwriter-16@2.png} (100%) rename setup/icons/{18x18@2x/x-novelwriter-project.png => scaled/mime-novelwriter-18@2.png} (100%) create mode 100644 setup/icons/scaled/mime-novelwriter-22.png rename setup/icons/{24x24/x-novelwriter-project.png => scaled/mime-novelwriter-24.png} (100%) rename setup/icons/{256x256/x-novelwriter-project.png => scaled/mime-novelwriter-256.png} (100%) rename setup/icons/{32x32/x-novelwriter-project.png => scaled/mime-novelwriter-32.png} (100%) rename setup/icons/{32x32@2x/x-novelwriter-project.png => scaled/mime-novelwriter-32@2.png} (100%) rename setup/icons/{48x48/x-novelwriter-project.png => scaled/mime-novelwriter-48.png} (100%) rename setup/icons/{512x512/x-novelwriter-project.png => scaled/mime-novelwriter-512.png} (100%) rename setup/icons/{64x64/x-novelwriter-project.png => scaled/mime-novelwriter-64.png} (100%) rename setup/icons/{96x96/x-novelwriter-project.png => scaled/mime-novelwriter-96.png} (100%) diff --git a/.gitignore b/.gitignore index 830a409a..66c21d61 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ *.spec *.egg-info setup.iss +novelwriter.desktop # Documentation /docs/build/ diff --git a/setup.py b/setup.py index c3c5710b..da2a6c34 100755 --- a/setup.py +++ b/setup.py @@ -140,14 +140,17 @@ def buildSampleZip(): # Create Launcher # =============================================================================================== # -def makeLauncherLinux(): +def xdgInstall(): """Will attempt to install icons and make a launcher. """ print("") - print("Creating Launcher") - print("=================") + print("XDG Install") + print("===========") print("") + # Find Executable(s) + # ================== + exOpts = [] testExec = shutil.which("novelWriter") @@ -185,95 +188,94 @@ def makeLauncherLinux(): sys.exit(1) print("Using executable: %s " % useExec) + print("") + + # Create and Install Launcher + # =========================== - # Read the Template desktopData = "" with open(os.path.join("setup", "novelwriter.desktop"), mode="r") as inFile: desktopData = inFile.read() desktopData = desktopData.replace(r"%%exec%%", useExec) - desktopFile = "/usr/share/applications/novelwriter.desktop" - try: - with open(desktopFile, mode="w+") as outFile: - outFile.write(desktopData) - print("Wrote file: %s" % desktopFile) - except Exception as e: - print("Error: Could not write novelwriter.desktop file.") - print(str(e)) - sys.exit(1) + desktopFile = os.path.join(os.getcwd(), "novelwriter.desktop") + with open(desktopFile, mode="w+") as outFile: + outFile.write(desktopData) + + exCode = subprocess.call( + ["xdg-desktop-menu", "install", "--novendor", "./novelwriter.desktop"] + ) + if exCode == 0: + print("Installed menu desktop file") + else: + print(f"Error {exCode}: Could not install menu desktop file") + + exCode = subprocess.call( + ["xdg-desktop-icon", "install", "--novendor", "./novelwriter.desktop"] + ) + if exCode == 0: + print("Installed icon desktop file") + else: + print(f"Error {exCode}: Could not install icon desktop file") print("") - # Copy Icons + # Install MimeType + # ================ - iconDirs = [ - "/usr/share/icons/hicolor/24x24/apps", - "/usr/share/icons/hicolor/48x48/apps", - "/usr/share/icons/hicolor/96x96/apps", - "/usr/share/icons/hicolor/256x256/apps", - "/usr/share/icons/hicolor/512x512/apps", - "/usr/share/icons/hicolor/scalable/apps", - "/usr/share/icons/hicolor/scalable/mimetypes", - ] - for iconDir in iconDirs: - if not os.path.isdir: - try: - os.mkdir(iconDir) - print("Created folder: %s" % iconDir) - except Exception as e: - print("Error: Could not make folder: %s" % iconDir) - print(str(e)) - - copyList = [( - "setup/icons/24x24/novelwriter.png", - "/usr/share/icons/hicolor/24x24/apps/novelwriter.png" - ), ( - "setup/icons/48x48/novelwriter.png", - "/usr/share/icons/hicolor/48x48/apps/novelwriter.png" - ), ( - "setup/icons/96x96/novelwriter.png", - "/usr/share/icons/hicolor/96x96/apps/novelwriter.png" - ), ( - "setup/icons/256x256/novelwriter.png", - "/usr/share/icons/hicolor/256x256/apps/novelwriter.png" - ), ( - "setup/icons/512x512/novelwriter.png", - "/usr/share/icons/hicolor/512x512/apps/novelwriter.png" - ), ( - "setup/icons/novelwriter.svg", - "/usr/share/icons/hicolor/scalable/apps/novelwriter.svg" - ), ( - "setup/icons/x-novelwriter-project.svg", - "/usr/share/icons/hicolor/scalable/mimetypes/application-x-novelwriter-project.svg" - ), ( - "setup/mime/x-novelwriter-project.xml", - "/usr/share/mime/packages/x-novelwriter-project.xml" - )] - for srcFile, dstFile in copyList: - try: - shutil.copyfile(srcFile, dstFile) - print("Copied file to: %s" % dstFile) - except Exception as e: - print("Error: Could not copy file: %s" % srcFile) - print(str(e)) + exCode = subprocess.call([ + "xdg-mime", "install", + "setup/mime/x-novelwriter-project.xml" + ]) + if exCode == 0: + print("Installed mimetype") + else: + print(f"Error {exCode}: Could not install mimetype") print("") - # Update System - try: - subprocess.call(["update-mime-database", "/usr/share/mime/"]) - print("Updated mime database.") - except Exception as e: - print("Error: Filed to update mime database.") - print(str(e)) + # Install Icons + # ============= - try: - subprocess.call(["update-icon-caches", "/usr/share/icons/*"]) - print("Updated icon cache.") - except Exception as e: - print("Error: Filed to update icon cache.") - print(str(e)) + sizeArr = ["16", "22", "24", "32", "48", "96", "128", "256", "512"] + + # 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", + "novelwriter" + ]) + if exCode == 0: + print(f"Installed app icon size {aSize}") + else: + print(f"Error {exCode}: Could not install app icon size {aSize}") + + # 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", + "application-x-novelwriter-project" + ]) + if exCode == 0: + print(f"Installed mime icon size {aSize}") + else: + print(f"Error {exCode}: Could not install mime icon size {aSize}") + + # Update Cache + exCode = subprocess.call(["xdg-icon-resource", "forceupdate"]) + if exCode == 0: + print("Updated icon cache") + else: + print("Error {exCode}: Could not update icon cache") print("") print("Done!") @@ -293,10 +295,10 @@ if __name__ == "__main__": "======================\n" "This tool provides some additional setup commands for novelWriter.\n" "\n" - "help Print the help message.\n" - "qthelp Build the help documentation for use with the QtAssistant.\n" - "sample Build the sample project as a zip file.\n" - "launcher Install launcher icons for freedesktop systems.\n" + "help Print the help message.\n" + "qthelp Build the help documentation for use with the QtAssistant.\n" + "sample Build the sample project as a zip file.\n" + "xdg-install Install launcher and icons for freedesktop systems.\n" ) if "help" in sys.argv: @@ -312,9 +314,13 @@ if __name__ == "__main__": sys.argv.remove("sample") buildSampleZip() - if "launcher" in sys.argv: - sys.argv.remove("launcher") - makeLauncherLinux() + if "xdg-install" in sys.argv: + sys.argv.remove("xdg-install") + if not sys.platform.startswith("win32"): + xdgInstall() + else: + print("ERROR: xdg-install cannot be used on Windows") + sys.exit(1) if len(sys.argv) <= 1: # Nothing more to do diff --git a/setup/icons/1024x1024/novelwriter.png b/setup/icons/scaled/icon-novelwriter-1024.png similarity index 100% rename from setup/icons/1024x1024/novelwriter.png rename to setup/icons/scaled/icon-novelwriter-1024.png diff --git a/setup/icons/128x128/novelwriter.png b/setup/icons/scaled/icon-novelwriter-128.png similarity index 100% rename from setup/icons/128x128/novelwriter.png rename to setup/icons/scaled/icon-novelwriter-128.png diff --git a/setup/icons/16x16/novelwriter.png b/setup/icons/scaled/icon-novelwriter-16.png similarity index 100% rename from setup/icons/16x16/novelwriter.png rename to setup/icons/scaled/icon-novelwriter-16.png diff --git a/setup/icons/16x16@2x/novelwriter.png b/setup/icons/scaled/icon-novelwriter-16@2.png similarity index 100% rename from setup/icons/16x16@2x/novelwriter.png rename to setup/icons/scaled/icon-novelwriter-16@2.png diff --git a/setup/icons/18x18@2x/novelwriter.png b/setup/icons/scaled/icon-novelwriter-18@2.png similarity index 100% rename from setup/icons/18x18@2x/novelwriter.png rename to setup/icons/scaled/icon-novelwriter-18@2.png diff --git a/setup/icons/scaled/icon-novelwriter-22.png b/setup/icons/scaled/icon-novelwriter-22.png new file mode 100644 index 0000000000000000000000000000000000000000..27ca5f32cfc4a75a4e925e5449b44df0a2b44ee5 GIT binary patch literal 985 zcmV;~119{5P)s5hpsa3O>MrMx>=pOByQ;Nu#MIB=;scYdP5ao|DrS+;H|jXRour^__36@5qVs z=i{N~%($18@ol05dQr1q|H4aBy(5!RrX_h4|b`YvDqi8k#xR9UlGI0e8zj)_^~<-!qCkL$7cO(%c8DP)wvwnTSYkZrQ>(MRIr%6%CqJMwGD>r(!}e<* zvas)986RI?h5lx)la$)285z_{1MD8X?l`g8%Hlx?k({yd0c?yO(BNVxtR8yjn^#8!p+)o1iWgtyPo z7~Kna*0|UOETG*poL!nfeco+QL()$0yWT#d_(g$ol~ zhdjU$ksyP^mA7QqOciJ}(5Yh-=Im_uQyInF#jY*t%}@RV_IVrt*u~%f00000NkvXX Hu0mjfXL-uX literal 0 HcmV?d00001 diff --git a/setup/icons/24x24/novelwriter.png b/setup/icons/scaled/icon-novelwriter-24.png similarity index 100% rename from setup/icons/24x24/novelwriter.png rename to setup/icons/scaled/icon-novelwriter-24.png diff --git a/setup/icons/256x256/novelwriter.png b/setup/icons/scaled/icon-novelwriter-256.png similarity index 100% rename from setup/icons/256x256/novelwriter.png rename to setup/icons/scaled/icon-novelwriter-256.png diff --git a/setup/icons/32x32/novelwriter.png b/setup/icons/scaled/icon-novelwriter-32.png similarity index 100% rename from setup/icons/32x32/novelwriter.png rename to setup/icons/scaled/icon-novelwriter-32.png diff --git a/setup/icons/48x48/novelwriter.png b/setup/icons/scaled/icon-novelwriter-48.png similarity index 100% rename from setup/icons/48x48/novelwriter.png rename to setup/icons/scaled/icon-novelwriter-48.png diff --git a/setup/icons/512x512/novelwriter.png b/setup/icons/scaled/icon-novelwriter-512.png similarity index 100% rename from setup/icons/512x512/novelwriter.png rename to setup/icons/scaled/icon-novelwriter-512.png diff --git a/setup/icons/32x32@2x/novelwriter.png b/setup/icons/scaled/icon-novelwriter-64.png similarity index 100% rename from setup/icons/32x32@2x/novelwriter.png rename to setup/icons/scaled/icon-novelwriter-64.png diff --git a/setup/icons/96x96/novelwriter.png b/setup/icons/scaled/icon-novelwriter-96.png similarity index 100% rename from setup/icons/96x96/novelwriter.png rename to setup/icons/scaled/icon-novelwriter-96.png diff --git a/setup/icons/64x64/novelwriter.png b/setup/icons/scaled/icon-novelwriter32@2.png similarity index 100% rename from setup/icons/64x64/novelwriter.png rename to setup/icons/scaled/icon-novelwriter32@2.png diff --git a/setup/icons/1024x1024/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-1024.png similarity index 100% rename from setup/icons/1024x1024/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-1024.png diff --git a/setup/icons/128x128/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-128.png similarity index 100% rename from setup/icons/128x128/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-128.png diff --git a/setup/icons/16x16/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-16.png similarity index 100% rename from setup/icons/16x16/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-16.png diff --git a/setup/icons/16x16@2x/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-16@2.png similarity index 100% rename from setup/icons/16x16@2x/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-16@2.png diff --git a/setup/icons/18x18@2x/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-18@2.png similarity index 100% rename from setup/icons/18x18@2x/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-18@2.png diff --git a/setup/icons/scaled/mime-novelwriter-22.png b/setup/icons/scaled/mime-novelwriter-22.png new file mode 100644 index 0000000000000000000000000000000000000000..384e2ca4b9cff0e599d47515b4b0f74c9fc5118d GIT binary patch literal 986 zcmV<0110>4P)d+xoT_r2$y zbDzYuEi5cF_6X*e)4MY>GlvwIWOOz*Hhvu#7#No% z$%F_YN;X~B5ke4)#mHnbnUj-~;Pmu#$_lm_o$Bi9CPh)$e)ERE=I4=b+&~tBTp|Iv z9Fo_|w-XcmFg}hf%LpN`*=%%mb-AL^Xl!X|soknvHl<6FB+D`f@7~dvPNRPOh!PG{ zb$CeC@iF#KpGduY$>yt9mEiC& zcDtSS_I5M&mzS4+mjoBye8c1ghq#G*nfkw;P1u_{kI6@7-hg(W5-2MPNg5LrV)Iv$H6Qf}$wsx=!Ey`|P}Zi+prs zZcIBIbdHRagyx093b)y8=6fK7z+G3z=@LpU+njEDU%w8f9;952w=! zfZOe+rlyAa`g(?jhH$xDG&eW1v$Mn0)D+=x*brvY&9YfrTU+hz?R`+GbSssx5Q0b~ z^4r+h*hF58lgZ?>?d|QX!{KNwRcVEw!nuo!i^EhZ_1y6N3$d4|d1`T3+5i9m07*qo IM6N<$f(rfLQUCw| literal 0 HcmV?d00001 diff --git a/setup/icons/24x24/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-24.png similarity index 100% rename from setup/icons/24x24/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-24.png diff --git a/setup/icons/256x256/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-256.png similarity index 100% rename from setup/icons/256x256/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-256.png diff --git a/setup/icons/32x32/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-32.png similarity index 100% rename from setup/icons/32x32/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-32.png diff --git a/setup/icons/32x32@2x/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-32@2.png similarity index 100% rename from setup/icons/32x32@2x/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-32@2.png diff --git a/setup/icons/48x48/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-48.png similarity index 100% rename from setup/icons/48x48/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-48.png diff --git a/setup/icons/512x512/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-512.png similarity index 100% rename from setup/icons/512x512/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-512.png diff --git a/setup/icons/64x64/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-64.png similarity index 100% rename from setup/icons/64x64/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-64.png diff --git a/setup/icons/96x96/x-novelwriter-project.png b/setup/icons/scaled/mime-novelwriter-96.png similarity index 100% rename from setup/icons/96x96/x-novelwriter-project.png rename to setup/icons/scaled/mime-novelwriter-96.png From 92610ca88a6c624d954c30f4084a55faa3702c54 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Thu, 22 Oct 2020 22:33:32 +0200 Subject: [PATCH 2/5] Move the import of setuptools to where it's used --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index da2a6c34..e515e9c0 100755 --- a/setup.py +++ b/setup.py @@ -21,7 +21,6 @@ import os import sys import shutil import subprocess -import setuptools # =============================================================================================== # # Qt Assistant Documentation Builder @@ -327,6 +326,7 @@ if __name__ == "__main__": sys.exit(0) # Run the standard setup + import setuptools setuptools.setup() # END Main From 56cbf86df42efcecef0bc0183fb05f10886f4617 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Thu, 22 Oct 2020 22:34:31 +0200 Subject: [PATCH 3/5] Flake8 tag --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index e515e9c0..49cd049d 100755 --- a/setup.py +++ b/setup.py @@ -326,7 +326,7 @@ if __name__ == "__main__": sys.exit(0) # Run the standard setup - import setuptools + import setuptools # noqa: F401 setuptools.setup() # END Main From 299b8cde1ba82db36408e22524742adbc8c7577c Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Thu, 22 Oct 2020 22:40:54 +0200 Subject: [PATCH 4/5] Update readmes with the XDG changes --- README.md | 4 +++- setup/README.md | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9efa0b24..54348b1f 100644 --- a/README.md +++ b/README.md @@ -104,8 +104,10 @@ If you want to run directly from the source, the application can be started with You can also create a launcher for running directly from source with: ```bash -sudo python3 setup.py launcher +python3 setup.py xdg-install ``` +This will install the launcher and icons for the current user. +To install them system-wide, run the above command with `sudo` or as root. For more install options, see [Build and Install novelWriter](setup/README.md). diff --git a/setup/README.md b/setup/README.md index 81479cf7..252f70cd 100644 --- a/setup/README.md +++ b/setup/README.md @@ -13,8 +13,9 @@ The `setup.py` is a standard Python setup script with a couple of additional opt * `sample`: Will create a `sample.zip` file in the `nw/assets` folder. This is the file the New Project Wizard uses to generate an example project. If novelWriter is run from source, this file is not needed. -* `launcher`: Will try to copy the novelWriter icons and create a novelWriter.desktop file to launch +* `xdg-install`: Will install novelWriter icons, mimetype, and desktop and menu launcher on Linux desktops. the application. This should work on standard Linux desktops. + By default, this is installed for the current user. Run with `sudo` to install system-wide. To install novelWriter as a local Python package, run: ```bash From bfcbf66044805b70a0f8c9d609ede51fe802f5a9 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Thu, 22 Oct 2020 23:00:06 +0200 Subject: [PATCH 5/5] Some minor tweaks of the xdg install --- setup.py | 16 +++++++--------- setup/novelwriter.desktop | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/setup.py b/setup.py index 49cd049d..1eae8bf7 100755 --- a/setup.py +++ b/setup.py @@ -193,13 +193,11 @@ def xdgInstall(): # =========================== desktopData = "" - with open(os.path.join("setup", "novelwriter.desktop"), mode="r") as inFile: + with open("./setup/novelwriter.desktop", mode="r") as inFile: desktopData = inFile.read() desktopData = desktopData.replace(r"%%exec%%", useExec) - - desktopFile = os.path.join(os.getcwd(), "novelwriter.desktop") - with open(desktopFile, mode="w+") as outFile: + with open("./novelwriter.desktop", mode="w+") as outFile: outFile.write(desktopData) exCode = subprocess.call( @@ -225,7 +223,7 @@ def xdgInstall(): exCode = subprocess.call([ "xdg-mime", "install", - "setup/mime/x-novelwriter-project.xml" + "./setup/mime/x-novelwriter-project.xml" ]) if exCode == 0: print("Installed mimetype") @@ -237,7 +235,7 @@ def xdgInstall(): # Install Icons # ============= - sizeArr = ["16", "22", "24", "32", "48", "96", "128", "256", "512"] + sizeArr = ["16", "22", "24", "32", "48", "64", "96", "128", "256", "512"] # App Icon for aSize in sizeArr: @@ -246,7 +244,7 @@ def xdgInstall(): "--novendor", "--noupdate", "--context", "apps", "--size", aSize, - f"setup/icons/scaled/icon-novelwriter-{aSize}.png", + f"./setup/icons/scaled/icon-novelwriter-{aSize}.png", "novelwriter" ]) if exCode == 0: @@ -261,7 +259,7 @@ def xdgInstall(): "--noupdate", "--context", "mimetypes", "--size", aSize, - f"setup/icons/scaled/mime-novelwriter-{aSize}.png", + f"./setup/icons/scaled/mime-novelwriter-{aSize}.png", "application-x-novelwriter-project" ]) if exCode == 0: @@ -274,7 +272,7 @@ def xdgInstall(): if exCode == 0: print("Updated icon cache") else: - print("Error {exCode}: Could not update icon cache") + print(f"Error {exCode}: Could not update icon cache") print("") print("Done!") diff --git a/setup/novelwriter.desktop b/setup/novelwriter.desktop index 69550600..37236fab 100644 --- a/setup/novelwriter.desktop +++ b/setup/novelwriter.desktop @@ -2,7 +2,7 @@ Type=Application Encoding=UTF-8 Name=novelWriter -Comment=Multi-document markdown editor for novels +Comment=Multi-document markdown-like editor for novels Exec=%%exec%% %f Icon=novelwriter Categories=Qt;Office;WordProcessor;