Browse Source

Imported Upstream version 3.2.1

tags/upstream/3.2.1^0
Margarita Manterola 4 years ago
parent
commit
f60f2633ec
100 changed files with 5933 additions and 3334 deletions
  1. +0
    -70
      NEWS
  2. +9
    -0
      README
  3. +24
    -510
      autogen.sh
  4. +1755
    -1623
      cinnamon.pot
  5. +7
    -32
      configure.ac
  6. +1
    -0
      data/icons/Makefile.am
  7. +617
    -0
      data/icons/hicolor_apps_scalable_cinnamon-panel-launcher.svg
  8. +18
    -2
      data/org.cinnamon.gschema.xml.in
  9. +845
    -738
      data/theme/cinnamon.css
  10. +1
    -1
      docs/applets-examples/finder@cinnamon.org/applet.js
  11. +9
    -9
      docs/reference/cinnamon-tutorials/importer.xml
  12. +6
    -6
      docs/reference/cinnamon-tutorials/using-documentation.xml
  13. +10
    -10
      docs/reference/cinnamon-tutorials/write-applet.xml
  14. +5
    -1
      docs/reference/cinnamon-tutorials/xlet-settings-ref.xml
  15. +3
    -3
      docs/reference/cinnamon-tutorials/xlet-versioning.xml
  16. +1
    -1
      docs/search-providers-examples/trackerprovider@cinnamon.org/search_provider.js
  17. +7
    -3
      files/usr/bin/cinnamon-desktop-editor
  18. +18
    -11
      files/usr/bin/cinnamon-file-dialog
  19. +8
    -3
      files/usr/bin/cinnamon-json-makepot
  20. +14
    -9
      files/usr/bin/cinnamon-killer-daemon
  21. +9
    -3
      files/usr/bin/cinnamon-launcher
  22. +8
    -3
      files/usr/bin/cinnamon-looking-glass
  23. +19
    -13
      files/usr/bin/cinnamon-menu-editor
  24. +14
    -10
      files/usr/bin/cinnamon-preview-gtk-theme
  25. +4
    -1
      files/usr/bin/cinnamon-screensaver-lock-dialog
  26. +1
    -1
      files/usr/bin/cinnamon-session-cinnamon
  27. +1
    -1
      files/usr/bin/cinnamon-session-cinnamon2d
  28. +22
    -15
      files/usr/bin/cinnamon-settings
  29. +4
    -2
      files/usr/bin/cinnamon-settings-users
  30. +4
    -2
      files/usr/bin/cinnamon-slideshow
  31. +6
    -2
      files/usr/bin/cinnamon-subprocess-wrapper
  32. +8
    -0
      files/usr/bin/xlet-settings
  33. +72
    -0
      files/usr/share/applications/cinnamon-settings-applets.desktop
  34. +80
    -1
      files/usr/share/applications/cinnamon-settings-backgrounds.desktop
  35. +80
    -1
      files/usr/share/applications/cinnamon-settings-calendar.desktop
  36. +75
    -4
      files/usr/share/applications/cinnamon-settings-default.desktop
  37. +70
    -0
      files/usr/share/applications/cinnamon-settings-desklets.desktop
  38. +75
    -2
      files/usr/share/applications/cinnamon-settings-desktop.desktop
  39. +75
    -0
      files/usr/share/applications/cinnamon-settings-effects.desktop
  40. +74
    -0
      files/usr/share/applications/cinnamon-settings-extensions.desktop
  41. +77
    -1
      files/usr/share/applications/cinnamon-settings-fonts.desktop
  42. +68
    -0
      files/usr/share/applications/cinnamon-settings-general.desktop
  43. +92
    -22
      files/usr/share/applications/cinnamon-settings-hotcorner.desktop
  44. +73
    -1
      files/usr/share/applications/cinnamon-settings-info.desktop
  45. +77
    -2
      files/usr/share/applications/cinnamon-settings-keyboard.desktop
  46. +69
    -0
      files/usr/share/applications/cinnamon-settings-mouse.desktop
  47. +76
    -0
      files/usr/share/applications/cinnamon-settings-notifications.desktop
  48. +61
    -1
      files/usr/share/applications/cinnamon-settings-panel.desktop
  49. +70
    -1
      files/usr/share/applications/cinnamon-settings-power.desktop
  50. +65
    -0
      files/usr/share/applications/cinnamon-settings-privacy.desktop
  51. +67
    -3
      files/usr/share/applications/cinnamon-settings-screensaver.desktop
  52. +166
    -0
      files/usr/share/applications/cinnamon-settings-sound.desktop
  53. +71
    -5
      files/usr/share/applications/cinnamon-settings-startup.desktop
  54. +77
    -0
      files/usr/share/applications/cinnamon-settings-themes.desktop
  55. +65
    -4
      files/usr/share/applications/cinnamon-settings-tiling.desktop
  56. +140
    -4
      files/usr/share/applications/cinnamon-settings-universal-access.desktop
  57. +70
    -2
      files/usr/share/applications/cinnamon-settings-user.desktop
  58. +21
    -4
      files/usr/share/applications/cinnamon-settings-users.desktop
  59. +69
    -0
      files/usr/share/applications/cinnamon-settings-windows.desktop
  60. +89
    -23
      files/usr/share/applications/cinnamon-settings-workspaces.desktop
  61. +22
    -5
      files/usr/share/applications/cinnamon-settings.desktop
  62. +38
    -28
      files/usr/share/cinnamon/applets/a11y@cinnamon.org/applet.js
  63. +20
    -11
      files/usr/share/cinnamon/applets/calendar@cinnamon.org/applet.js
  64. +2
    -10
      files/usr/share/cinnamon/applets/calendar@cinnamon.org/calendar.js
  65. +1
    -1
      files/usr/share/cinnamon/applets/calendar@cinnamon.org/metadata.json
  66. +32
    -28
      files/usr/share/cinnamon/applets/calendar@cinnamon.org/settings-schema.json
  67. +1
    -4
      files/usr/share/cinnamon/applets/expo@cinnamon.org/applet.js
  68. +9
    -5
      files/usr/share/cinnamon/applets/expo@cinnamon.org/settings-schema.json
  69. +2
    -2
      files/usr/share/cinnamon/applets/inhibit@cinnamon.org/applet.js
  70. +184
    -74
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js
  71. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/aa.png
  72. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/ad.png
  73. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/ae.png
  74. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/af.png
  75. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/ag.png
  76. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/ai.png
  77. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/al.png
  78. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/am.png
  79. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/ao.png
  80. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/aq.png
  81. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/ar.png
  82. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/ara.png
  83. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/as.png
  84. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/at.png
  85. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/au.png
  86. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/aw.png
  87. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/ax.png
  88. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/az.png
  89. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/ba.png
  90. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/bb.png
  91. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/bd.png
  92. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/be.png
  93. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/bf.png
  94. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/bg.png
  95. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/bh.png
  96. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/bi.png
  97. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/bj.png
  98. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/bl.png
  99. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/bm.png
  100. BIN
      files/usr/share/cinnamon/applets/keyboard@cinnamon.org/flags/bn.png

+ 0
- 70
NEWS View File

@@ -1,70 +0,0 @@
Fixes needed
------------
- Administration and preference don't appear in menu editor
- Move up and Move down buttons don't work in menu editor (if Gnome 3 broke that we need to switch back to the GTK2 version of this tool, as on the original fork)
- Don't hide spotify in systray
- Conky/mintupload windows appear (careful not to hide gimp utility windows though or make it configurable)
- workspaces can overlap in expo grid
- recommend muffin
- depend on gsjdbus
- muffin should depend on libmuffin0 and gir-muffin of the same version (currently it's possible to upgrade cinnamon and libmuffin without upgrading other muffin packages and it results in crashes)
- Alt-arrow shortcuts don't work in nemo

1.8
-----

- New theme style class: "workspace-overview-background-shade" allows theming of workspace backgrounds in Scale and Expo.

1.6.1
-----

- Fixed: Administration category missing in menu
- Fixed: Blur in Alt-Tab preview
- Fixed: Network Manager applet consumes a lot of CPU
- Fixed: Calendar applet consumes a lot of CPU
- Updated translations
- Flags in keyboard applet
- Fixed: Removing workspace while editing its name results in crash
- Added songbird support to sound applet
- Fixed: Scrolling in window list applet brings all windows to the active workspace
- Fixed: panels visible in firefox fullscreen mode x-shockwave-flash video
- Fixed: two issues with dnd and themes using different background for hovering
- Less CPU: We don't need to fetch the pointer actor, if track_hover is not set.

Muffin 1.1.1
------------
- Fixed: Menubar issues with all Java programs

Nemo 1.0.2
----------

- Dropbox extension
- Fileroller extension
- Configurable units (decimal by default as well as decimal-long, binary and binary-long)
- Use Nautilus style to render the desktop when the theme doesn't support Nemo


NEMO
----

- Add gtk bookmarks to right-click->copy-to/move-to

TODO
----

- i18n: Update translations
- i18n: Localize menu categories
- Applets: Fix power applet appearing when applets are moved (code refactoring needed)
- System: Fallback on Metacity when Cinnamon crashes
- System: Improve logging (capture stderr output into log files)
- Applet API: Allow applets to provide a gsettings schema (which cinnamon-settings compiles when the applet is installed)
- Settings: Fix settings moved to gsettings since 3.4 changes in cinnamon-settings
- Settings: In Cinnamon Settings, add the ability to delete themes, extensions and applets located in the user's home
- Settings: In Cinnamon Settings, add the ability to view and install themes, extensions and applets from cinnamon-settings
- Layout: Give Cinnamon WM tiling features (fill, grid..etc).
- Fix menu crashing Cinnamon (show a category, Internet for instance, click elsewhere, open a terminal, install a program in that category, Opera for instance, open the menu)
- Fix tooltips on GTK popups appearing behind the popups (and move tooltips when they appear on top of the panel)
- Fix https://github.com/linuxmint/Cinnamon/issues/767
- Add one-hand keyboard-shortcuts for scale and expo


+ 9
- 0
README View File

@@ -4,6 +4,15 @@ The desktop layout is similar to Gnome 2.
The underlying technology is forked from Gnome Shell.
The emphasis is put on making users feel at home and providing them with an easy to use and comfortable desktop experience.


Contributing
============
Cinnamon is on GitHub at https://github.com/linuxmint/Cinnamon.

Note that some issue may not be with Cinnamon itself. For a list of related components,
please see http://developer.linuxmint.com/projects.html and file in the appropriate repo.


License
=======
Cinnamon is distributed under the terms of the GNU General Public License,


+ 24
- 510
autogen.sh View File

@@ -1,526 +1,40 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
test -n "$srcdir" || srcdir=$(dirname "$0")
test -n "$srcdir" || srcdir=.

#name of package
test "$PKG_NAME" || PKG_NAME=Package
test "$srcdir" || srcdir=.
olddir=$(pwd)

# default version requirements ...
test "$REQUIRED_AUTOCONF_VERSION" || REQUIRED_AUTOCONF_VERSION=2.53
test "$REQUIRED_AUTOMAKE_VERSION" || REQUIRED_AUTOMAKE_VERSION=1.9
test "$REQUIRED_LIBTOOL_VERSION" || REQUIRED_LIBTOOL_VERSION=1.4.3
test "$REQUIRED_GETTEXT_VERSION" || REQUIRED_GETTEXT_VERSION=0.10.40
test "$REQUIRED_GLIB_GETTEXT_VERSION" || REQUIRED_GLIB_GETTEXT_VERSION=2.2.0
test "$REQUIRED_INTLTOOL_VERSION" || REQUIRED_INTLTOOL_VERSION=0.25
test "$REQUIRED_PKG_CONFIG_VERSION" || REQUIRED_PKG_CONFIG_VERSION=0.14.0
test "$REQUIRED_GTK_DOC_VERSION" || REQUIRED_GTK_DOC_VERSION=1.0
test "$REQUIRED_DOC_COMMON_VERSION" || REQUIRED_DOC_COMMON_VERSION=2.3.0
test "$REQUIRED_GNOME_DOC_UTILS_VERSION" || REQUIRED_GNOME_DOC_UTILS_VERSION=0.4.2
cd $srcdir

# a list of required m4 macros. Package can set an initial value
test "$REQUIRED_M4MACROS" || REQUIRED_M4MACROS=
test "$FORBIDDEN_M4MACROS" || FORBIDDEN_M4MACROS=

# Not all echo versions allow -n, so we check what is possible. This test is
# based on the one in autoconf.
ECHO_C=
ECHO_N=
case `echo -n x` in
-n*)
case `echo 'x\c'` in
*c*) ;;
*) ECHO_C='\c';;
esac;;
*)
ECHO_N='-n';;
esac

# some terminal codes ...
if tty < /dev/null 1>/dev/null 2>&1; then
boldface="`tput bold 2>/dev/null`"
normal="`tput sgr0 2>/dev/null`"
else
boldface=
normal=
fi
printbold() {
echo $ECHO_N "$boldface" $ECHO_C
echo "$@"
echo $ECHO_N "$normal" $ECHO_C
}
printerr() {
echo "$@" >&2
}

# Usage:
# compare_versions MIN_VERSION ACTUAL_VERSION
# returns true if ACTUAL_VERSION >= MIN_VERSION
compare_versions() {
ch_min_version=$1
ch_actual_version=$2
ch_status=0
IFS="${IFS= }"; ch_save_IFS="$IFS"; IFS="."
set $ch_actual_version
for ch_min in $ch_min_version; do
ch_cur=`echo $1 | sed 's/[^0-9].*$//'`; shift # remove letter suffixes
if [ -z "$ch_min" ]; then break; fi
if [ -z "$ch_cur" ]; then ch_status=1; break; fi
if [ $ch_cur -gt $ch_min ]; then break; fi
if [ $ch_cur -lt $ch_min ]; then ch_status=1; break; fi
done
IFS="$ch_save_IFS"
return $ch_status
}

# Usage:
# version_check PACKAGE VARIABLE CHECKPROGS MIN_VERSION SOURCE
# checks to see if the package is available
version_check() {
vc_package=$1
vc_variable=$2
vc_checkprogs=$3
vc_min_version=$4
vc_source=$5
vc_status=1

vc_checkprog=`eval echo "\\$$vc_variable"`
if [ -n "$vc_checkprog" ]; then
printbold "using $vc_checkprog for $vc_package"
return 0
fi

if test "x$vc_package" = "xautomake" -a "x$vc_min_version" = "x1.4"; then
vc_comparator="="
else
vc_comparator=">="
fi
printbold "checking for $vc_package $vc_comparator $vc_min_version..."
for vc_checkprog in $vc_checkprogs; do
echo $ECHO_N " testing $vc_checkprog... " $ECHO_C
if $vc_checkprog --version < /dev/null > /dev/null 2>&1; then
vc_actual_version=`$vc_checkprog --version | head -n 1 | \
sed 's/^.*[ ]\([0-9.]*[a-z]*\).*$/\1/'`
if compare_versions $vc_min_version $vc_actual_version; then
echo "found $vc_actual_version"
# set variables
eval "$vc_variable=$vc_checkprog; \
${vc_variable}_VERSION=$vc_actual_version"
vc_status=0
break
else
echo "too old (found version $vc_actual_version)"
fi
else
echo "not found."
fi
done
if [ "$vc_status" != 0 ]; then
printerr "***Error***: You must have $vc_package $vc_comparator $vc_min_version installed"
printerr " to build $PKG_NAME. Download the appropriate package for"
printerr " from your distribution or get the source tarball at"
printerr " $vc_source"
printerr
exit $vc_status
fi
return $vc_status
}

# Usage:
# require_m4macro filename.m4
# adds filename.m4 to the list of required macros
require_m4macro() {
case "$REQUIRED_M4MACROS" in
$1\ * | *\ $1\ * | *\ $1) ;;
*) REQUIRED_M4MACROS="$REQUIRED_M4MACROS $1" ;;
esac
}

forbid_m4macro() {
case "$FORBIDDEN_M4MACROS" in
$1\ * | *\ $1\ * | *\ $1) ;;
*) FORBIDDEN_M4MACROS="$FORBIDDEN_M4MACROS $1" ;;
esac
(test -f configure.ac) || {
echo "*** ERROR: Directory '$srcdir' does not look like the top-level project directory ***"
exit 1
}

# Usage:
# add_to_cm_macrodirs dirname
# Adds the dir to $cm_macrodirs, if it's not there yet.
add_to_cm_macrodirs() {
case $cm_macrodirs in
"$1 "* | *" $1 "* | *" $1") ;;
*) cm_macrodirs="$cm_macrodirs $1";;
esac
}

# Usage:
# print_m4macros_error
# Prints an error message saying that autoconf macros were misused
print_m4macros_error() {
printerr "***Error***: some autoconf macros required to build $PKG_NAME"
printerr " were not found in your aclocal path, or some forbidden"
printerr " macros were found. Perhaps you need to adjust your"
printerr " ACLOCAL_FLAGS?"
printerr
}

# Usage:
# check_m4macros
# Checks that all the requested macro files are in the aclocal macro path
# Uses REQUIRED_M4MACROS and ACLOCAL variables.
check_m4macros() {
# construct list of macro directories
cm_macrodirs=`$ACLOCAL --print-ac-dir`
# aclocal also searches a version specific dir, eg. /usr/share/aclocal-1.9
# but it contains only Automake's own macros, so we can ignore it.

# Read the dirlist file, supported by Automake >= 1.7.
# If AUTOMAKE was defined, no version was detected.
if [ -z "$AUTOMAKE_VERSION" ] || compare_versions 1.7 $AUTOMAKE_VERSION && [ -s $cm_macrodirs/dirlist ]; then
cm_dirlist=`sed 's/[ ]*#.*//;/^$/d' $cm_macrodirs/dirlist`
if [ -n "$cm_dirlist" ] ; then
for cm_dir in $cm_dirlist; do
if [ -d $cm_dir ]; then
add_to_cm_macrodirs $cm_dir
fi
done
fi
fi

# Parse $ACLOCAL_FLAGS
set - $ACLOCAL_FLAGS
while [ $# -gt 0 ]; do
if [ "$1" = "-I" ]; then
add_to_cm_macrodirs "$2"
shift
fi
shift
done

cm_status=0
if [ -n "$REQUIRED_M4MACROS" ]; then
printbold "Checking for required M4 macros..."
# check that each macro file is in one of the macro dirs
for cm_macro in $REQUIRED_M4MACROS; do
cm_macrofound=false
for cm_dir in $cm_macrodirs; do
if [ -f "$cm_dir/$cm_macro" ]; then
cm_macrofound=true
break
fi
# The macro dir in Cygwin environments may contain a file
# called dirlist containing other directories to look in.
if [ -f "$cm_dir/dirlist" ]; then
for cm_otherdir in `cat $cm_dir/dirlist`; do
if [ -f "$cm_otherdir/$cm_macro" ]; then
cm_macrofound=true
break
fi
done
fi
done
if $cm_macrofound; then
:
else
printerr " $cm_macro not found"
cm_status=1
fi
done
fi
if [ "$cm_status" != 0 ]; then
print_m4macros_error
exit $cm_status
fi
if [ -n "$FORBIDDEN_M4MACROS" ]; then
printbold "Checking for forbidden M4 macros..."
# check that each macro file is in one of the macro dirs
for cm_macro in $FORBIDDEN_M4MACROS; do
cm_macrofound=false
for cm_dir in $cm_macrodirs; do
if [ -f "$cm_dir/$cm_macro" ]; then
cm_macrofound=true
break
fi
done
if $cm_macrofound; then
printerr " $cm_macro found (should be cleared from macros dir)"
cm_status=1
fi
done
fi
if [ "$cm_status" != 0 ]; then
print_m4macros_error
exit $cm_status
fi
}

# try to catch the case where the macros2/ directory hasn't been cleared out.
forbid_m4macro gnome-cxx-check.m4

want_libtool=false
want_gettext=false
want_glib_gettext=false
want_intltool=false
want_pkg_config=false
want_gtk_doc=false
want_gnome_doc_utils=false
want_maintainer_mode=false

find_configure_files() {
configure_ac=
if test -f "$1/configure.ac"; then
configure_ac="$1/configure.ac"
elif test -f "$1/configure.in"; then
configure_ac="$1/configure.in"
fi
if test "x$configure_ac" != x; then
echo "$configure_ac"
# TODO We have not detected the right autoconf yet!
autoconf -t 'AC_CONFIG_SUBDIRS:$1' "$configure_ac" | while read dir; do
find_configure_files "$1/$dir"
done
fi
}

configure_files="`find_configure_files $srcdir`"

for configure_ac in $configure_files; do
dirname=`dirname $configure_ac`
if [ -f $dirname/NO-AUTO-GEN ]; then
echo skipping $dirname -- flagged as no auto-gen
continue
fi
if grep "^A[CM]_PROG_LIBTOOL" $configure_ac >/dev/null ||
grep "^LT_INIT" $configure_ac >/dev/null; then
want_libtool=true
fi
if grep "^AM_GNU_GETTEXT" $configure_ac >/dev/null; then
want_gettext=true
fi
if grep "^AM_GLIB_GNU_GETTEXT" $configure_ac >/dev/null; then
want_glib_gettext=true
fi
if grep "^AC_PROG_INTLTOOL" $configure_ac >/dev/null ||
grep "^IT_PROG_INTLTOOL" $configure_ac >/dev/null; then
want_intltool=true
fi
if grep "^PKG_CHECK_MODULES" $configure_ac >/dev/null; then
want_pkg_config=true
fi
if grep "^GTK_DOC_CHECK" $configure_ac >/dev/null; then
want_gtk_doc=true
fi
if grep "^GNOME_DOC_INIT" $configure_ac >/dev/null; then
want_gnome_doc_utils=true
fi

# check that AM_MAINTAINER_MODE is used
if grep "^AM_MAINTAINER_MODE" $configure_ac >/dev/null; then
want_maintainer_mode=true
fi

if grep "^YELP_HELP_INIT" $configure_ac >/dev/null; then
require_m4macro yelp.m4
fi

# check to make sure gnome-common macros can be found ...
if grep "^GNOME_COMMON_INIT" $configure_ac >/dev/null ||
grep "^GNOME_DEBUG_CHECK" $configure_ac >/dev/null ||
grep "^GNOME_MAINTAINER_MODE_DEFINES" $configure_ac >/dev/null; then
require_m4macro gnome-common.m4
fi
if grep "^GNOME_COMPILE_WARNINGS" $configure_ac >/dev/null ||
grep "^GNOME_CXX_WARNINGS" $configure_ac >/dev/null; then
require_m4macro gnome-compiler-flags.m4
fi
if grep "^GNOME_CODE_COVERAGE" $configure_ac >/dev/null; then
require_m4macro gnome-code-coverage.m4
fi
done

#tell Mandrake autoconf wrapper we want autoconf 2.5x, not 2.13
WANT_AUTOCONF_2_5=1
export WANT_AUTOCONF_2_5
version_check autoconf AUTOCONF 'autoconf2.50 autoconf autoconf-2.53' $REQUIRED_AUTOCONF_VERSION \
"http://ftp.gnu.org/pub/gnu/autoconf/autoconf-$REQUIRED_AUTOCONF_VERSION.tar.gz"
AUTOHEADER=`echo $AUTOCONF | sed s/autoconf/autoheader/`

version_check automake AUTOMAKE "automake $AUTOMAKE automake-1.13 automake-1.12 automake-1.11 automake-1.10 automake-1.9" $REQUIRED_AUTOMAKE_VERSION \
"http://ftp.gnu.org/pub/gnu/automake/automake-$REQUIRED_AUTOMAKE_VERSION.tar.gz"
ACLOCAL=`echo $AUTOMAKE | sed s/automake/aclocal/`

if $want_libtool; then
version_check libtool LIBTOOLIZE "libtoolize glibtoolize" $REQUIRED_LIBTOOL_VERSION \
"http://ftp.gnu.org/pub/gnu/libtool/libtool-$REQUIRED_LIBTOOL_VERSION.tar.gz"
require_m4macro libtool.m4
fi

if $want_gettext; then
version_check gettext GETTEXTIZE gettextize $REQUIRED_GETTEXT_VERSION \
"http://ftp.gnu.org/pub/gnu/gettext/gettext-$REQUIRED_GETTEXT_VERSION.tar.gz"
require_m4macro gettext.m4
fi

if $want_glib_gettext; then
version_check glib-gettext GLIB_GETTEXTIZE glib-gettextize $REQUIRED_GLIB_GETTEXT_VERSION \
"ftp://ftp.gtk.org/pub/gtk/v2.2/glib-$REQUIRED_GLIB_GETTEXT_VERSION.tar.gz"
require_m4macro glib-gettext.m4
fi

if $want_intltool; then
version_check intltool INTLTOOLIZE intltoolize $REQUIRED_INTLTOOL_VERSION \
"http://ftp.gnome.org/pub/GNOME/sources/intltool/"
require_m4macro intltool.m4
fi

if $want_pkg_config; then
version_check pkg-config PKG_CONFIG pkg-config $REQUIRED_PKG_CONFIG_VERSION \
"'http://www.freedesktop.org/software/pkgconfig/releases/pkgconfig-$REQUIRED_PKG_CONFIG_VERSION.tar.gz"
require_m4macro pkg.m4
fi

if $want_gtk_doc; then
version_check gtk-doc GTKDOCIZE gtkdocize $REQUIRED_GTK_DOC_VERSION \
"http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/"
require_m4macro gtk-doc.m4
fi

if $want_gnome_doc_utils; then
version_check gnome-doc-utils GNOME_DOC_PREPARE gnome-doc-prepare $REQUIRED_GNOME_DOC_UTILS_VERSION \
"http://ftp.gnome.org/pub/GNOME/sources/gnome-doc-utils/"
fi

if [ "x$USE_COMMON_DOC_BUILD" = "xyes" ]; then
version_check gnome-common DOC_COMMON gnome-doc-common \
$REQUIRED_DOC_COMMON_VERSION " "
fi

check_m4macros
# shellcheck disable=SC2016
PKG_NAME=$(autoconf --trace 'AC_INIT:$1' configure.ac)

if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then
printerr "**Warning**: I am going to run \`configure' with no arguments."
printerr "If you wish to pass any to it, please specify them on the"
printerr \`$0\'" command line."
printerr
echo "*** WARNING: I am going to run 'configure' with no arguments." >&2
echo "*** If you wish to pass any to it, please specify them on the" >&2
echo "*** '$0' command line." >&2
echo "" >&2
fi

topdir=`pwd`
for configure_ac in $configure_files; do
dirname=`dirname $configure_ac`
basename=`basename $configure_ac`
if [ -f $dirname/NO-AUTO-GEN ]; then
echo skipping $dirname -- flagged as no auto-gen
elif [ ! -w $dirname ]; then
echo skipping $dirname -- directory is read only
else
printbold "Processing $configure_ac"
cd $dirname

# Note that the order these tools are called should match what
# autoconf's "autoupdate" package does. See bug 138584 for
# details.

# programs that might install new macros get run before aclocal
if grep "^A[CM]_PROG_LIBTOOL" $basename >/dev/null ||
grep "^LT_INIT" $basename >/dev/null; then
printbold "Running $LIBTOOLIZE..."
$LIBTOOLIZE --force --copy || exit 1
fi

if grep "^AM_GLIB_GNU_GETTEXT" $basename >/dev/null; then
printbold "Running $GLIB_GETTEXTIZE... Ignore non-fatal messages."
echo "no" | $GLIB_GETTEXTIZE --force --copy || exit 1
elif grep "^AM_GNU_GETTEXT" $basename >/dev/null; then
if grep "^AM_GNU_GETTEXT_VERSION" $basename > /dev/null; then
printbold "Running autopoint..."
autopoint --force || exit 1
else
printbold "Running $GETTEXTIZE... Ignore non-fatal messages."
echo "no" | $GETTEXTIZE --force --copy || exit 1
fi
fi
aclocal --install || exit 1
glib-gettextize --force --copy || exit 1
gtkdocize --copy || exit 1
intltoolize --force --copy --automake || exit 1
autoreconf --verbose --force --install || exit 1

if grep "^AC_PROG_INTLTOOL" $basename >/dev/null ||
grep "^IT_PROG_INTLTOOL" $basename >/dev/null; then
printbold "Running $INTLTOOLIZE..."
$INTLTOOLIZE --force --copy --automake || exit 1
fi
if grep "^GTK_DOC_CHECK" $basename >/dev/null; then
printbold "Running $GTKDOCIZE..."
$GTKDOCIZE --copy || exit 1
fi
cd "$olddir"
if [ "$NOCONFIGURE" = "" ]; then
$srcdir/configure "$@" || exit 1

if [ "x$USE_COMMON_DOC_BUILD" = "xyes" ]; then
printbold "Running gnome-doc-common..."
gnome-doc-common --copy || exit 1
fi
if grep "^GNOME_DOC_INIT" $basename >/dev/null; then
printbold "Running $GNOME_DOC_PREPARE..."
$GNOME_DOC_PREPARE --force --copy || exit 1
fi

# Now run aclocal to pull in any additional macros needed

# if the AC_CONFIG_MACRO_DIR() macro is used, pass that
# directory to aclocal.
m4dir=`cat "$basename" | grep '^AC_CONFIG_MACRO_DIR' | sed -n -e 's/AC_CONFIG_MACRO_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q`
if [ -n "$m4dir" ]; then
m4dir="-I $m4dir"
fi
printbold "Running $ACLOCAL..."
$ACLOCAL $m4dir $ACLOCAL_FLAGS || exit 1

if grep "GNOME_AUTOGEN_OBSOLETE" aclocal.m4 >/dev/null; then
printerr "*** obsolete gnome macros were used in $configure_ac"
fi

# Now that all the macros are sorted, run autoconf and autoheader ...
printbold "Running $AUTOCONF..."
$AUTOCONF || exit 1
if grep "^A[CM]_CONFIG_HEADER" $basename >/dev/null; then
printbold "Running $AUTOHEADER..."
$AUTOHEADER || exit 1
# this prevents automake from thinking config.h.in is out of
# date, since autoheader doesn't touch the file if it doesn't
# change.
test -f config.h.in && touch config.h.in
fi

# Finally, run automake to create the makefiles ...
printbold "Running $AUTOMAKE..."
if [ -f COPYING ]; then
cp -pf COPYING COPYING.autogen_bak
fi
if [ -f INSTALL ]; then
cp -pf INSTALL INSTALL.autogen_bak
fi
if [ $REQUIRED_AUTOMAKE_VERSION != 1.4 ]; then
$AUTOMAKE --gnu --add-missing --copy -Wno-portability || exit 1
else
$AUTOMAKE --gnu --add-missing --copy || exit 1
fi
if [ -f COPYING.autogen_bak ]; then
cmp COPYING COPYING.autogen_bak > /dev/null || cp -pf COPYING.autogen_bak COPYING
rm -f COPYING.autogen_bak
fi
if [ -f INSTALL.autogen_bak ]; then
cmp INSTALL INSTALL.autogen_bak > /dev/null || cp -pf INSTALL.autogen_bak INSTALL
rm -f INSTALL.autogen_bak
fi

cd "$topdir"
if [ "$1" = "--help" ]; then exit 0 else
echo "Now type 'make' to compile $PKG_NAME" || exit 1
fi
done

conf_flags=""

if $want_maintainer_mode; then
conf_flags="--enable-maintainer-mode"
fi

if test x$NOCONFIGURE = x; then
printbold Running $srcdir/configure $conf_flags "$@" ...
$srcdir/configure $conf_flags "$@" \
&& echo Now type \`make\' to compile $PKG_NAME || exit 1
else
echo Skipping configure process.
echo "Skipping configure process."
fi

+ 1755
- 1623
cinnamon.pot
File diff suppressed because it is too large
View File


+ 7
- 32
configure.ac View File

@@ -1,11 +1,13 @@
AC_PREREQ(2.63)
AC_INIT([cinnamon],[3.0.7],[https://github.com/linuxmint/Cinnamon/issues],[cinnamon])
AC_INIT([cinnamon],[3.2.1],[https://github.com/linuxmint/Cinnamon/issues],[cinnamon])

AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/cinnamon-global.c])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([config])

AX_IS_RELEASE([always])

AC_SUBST([PACKAGE_NAME], ["$PACKAGE_NAME"])
AC_SUBST([PACKAGE_VERSION], ["$PACKAGE_VERSION"])

@@ -27,9 +29,6 @@ LT_INIT([disable-static])
# i18n
IT_PROG_INTLTOOL([0.40])

AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION([0.17])

GETTEXT_PACKAGE=cinnamon
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
@@ -65,7 +64,7 @@ CLUTTER_MIN_VERSION=1.10.0
GOBJECT_INTROSPECTION_MIN_VERSION=0.9.2
GJS_MIN_VERSION=2.3.1
MUFFIN_MIN_VERSION=3.0.0
GTK_MIN_VERSION=3.9.12
GTK_MIN_VERSION=3.12.0
GIO_MIN_VERSION=2.35.0
POLKIT_MIN_VERSION=0.100
STARTUP_NOTIFICATION_MIN_VERSION=0.11
@@ -76,7 +75,7 @@ PKG_CHECK_MODULES(CINNAMON, gio-2.0 >= $GIO_MIN_VERSION
gtk+-3.0 >= $GTK_MIN_VERSION
libmuffin >= $MUFFIN_MIN_VERSION
cjs-internals-1.0 >= $GJS_MIN_VERSION
libcinnamon-menu-3.0 $recorder_modules gconf-2.0
libcinnamon-menu-3.0 $recorder_modules
gdk-x11-3.0 libsoup-2.4 gl
clutter-x11-1.0 >= $CLUTTER_MIN_VERSION
libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
@@ -92,6 +91,7 @@ PKG_CHECK_MODULES(CINNAMON_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)

GJS_VERSION=`$PKG_CONFIG --modversion cjs-internals-1.0`
AC_DEFINE_UNQUOTED([GJS_VERSION], ["$GJS_VERSION"], [The version of GJS we're linking to])
dnl '
AC_SUBST([GJS_VERSION], ["$GJS_VERSION"])

GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
@@ -161,32 +161,7 @@ AC_SUBST(GIRDIR)
TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
AC_SUBST(TYPELIBDIR)

# Stay command-line compatible with the gnome-common configure option. Here
# minimum/yes/maximum are the same, however.
AC_ARG_ENABLE(compile_warnings,
AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],[Turn on compiler warnings]),,
enable_compile_warnings=yes)

changequote(,)dnl
if test "$enable_compile_warnings" != no ; then
if test "x$GCC" = "xyes"; then
case " $CFLAGS " in
*[\ \ ]-Wall[\ \ ]*) ;;
*) CFLAGS="$CFLAGS -Wall" ;;
esac
case " $CFLAGS " in
*[\ \ ]-Wmissing-prototypes[\ \ ]*) ;;
*) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
esac
if test "$enable_compile_warnings" = error ; then
case " $CFLAGS " in
*[\ \ ]-Werror[\ \ ]*) ;;
*) CFLAGS="$CFLAGS -Werror" ;;
esac
fi
fi
fi
changequote([,])dnl
AX_COMPILER_FLAGS([WARN_CFLAGS],[WARN_LDFLAGS])

AC_ARG_ENABLE(jhbuild-wrapper-script,
AS_HELP_STRING([--jhbuild-wrapper-script=yes],[Make "cinnamon" script work for jhbuild]),,enable_jhbuild_wrapper_script=no)


+ 1
- 0
data/icons/Makefile.am View File

@@ -15,6 +15,7 @@ public_icons = \
hicolor_actions_scalable_caps-lock-off-symbolic.svg \
hicolor_actions_scalable_num-lock-symbolic.svg \
hicolor_actions_scalable_num-lock-off-symbolic.svg \
hicolor_apps_scalable_cinnamon-panel-launcher.svg \
hicolor_categories_16x16_cs-desklets.svg \
hicolor_categories_16x16_cs-backgrounds.svg \
hicolor_categories_scalable_cs-applets.svg \


+ 617
- 0
data/icons/hicolor_apps_scalable_cinnamon-panel-launcher.svg View File

@@ -0,0 +1,617 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="96"
height="96"
id="svg2408">
<defs
id="defs2410">
<linearGradient
id="linearGradient3798">
<stop
id="stop3800"
style="stop-color:#333333;stop-opacity:1"
offset="0" />
<stop
id="stop3802"
style="stop-color:#333333;stop-opacity:0"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3865">
<stop
id="stop3867"
style="stop-color:#ff6565;stop-opacity:1"
offset="0" />
<stop
id="stop3869"
style="stop-color:#e90000;stop-opacity:1"
offset="0.5" />
<stop
id="stop3871"
style="stop-color:#ae0000;stop-opacity:1"
offset="0.81904298" />
<stop
id="stop3873"
style="stop-color:#7f0000;stop-opacity:1"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3809">
<stop
id="stop3811"
style="stop-color:#ffd0d0;stop-opacity:1"
offset="0" />
<stop
id="stop3817"
style="stop-color:#f90000;stop-opacity:1"
offset="0.5" />
<stop
id="stop3833"
style="stop-color:#ae0000;stop-opacity:1"
offset="0.81904298" />
<stop
id="stop3813"
style="stop-color:#860000;stop-opacity:1"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3777">
<stop
id="stop3779"
style="stop-color:#ffffff;stop-opacity:1"
offset="0" />
<stop
id="stop3781"
style="stop-color:#ffffff;stop-opacity:0"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3769">
<stop
id="stop3771"
style="stop-color:#ffffff;stop-opacity:1"
offset="0" />
<stop
id="stop3773"
style="stop-color:#ffffff;stop-opacity:0"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3722">
<stop
id="stop3730"
style="stop-color:#ffffff;stop-opacity:1"
offset="0" />
<stop
id="stop3726"
style="stop-color:#d1b3b3;stop-opacity:1"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3708">
<stop
id="stop3710"
style="stop-color:#d40000;stop-opacity:1"
offset="0" />
<stop
id="stop3720"
style="stop-color:#e10000;stop-opacity:1"
offset="0.5337981" />
<stop
id="stop3712"
style="stop-color:#820000;stop-opacity:1"
offset="1" />
</linearGradient>
<linearGradient
x1="45.447727"
y1="92.539597"
x2="45.447727"
y2="7.0165396"
id="ButtonShadow"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.0058652,0.994169)">
<stop
id="stop3750"
style="stop-color:#000000;stop-opacity:1"
offset="0" />
<stop
id="stop3752"
style="stop-color:#000000;stop-opacity:0.58823532"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3737">
<stop
id="stop3739"
style="stop-color:#ffffff;stop-opacity:1"
offset="0" />
<stop
id="stop3741"
style="stop-color:#ffffff;stop-opacity:0"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient3700">
<stop
id="stop3702"
style="stop-color:#c8c8c8;stop-opacity:1"
offset="0" />
<stop
id="stop3704"
style="stop-color:#e6e6e6;stop-opacity:1"
offset="1" />
</linearGradient>
<filter
color-interpolation-filters="sRGB"
id="filter3174">
<feGaussianBlur
id="feGaussianBlur3176"
stdDeviation="1.71" />
</filter>
<linearGradient
x1="36.357143"
y1="6"
x2="36.357143"
y2="63.893143"
id="linearGradient3188"
xlink:href="#linearGradient3737"
gradientUnits="userSpaceOnUse" />
<filter
x="-0.192"
y="-0.192"
width="1.3839999"
height="1.3839999"
color-interpolation-filters="sRGB"
id="filter3794">
<feGaussianBlur
id="feGaussianBlur3796"
stdDeviation="5.28" />
</filter>
<linearGradient
x1="48"
y1="20.220806"
x2="48"
y2="138.66119"
id="linearGradient3613"
xlink:href="#linearGradient3737"
gradientUnits="userSpaceOnUse" />
<radialGradient
cx="48"
cy="90.171875"
r="42"
fx="48"
fy="90.171875"
id="radialGradient3619"
xlink:href="#linearGradient3737"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1573129,0,0,0.99590774,-7.5510206,0.19713193)" />
<clipPath
id="clipPath3613">
<rect
width="84"
height="84"
rx="6"
ry="6"
x="6"
y="6"
id="rect3615"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
</clipPath>
<linearGradient
x1="48"
y1="90"
x2="48"
y2="5.9877172"
id="linearGradient3617"
xlink:href="#linearGradient3700"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="45.447727"
y1="92.539597"
x2="45.447727"
y2="7.0165396"
id="ButtonShadow-0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0058652,0,0,0.994169,100,0)">
<stop
id="stop3750-8"
style="stop-color:#000000;stop-opacity:1"
offset="0" />
<stop
id="stop3752-5"
style="stop-color:#000000;stop-opacity:0.58823532"
offset="1" />
</linearGradient>
<linearGradient
x1="32.251034"
y1="6.1317081"
x2="32.251034"
y2="90.238609"
id="linearGradient3780"
xlink:href="#ButtonShadow-0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0238095,0,0,1.0119048,-1.1428571,-98.071429)" />
<linearGradient
x1="32.251034"
y1="6.1317081"
x2="32.251034"
y2="90.238609"
id="linearGradient3772"
xlink:href="#ButtonShadow-0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0238095,0,0,1.0119048,-1.1428571,-98.071429)" />
<linearGradient
x1="32.251034"
y1="6.1317081"
x2="32.251034"
y2="90.238609"
id="linearGradient3725"
xlink:href="#ButtonShadow-0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0238095,0,0,1.0119048,-1.1428571,-98.071429)" />
<linearGradient
x1="32.251034"
y1="6.1317081"
x2="32.251034"
y2="90.238609"
id="linearGradient3721"
xlink:href="#ButtonShadow-0"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,-97)" />
<linearGradient
x1="32.251034"
y1="6.1317081"
x2="32.251034"
y2="90.238609"
id="linearGradient3026"
xlink:href="#ButtonShadow-0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0238095,0,0,1.0119048,-1.1428571,-98.071429)" />
<linearGradient
x1="39.574169"
y1="44"
x2="56.425831"
y2="44"
id="linearGradient3728"
xlink:href="#linearGradient3722"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="39.561707"
y1="43"
x2="56.438293"
y2="43"
id="linearGradient3762"
xlink:href="#linearGradient3708"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="46.681881"
y1="16.204491"
x2="46.681881"
y2="80.960716"
id="linearGradient3775"
xlink:href="#linearGradient3769"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="47.287281"
y1="16.204491"
x2="46.531647"
y2="80.963791"
id="linearGradient3783"
xlink:href="#linearGradient3777"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="47.287281"
y1="16.204491"
x2="46.531647"
y2="80.963791"
id="linearGradient3787"
xlink:href="#linearGradient3777"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.6385313,0,0,1,-29.053173,0)" />
<radialGradient
cx="35"
cy="74"
r="4"
fx="35"
fy="74"
id="radialGradient3815"
xlink:href="#linearGradient3809"
gradientUnits="userSpaceOnUse" />
<radialGradient
cx="35.702923"
cy="74"
r="4"
fx="35.702923"
fy="74"
id="radialGradient3875"
xlink:href="#linearGradient3865"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="75.572937"
y1="39.725887"
x2="75.572937"
y2="62.844799"
id="linearGradient3804"
xlink:href="#linearGradient3798"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="34.266994"
y1="51.415974"
x2="34.266994"
y2="81.919426"
id="linearGradient3812"
xlink:href="#linearGradient3798"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="52.47665"
y1="61.188122"
x2="52.47665"
y2="81.96537"
id="linearGradient3820"
xlink:href="#linearGradient3798"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="21.102879"
y1="35.763649"
x2="21.102879"
y2="57.41111"
id="linearGradient3828"
xlink:href="#linearGradient3798"
gradientUnits="userSpaceOnUse" />
</defs>
<metadata
id="metadata2413">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer2"
style="display:none">
<rect
width="86"
height="85"
rx="6"
ry="6"
x="5"
y="7"
id="rect3745"
style="opacity:0.9;fill:url(#ButtonShadow);fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter3174)" />
</g>
<g
id="layer3">
<path
d="m 12,-95.03125 c -5.5110903,0 -10.03125,4.52016 -10.03125,10.03125 l 0,71 c 0,5.5110902 4.5201598,10.03125 10.03125,10.03125 l 72,0 c 5.51109,0 10.03125,-4.5201597 10.03125,-10.03125 l 0,-71 c 0,-5.51109 -4.52016,-10.03125 -10.03125,-10.03125 l -72,0 z"
transform="scale(1,-1)"
id="path3786"
style="opacity:0.07999998;fill:url(#linearGradient3026);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
<path
d="m 12,-94.03125 c -4.971633,0 -9.03125,4.059617 -9.03125,9.03125 l 0,71 c 0,4.9716329 4.0596171,9.03125 9.03125,9.03125 l 72,0 c 4.971633,0 9.03125,-4.059617 9.03125,-9.03125 l 0,-71 c 0,-4.971633 -4.059617,-9.03125 -9.03125,-9.03125 l -72,0 z"
transform="scale(1,-1)"
id="path3778"
style="opacity:0.1;fill:url(#linearGradient3780);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
<path
d="m 12,-93 c -4.4091333,0 -8,3.590867 -8,8 l 0,71 c 0,4.4091333 3.5908667,8 8,8 l 72,0 c 4.409133,0 8,-3.5908667 8,-8 l 0,-71 c 0,-4.409133 -3.590867,-8 -8,-8 l -72,0 z"
transform="scale(1,-1)"
id="path3770"
style="opacity:0.2;fill:url(#linearGradient3772);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
<rect
width="86"
height="85"
rx="7"
ry="7"
x="5"
y="-92"
transform="scale(1,-1)"
id="rect3723"
style="opacity:0.3;fill:url(#linearGradient3725);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
<rect
width="84"
height="84"
rx="6"
ry="6"
x="6"
y="-91"
transform="scale(1,-1)"
id="rect3716"
style="opacity:0.45;fill:url(#linearGradient3721);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
</g>
<g
id="layer1">
<rect
width="84"
height="84"
rx="6"
ry="6"
x="6"
y="6"
id="rect2419"
style="fill:url(#linearGradient3617);fill-opacity:1;fill-rule:nonzero;stroke:none" />
<path
d="M 12,6 C 8.676,6 6,8.676 6,12 l 0,2 0,68 0,2 c 0,0.334721 0.04135,0.6507 0.09375,0.96875 0.0487,0.295596 0.09704,0.596915 0.1875,0.875 0.00988,0.03038 0.020892,0.0636 0.03125,0.09375 0.098865,0.287771 0.2348802,0.547452 0.375,0.8125 0.1445918,0.273507 0.3156161,0.535615 0.5,0.78125 0.1843839,0.245635 0.3737765,0.473472 0.59375,0.6875 0.439947,0.428056 0.94291,0.814526 1.5,1.09375 0.278545,0.139612 0.5734731,0.246947 0.875,0.34375 -0.2562018,-0.100222 -0.4867109,-0.236272 -0.71875,-0.375 -0.00741,-0.0044 -0.023866,0.0045 -0.03125,0 -0.031933,-0.0193 -0.062293,-0.04251 -0.09375,-0.0625 -0.120395,-0.0767 -0.2310226,-0.163513 -0.34375,-0.25 -0.1061728,-0.0808 -0.2132809,-0.161112 -0.3125,-0.25 C 8.4783201,88.557317 8.3087904,88.373362 8.15625,88.1875 8.0486711,88.057245 7.9378561,87.922215 7.84375,87.78125 7.818661,87.74287 7.805304,87.69538 7.78125,87.65625 7.716487,87.553218 7.6510225,87.451733 7.59375,87.34375 7.4927417,87.149044 7.3880752,86.928049 7.3125,86.71875 7.30454,86.69694 7.288911,86.6782 7.28125,86.65625 7.2494249,86.5643 7.2454455,86.469419 7.21875,86.375 7.1884177,86.268382 7.1483606,86.171969 7.125,86.0625 7.0521214,85.720988 7,85.364295 7,85 L 7,83 7,15 7,13 C 7,10.218152 9.2181517,8 12,8 l 2,0 68,0 2,0 c 2.781848,0 5,2.218152 5,5 l 0,2 0,68 0,2 c 0,0.364295 -0.05212,0.720988 -0.125,1.0625 -0.04415,0.206893 -0.08838,0.397658 -0.15625,0.59375 -0.0077,0.02195 -0.0233,0.04069 -0.03125,0.0625 -0.06274,0.173739 -0.138383,0.367449 -0.21875,0.53125 -0.04158,0.0828 -0.07904,0.169954 -0.125,0.25 -0.0546,0.09721 -0.126774,0.18835 -0.1875,0.28125 -0.09411,0.140965 -0.204921,0.275995 -0.3125,0.40625 -0.143174,0.17445 -0.303141,0.346998 -0.46875,0.5 -0.01117,0.0102 -0.01998,0.02115 -0.03125,0.03125 -0.138386,0.125556 -0.285091,0.234436 -0.4375,0.34375 -0.102571,0.07315 -0.204318,0.153364 -0.3125,0.21875 -0.0074,0.0045 -0.02384,-0.0044 -0.03125,0 -0.232039,0.138728 -0.462548,0.274778 -0.71875,0.375 0.301527,-0.0968 0.596455,-0.204138 0.875,-0.34375 0.55709,-0.279224 1.060053,-0.665694 1.5,-1.09375 0.219973,-0.214028 0.409366,-0.441865 0.59375,-0.6875 0.184384,-0.245635 0.355408,-0.507743 0.5,-0.78125 0.14012,-0.265048 0.276135,-0.524729 0.375,-0.8125 0.01041,-0.03078 0.02133,-0.06274 0.03125,-0.09375 0.09046,-0.278085 0.1388,-0.579404 0.1875,-0.875 C 89.95865,84.6507 90,84.334721 90,84 l 0,-2 0,-68 0,-2 C 90,8.676 87.324,6 84,6 L 12,6 z"
inkscape:connector-curvature="0"
id="rect3728"
style="opacity:0.5;fill:url(#linearGradient3188);fill-opacity:1;fill-rule:nonzero;stroke:none" />
<path
d="M 12,90 C 8.676,90 6,87.324 6,84 L 6,82 6,14 6,12 c 0,-0.334721 0.04135,-0.6507 0.09375,-0.96875 0.0487,-0.295596 0.09704,-0.596915 0.1875,-0.875 C 6.29113,10.12587 6.302142,10.09265 6.3125,10.0625 6.411365,9.774729 6.5473802,9.515048 6.6875,9.25 6.8320918,8.976493 7.0031161,8.714385 7.1875,8.46875 7.3718839,8.223115 7.5612765,7.995278 7.78125,7.78125 8.221197,7.353194 8.72416,6.966724 9.28125,6.6875 9.559795,6.547888 9.8547231,6.440553 10.15625,6.34375 9.9000482,6.443972 9.6695391,6.580022 9.4375,6.71875 c -0.00741,0.0044 -0.023866,-0.0045 -0.03125,0 -0.031933,0.0193 -0.062293,0.04251 -0.09375,0.0625 -0.120395,0.0767 -0.2310226,0.163513 -0.34375,0.25 -0.1061728,0.0808 -0.2132809,0.161112 -0.3125,0.25 C 8.4783201,7.442683 8.3087904,7.626638 8.15625,7.8125 8.0486711,7.942755 7.9378561,8.077785 7.84375,8.21875 7.818661,8.25713 7.805304,8.30462 7.78125,8.34375 7.716487,8.446782 7.6510225,8.548267 7.59375,8.65625 7.4927417,8.850956 7.3880752,9.071951 7.3125,9.28125 7.30454,9.30306 7.288911,9.3218 7.28125,9.34375 7.2494249,9.4357 7.2454455,9.530581 7.21875,9.625 7.1884177,9.731618 7.1483606,9.828031 7.125,9.9375 7.0521214,10.279012 7,10.635705 7,11 l 0,2 0,68 0,2 c 0,2.781848 2.2181517,5 5,5 l 2,0 68,0 2,0 c 2.781848,0 5,-2.218152 5,-5 l 0,-2 0,-68 0,-2 C 89,10.635705 88.94788,10.279012 88.875,9.9375 88.83085,9.730607 88.78662,9.539842 88.71875,9.34375 88.71105,9.3218 88.69545,9.30306 88.6875,9.28125 88.62476,9.107511 88.549117,8.913801 88.46875,8.75 88.42717,8.6672 88.38971,8.580046 88.34375,8.5 88.28915,8.40279 88.216976,8.31165 88.15625,8.21875 88.06214,8.077785 87.951329,7.942755 87.84375,7.8125 87.700576,7.63805 87.540609,7.465502 87.375,7.3125 87.36383,7.3023 87.35502,7.29135 87.34375,7.28125 87.205364,7.155694 87.058659,7.046814 86.90625,6.9375 86.803679,6.86435 86.701932,6.784136 86.59375,6.71875 c -0.0074,-0.0045 -0.02384,0.0044 -0.03125,0 -0.232039,-0.138728 -0.462548,-0.274778 -0.71875,-0.375 0.301527,0.0968 0.596455,0.204138 0.875,0.34375 0.55709,0.279224 1.060053,0.665694 1.5,1.09375 0.219973,0.214028 0.409366,0.441865 0.59375,0.6875 0.184384,0.245635 0.355408,0.507743 0.5,0.78125 0.14012,0.265048 0.276135,0.524729 0.375,0.8125 0.01041,0.03078 0.02133,0.06274 0.03125,0.09375 0.09046,0.278085 0.1388,0.579404 0.1875,0.875 C 89.95865,11.3493 90,11.665279 90,12 l 0,2 0,68 0,2 c 0,3.324 -2.676,6 -6,6 l -72,0 z"
inkscape:connector-curvature="0"
id="path3615"
style="opacity:0.2;fill:url(#radialGradient3619);fill-opacity:1;fill-rule:nonzero;stroke:none" />
</g>
<g
id="layer6">
<path
d="m 16,40 c -4.418278,0 -8,3.581722 -8,8 0,3.037566 1.6936983,5.676536 4.1875,7.03125 -0.309128,0.334941 -0.602861,0.672876 -0.84375,1.0625 C 9.4062168,56.349022 7.601215,57.00189 6,57.96875 L 6,81.75 c 2.0896852,1.264869 4.535623,2 7.15625,2 4.425837,0 8.363452,-2.087224 10.90625,-5.3125 0.979607,0.507326 2.070679,0.78125 3.25,0.78125 0.604306,0 1.189704,-0.07711 1.75,-0.21875 -0.01926,0.224196 -0.03125,0.458314 -0.03125,0.6875 0,4.332531 3.511219,7.84375 7.84375,7.84375 4.115818,0 7.485112,-3.18729 7.8125,-7.21875 0.01064,9.7e-5 0.02059,0 0.03125,0 1.89237,0 3.4375,-1.54513 3.4375,-3.4375 0,-1.89237 -1.54513,-3.40625 -3.4375,-3.40625 -0.827912,0 -1.563959,0.292448 -2.15625,0.78125 -0.05084,-0.05316 -0.103948,-0.10453 -0.15625,-0.15625 0.763156,-0.794085 1.25,-1.874175 1.25,-3.0625 0,-2.440161 -1.997339,-4.4375 -4.4375,-4.4375 -2.440161,0 -4.40625,1.997339 -4.40625,4.4375 0,0.373486 0.069,0.716097 0.15625,1.0625 -0.17247,0.04334 -0.363527,0.07046 -0.53125,0.125 6.87e-4,-0.04075 0,-0.08409 0,-0.125 0,-2.950603 -1.78706,-5.481111 -4.34375,-6.5625 -0.280744,-2.408961 -1.976124,-4.39927 -4.21875,-5.125 2.308091,-0.381971 4.0625,-2.396137 4.0625,-4.8125 0,-2.689157 -2.185843,-4.84375 -4.875,-4.84375 -0.583884,0 -1.137476,0.124058 -1.65625,0.3125 C 23.794452,50.122277 24,49.080407 24,48 24,43.581722 20.418278,40 16,40 z m 65.59375,16.875 c -2.228385,0 -4.135672,1.313481 -5,3.21875 -1.002714,-0.333563 -2.072749,-0.53125 -3.1875,-0.53125 -1.530816,0 -2.981184,0.359198 -4.28125,0.96875 C 68.765633,59.346884 67.676758,58.5 66.375,58.5 c -1.593575,0 -2.90625,1.281425 -2.90625,2.875 0,1.130442 0.678291,2.089164 1.625,2.5625 -0.839763,1.213392 -1.414194,2.605801 -1.65625,4.125 -2.528385,0.03656 -4.767753,1.16344 -6.3125,2.9375 -0.309603,-0.0411 -0.616663,-0.0625 -0.9375,-0.0625 -3.934137,0 -7.125,3.190863 -7.125,7.125 0,3.934137 3.190863,7.125 7.125,7.125 1.279411,0 2.462219,-0.346982 3.5,-0.9375 1.002064,0.512771 2.098932,0.824985 3.28125,0.90625 C 62.223341,86.634801 61.7304,88.275952 61.5625,90 L 84,90 c 3.324,0 6,-2.676 6,-6 l 0,-23.1875 c -0.678613,-0.334086 -1.442827,-0.53125 -2.25,-0.53125 -0.344699,0 -0.70556,0.06029 -1.03125,0.125 -0.788797,-2.071645 -2.776464,-3.53125 -5.125,-3.53125 z m -49.9375,2.34375 c -1.24498,0 -2.25,1.00502 -2.25,2.25 0,1.24498 1.00502,2.25 2.25,2.25 1.24498,0 2.25,-1.00502 2.25,-2.25 0,-1.24498 -1.00502,-2.25 -2.25,-2.25 z"
inkscape:connector-curvature="0"
id="path2936"
style="opacity:0.15;color:#000000;fill:url(#linearGradient3812);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="m 12.4375,60.65625 c -1.294779,0 -2.34375,1.048971 -2.34375,2.34375 0,1.294779 1.048971,2.34375 2.34375,2.34375 1.294779,0 2.34375,-1.048971 2.34375,-2.34375 0,-1.294779 -1.048971,-2.34375 -2.34375,-2.34375 z M 21.09375,63 c -0.697189,0 -1.25,0.552811 -1.25,1.25 0,0.697189 0.552811,1.28125 1.25,1.28125 0.697189,0 1.28125,-0.584061 1.28125,-1.28125 0,-0.697189 -0.584061,-1.25 -1.28125,-1.25 z m 54.1875,1.4375 c -1.942169,0 -3.5,1.589081 -3.5,3.53125 0,0.346816 0.06271,0.652258 0.15625,0.96875 -2.072728,0.49773 -3.719249,2.078069 -4.28125,4.125 -0.823558,-0.321832 -1.718706,-0.5 -2.65625,-0.5 -3.865518,0 -6.992815,3.012203 -7.25,6.8125 -0.408442,-1.435573 -1.714689,-2.5 -3.28125,-2.5 -0.473092,0 -0.933817,0.107863 -1.34375,0.28125 -0.645327,-0.60642 -1.482074,-1 -2.4375,-1 -1.623955,0 -2.985505,1.086596 -3.4375,2.5625 -0.426786,-1.179656 -1.548077,-2 -2.875,-2 -1.254179,0 -2.33767,0.733841 -2.8125,1.8125 -0.904392,-1.209315 -2.342495,-2 -3.96875,-2 -0.699812,0 -1.365033,0.144736 -1.96875,0.40625 0.05454,-0.341108 0.09375,-0.674776 0.09375,-1.03125 0,-3.635342 -2.958408,-6.59375 -6.59375,-6.59375 -0.594839,0 -1.170664,0.07084 -1.71875,0.21875 9.4e-5,-0.01072 0,-0.0205 0,-0.03125 0,-1.991968 -1.601782,-3.625 -3.59375,-3.625 -1.540957,0 -2.858409,0.983995 -3.375,2.34375 -0.959343,-1.512242 -2.639073,-2.53125 -4.5625,-2.53125 -2.987953,0 -5.40625,2.449547 -5.40625,5.4375 0,0.332501 0.03632,0.652819 0.09375,0.96875 -2.151421,1.946931 -3.53125,4.713647 -3.53125,7.84375 0,4.648722 2.997077,8.609775 7.15625,10.0625 l 7,0 c 3.405339,-1.18904 6.013318,-4.062464 6.84375,-7.625 0.357853,0.06023 0.718772,0.09375 1.09375,0.09375 1.300452,0 2.510358,-0.380403 3.53125,-1.03125 -6.8e-5,0.01068 0,0.02055 0,0.03125 0,2.738957 2.198543,4.96875 4.9375,4.96875 2.498999,0 4.563203,-1.845825 4.90625,-4.25 0.518075,0.400493 1.169511,0.65625 1.875,0.65625 1.326923,0 2.448214,-0.851594 2.875,-2.03125 0.447643,1.483003 1.808491,2.5625 3.4375,2.5625 0.589428,0 1.133684,-0.155536 1.625,-0.40625 0.587239,0.472236 1.344038,0.78125 2.15625,0.78125 1.64541,0 3.013013,-1.172066 3.34375,-2.71875 0.561413,3.475795 3.553259,6.125 7.1875,6.125 2.063954,0 3.952946,-0.842261 5.28125,-2.21875 0.356553,2.063522 1.491693,3.848166 3.09375,5.0625 l 9.8125,0 c 1.385506,-1.057237 2.428253,-2.552001 2.90625,-4.28125 0.03208,3.36e-4 0.06159,0 0.09375,0 1.342149,0 2.603883,-0.319647 3.75,-0.84375 C 89.978177,84.591827 90,84.29478 90,84 l 0,-15.46875 c -0.901568,-0.423028 -1.872252,-0.711004 -2.90625,-0.8125 0.0029,-0.04255 0,-0.08173 0,-0.125 0,-1.045783 -0.829217,-1.90625 -1.875,-1.90625 -1.045783,0 -1.90625,0.860467 -1.90625,1.90625 0,0.196084 0.03842,0.384621 0.09375,0.5625 -2.037855,0.668196 -3.767221,2.02077 -4.875,3.8125 -0.253918,-0.495741 -0.590245,-0.94235 -0.96875,-1.34375 0.75727,-0.645024 1.25,-1.583552 1.25,-2.65625 0,-1.942169 -1.589081,-3.53125 -3.53125,-3.53125 z"
inkscape:connector-curvature="0"
id="path2973"
style="opacity:0.3;color:#000000;fill:url(#linearGradient3820);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="m 26.875,35.59375 c -1.792771,0 -3.25,1.457229 -3.25,3.25 0,1.302788 0.767512,2.389418 1.875,2.90625 -1.681988,1.153635 -2.78125,3.08758 -2.78125,5.28125 0,0.605702 0.09281,1.194634 0.25,1.75 C 22.433579,48.558595 21.858632,48.403935 21.25,48.375 c 0.0059,-0.08322 0.03125,-0.165281 0.03125,-0.25 0,-1.942169 -1.589081,-3.53125 -3.53125,-3.53125 -1.942169,0 -3.5,1.589081 -3.5,3.53125 0,1.441517 0.883715,2.675793 2.125,3.21875 -0.314326,0.665193 -0.5,1.402959 -0.5,2.1875 0,2.838555 2.286445,5.125 5.125,5.125 2.838555,0 5.15625,-2.286445 5.15625,-5.125 0,-0.299253 -0.04467,-0.58976 -0.09375,-0.875 0.907125,0.49278 1.95758,0.78125 3.0625,0.78125 3.535744,0 6.40625,-2.870506 6.40625,-6.40625 0,-3.388254 -2.63768,-6.149511 -5.96875,-6.375 0.350009,-0.518081 0.5625,-1.140211 0.5625,-1.8125 0,-1.792771 -1.457229,-3.25 -3.25,-3.25 z"
inkscape:connector-curvature="0"
id="path3006"
style="opacity:0.2;color:#000000;fill:url(#linearGradient3828);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="m 72.03125,39.71875 c -1.045783,0 -1.875,0.860467 -1.875,1.90625 0,1.045783 0.829217,1.90625 1.875,1.90625 1.045783,0 1.90625,-0.860467 1.90625,-1.90625 0,-1.045783 -0.860467,-1.90625 -1.90625,-1.90625 z M 68.4375,45.875 c -2.440161,0 -4.40625,1.966089 -4.40625,4.40625 0,2.440161 1.966089,4.40625 4.40625,4.40625 0.06281,0 0.125329,0.0026 0.1875,0 C 68.216938,55.661981 68,56.721164 68,57.84375 c 0,4.531728 3.655772,8.21875 8.1875,8.21875 3.877746,0 7.111628,-2.696841 7.96875,-6.3125 2.530481,-0.06771 4.5625,-2.140673 4.5625,-4.6875 0,-2.589559 -2.097941,-4.6875 -4.6875,-4.6875 -0.323695,0 -0.63227,0.03129 -0.9375,0.09375 0.141463,-0.364275 0.21875,-0.77323 0.21875,-1.1875 0,-1.792771 -1.457229,-3.25 -3.25,-3.25 -1.792771,0 -3.25,1.457229 -3.25,3.25 0,0.138487 0.01442,0.272328 0.03125,0.40625 -0.215996,-0.01705 -0.435871,-0.03125 -0.65625,-0.03125 -1.197422,0 -2.318084,0.288964 -3.34375,0.75 0.0012,-0.04159 0,-0.08313 0,-0.125 0,-2.440161 -1.966089,-4.40625 -4.40625,-4.40625 z"
inkscape:connector-curvature="0"
id="path3015"
style="opacity:0.2;color:#000000;fill:url(#linearGradient3804);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<g
id="layer5">
<rect
width="66"
height="66"
rx="12"
ry="12"
x="15"
y="15"
clip-path="url(#clipPath3613)"
id="rect3171"
style="opacity:0.1;fill:url(#linearGradient3613);fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;filter:url(#filter3794)" />
</g>
<g
id="layer4">
<path
d="m 47.5,14.03125 a 0.92452186,0.92452186 0 0 0 -0.0625,0.03125 c -1.325686,0.369864 -2.127788,1.35003 -2.6875,2.3125 -0.559712,0.96247 -0.958031,1.957804 -1.40625,2.59375 a 0.92452186,0.92452186 0 0 0 -0.0625,0.09375 c -5.956588,11.421436 -7.896994,24.793021 -5.8125,37.46875 -5.235089,5.680706 -8.659517,13.271821 -8.4375,21.125 a 0.92452186,0.92452186 0 0 0 0,0.03125 c 0.308844,5.100857 6.659469,8.103703 10.8125,5.125 0.02719,-0.0195 0.06674,-0.01123 0.09375,-0.03125 L 39.90625,82.75 c 1.667576,-1.033524 2.547098,-2.628301 2.875,-4.28125 0.307216,-1.54867 0.185501,-3.131404 0.03125,-4.5625 0.212171,0.04624 0.412038,0.08415 0.6875,0.125 0.294181,0.04363 0.666016,-0.02156 1.03125,-0.09375 l 0,0.0625 c 2.858439,-0.03878 5.784271,0.06193 8.71875,-0.0625 0.0087,0.21333 -0.0044,0.517502 -0.0625,0.96875 -0.07114,0.552798 -0.175752,1.2061 -0.21875,1.84375 -0.03806,0.564367 0.01538,1.116615 0.21875,1.6875 l -0.03125,0 c 0.01166,0.06778 0.04878,0.120708 0.0625,0.1875 0.0021,0.01005 -0.0021,0.02122 0,0.03125 1.022834,4.858744 7.43329,7.054268 11.1875,3.71875 0.01798,-0.01597 0.04465,-0.01502 0.0625,-0.03125 L 64.4375,82.3125 c 1.700926,-1.361119 2.37564,-3.251739 2.5,-5.125 0.125773,-1.894535 -0.219363,-3.807398 -0.5,-5.4375 a 0.92452186,0.92452186 0 0 0 0,-0.03125 c -1.114105,-5.700766 -3.976543,-10.942009 -7.875,-15.1875 2.286454,-14.09207 -0.294127,-29.154522 -8.09375,-41.25 a 0.92452186,0.92452186 0 0 0 -0.0625,-0.0625 c -0.671659,-0.859188 -1.73064,-1.30328 -2.8125,-1.1875 a 0.92452186,0.92452186 0 0 0 -0.09375,0 z"
inkscape:connector-curvature="0"
id="path3757"
style="opacity:0.05;color:#000000;fill:#7b1a1a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="m 47.6875,14.9375 c -2.018213,0.563078 -2.51414,3.03397 -3.601701,4.577033 -5.920425,11.352095 -7.839101,24.669202 -5.679549,37.266717 -5.265476,5.554019 -8.655618,13.11076 -8.437235,20.835385 0.264631,4.37064 5.858006,7.038628 9.393452,4.417473 2.95112,-1.766521 2.869749,-5.423246 2.523472,-8.39528 -0.459397,-1.56305 1.662859,-0.144974 2.65629,-0.576328 2.994537,-0.04063 6.003921,0.08194 8.989021,-0.0625 1.550471,-0.125409 -0.152752,3.763411 0.541081,5.267695 0.738606,4.295023 6.532976,6.351482 9.775867,3.404113 3.017217,-2.358793 2.261054,-6.500815 1.698003,-9.771346 -1.108646,-5.672835 -3.994577,-10.933355 -7.952451,-15.119212 2.366364,-13.993426 -0.172471,-29.006632 -7.90625,-41 -0.482498,-0.617213 -1.220391,-0.927183 -2,-0.84375 z"
inkscape:connector-curvature="0"
id="path3749"
style="opacity:0.1;color:#000000;fill:#7b1a1a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="m 47.9375,16 a 0.99122166,0.99122166 0 0 0 -0.75,0.40625 c 0,0 -11.97803,16.369688 -7.65625,40.71875 C 37.366907,59.335261 31.092711,66.52368 31,77 c 0,2.744781 2.255219,5 5,5 2.744781,0 5,-2.255219 5,-5 a 0.99122166,0.99122166 0 0 0 0,-0.09375 c -0.548122,-5.128857 -0.253426,-8.120395 0.25,-10 l 0.78125,4.28125 A 0.99122166,0.99122166 0 0 0 43,72 l 10,0 a 0.99122166,0.99122166 0 0 0 0.96875,-0.8125 L 54.75,66.90625 c 0.503426,1.879605 0.798122,4.871143 0.25,10 A 0.99122166,0.99122166 0 0 0 55,77 c 0,2.744781 2.255219,5 5,5 2.744781,0 5,-2.255219 5,-5 C 64.907289,66.52368 58.633093,59.335261 56.46875,57.125 60.79053,32.775938 48.8125,16.40625 48.8125,16.40625 A 0.99122166,0.99122166 0 0 0 47.9375,16 z"
id="path3745"
style="opacity:0.15;color:#000000;fill:#7b1a1a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="m 48,17 c 0,0 -11.785714,16 -7.5,40 l 0.0625,0.4375 C 38.78669,59.195948 32.092972,66.494131 32,77 c 0,2.209139 1.790861,4 4,4 2.209139,0 4,-1.790861 4,-4 -0.946755,-8.858919 0.494037,-12.117865 1.6875,-13.3125 L 43,71 53,71 54.3125,63.6875 C 55.505963,64.882135 56.946755,68.141081 56,77 c 0,2.209139 1.790861,4 4,4 2.209139,0 4,-1.790861 4,-4 C 63.907028,66.494131 57.21331,59.195948 55.4375,57.4375 L 55.5,57 C 59.785714,33 48,17 48,17 z"
inkscape:connector-curvature="0"
id="path3736"
style="opacity:0.3;color:#000000;fill:#7b1a1a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="m 55,56 c 0,0 8.892818,7.88843 9,20 0,2.209139 -1.790861,4 -4,4 -2.209139,0 -4,-1.790861 -4,-4 1.500549,-14.04085 -3,-14 -3,-14 l 2,-6 z"
inkscape:connector-curvature="0"
id="path3845"
style="color:#000000;fill:#b40000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="m 53.34375,60.9375 c 5.390632,3.20678 3.905269,17.077175 3.8125,17.90625 C 56.432392,78.119892 56,77.104569 56,76 57.31298,63.714256 54.028418,62.215396 53.1875,62.03125 53.067369,62.004943 53,62 53,62 l 0.34375,-1.0625 z"
inkscape:connector-curvature="0"
id="path3853"
style="opacity:0.2;fill:#000000;stroke:none" />
<path
d="m 40,76 a 4,4 0 1 1 -8,0 4,4 0 1 1 8,0 z"
transform="matrix(-1,0,0,1,96,0)"
id="path3855"
style="color:#000000;fill:url(#radialGradient3875);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<g
id="g3835">
<path
d="m 41,56 c 0,0 -8.892818,7.88843 -9,20 0,2.209139 1.790861,4 4,4 2.209139,0 4,-1.790861 4,-4 -1.500549,-14.04085 3,-14 3,-14 l -2,-6 z"
inkscape:connector-curvature="0"
id="path3653"
style="color:#000000;fill:#d40000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="m 41,56 c 0,0 -8.892818,7.88843 -9,20 0,0.0641 0.02827,0.12414 0.03125,0.1875 C 32.514941,64.537568 41,57 41,57 l 0,-1 z"
inkscape:connector-curvature="0"
id="path3800"
style="opacity:0.3;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="m 42.40625,59.869922 c -7.849165,4.207139 -5.014375,19.434141 -5.014375,19.434141 l 0.5,0.125 C 38.810674,78.696158 40,77.266674 40,76 38.499451,61.95915 43,62 43,62 l -0.59375,-2.130078 z"
inkscape:connector-curvature="0"
id="path3828"
style="opacity:0.05;fill:#000000;stroke:none" />
<path
d="M 42.40625,60.25 C 35.621304,64.837217 38,79 38,79 l 0.5,0.125 C 39.418799,78.392095 40,77.266674 40,76 38.499451,61.95915 43,62 43,62 l -0.59375,-1.75 z"
inkscape:connector-curvature="0"
id="path3821"
style="opacity:0.1;fill:#000000;stroke:none" />
<path
d="M 42.65625,60.9375 C 37.265618,64.14428 38.750981,78.014675 38.84375,78.84375 39.567608,78.119892 40,77.104569 40,76 38.68702,63.714256 41.971582,62.215396 42.8125,62.03125 42.932631,62.004943 43,62 43,62 l -0.34375,-1.0625 z"
inkscape:connector-curvature="0"
id="path3826"
style="opacity:0.2;fill:#000000;stroke:none" />
<path
d="m 40,76 a 4,4 0 1 1 -8,0 4,4 0 1 1 8,0 z"
id="path3807"
style="color:#000000;fill:url(#radialGradient3815);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<path
d="m 48,16 c 0,0 -4.329605,5.957913 -6.78125,16 L 44,32 l 0,6 8,0 0,-6 2.78125,0 C 52.329605,21.957913 48,16 48,16 z m 6.78125,16 c 0.189912,0.77789 0.387466,1.589238 0.5625,2.40625 C 55.177499,33.565596 54.974233,32.790471 54.78125,32 z M 52,38 l 0,6 4.40625,0 c -0.05544,-2.088004 -0.188001,-4.108162 -0.4375,-6 L 52,38 z m 4.40625,6 c 0.02557,0.962941 0.02553,1.9382 0,2.9375 0.02462,-1.005871 0.02566,-1.971147 0,-2.9375 z m 0,2.9375 C 56.380722,47.9368 56.329706,48.960142 56.25,50 c 0.07942,-1.036173 0.131806,-2.063734 0.15625,-3.0625 z M 56.25,50 52,50 l 0,6 -8,0 0,-6 -4.25,0 c 0.148613,1.938835 0.381783,3.937983 0.75,6 l 2.5,14 10,0 2.5,-14 c 0.368217,-2.062017 0.601387,-4.061165 0.75,-6 z m -16.5,0 C 39.67029,48.960142 39.619278,47.9368 39.59375,46.9375 39.61819,47.936266 39.67058,48.963827 39.75,50 z m -0.15625,-3.0625 c -0.02553,-0.9993 -0.02557,-1.974559 0,-2.9375 -0.02566,0.966353 -0.02462,1.931629 0,2.9375 z m 0,-2.9375 4.40625,0 0,-6 -3.96875,0 c -0.249499,1.891838 -0.382063,3.911996 -0.4375,6 z M 44,44 l 0,6 8,0 0,-6 -8,0 z M 41.21875,32 c -0.192983,0.790471 -0.396249,1.565596 -0.5625,2.40625 0.175034,-0.817012 0.372588,-1.62836 0.5625,-2.40625 z"
inkscape:connector-curvature="0"
id="path3647"
style="fill:url(#linearGradient3762);fill-opacity:1;stroke:none" />
<path
d="m -22,16 c 0,0 -11.785714,16 -7.5,40 l 2.5,14 10,0 2.5,-14 C -10.214286,32 -22,16 -22,16 z"
inkscape:connector-curvature="0"
id="path3671"
style="fill:#1a1a1a;stroke:none" />
<path
d="m -29,56 c 0,0 -8.892818,7.88843 -9,20 0,2.209139 1.790861,4 4,4 2.209139,0 4,-1.790861 4,-4 -1.500549,-14.04085 3,-14 3,-14 l -2,-6 z"
inkscape:connector-curvature="0"
id="path3673"
style="opacity:0.3;color:#000000;fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="m -15,56 -2,6 c 0,0 4.500549,-0.04085 3,14 0,2.209139 1.790861,4 4,4 2.209139,0 4,-1.790861 4,-4 -0.107182,-12.11157 -9,-20 -9,-20 z"
inkscape:connector-curvature="0"
id="path3675"
style="fill:#999999;stroke:none" />
<path
d="m 43,70 10,0 0,-1 -10,0 0,1 z"
inkscape:connector-curvature="0"
id="path3791"
style="fill:#aa0000;fill-opacity:1;stroke:none" />
<path
d="m 41.21875,32 c -0.457965,1.875851 -0.903734,3.848336 -1.1875,6 L 44,38 44,32 41.21875,32 z M 44,38 l 0,6 8,0 0,-6 -8,0 z m 8,0 3.96875,0 c -0.283766,-2.151664 -0.729535,-4.124149 -1.1875,-6 L 52,32 l 0,6 z m 0,6 0,6 4.25,0 c 0.159412,-2.079716 0.207382,-4.074119 0.15625,-6 L 52,44 z m 0,6 -8,0 0,6 8,0 0,-6 z m -8,0 0,-6 -4.40625,0 c -0.05113,1.925881 -0.0032,3.920284 0.15625,6 L 44,50 z"
inkscape:connector-curvature="0"
id="rect3677"
style="color:#000000;fill:url(#linearGradient3728);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="m -26,32 0,6 8,0 0,-6 -8,0 z m 8,6 0,6 7,0 0,-6 -7,0 z m 0,6 -8,0 0,6 8,0 0,-6 z m 0,6 0,6 7,0 0,-6 -7,0 z m -8,0 -7,0 0,6 7,0 0,-6 z m 0,-6 0,-6 -7,0 0,6 7,0 z"
inkscape:connector-curvature="0"
id="rect3681"
style="color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
d="M 47.923984,16.228047 C 38.768547,29.695937 43.042203,70 43.042203,70 l 6.554125,0 c 0,0 -4.155977,-39.069934 -1.672344,-53.771953 z"
inkscape:connector-curvature="0"
id="path3785"
style="opacity:0.2;fill:url(#linearGradient3787);fill-opacity:1;stroke:none" />
<path
d="m 48,16 c -8,14 -4,54 -4,54 l 4,0 c 0,0 -3.92818,-40.286184 0,-54 z"
inkscape:connector-curvature="0"
id="path3767"
style="opacity:0.3;fill:url(#linearGradient3783);fill-opacity:1;stroke:none" />
<path
d="m 48,16 c -6.645286,13.290573 -3,54 -3,54 l 2,0 c 0,0 -4,-39 1,-54 z"
inkscape:connector-curvature="0"
id="path3765"
style="opacity:0.3;fill:url(#linearGradient3775);fill-opacity:1;stroke:none" />
<path
d="m 48,16 c -5.961145,14.658854 -2.619922,54 -2.619922,54 l 0.935781,0 c 0,0 -4.076015,-38.087812 1.684141,-54 z"
inkscape:connector-curvature="0"
id="path3789"
style="opacity:0.5;fill:url(#linearGradient3775);fill-opacity:1;stroke:none" />
</g>
</svg>

+ 18
- 2
data/org.cinnamon.gschema.xml.in View File

@@ -359,7 +359,7 @@
</key>

<key name="overview-corner" type="as">
<default>['expo:false:false', 'scale:false:false', 'scale:false:false', 'desktop:false:false']</default>
<default>['expo:false:false:0', 'scale:false:false:0', 'scale:false:false:0', 'desktop:false:false:0']</default>
<_summary>Properties of overview corners</_summary>
<_description>Properties of overview corners, in the form functionality:hover:icon. The order in which properties are displayed is top left, top right, bottom left, bottom right.</_description>
</key>
@@ -577,7 +577,7 @@
<child name="sounds" schema="org.cinnamon.sounds" />

<key name="enable-vfade" type="b">
<default>false</default>
<default>true</default>
<_summary>Enable the fade effect in Cinnamon scrollviews</_summary>
<_description>
Whether the vfade effect is enabled or not
@@ -902,6 +902,22 @@
<description>
Which sound to play when a device is unplugged.
</description>
</key>

<key name="notification-enabled" type="b">
<default>false</default>
<summary>Whether to play a sound when showing notifications</summary>
<description>
Whether to play a sound when showing notifications.
</description>
</key>
<key name="notification-file" type="s">
<default>""</default>
<summary>Which sound to play when showing notifications</summary>
<description>
Which sound to play when showing notifications.
</description>
</key>

</schema>


+ 845
- 738
data/theme/cinnamon.css
File diff suppressed because it is too large
View File


+ 1
- 1
docs/applets-examples/finder@cinnamon.org/applet.js View File

@@ -151,7 +151,7 @@ FileResultButton.prototype =
{
this.icon = new St.Icon(
{
icon_name: (type == "files" ? "gtk-file" : "folder"),
icon_name: (type == "files" ? "text-x-preview" : "folder"),
icon_size: 16,
icon_type: St.IconType.FULLCOLOR
});


+ 9
- 9
docs/reference/cinnamon-tutorials/importer.xml View File

@@ -1,9 +1,9 @@
<chapter id="importer">
<title>The Importer</title>
<para>To access code of other JavaScript files, cjs has got the <code>imports</code> object.</para>
<para>To access code of other JavaScript files, cjs has the <code>imports</code> object.</para>

<para>
In cjs in combination of Cinnamon you can use following statements to import statements:
In cjs in combination with Cinnamon you can use following statements to import statements:

<informalexample>
<programlisting>
@@ -26,7 +26,7 @@
</para>

<para>
To clearify, an example:
To clarify, an example:
<informalexample>
<programlisting>
//Direct access to file a.js
@@ -60,7 +60,7 @@

<para>
In every case, you can include cjs core modules.
Those provides you useful functions or (less often) bindings to C libraries.
Those provide you useful functions or (less often) bindings to C libraries.
</para>

<para>
@@ -83,11 +83,11 @@
<sect2>
<title><code>imports.gi.*</code></title>

<para>As Cinnamon uses C libraries like Clutter, Muffin and more, there is a little problem: How can be those libraries used in cjs?</para>
<para>As Cinnamon uses C libraries like Clutter, Muffin and more, there is a little problem: How can those libraries be used in cjs?</para>

<para>
For this, there is <ulink role="online-location" url="https://wiki.gnome.org/Projects/GObjectIntrospection">GObject Introspection</ulink>.
For short, it allows you to use C libraries in cjs, Python and other languages.
In short, it allows you to use C libraries in cjs, Python and other languages.
</para>

<para>
@@ -124,7 +124,7 @@
<sect2>
<title><code>imports.misc.*</code></title>

<para>Those imports under <code>imports.misc.*</code> are belonging to Cinnamon, but aren't tied to it that much like <code>imports.ui.*</code>.</para>
<para>Those imports under <code>imports.misc.*</code> belong to Cinnamon, but aren't tied to it as much as <code>imports.ui.*</code>.</para>

<para>
<informalexample>
@@ -143,7 +143,7 @@

<para>
When you want to split a big xlet code into smaller files, you'll need to import them.
A simple way is using <code>imports.xlet</code>, wher <code>xlet</code> is your xlet type
A simple way is using <code>imports.xlet</code>, where <code>xlet</code> is your xlet type
(<code>applet</code>, <code>desklet</code>, <code>extension</code>, <code>search_provider</code>)
<informalexample>
<programlisting>
@@ -195,7 +195,7 @@
</para>

<para>
There is no harm renaming <code>__init__.js</code> to something other (like <code>util.js</code>) and using <code>imports.xlet.util.*</code>.
There is no harm renaming <code>__init__.js</code> to something else (like <code>util.js</code>) and using <code>imports.xlet.util.*</code>.
</para>
</sect2>
</chapter>

+ 6
- 6
docs/reference/cinnamon-tutorials/using-documentation.xml View File

@@ -4,9 +4,9 @@
<title>Overview</title>
<para>The documentation of Cinnamon is separated into 4 different parts (5 if you count muffin). What you are currently reading is the tutorials, which includes the general top-level overviews and tutorials you will need for Cinnamon. This is named "Cinnamon Tutorials".</para>

<para>The second part of the Javascript reference, which describes the Javascript part of Cinnamon. This is named the "Cinnamon Javascript Reference Manual". This is a technical reference for the individual functions and objects available in Cinnamon. Note that this documentation is aimed at both applet/extension developers and Cinnamon developers themselves. So depending on who you are, some of the information might be entirely irrelevant.</para>
<para>The second part is the Javascript reference, which describes the Javascript part of Cinnamon. This is named the "Cinnamon Javascript Reference Manual". This is a technical reference for the individual functions and objects available in Cinnamon. Note that this documentation is aimed at both applet/extension developers and Cinnamon developers themselves. So depending on who you are, some of the information might be entirely irrelevant.</para>

<para>The second part of the documentation is for the C part of Cinnamon, which is simply referred to as the "Cinnamon Reference Manual".</para>
<para>The third part of the documentation is for the C part of Cinnamon, which is simply referred to as the "Cinnamon Reference Manual".</para>

<para>The last part is the documentation for Shell toolkit, or St. This is the graphical toolkit used to draw widgets on the screen (similar to Gtk).</para>

@@ -47,15 +47,15 @@
<title>C documentation</title>
<para>The items described here are common to all C modules imported, not just those relating to Cinnamon.</para>

<para>Reading the documentation of C modules is tricky, since they are written for C, and we are in Javascript. In particular, C has no concept of objects, while Javascript does. Thus the naming convention of many things are different when used in Cinnamon, and the documentation is not directly applicable. The following sections will describe how to translate C into Javascript.</para>
<para>Reading the documentation of C modules is tricky, since they are written for C, and we are in Javascript. In particular, C has no concept of objects, while Javascript does. Thus the naming conventions of many things are different when used in Cinnamon, and the documentation is not directly applicable. The following sections will describe how to translate C into Javascript.</para>

<para>Note that most of these apply to Python and other non-C language.</para>
<para>Note that most of these apply to Python and other non-C languages.</para>

<sect3>
<title>Objects</title>
<para>C has no concept of objects, but GObject allows C code to create things that look like objects. For example, <code>St.Bin</code> is something that looks like an object, and acts like an object in Javascript. If you want to look up the documentation of <code>St.Bin</code>, you search for <code>StBin</code> (without the ".") and the documentation will come up.</para>

<para>The removal of the "." is since, in Javascript, we first import the whole St, and then take the "<code>Bin</code>" object from St. This concept is non-existent in C. In C, it is simply StBin.</para>
<para>The "." is removed since, in Javascript, we first import the whole St, and then take the "<code>Bin</code>" object from St. This concept is non-existent in C. In C, it is simply StBin.</para>

<para>A notable exception is with <code>Gio</code> and <code>GLib</code> objects, in which the <code>G</code> prefix is used in C for both while <code>Gio</code> and <code>GLib</code> is used in Javascript. For example, the C object is <code>GSettings</code> while the Javascript object is <code>Gio.Settings</code>.</para>

@@ -76,7 +76,7 @@

<sect3>
<title>Properties</title>
<para>GObjects have properties. These can generally accessed directly. For example, if <code>actor</code> is an <code>StBin</code> and you want to access the <code>x-fill</code> property, you can use <code>actor.x_fill</code>. Note that we translate <code>-</code> to <code>_</code>.</para>
<para>GObjects have properties. These can generally be accessed directly. For example, if <code>actor</code> is an <code>StBin</code> and you want to access the <code>x-fill</code> property, you can use <code>actor.x_fill</code>. Note that we translate <code>-</code> to <code>_</code>.</para>

<para>Sometimes, for some absurd reason, the properties cannot be accessed directly. In this case, there is still hope. You can access the property via <code>actor.get_property("x-fill")</code> and <code>actor.set_property("x-fill", false)</code>.</para>
</sect3>


+ 10
- 10
docs/reference/cinnamon-tutorials/write-applet.xml View File

@@ -34,7 +34,7 @@
</listitem>
</itemizedlist>
<para>
Applets go in <code>~/.local/share/cinnamon/applets</code> (or in <code>/usr/share/cinnamon/applets</code> if you want them installed system-wide). So let’s go there and let’s create the files and folders necessary to any Cinnamon applet.
Applets go in <code>~/.local/share/cinnamon/applets</code> (or in <code>/usr/share/cinnamon/applets</code> if you want them installed system-wide). So let’s go there and let’s create the files and folders necessary for any Cinnamon applet.
</para>

<screen>
@@ -106,7 +106,7 @@
},

on_applet_clicked: function() {
Util.spawn('xkill');
Util.spawn(['xkill']);
}
};

@@ -116,7 +116,7 @@
</programlisting>
</informalexample>
<para>
Now we'll go through the code one by one, starting from the bottom.
Now we'll go through the code line by line, starting from the bottom.
</para>

<informalexample>
@@ -127,11 +127,11 @@
</programlisting>
</informalexample>
<para>
The <code>main</code> function is the only thing Cinnamon understand. To load an applet, Cinnamon calls the <code>main</code> function in the applet's code, and expects to get an Applet object, which it will add to the panel. So here we instantiate an <code>MyApplet</code> object (whose details are defined above), and returns it.
The <code>main</code> function is the only thing Cinnamon understands. To load an applet, Cinnamon calls the <code>main</code> function in the applet's code, and expects to get an Applet object, which it will add to the panel. So here we instantiate a <code>MyApplet</code> object (whose details are defined above), and return it.
</para>

<para>
You will notice that there are a lot of parameters floating around. <code>metadata</code> contains, basically the information inside <code>metadata.json</code> plus some more. This is not very helpful in general, but can sometimes provide some useful information.
You will notice that there are a lot of parameters floating around. <code>metadata</code> contains, basically, the information inside <code>metadata.json</code> plus some more. This is not very helpful in general, but can sometimes provide some useful information.
</para>

<para>
@@ -147,7 +147,7 @@
</para>

<para>
If that sounds like a lot of things to take care of, you should be relieved that the applet API handles all that for you! All you have to do is to pass it to the applet API. Here we are passing these information to the constructor, and the constructor will later pass it to the applet API.
If that sounds like a lot of things to take care of, you should be relieved that the applet API handles all that for you! All you have to do is to pass it to the applet API. Here we are passing this information to the constructor, and the constructor will later pass it to the applet API.
</para>

<para>
@@ -180,7 +180,7 @@
</para>

<para>
Also note that we pass all those <code>orientation</code> etc. information down the chain until it ultimately reaches the applet API.
Also note that we pass all the <code>orientation</code> etc. information down the chain until it ultimately reaches the applet API.
</para>

<para>
@@ -199,7 +199,7 @@
},

on_applet_clicked: function() {
Util.spawn('xkill');
Util.spawn(['xkill']);
}
};
</programlisting>
@@ -227,7 +227,7 @@
</para>

<para>
Next, in our <code>_init</code> function, we call the <link linkend="cinnamon-js-ui-Applet-IconApplet-_init"><code>_init</code></link> function of <code>Applet.IconApplet</code>. Here we pass on all those information about <code>orientation</code> etc to this <code>_init</code> function, and this function will help us sort out all the mess required to make the applet display properly.
Next, in our <code>_init</code> function, we call the <link linkend="cinnamon-js-ui-Applet-IconApplet-_init"><code>_init</code></link> function of <code>Applet.IconApplet</code>. Here we pass on all the information about <code>orientation</code> etc. to this <code>_init</code> function, and this function will help us sort out all the mess required to make the applet display properly.
</para>

<para>
@@ -264,7 +264,7 @@
<informalexample>
<programlisting>
on_applet_clicked: function() {
Util.spawn('xkill');
Util.spawn(['xkill']);
}
</programlisting>
</informalexample>


+ 5
- 1
docs/reference/cinnamon-tutorials/xlet-settings-ref.xml View File

@@ -21,6 +21,7 @@
<listitem><code>type</code>: should be <code>entry</code></listitem>
<listitem><code>default</code>: default string value</listitem>
<listitem><code>description</code>: String describing the setting</listitem>
<listitem><code>expand-width</code>: (optional) true or false, or leave off entirely. Forces editable fields of <code>entry</code>'s elements to occupy the entire space available in a row</listitem>
</itemizedlist>

<para>A text entry field that stores a <code>string</code></para>
@@ -89,6 +90,7 @@
<listitem><code>description</code>: String describing the setting</listitem>
<listitem><code>default</code>: Default filename to use</listitem>
<listitem><code>select-dir</code>: (optional) true or false, or leave off entirely. Forces directory selection.</listitem>
<listitem><code>expand-width</code>: (optional) true or false, or leave off entirely. Forces editable fields of <code>filechooser</code>'s elements to occupy the entire space available in a row</listitem>
</itemizedlist>

<para>Opens a file picker dialog to allow you to choose a filename. If <code>select-dir</code> is <code>true</code>, it will only allow directories to be selected. Stores as a <code>string</code>.</para>
@@ -201,7 +203,9 @@
<listitem><code>callback</code>: string of callback method name (no "this", just "myFunc")</listitem>
</itemizedlist>

<para>A <emphasis>non-setting</emphasis> widget, this provides a button, which, when clicked, activates the <code>callback</code> method in your applet. Note: the callback value should be a string of the method name only. For instance, to call <code>this.myCallback()</code>, you would put <code>myCallback</code> for the callback value.</para>
<para>A <emphasis>non-setting</emphasis> widget, this provides a button, which, when clicked, activates the <code>callback</code> method in your applet/desklet. Note: the callback value should be a string of the method name only. For instance, to call <code>this.myCallback()</code>, you would put <code>myCallback</code> for the callback value.</para>

<para>Special case: for a <code>button</code> element to work on an extension setting window, an object containing all needed callback functions needs to be created and then returned by the <code>enable()</code> function.</para>
</sect3>
<sect3>
<title>Additional Setting Options</title>


+ 3
- 3
docs/reference/cinnamon-tutorials/xlet-versioning.xml View File

@@ -16,7 +16,7 @@
</para>

<para>
Here extension versioning comes to the rescue. Since Cinnamon 2.6, it is possible to ship different versions of your extension for different versions of Cinnamon. Here "extension" will refer to all extensions, applets and desklets.
Here extension versioning comes to the rescue. As of Cinnamon 2.6, it is possible to ship different versions of your extension for different versions of Cinnamon. Here "extension" will refer to all extensions, applets and desklets.
</para>

<para> To enable extension versioning, extensions have to add the line</para>
@@ -34,10 +34,10 @@
</para>

<para>
If no suitable directory is found, then the contents in <code>extension@uuid/</code> will be loaded. Note that Cinnamon versions prior to 2.6 will not understand this directory magic, and will always try to load the contents in <code>extension@uuid/</code>. Hence it is suggested that extension maintainers put the version for 2.4 in <code>extension@uuid</code>, and create new directories if changes <emphasis>specific to newer cinnamon versions</emphasis> are made. Don't make a new directory whenever a Cinnamon version is out since it is just a waste of space (and maintenance effort).
If no suitable directory is found, then the contents in <code>extension@uuid/</code> will be loaded. Note that Cinnamon versions prior to 2.6 will not understand this directory magic, and will always try to load the contents in <code>extension@uuid/</code>. Hence it is suggested that extension maintainers put the version for 2.4 in <code>extension@uuid</code>, and create new directories if changes <emphasis>specific to newer Cinnamon versions</emphasis> are made. Don't make a new directory whenever a Cinnamon version is out since it is just a waste of space (and maintenance effort).
</para>

<para>
Note that this also allows you to support future versions of Cinnamon. For example, if you see a cool feature in the development branch of Cinnamon, you can modify your code and put it in the 2.6 folder (assuming the current version is 2.4). Then once the user upgrades their cinnamon version, the new code will be used instead. This also allows extensions to be smoothly upgraded between versions.
Note that this also allows you to support future versions of Cinnamon. For example, if you see a cool feature in the development branch of Cinnamon, you can modify your code and put it in the 2.6 folder (assuming the current version is 2.4). Then once the user upgrades their Cinnamon version, the new code will be used instead. This also allows extensions to be smoothly upgraded between versions.
</para>
</chapter>

+ 1
- 1
docs/search-providers-examples/trackerprovider@cinnamon.org/search_provider.js View File

@@ -37,7 +37,7 @@ function dbus_push_results(results, pattern)
break;
default:
results[i].label = decodeURIComponent(results[i]["url"]);
results[i].label = (decodeURIComponent(results[i]["url"])).split("/").pop();
break;
}
final_results.push(results[i]);


+ 7
- 3
files/usr/bin/cinnamon-desktop-editor View File

@@ -1,6 +1,10 @@
#!/usr/bin/python2
#!/usr/bin/env python3
""" Launch the cinnamon desktop editor utility

import os, sys
See cinnamon/cinnamon-desktop-editor/cinnamon-desktop-editor.py for usage info
"""

os.execvp("/usr/share/cinnamon/cinnamon-desktop-editor/cinnamon-desktop-editor.py", ("",) + tuple(sys.argv[1:]))
import os
import sys

os.execvp("/usr/share/cinnamon/cinnamon-desktop-editor/cinnamon-desktop-editor.py", ("",) + tuple(sys.argv[1:]))

+ 18
- 11
files/usr/bin/cinnamon-file-dialog View File

@@ -1,10 +1,17 @@
#!/usr/bin/env python3
""" Allows you to open a Gtk file dialog from and get the selected file in return

Used by a couple of Cinnamon spices via Javascript

Usage:
cinnamon-file-dialog {0|1|2} -{p|n|d|f} [path] ...
"""

import sys
from gi.repository import Gio, Gtk
from gi.repository import Gtk

cancelButton = (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL)
typeArg = int(sys.argv[1])
typeArg = int(sys.argv[1])
fdType = typeArg % 3
if fdType == 0:
msg = "Open"
@@ -24,20 +31,20 @@ filechooserdialog = Gtk.FileChooserDialog(title=msg, action=action, buttons=butt

for i in range(2, len(sys.argv)):
if sys.argv[i] == "-p":
filechooserdialog.set_filename(sys.argv[i+1])
filechooserdialog.set_filename(sys.argv[i + 1])
elif sys.argv[i] == "-n":
filechooserdialog.set_current_name(sys.argv[i+1])
filechooserdialog.set_current_name(sys.argv[i + 1])
elif sys.argv[i] == "-d":
filechooserdialog.set_current_folder(sys.argv[i+1])
filechooserdialog.set_current_folder(sys.argv[i + 1])
elif sys.argv[i] == "-f":
filterList = sys.argv[i+1].split(",")
filterList = sys.argv[i + 1].split(",")
for filterInfo in filterList:
[name,filters] = filterInfo.split(";")
[name, filters] = filterInfo.split(";")
filterObj = Gtk.FileFilter()
filterObj.set_name(name)
rules = filters.split(":")
for rule in rules:
[ftype,value] = rule.split("=")
[ftype, value] = rule.split("=")
if ftype == "m":
filterObj.add_mime_type(value)
elif ftype == "p":
@@ -50,11 +57,11 @@ if fdType == 2:
if typeArg > 2:
filechooserdialog.set_select_multiple(True)

response=filechooserdialog.run()
response = filechooserdialog.run()
if response == Gtk.ResponseType.OK:
if typeArg > 2:
print (filechooserdialog.get_filenames())
print(filechooserdialog.get_filenames())
else:
print (filechooserdialog.get_filename())
print(filechooserdialog.get_filename())

filechooserdialog.destroy()

+ 8
- 3
files/usr/bin/cinnamon-json-makepot View File

@@ -1,6 +1,11 @@
#!/usr/bin/python2
#!/usr/bin/env python3

import os, sys
""" Launch the cinnamon json makepot utility

os.execvp("/usr/share/cinnamon/cinnamon-json-makepot/cinnamon-json-makepot.py", ("",) + tuple(sys.argv[1:]))
See cinnamon/cinnamon-json-makepot/cinnamon-json-makepot.py for usage info
"""

import os
import sys

os.execvp("/usr/share/cinnamon/cinnamon-json-makepot/cinnamon-json-makepot.py", ("",) + tuple(sys.argv[1:]))

+ 14
- 9
files/usr/bin/cinnamon-killer-daemon View File

@@ -1,17 +1,22 @@
#!/usr/bin/python2
# -*- coding: utf-8 -*-
#!/usr/bin/env python3

""" Creates a keybinding that allows cinnamon to be restarted by pressing Ctrl + Alt + Esc,
and runs in the background to detect that keybinding
"""

import os
import syslog

import gi
gi.require_version('Keybinder', '3.0')
gi.require_version('Gtk', '3.0')
from gi.repository import Keybinder
from gi.repository import Gtk, Gio
import os
import syslog

SETTINGS_SCHEMA = 'org.cinnamon.desktop.keybindings.media-keys'
SETTINGS_KEY = 'restart-cinnamon'


class KillerDaemon:

def __init__(self):
@@ -27,7 +32,7 @@ class KillerDaemon:
if self.bindings is not None:
for binding in self.bindings:
Keybinder.unbind(binding)
except Exception, detail:
except Exception as detail:
syslog.syslog(detail)

# Get the new ones
@@ -39,13 +44,13 @@ class KillerDaemon:
for binding in self.bindings:
if Keybinder.bind(binding, self.restart_cinnamon, None):
syslog.syslog("Bound Cinnamon restart to %s." % binding)
except Exception, detail:
except Exception as detail:
syslog.syslog(detail)

def restart_cinnamon(self, keystring, data):
os.system("nemo -n &") # restart nemo if it's not running already
os.system("cinnamon-settings-daemon &") # restart CSD if it's not running already
os.system("cinnamon --replace &") # restart Cinnamon whether it's running or not (can be handy in case of a DE freeze)
os.system("nemo -n &") # restart nemo if it's not running already
os.system("cinnamon-settings-daemon &") # restart CSD if it's not running already
os.system("cinnamon --replace &") # restart Cinnamon whether it's running or not (can be handy in case of a DE freeze)

if __name__ == '__main__':
daemon = KillerDaemon()


+ 9
- 3
files/usr/bin/cinnamon-launcher View File

@@ -1,16 +1,22 @@
#! /usr/bin/python2
# -*- coding=utf-8 -*-
#!/usr/bin/env python3
#
""" Launches or restarts cinnamon
"""

FALLBACK_COMMAND = "metacity"
FALLBACK_ARGS = ("--replace",)

import os, sys, gettext
import os
import sys
import gettext

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

gettext.install("cinnamon", "/usr/share/locale")


def confirm_restart():
d = Gtk.MessageDialog(parent=None, flags=0, message_type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.YES_NO)
d.set_keep_above(True)


+ 8
- 3
files/usr/bin/cinnamon-looking-glass View File

@@ -1,6 +1,11 @@
#!/usr/bin/python2
#!/usr/bin/env python3

import os, sys
""" Launch the cinnamon looking glass utility

os.execvp("/usr/share/cinnamon/cinnamon-looking-glass/cinnamon-looking-glass.py", ("",) + tuple(sys.argv[1:]))
Usage: cinnamon-looking-glass {daemon|inspect}
"""

import os
import sys

os.execvp("/usr/share/cinnamon/cinnamon-looking-glass/cinnamon-looking-glass.py", ("",) + tuple(sys.argv[1:]))

+ 19
- 13
files/usr/bin/cinnamon-menu-editor View File

@@ -1,20 +1,26 @@
#! /usr/bin/python2 -OOt
#!/usr/bin/env python2

""" Launch the Cinnamon menu editor utility

Usage: cinnamon-menu-editor
"""

</