Created
June 15, 2015 20:27
-
-
Save saerdnaer/18258a2667add2c5b4a6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# Author: Aaron Voisine <[email protected]> | |
# Inkscape Modifications: | |
# Michael Wybrow <[email protected]> | |
# Jean-Olivier Irisson <[email protected]> | |
# | |
CWD="`(cd \"\`dirname \\\"$0\\\"\`\"; echo \"$PWD\")`" | |
# e.g. /Applications/Inkscape.app/Contents/Resources/bin | |
TOP="`dirname \"$CWD\"`" | |
# e.g. /Applications/Inkscape.app/Contents/Resources | |
# Brutally add many things to the PATH. If the directories do not exist, they won't be used anyway. | |
# People should really use ~/.macosx/environment.plist to set environment variables as explained by Apple: | |
# http://developer.apple.com/qa/qa2001/qa1067.html | |
# but since no one does, we correct this by making the 'classic' PATH additions here: | |
# /usr/local/bin which, though standard, doesn't seem to be in the PATH | |
# newer python as recommended by MacPython http://www.python.org/download/mac/ | |
# Fink | |
# MacPorts (former DarwinPorts) | |
# LaTeX distribution for Mac OS X | |
export PATH="/usr/texbin:/opt/local/bin:/sw/bin/:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/local/bin:$CWD:$PATH" | |
# Put /usr/bin at beginning of path so we make sure we use Apple's python | |
# over one that may be installed be Macports, Fink or some other means. | |
export PATH="/usr/bin:$PATH" | |
# On Snow Leopard, use the 32-bit version of python from Universal build. | |
# This is because our bundled i386 python libraries are 32-bit only. | |
export VERSIONER_PYTHON_VERSION=2.6 | |
export VERSIONER_PYTHON_PREFER_32_BIT=yes | |
# Setup PYTHONPATH to use python modules shipped with Inkscape | |
ARCH=`arch` | |
PYTHON_VERS=`python -V 2>&1 | cut -c 8-10` | |
export PYTHONPATH="$TOP/python/site-packages/$ARCH/$PYTHON_VERS" | |
# NB: we are only preprending some stuff to the default python path so if the directory does not exist it should not harm the rest | |
# No longer required if path rewriting has been conducted. | |
# export DYLD_LIBRARY_PATH="$TOP/lib" | |
mkdir -p "${HOME}/.inkscape-etc" | |
mkdir -p "${HOME}/.local" | |
mkdir -p "${HOME}/.local/share" | |
export FONTCONFIG_PATH="$TOP/etc/fonts" | |
export PANGO_RC_FILE="$HOME/.inkscape-etc/pangorc" | |
export GTK_IM_MODULE_FILE="$HOME/.inkscape-etc/gtk.immodules" | |
export GDK_PIXBUF_MODULE_FILE="$HOME/.inkscape-etc/gdk-pixbuf.loaders" | |
export GTK_DATA_PREFIX="$TOP" | |
export GTK_EXE_PREFIX="$TOP" | |
export GNOME_VFS_MODULE_CONFIG_PATH="$TOP/etc/gnome-vfs-2.0/modules" | |
export GNOME_VFS_MODULE_PATH="$TOP/lib/gnome-vfs-2.0/modules" | |
export XDG_DATA_DIRS="$TOP/share" | |
export ASPELL_CONF="prefix $TOP;" | |
# Note: This requires the path with the exact ImageMagic version number. | |
# Also, that ImageMagick will only work if it does not find a | |
# version installed into the same PREFIX as it was originally | |
# installed. Luckily, this is very unlikely given the extra long | |
# and strangely named install prefix we use. | |
# The actual version is inserted by the packaging script. | |
export MAGICK_CONFIGURE_PATH="$TOP/lib/ImageMagick-6.8.9/config:$TOP/share/ImageMagick-6.8.9/config" | |
export MAGICK_CODER_FILTER_PATH="$TOP/lib/ImageMagick-6.8.9/modules-Q16/filters" | |
export MAGICK_CODER_MODULE_PATH="$TOP/lib/ImageMagick-6.8.9/modules-Q16/coders" | |
export INKSCAPE_SHAREDIR="$TOP" | |
# TODO: move the share directory to a its own folder to make things a bit cleaner in the app bundle | |
export INKSCAPE_PLUGINDIR="$TOP/lib/inkscape" | |
export INKSCAPE_LOCALEDIR="$TOP/locale" | |
# Handle the case where the directory storing Inkscape has special characters | |
# ('#', '&', '|') in the name. These need to be escaped to work properly for | |
# various configuration files. | |
ESCAPEDTOP=`echo "$TOP" | sed 's/#/\\\\\\\\#/' | sed 's/&/\\\\\\&/g' | sed 's/|/\\\\\\|/g'` | |
# Set GTK theme (only if there is no .gtkrc-2.0 in the user's home) | |
if [[ ! -e "$HOME/.gtkrc-2.0" ]]; then | |
# Appearance setting | |
aquaStyle=`defaults read "Apple Global Domain" AppleAquaColorVariant 2>/dev/null` | |
# 1 for aqua, 6 for graphite, inexistant if the default color was never changed | |
if [[ "$aquaStyle" == "" ]]; then | |
aquaStyle=1 # set aqua as default | |
fi | |
# Highlight Color setting | |
hiliColor=`defaults read "Apple Global Domain" AppleHighlightColor 2>/dev/null` | |
# a RGB value, with components between 0 and 1, also inexistant if it was not changed | |
if [[ "$hiliColor" == "" ]]; then | |
hiliColor="0.709800 0.835300 1.000000" # set blue as default | |
fi | |
# Menu items color | |
if [[ aquaStyle -eq 1 ]]; then | |
menuColor="#4a76cd" # blue | |
else | |
menuColor="#7c8da4" # graphite | |
fi | |
# Format highlight color as a GTK rgb value | |
hiliColorFormated=`echo $hiliColor | awk -F " " '{print "\\\{"$1","$2","$3"\\\}"}'` | |
# echo $menuColor | |
# echo $hiliColorFormated | |
# Modify the gtkrc | |
# - with the correct colors | |
# - to point to the correct scrollbars folder | |
sed 's/OSX_HILI_COLOR_PLACEHOLDER/'$hiliColorFormated'/g' "$INKSCAPE_SHAREDIR/themes/Clearlooks-Quicksilver-OSX/gtk-2.0/pre_gtkrc" | sed 's/OSX_MENU_COLOR_PLACEHOLDER/\"'$menuColor'\"/g' | sed 's/AQUASTYLE_PLACEHOLDER/'$aquaStyle'/g' | sed 's|${THEMEDIR}|'"$ESCAPEDTOP/themes/Clearlooks-Quicksilver-OSX/gtk-2.0|g" > "${HOME}/.inkscape-etc/gtkrc" | |
export GTK2_RC_FILES="$HOME/.inkscape-etc/gtkrc" | |
fi | |
# If the AppleCollationOrder preference doesn't exist, we fall back to using | |
# the AppleLocale preference. | |
LANGSTR=`defaults read .GlobalPreferences AppleCollationOrder 2>/dev/null` | |
if [ "x$LANGSTR" == "x" -o "x$LANGSTR" == "xroot" ] | |
then | |
#echo "W: AppleCollationOrder setting not found, using AppleLocale." 1>&2 | |
LANGSTR=`defaults read .GlobalPreferences AppleLocale 2>/dev/null | \ | |
sed 's/_.*//'` | |
#echo "Setting LANGSTR from AppleLocale: $LANGSTR" 1>&2 | |
# else | |
#echo "Setting LANGSTR from AppleCollationOrder: $LANGSTR" 1>&2 | |
fi | |
# NOTE: Have to add ".UTF-8" to the LANG since omitting causes Inkscape | |
# to crash on startup in locale_from_utf8(). | |
if [ "x$LANGSTR" == "x" ] | |
then | |
# override broken script | |
#echo "Overriding empty LANGSTR" 1>&2 | |
export LANG="en_US.UTF-8" | |
else | |
tmpLANG="`grep \"\`echo $LANGSTR\`_\" /usr/share/locale/locale.alias | \ | |
tail -n1 | sed 's/\./ /' | awk '{print $2}'`" | |
if [ "x$tmpLANG" == "x" ] | |
then | |
# override broken script | |
#echo "Overriding empty LANG from /usr/share/locale/locale.alias" 1>&2 | |
export LANG="en_US.UTF-8" | |
else | |
#echo "Setting LANG from /usr/share/locale/locale.alias" 1>&2 | |
export LANG="$tmpLANG.UTF-8" | |
fi | |
fi | |
#echo "Setting Language: $LANG" 1>&2 | |
sed 's|${HOME}|'"$HOME|g" "$TOP/etc/pango/pangorc" > "${HOME}/.inkscape-etc/pangorc" | |
sed 's|${CWD}|'"$ESCAPEDTOP|g" "$TOP/etc/pango/pango.modules" \ | |
> "${HOME}/.inkscape-etc/pango.modules" | |
# cp -f "$TOP/etc/pango/pangox.aliases" "${HOME}/.inkscape-etc/" | |
sed 's|${CWD}|'"$ESCAPEDTOP|g" "$TOP/etc/gtk-2.0/gtk.immodules" \ | |
> "${HOME}/.inkscape-etc/gtk.immodules" | |
sed 's|${CWD}|'"$ESCAPEDTOP|g" "$TOP/etc/gtk-2.0/gdk-pixbuf.loaders" \ | |
> "${HOME}/.inkscape-etc/gdk-pixbuf.loaders" | |
exec "$CWD/inkscape-bin" "$@" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment