fix icns generation and bundle display name.
while the icns *can* be generated on linux it is much preferable to generate it on macos it is checked in as a convience this commit fixes the appbundle not displaying the icon corrected and corrects the app being displayed as "python" in the top bar when the bundle is run Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
This commit is contained in:
@@ -462,6 +462,8 @@ def genMacOSPlist():
|
|||||||
f"<string>{macosBundleIdent}</string>\n"
|
f"<string>{macosBundleIdent}</string>\n"
|
||||||
"<key>CFBundleName</key>\n"
|
"<key>CFBundleName</key>\n"
|
||||||
f"<string>{macosBundleName}</string>\n"
|
f"<string>{macosBundleName}</string>\n"
|
||||||
|
"<key>CFBundleDisplayName</key>\n"
|
||||||
|
f"<string>{macosBundleName}</string>\n"
|
||||||
"<key>CFBundleInfoDictionaryVersion</key>\n"
|
"<key>CFBundleInfoDictionaryVersion</key>\n"
|
||||||
"<string>6.0</string>\n"
|
"<string>6.0</string>\n"
|
||||||
"<key>CFBundleShortVersionString</key>\n"
|
"<key>CFBundleShortVersionString</key>\n"
|
||||||
@@ -504,6 +506,8 @@ def genMacOSPlist():
|
|||||||
"</plist>\n"
|
"</plist>\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
print(f"Writing Info.plist to {outDir}/Info.plist")
|
||||||
|
|
||||||
writeFile(f"{outDir}/Info.plist", plistXML)
|
writeFile(f"{outDir}/Info.plist", plistXML)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -100,6 +100,7 @@ EOF
|
|||||||
chmod a+x novelWriter.app/Contents/MacOS/novelWriter
|
chmod a+x novelWriter.app/Contents/MacOS/novelWriter
|
||||||
|
|
||||||
#do codesigning
|
#do codesigning
|
||||||
|
#echo "Signing bundle ..."
|
||||||
#sudo codesign --sign - --deep --force --entitlements "$SCRIPT_DIR/../macos/App.entitlements" --options runtime "novelWriter.app/Contents/MacOS/novelWriter"
|
#sudo codesign --sign - --deep --force --entitlements "$SCRIPT_DIR/../macos/App.entitlements" --options runtime "novelWriter.app/Contents/MacOS/novelWriter"
|
||||||
|
|
||||||
# remove bloat
|
# remove bloat
|
||||||
|
|||||||
@@ -1,19 +1,70 @@
|
|||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
if ! command -v png2icns &> /dev/null
|
|
||||||
then
|
|
||||||
echo "png2icns cound not be found, it is required. Please install a package like icnsutils or libicns."
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
|
|
||||||
mkdir -p $SCRIPT_DIR/icons
|
function generate_linux () {
|
||||||
|
echo "Generating on Linux ..."
|
||||||
|
if ! command -v png2icns &> /dev/null
|
||||||
|
then
|
||||||
|
echo "png2icns cound not be found, it is required. Please install a package like icnsutils or libicns."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
for size in 16x16 32x32 48x48 128x128 256x256; do
|
if ! command -v convert $> /dev/null
|
||||||
cp $SCRIPT_DIR/../setup/data/hicolor/$size/apps/novelwriter.png $SCRIPT_DIR/icons/icon_${size}px.png
|
then
|
||||||
done
|
echo "convert could not be found, it is required. please install a imagemagick package."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
png2icns $SCRIPT_DIR/novelwriter.icns $SCRIPT_DIR/icons/icon_*px.png
|
mkdir -p $SCRIPT_DIR/icons
|
||||||
|
|
||||||
rm -r $SCRIPT_DIR/icons
|
sizes=( 16 32 64 128 256 )
|
||||||
|
for base in "${sizes[@]}"; do
|
||||||
|
let basex2=${base}*2
|
||||||
|
size="${base}x${base}"
|
||||||
|
echo "Copying files for $size"
|
||||||
|
double=${basex2}x${basex2}
|
||||||
|
cp $SCRIPT_DIR/../data/hicolor/${size}/apps/novelwriter.png $SCRIPT_DIR/icons/icon_${size}.png
|
||||||
|
echo "Resizing ${size}@2x to $double from $size"
|
||||||
|
convert $SCRIPT_DIR/icons/icon_${size}.png -resize $double $SCRIPT_DIR/icons/icon_${size}@2x.png
|
||||||
|
done
|
||||||
|
|
||||||
|
png2icns $SCRIPT_DIR/novelwriter.icns $SCRIPT_DIR/icons/icon_*.png
|
||||||
|
|
||||||
|
rm -r $SCRIPT_DIR/icons
|
||||||
|
|
||||||
|
echo "Done"
|
||||||
|
}
|
||||||
|
|
||||||
|
function generate_macos () {
|
||||||
|
echo "Generating on MacOs ..."
|
||||||
|
mkdir -p $SCRIPT_DIR/icons
|
||||||
|
|
||||||
|
echo "Building Iconset ..."
|
||||||
|
sizes=( 16 32 64 128 256 )
|
||||||
|
for base in "${sizes[@]}"; do
|
||||||
|
let basex2=${base}*2
|
||||||
|
size="${base}x${base}"
|
||||||
|
echo "Copying files for $size"
|
||||||
|
double=${basex2}x${basex2}
|
||||||
|
cp $SCRIPT_DIR/../data/hicolor/${size}/apps/novelwriter.png $SCRIPT_DIR/icons/icon_${size}.png
|
||||||
|
cp $SCRIPT_DIR/../data/hicolor/${size}/apps/novelwriter.png $SCRIPT_DIR/icons/icon_${size}@2x.png
|
||||||
|
echo "Resizing ${size}@2x to $double from $size"
|
||||||
|
sips -Z $basex2 $SCRIPT_DIR/icons/icon_${size}@2x.png
|
||||||
|
done
|
||||||
|
|
||||||
|
rm -rf $SCRIPT_DIR/novelwriter.iconset
|
||||||
|
mv $SCRIPT_DIR/icons $SCRIPT_DIR/novelwriter.iconset
|
||||||
|
|
||||||
|
echo "Generating icns ..."
|
||||||
|
iconutil -c icns $SCRIPT_DIR/novelwriter.iconset
|
||||||
|
|
||||||
|
echo "Done"
|
||||||
|
}
|
||||||
|
|
||||||
|
unameOut="$(uname -s)"
|
||||||
|
case "$unameOut" in
|
||||||
|
Linux*) generate_linux;;
|
||||||
|
Darwin*) generate_macos;;
|
||||||
|
*) echo "Unsupported OS"
|
||||||
|
esac
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user