Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save saerdnaer/18258a2667add2c5b4a6 to your computer and use it in GitHub Desktop.
Save saerdnaer/18258a2667add2c5b4a6 to your computer and use it in GitHub Desktop.
#!/bin/sh
#
# Author: Aaron Voisine <aaron@voisine.org>
# Inkscape Modifications:
# Michael Wybrow <mjwybrow@users.sourceforge.net>
# Jean-Olivier Irisson <jo.irisson@gmail.com>
#
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