From 6601c54c5139e75cee19e073e24b065ec7fc9435 Mon Sep 17 00:00:00 2001
From: Davisson Paulino <dhp14@inf.ufpr.br>
Date: Wed, 11 Oct 2017 10:20:36 -0300
Subject: [PATCH] SCRUM#14: Created package

---
 .deploy.sh                                    |   23 +
 .gitignore                                    |   14 +
 .gitlab-ci.yml                                |   63 +
 dput.cf                                       |    9 +
 package/COPYING                               |  341 ++
 package/Makefile                              |   84 +
 package/README.md                             |   38 +
 package/Settings.ui                           | 2998 +++++++++++++++++
 package/appIcons.js                           | 1256 +++++++
 package/convenience.js                        |   74 +
 package/dash.js                               | 1180 +++++++
 package/debian/changelog                      |   72 +
 package/debian/compat                         |    1 +
 package/debian/control                        |   25 +
 package/debian/copyright                      |   91 +
 package/debian/docs                           |    1 +
 package/debian/install                        |    1 +
 .../patches/makefile-clean-translations       |   20 +
 package/debian/patches/series                 |    1 +
 package/debian/rules                          |   13 +
 package/debian/source/format                  |    1 +
 package/debian/watch                          |    3 +
 package/docking.js                            | 1909 +++++++++++
 package/extension.js                          |   21 +
 package/intellihide.js                        |  323 ++
 package/media/logo.svg                        |  528 +++
 package/media/screenshot.jpg                  |  Bin 0 -> 148723 bytes
 package/metadata.json                         |   10 +
 package/po/ar.po                              |  554 +++
 package/po/cs.po                              |  460 +++
 package/po/de.po                              |  589 ++++
 package/po/el.po                              |  442 +++
 package/po/es.po                              |  438 +++
 package/po/fr.po                              |  438 +++
 package/po/hu.po                              |  440 +++
 package/po/it.po                              |  453 +++
 package/po/ja.po                              |  458 +++
 package/po/nl.po                              |  581 ++++
 package/po/pl.po                              |  564 ++++
 package/po/pt.po                              |  526 +++
 package/po/pt_BR.po                           |  555 +++
 package/po/ru.po                              |  564 ++++
 package/po/sk.po                              |  454 +++
 package/po/sr.po                              |  465 +++
 package/po/sr@latin.po                        |  464 +++
 package/po/sv.po                              |  452 +++
 package/po/tr.po                              |  457 +++
 package/po/zh_CN.po                           |  524 +++
 package/prefs.js                              |  705 ++++
 ....shell.extensions.dash-to-dock.gschema.xml |  713 ++++
 package/stylesheet.css                        |  109 +
 package/theming.js                            |  293 ++
 package/utils.js                              |  123 +
 package/windowPreview.js                      |  595 ++++
 54 files changed, 21516 insertions(+)
 create mode 100755 .deploy.sh
 create mode 100644 .gitignore
 create mode 100644 .gitlab-ci.yml
 create mode 100644 dput.cf
 create mode 100644 package/COPYING
 create mode 100644 package/Makefile
 create mode 100644 package/README.md
 create mode 100644 package/Settings.ui
 create mode 100644 package/appIcons.js
 create mode 100644 package/convenience.js
 create mode 100644 package/dash.js
 create mode 100644 package/debian/changelog
 create mode 100644 package/debian/compat
 create mode 100644 package/debian/control
 create mode 100644 package/debian/copyright
 create mode 100644 package/debian/docs
 create mode 100644 package/debian/install
 create mode 100644 package/debian/patches/makefile-clean-translations
 create mode 100644 package/debian/patches/series
 create mode 100755 package/debian/rules
 create mode 100644 package/debian/source/format
 create mode 100644 package/debian/watch
 create mode 100644 package/docking.js
 create mode 100644 package/extension.js
 create mode 100644 package/intellihide.js
 create mode 100644 package/media/logo.svg
 create mode 100644 package/media/screenshot.jpg
 create mode 100644 package/metadata.json
 create mode 100644 package/po/ar.po
 create mode 100644 package/po/cs.po
 create mode 100644 package/po/de.po
 create mode 100644 package/po/el.po
 create mode 100644 package/po/es.po
 create mode 100644 package/po/fr.po
 create mode 100644 package/po/hu.po
 create mode 100644 package/po/it.po
 create mode 100644 package/po/ja.po
 create mode 100644 package/po/nl.po
 create mode 100644 package/po/pl.po
 create mode 100644 package/po/pt.po
 create mode 100644 package/po/pt_BR.po
 create mode 100644 package/po/ru.po
 create mode 100644 package/po/sk.po
 create mode 100644 package/po/sr.po
 create mode 100644 package/po/sr@latin.po
 create mode 100644 package/po/sv.po
 create mode 100644 package/po/tr.po
 create mode 100644 package/po/zh_CN.po
 create mode 100644 package/prefs.js
 create mode 100644 package/schemas/org.gnome.shell.extensions.dash-to-dock.gschema.xml
 create mode 100644 package/stylesheet.css
 create mode 100644 package/theming.js
 create mode 100644 package/utils.js
 create mode 100644 package/windowPreview.js

diff --git a/.deploy.sh b/.deploy.sh
new file mode 100755
index 0000000..7088e4f
--- /dev/null
+++ b/.deploy.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# This script uploads an includes a .deb package in our debian repository.
+# The distribution is chosen based on the gitlab-ci stage we are on.
+
+apt-get update && apt-get install -y dput ssh
+
+eval $(ssh-agent -s)
+ssh-add <(echo "$PRIV_KEY")
+
+echo "Deploy job name: $CI_JOB_NAME"
+
+if [ "$CI_JOB_NAME" = "deploy_for_testing" ]; then
+    dput -u -f --config=dput.cf repo build/*.changes
+elif [ "$CI_JOB_NAME" = "deploy_for_stable" ]; then
+    CHANGELOG="package/debian/changelog"
+    LINE=$(head -n 1 $CHANGELOG)
+    PACKAGE=$(echo $LINE | cut -d' ' -f1)
+    VERSION=$(echo $LINE | cut -d' ' -f2 | grep -o -E '[0-9]*-[0-9]*')
+
+    REPREPRO_CMD="reprepro -Vb /home/repository/www/lc2 copysrc stable testing $PACKAGE $VERSION"
+    ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa repository@repo.c3sl.ufpr.br "$REPREPRO_CMD"
+fi
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..eb8bc73
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,14 @@
+*.compiled
+package/debian/gnome-shell-extension-dashtodock
+package/debian/gnome-shell-extension-dashtodock.debhelper.log
+package/debian/gnome-shell-extension-dashtodock.substvars
+package/debian/gnome-shell-extension-dashtodock.*.debhelper
+package/debian/files
+package/debian/debhelper-build-stamp
+gnome-shell-extension-dashtodock_*.tar.xz
+gnome-shell-extension-dashtodock_*.tar.gz
+gnome-shell-extension-dashtodock_*.build
+gnome-shell-extension-dashtodock_*.dsc
+gnome-shell-extension-dashtodock_*.changes
+gnome-shell-extension-dashtodock_*.deb
+*.mo
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..ded4f58
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,63 @@
+## Template para empacotamento utilizando o Gitlab-ci.
+
+stages:
+    - build
+    - test
+    - deploy
+
+build:
+  stage: build
+  artifacts:
+    paths:
+      - build/
+  tags:
+    - debian-packaging
+  script:
+    - if [ ! -d "package/debian/" ] ; then exit 1; fi
+    - apt-get update && apt-get install -y  debhelper libglib2.0-bin
+    - LINE=$(head -n 1 package/debian/changelog)
+    - PACKAGE=$(echo $LINE | cut -d' ' -f1)
+    - VERSION=$(echo $LINE | cut -d' ' -f2 | grep -o -E '[0-9]*-[0-9]*')
+    - VERSION=$(echo $VERSION | cut -d'-' -f1)
+    - tar --exclude=debian -czf ${PACKAGE}_${VERSION}.orig.tar.gz package/*
+    - cd package ; debuild -us -uc -sa
+    - cd ../
+    - mkdir build/
+    - mv ${PACKAGE}* build/
+
+test:
+  stage: test
+  tags:
+    - ubuntu
+    - regular
+  script:
+    # TODO: find a way to get the dependencies automatically
+    - apt-get update
+    - DEBIAN_FRONTEND=noninteractive apt-get install -y gnome-shell gir1.2-clutter-1.0
+    - dpkg -i build/*.deb
+    - echo "Estágio de Teste finalizado"
+  dependencies:
+    - build
+
+deploy_for_testing:
+  stage: deploy
+  only:
+      - master
+  tags:
+    - debian-packaging
+  script:
+    - ./.deploy.sh
+  dependencies:
+    - build
+
+deploy_for_stable:
+  stage: deploy
+  when: manual
+  only:
+      - master
+  tags:
+    - debian-packaging
+  script:
+    - ./.deploy.sh
+  dependencies:
+    - build
diff --git a/dput.cf b/dput.cf
new file mode 100644
index 0000000..1a3ee4c
--- /dev/null
+++ b/dput.cf
@@ -0,0 +1,9 @@
+[repo]
+fqdn = repo.c3sl.ufpr.br
+method = scp
+login = repository
+incoming = /home/repository/www/lc2/incoming
+allow_unsigned_uploads = 1
+ssh_config_options = User=repository
+                     StrictHostKeyChecking=no
+post_upload_command = ssh -l repository -i ~/.ssh/id_rsa repo.c3sl.ufpr.br "reprepro -Vb /home/repository/www/lc2 processincoming default"
diff --git a/package/COPYING b/package/COPYING
new file mode 100644
index 0000000..8d61b15
--- /dev/null
+++ b/package/COPYING
@@ -0,0 +1,341 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
diff --git a/package/Makefile b/package/Makefile
new file mode 100644
index 0000000..40a2bc0
--- /dev/null
+++ b/package/Makefile
@@ -0,0 +1,84 @@
+# Basic Makefile
+
+UUID = dash-to-dock@micxgx.gmail.com
+BASE_MODULES = extension.js stylesheet.css metadata.json COPYING README.md
+EXTRA_MODULES = convenience.js dash.js docking.js appIcons.js windowPreview.js intellihide.js prefs.js theming.js utils.js Settings.ui
+EXTRA_MEDIA = logo.svg
+TOLOCALIZE =  prefs.js appIcons.js
+MSGSRC = $(wildcard po/*.po)
+ifeq ($(strip $(DESTDIR)),)
+	INSTALLBASE = $(HOME)/.local/share/gnome-shell/extensions
+else
+	INSTALLBASE = $(DESTDIR)/usr/share/gnome-shell/extensions
+endif
+INSTALLNAME = dash-to-dock@micxgx.gmail.com
+
+# The command line passed variable VERSION is used to set the version string
+# in the metadata and in the generated zip-file. If no VERSION is passed, the
+# current commit SHA1 is used as version number in the metadata while the
+# generated zip file has no string attached.
+ifdef VERSION
+	VSTRING = _v$(VERSION)
+else
+	VERSION = $(shell git rev-parse HEAD)
+	VSTRING =
+endif
+
+all: extension
+
+clean:
+	rm -f ./schemas/gschemas.compiled
+
+extension: ./schemas/gschemas.compiled $(MSGSRC:.po=.mo)
+
+./schemas/gschemas.compiled: ./schemas/org.gnome.shell.extensions.dash-to-dock.gschema.xml
+	glib-compile-schemas ./schemas/
+
+potfile: ./po/dashtodock.pot
+
+mergepo: potfile
+	for l in $(MSGSRC); do \
+		msgmerge -U $$l ./po/dashtodock.pot; \
+	done;
+
+./po/dashtodock.pot: $(TOLOCALIZE) Settings.ui
+	mkdir -p po
+	xgettext -k --keyword=__ --keyword=N__ --add-comments='Translators:' -o po/dashtodock.pot --package-name "Dash to Dock" $(TOLOCALIZE)
+	intltool-extract --type=gettext/glade Settings.ui
+	xgettext -k --keyword=_ --keyword=N_ --join-existing -o po/dashtodock.pot Settings.ui.h
+
+./po/%.mo: ./po/%.po
+	msgfmt -c $< -o $@
+
+install: install-local
+
+install-local: _build
+	rm -rf $(INSTALLBASE)/$(INSTALLNAME)
+	mkdir -p $(INSTALLBASE)/$(INSTALLNAME)
+	cp -r ./_build/* $(INSTALLBASE)/$(INSTALLNAME)/
+	-rm -fR _build
+	echo done
+
+zip-file: _build
+	cd _build ; \
+	zip -qr "$(UUID)$(VSTRING).zip" .
+	mv _build/$(UUID)$(VSTRING).zip ./
+	-rm -fR _build
+
+_build: all
+	-rm -fR ./_build
+	mkdir -p _build
+	cp $(BASE_MODULES) $(EXTRA_MODULES) _build
+	mkdir -p _build/media
+	cd media ; cp $(EXTRA_MEDIA) ../_build/media/
+	mkdir -p _build/schemas
+	cp schemas/*.xml _build/schemas/
+	cp schemas/gschemas.compiled _build/schemas/
+	mkdir -p _build/locale
+	for l in $(MSGSRC:.po=.mo) ; do \
+		lf=_build/locale/`basename $$l .mo`; \
+		mkdir -p $$lf; \
+		mkdir -p $$lf/LC_MESSAGES; \
+		cp $$l $$lf/LC_MESSAGES/dashtodock.mo; \
+	done;
+	sed -i 's/"version": -1/"version": "$(VERSION)"/'  _build/metadata.json;
diff --git a/package/README.md b/package/README.md
new file mode 100644
index 0000000..8827a6c
--- /dev/null
+++ b/package/README.md
@@ -0,0 +1,38 @@
+# Dash to Dock
+![screenshot](https://github.com/micheleg/dash-to-dock/raw/master/media/screenshot.jpg)
+
+## A dock for the GNOME Shell
+This extension enhances the dash moving it out of the overview and transforming it in a dock for an easier launching of applications and a faster switching between windows and desktops without having to leave the desktop view.
+
+For installation instructions and more information visit [https://micheleg.github.io/dash-to-dock/](https://micheleg.github.io/dash-to-dock/).
+
+## Installation from source
+
+The extension can be installed directly from source, either for the convenience of using git or to test the latest development version. Clone the desired branch with git
+
+<pre>git clone https://github.com/micheleg/dash-to-dock.git</pre>
+or download the branch from github. A simple Makefile is included. Then run
+<pre>make
+make install
+</pre>
+to install the extension in your home directory. A Shell reload is required <code>Alt+F2 r Enter</code> and the extension has to be enabled  with *gnome-tweak-tool* or with *dconf*.
+
+## Bug Reporting
+
+Bugs should be reported to the Github bug tracker [https://github.com/micheleg/dash-to-dock/issues](https://github.com/micheleg/dash-to-dock/issues).
+
+## License
+Dash to Dock Gnome Shell extension is distributed under the terms of the GNU General Public License,
+version 2 or later. See the COPYING file for details.
+
+## Donations
+
+You can
+
+<a href="http://flattr.com/thing/1047592/" target="_blank">
+<img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a>
+
+or
+
+<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3S5HFFG2BWGPL" target="_blank">
+<img src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_donateCC_LG.gif" alt="PayPal — The safer, easier way to pay online."/></a>
diff --git a/package/Settings.ui b/package/Settings.ui
new file mode 100644
index 0000000..d8d498f
--- /dev/null
+++ b/package/Settings.ui
@@ -0,0 +1,2998 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.3 -->
+<interface>
+  <requires lib="gtk+" version="3.12"/>
+  <object class="GtkAdjustment" id="animation_time_adjustment">
+    <property name="upper">1</property>
+    <property name="step_increment">0.050000000000000003</property>
+    <property name="page_increment">0.25</property>
+  </object>
+  <object class="GtkAdjustment" id="shortcut_time_adjustment">
+    <property name="upper">10</property>
+    <property name="step_increment">0.250000000000000003</property>
+    <property name="page_increment">1</property>
+  </object>
+  <object class="GtkAdjustment" id="custom_opacity_adjustement">
+    <property name="upper">1</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">0.10000000000000001</property>
+  </object>
+  <object class="GtkAdjustment" id="dock_size_adjustment">
+    <property name="lower">0.33000000000000002</property>
+    <property name="upper">1</property>
+    <property name="step_increment">0.01</property>
+    <property name="page_increment">0.10000000000000001</property>
+  </object>
+  <object class="GtkAdjustment" id="dot_border_width_adjustment">
+    <property name="upper">10</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">5</property>
+  </object>
+  <object class="GtkBox" id="running_dots_advance_settings_box">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="margin_left">12</property>
+    <property name="margin_right">12</property>
+    <property name="margin_top">12</property>
+    <property name="margin_bottom">12</property>
+    <property name="orientation">vertical</property>
+    <child>
+      <object class="GtkFrame" id="frame1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label_xalign">0</property>
+        <property name="shadow_type">in</property>
+        <child>
+          <object class="GtkListBox" id="listbox7">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="selection_mode">none</property>
+            <child>
+              <object class="GtkListBoxRow" id="listboxrow10">
+                <property name="width_request">100</property>
+                <property name="height_request">80</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkBox" id="dot_style_box">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="margin_left">12</property>
+                    <property name="margin_right">12</property>
+                    <property name="margin_top">12</property>
+                    <property name="margin_bottom">12</property>
+                    <property name="orientation">vertical</property>
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkGrid" id="grid1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkSwitch" id="dot_style_switch">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="label" translatable="yes">Customize indicator style</property>
+                            <property name="justify">fill</property>
+                            <property name="xalign">0</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkBox" id="dot_style_settings_box">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_bottom">1</property>
+                        <property name="orientation">vertical</property>
+                        <property name="spacing">12</property>
+                        <child>
+                          <object class="GtkBox" id="dot_color_box">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">32</property>
+                            <child>
+                              <object class="GtkLabel" id="dot_color_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Color</property>
+                                <property name="xalign">0</property>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkColorButton" id="dot_color_colorbutton">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkBox" id="border_color_box">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">32</property>
+                            <child>
+                              <object class="GtkLabel" id="dot_border_color_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Border color</property>
+                                <property name="xalign">0</property>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkColorButton" id="dot_border_color_colorbutton">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkBox" id="box_boder_width_box">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">32</property>
+                            <child>
+                              <object class="GtkLabel" id="dot_border_width_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Border width</property>
+                                <property name="xalign">0</property>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkSpinButton" id="dot_border_width_spin_button">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">dot_border_width_adjustment</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+        <child type="label_item">
+          <placeholder/>
+        </child>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+        <property name="position">0</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkBox" id="box_overlay_shortcut">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="margin_left">12</property>
+    <property name="margin_right">12</property>
+    <property name="margin_top">12</property>
+    <property name="margin_bottom">12</property>
+    <property name="orientation">vertical</property>
+    <child>
+      <object class="GtkFrame" id="frame_overlay_show_dock">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label_xalign">0</property>
+        <property name="shadow_type">in</property>
+        <child>
+          <object class="GtkListBox" id="listbox_overlay_shortcut">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="selection_mode">none</property>
+            <child>
+              <object class="GtkListBoxRow" id="listboxrow_overlay_shortcut">
+                <property name="width_request">100</property>
+                <property name="height_request">80</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkGrid" id="grid_overlay">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="margin_left">12</property>
+                    <property name="margin_right">12</property>
+                    <property name="margin_top">12</property>
+                    <property name="margin_bottom">12</property>
+                    <property name="column_spacing">32</property>
+                    <child>
+                      <object class="GtkSwitch" id="overlay_switch">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="halign">end</property>
+                        <property name="valign">center</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">0</property>
+                        <property name="height">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="overlay_label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Number overlay</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="overlay_description">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Temporarily show the application numbers over the icons, corresponding to the shortcut.</property>
+                        <property name="wrap">True</property>
+                        <property name="max-width-chars">40</property>
+                        <style>
+                          <class name="dim-label"/>
+                        </style>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkListBoxRow" id="listboxrow_show_dock">
+                <property name="width_request">100</property>
+                <property name="height_request">80</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkGrid" id="grid_show_dock">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="margin_left">12</property>
+                    <property name="margin_right">12</property>
+                    <property name="margin_top">12</property>
+                    <property name="margin_bottom">12</property>
+                    <property name="column_spacing">32</property>
+                    <child>
+                      <object class="GtkSwitch" id="show_dock_switch">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="halign">end</property>
+                        <property name="valign">center</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">0</property>
+                        <property name="height">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="show_dock_label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Show the dock if it is hidden</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="show_dock_description">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">If using autohide, the dock will appear for a short time when triggering the shortcut.</property>
+                        <property name="wrap">True</property>
+                        <property name="max-width-chars">40</property>
+                        <style>
+                          <class name="dim-label"/>
+                        </style>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkListBoxRow" id="listboxrow_extra_shortcut">
+                <property name="width_request">100</property>
+                <property name="height_request">80</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkGrid" id="grid_shortcut">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="margin_left">12</property>
+                    <property name="margin_right">12</property>
+                    <property name="margin_top">12</property>
+                    <property name="margin_bottom">12</property>
+                    <property name="column_spacing">32</property>
+                    <child>
+                      <object class="GtkEntry" id="shortcut_entry">
+                        <property name="width-chars">12</property>
+                        <property name="valign">center</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="shortcut_label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Shortcut for the options above</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="shortcut_description">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
+                        <property name="max-width-chars">40</property>
+                        <property name="label" translatable="yes">Syntax: &lt;Shift&gt;, &lt;Ctrl&gt;, &lt;Alt&gt;, &lt;Super&gt;</property>
+                        <property name="wrap">True</property>
+                        <style>
+                          <class name="dim-label"/>
+                        </style>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkListBoxRow" id="listboxrow_timeout">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkGrid" id="grid_timeout">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="margin_left">12</property>
+                    <property name="margin_right">12</property>
+                    <property name="margin_top">12</property>
+                    <property name="margin_bottom">12</property>
+                    <property name="hexpand">True</property>
+                    <property name="row_spacing">6</property>
+                    <property name="column_spacing">32</property>
+                    <child>
+                      <object class="GtkSpinButton" id="timeout_spinbutton">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="halign">end</property>
+                        <property name="adjustment">shortcut_time_adjustment</property>
+                        <property name="digits">3</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="shortcut_timeout_label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Hide timeout (s)</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+        <child type="label_item">
+          <placeholder/>
+        </child>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+        <property name="position">0</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkBox" id="box_middle_click_options">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="margin_left">12</property>
+    <property name="margin_right">12</property>
+    <property name="margin_top">12</property>
+    <property name="margin_bottom">12</property>
+    <property name="orientation">vertical</property>
+    <child>
+      <object class="GtkFrame" id="frame_middle_click_options">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label_xalign">0</property>
+        <property name="shadow_type">in</property>
+        <child>
+          <object class="GtkListBox" id="listbox_middle_click_options">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="selection_mode">none</property>
+            <child>
+              <object class="GtkListBoxRow" id="listboxrow11">
+                <property name="width_request">100</property>
+                <property name="height_request">80</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkGrid" id="buitin_theme7">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="margin_left">12</property>
+                    <property name="margin_right">12</property>
+                    <property name="margin_top">12</property>
+                    <property name="margin_bottom">12</property>
+                    <property name="column_spacing">32</property>
+                    <child>
+                      <object class="GtkLabel" id="builtin_theme_description4">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="max-width-chars">40</property>
+                        <property name="label" translatable="yes">When set to minimize, double clicking minimizes all the windows of the application.</property>
+                        <property name="wrap">True</property>
+                        <style>
+                          <class name="dim-label"/>
+                        </style>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="builtin_theme_label4">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Shift+Click action</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkComboBoxText" id="shift_click_action_combo">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="valign">center</property>
+                        <items>
+                          <item translatable="yes">Raise window</item>
+                          <item translatable="yes">Minimize window</item>
+                          <item translatable="yes">Launch new instance</item>
+                          <item translatable="yes">Cycle through windows</item>
+                          <item translatable="yes">Minimize or overview</item>
+                          <item translatable="yes">Show window previews</item>
+                          <item translatable="yes">Quit</item>
+                        </items>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">0</property>
+                        <property name="height">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkListBoxRow" id="listboxrow_middle_click">
+                <property name="width_request">100</property>
+                <property name="height_request">80</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkGrid" id="grid_middle_click">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="margin_left">12</property>
+                    <property name="margin_right">12</property>
+                    <property name="margin_top">12</property>
+                    <property name="margin_bottom">12</property>
+                    <property name="column_spacing">32</property>
+                    <child>
+                      <object class="GtkLabel" id="description_middle_click">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="max-width-chars">40</property>
+                        <property name="label" translatable="yes">Behavior for Middle-Click.</property>
+                        <property name="wrap">True</property>
+                        <style>
+                          <class name="dim-label"/>
+                        </style>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label_middle_click">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Middle-Click action</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkComboBoxText" id="middle_click_action_combo">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="valign">center</property>
+                        <items>
+                          <item translatable="yes">Raise window</item>
+                          <item translatable="yes">Minimize window</item>
+                          <item translatable="yes">Launch new instance</item>
+                          <item translatable="yes">Cycle through windows</item>
+                          <item translatable="yes">Minimize or overview</item>
+                          <item translatable="yes">Show window previews</item>
+                          <item translatable="yes">Quit</item>
+                        </items>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">0</property>
+                        <property name="height">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkListBoxRow" id="listboxrow_shift_middle_click">
+                <property name="width_request">100</property>
+                <property name="height_request">80</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkGrid" id="grid_shift_middle_click">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="margin_left">12</property>
+                    <property name="margin_right">12</property>
+                    <property name="margin_top">12</property>
+                    <property name="margin_bottom">12</property>
+                    <property name="column_spacing">32</property>
+                    <child>
+                      <object class="GtkLabel" id="description_shift_middle_click">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="max-width-chars">40</property>
+                        <property name="label" translatable="yes">Behavior for Shift+Middle-Click.</property>
+                        <property name="wrap">True</property>
+                        <style>
+                          <class name="dim-label"/>
+                        </style>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label_shift_middle_click">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Shift+Middle-Click action</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkComboBoxText" id="shift_middle_click_action_combo">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="valign">center</property>
+                        <items>
+                          <item translatable="yes">Raise window</item>
+                          <item translatable="yes">Minimize window</item>
+                          <item translatable="yes">Launch new instance</item>
+                          <item translatable="yes">Cycle through windows</item>
+                          <item translatable="yes">Minimize or overview</item>
+                          <item translatable="yes">Show window previews</item>
+                          <item translatable="yes">Quit</item>
+                        </items>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">0</property>
+                        <property name="height">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+        <child type="label_item">
+          <placeholder/>
+        </child>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+        <property name="position">0</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkAdjustment" id="hide_timeout_adjustment">
+    <property name="upper">1</property>
+    <property name="step_increment">0.050000000000000003</property>
+    <property name="page_increment">0.25</property>
+  </object>
+  <object class="GtkAdjustment" id="icon_size_adjustment">
+    <property name="lower">16</property>
+    <property name="upper">128</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkNotebook" id="settings_notebook">
+    <property name="visible">True</property>
+    <property name="can_focus">True</property>
+    <property name="margin_left">6</property>
+    <property name="margin_right">6</property>
+    <property name="margin_top">6</property>
+    <property name="margin_bottom">6</property>
+    <child>
+      <object class="GtkBox" id="position_and_size">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="margin_left">24</property>
+        <property name="margin_right">24</property>
+        <property name="margin_top">24</property>
+        <property name="margin_bottom">24</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">24</property>
+        <child>
+          <object class="GtkFrame" id="dock_display">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">in</property>
+            <child>
+              <object class="GtkListBox" id="dock_display_listbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="selection_mode">none</property>
+                <child>
+                  <object class="GtkListBoxRow" id="dock_monitor_listboxrow">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="dock_monitor_grid">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkLabel" id="dock_monitor_label">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Show the dock on</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkComboBoxText" id="dock_monitor_combo">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="valign">center</property>
+                            <signal name="changed" handler="dock_display_combo_changed_cb" swapped="no"/>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="multi_monitor_button">
+                            <property name="label" translatable="yes">Show on all monitors.</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="margin_top">12</property>
+                            <property name="xalign">0</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">2</property>
+                            <property name="width">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="dock_position_listboxrow">
+                    <property name="width_request">100</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkBox" id="dock_position_box">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="spacing">32</property>
+                        <child>
+                          <object class="GtkLabel" id="dock_position_label">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Position on screen</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkBox" id="dock_position_butttons_box">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">32</property>
+                            <child>
+                              <object class="GtkRadioButton" id="position_left_button">
+                                <property name="label" translatable="yes">Left</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="halign">end</property>
+                                <property name="valign">center</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="position_left_button_toggled_cb" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkRadioButton" id="position_bottom_button">
+                                <property name="label" translatable="yes">Bottom</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="halign">center</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">position_left_button</property>
+                                <signal name="toggled" handler="position_bottom_button_toggled_cb" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkRadioButton" id="position_top_button">
+                                <property name="label" translatable="yes">Top</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="halign">center</property>
+                                <property name="xalign">0</property>
+                                <property name="image_position">bottom</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">position_left_button</property>
+                                <signal name="toggled" handler="position_top_button_toggled_cb" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkRadioButton" id="position_right_button">
+                                <property name="label" translatable="yes">Right</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="valign">center</property>
+                                <property name="xalign">0</property>
+                                <property name="draw_indicator">True</property>
+                                <property name="group">position_left_button</property>
+                                <signal name="toggled" handler="position_right_button_toggled_cb" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">3</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="label_item">
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkFrame" id="intelligent_autohide_frame">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">in</property>
+            <child>
+              <object class="GtkListBox" id="listbox3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="selection_mode">none</property>
+                <child>
+                  <object class="GtkListBoxRow" id="listboxrow14">
+                    <property name="width_request">100</property>
+                    <property name="height_request">80</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="intelligent_autohide_grid">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkLabel" id="builtin_theme_description7">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Hide the dock when it obstructs a window of the the current application. More refined settings are available.</property>
+                            <property name="wrap">True</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="builtin_theme_label8">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Intelligent autohide</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkBox" id="box3">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkButton" id="intelligent_autohide_button">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="halign">center</property>
+                                <property name="valign">center</property>
+                                <property name="xalign">0.46000000834465027</property>
+                                <child>
+                                  <object class="GtkImage" id="image">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="icon_name">emblem-system-symbolic</property>
+                                  </object>
+                                </child>
+                                <style>
+                                  <class name="circular"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkSwitch" id="intelligent_autohide_switch">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="halign">end</property>
+                                <property name="valign">center</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                            <property name="height">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="label_item">
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkFrame" id="size_frame">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">in</property>
+            <child>
+              <object class="GtkListBox" id="size_listbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="selection_mode">none</property>
+                <child>
+                  <object class="GtkListBoxRow" id="dock_size_listboxrow">
+                    <property name="width_request">100</property>
+                    <property name="height_request">80</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="dock_size_grid">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkLabel" id="dock_size_label">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Dock size limit</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkScale" id="dock_size_scale">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="valign">baseline</property>
+                            <property name="hexpand">True</property>
+                            <property name="adjustment">dock_size_adjustment</property>
+                            <property name="round_digits">0</property>
+                            <property name="digits">2</property>
+                            <property name="value_pos">right</property>
+                            <signal name="format-value" handler="dock_size_scale_format_value_cb" swapped="no"/>
+                            <signal name="value-changed" handler="dock_size_scale_value_changed_cb" swapped="no"/>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="dock_size_extend_checkbutton">
+                            <property name="label" translatable="yes">Panel mode: extend to the screen edge</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="margin_top">12</property>
+                            <property name="xalign">0</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                            <property name="width">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="icon_size_listboxrow">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="icon_size_grid">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkLabel" id="builtin_theme_label6">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Icon size limit</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkScale" id="icon_size_scale">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="valign">baseline</property>
+                            <property name="hexpand">True</property>
+                            <property name="adjustment">icon_size_adjustment</property>
+                            <property name="round_digits">1</property>
+                            <property name="digits">0</property>
+                            <property name="value_pos">right</property>
+                            <signal name="format-value" handler="icon_size_scale_format_value_cb" swapped="no"/>
+                            <signal name="value-changed" handler="icon_size_scale_value_changed_cb" swapped="no"/>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="icon_size_fixed_checkbutton">
+                            <property name="label" translatable="yes">Fixed icon size: scroll to reveal other icons</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="margin_top">12</property>
+                            <property name="xalign">0</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                            <property name="width">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="label_item">
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <child type="tab">
+      <object class="GtkLabel" id="general_label">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">Position and size</property>
+      </object>
+      <packing>
+        <property name="tab_fill">False</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkBox" id="apps">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="margin_left">24</property>
+        <property name="margin_right">24</property>
+        <property name="margin_top">24</property>
+        <property name="margin_bottom">24</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">24</property>
+        <child>
+          <object class="GtkFrame" id="customize_theme1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">in</property>
+            <child>
+              <object class="GtkListBox" id="listbox9">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="selection_mode">none</property>
+                <child>
+                  <object class="GtkListBoxRow" id="listboxrow6">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="shrink_dash1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkSwitch" id="show_favorite_switch">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="halign">end</property>
+                            <property name="valign">center</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="shrink_dash_label1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Show favorite applications</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="listboxrow16">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="shrink_dash2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkSwitch" id="show_running_switch">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="halign">end</property>
+                            <property name="valign">center</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="shrink_dash_label2">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Show running applications</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="application_button_isolation_button">
+                            <property name="label" translatable="yes">Isolate workspaces.</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="margin_top">12</property>
+                            <property name="xalign">0</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">2</property>
+                            <property name="width">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="application_button_monitor_isolation_button">
+                            <property name="label" translatable="yes">Isolate monitors.</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="margin_top">12</property>
+                            <property name="xalign">0</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">3</property>
+                            <property name="width">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="windows_preview_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="margin_top">3</property>
+                            <property name="xalign">0</property>
+                            <property name="draw_indicator">True</property>
+                            <child>
+                              <object class="GtkLabel" id="windows_previews_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Show open windows previews.</property>
+                                <property name="use_markup">True</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                            <property name="width">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="listboxrow17">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="shrink_dash3">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkSwitch" id="show_applications_button_switch">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="halign">end</property>
+                            <property name="valign">center</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                            <property name="height">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="shrink_dash_description1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">If disabled, these settings are accessible from gnome-tweak-tool or the extension website.</property>
+                            <property name="wrap">True</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="shrink_dash_label3">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Show &lt;i&gt;Applications&lt;/i&gt; icon</property>
+                            <property name="use_markup">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="application_button_first_button">
+                            <property name="label" translatable="yes">Move the applications button at the beginning of the dock.</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="margin_top">12</property>
+                            <property name="xalign">0</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">2</property>
+                            <property name="width">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkCheckButton" id="application_button_animation_button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="margin_top">3</property>
+                            <property name="xalign">0</property>
+                            <property name="yalign">0.43000000715255737</property>
+                            <property name="draw_indicator">True</property>
+                            <child>
+                              <object class="GtkLabel" id="label3">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Animate &lt;i&gt;Show Applications&lt;/i&gt;.</property>
+                                <property name="use_markup">True</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">3</property>
+                            <property name="width">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="label_item">
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="position">1</property>
+      </packing>
+    </child>
+    <child type="tab">
+      <object class="GtkLabel" id="launchers_label">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">Launchers</property>
+      </object>
+      <packing>
+        <property name="position">1</property>
+        <property name="tab_fill">False</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkBox" id="behaviour">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="margin_left">24</property>
+        <property name="margin_right">24</property>
+        <property name="margin_top">24</property>
+        <property name="margin_bottom">24</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">24</property>
+        <child>
+          <object class="GtkFrame" id="hot_keys_frame">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">in</property>
+            <child>
+              <object class="GtkListBox" id="hot_keys_listbox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="selection_mode">none</property>
+                <child>
+                  <object class="GtkListBoxRow" id="hot_keys_listboxrow">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="hot_keys_grid">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkLabel" id="hot_keys_description">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Enable Super+(0-9) as shortcuts to activate apps. It can also be used together with Shift and Ctrl.</property>
+                            <property name="use_markup">True</property>
+                            <property name="wrap">True</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="hot_keys_label">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Use keyboard shortcuts to activate apps</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkBox" id="overlay_box">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkButton" id="overlay_button">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="halign">center</property>
+                                <property name="valign">center</property>
+                                <property name="xalign">0.46000000834465027</property>
+                                <child>
+                                  <object class="GtkImage" id="image_overlay">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="icon_name">emblem-system-symbolic</property>
+                                  </object>
+                                </child>
+                                <style>
+                                  <class name="circular"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkSwitch" id="hot_keys_switch">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="halign">end</property>
+                                <property name="valign">center</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                            <property name="height">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="label_item">
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkFrame" id="built_in_theme_frame3">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">in</property>
+            <child>
+              <object class="GtkListBox" id="listbox6">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="selection_mode">none</property>
+                <child>
+                  <object class="GtkListBoxRow" id="listboxrow9">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="buitin_theme5">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkLabel" id="builtin_theme_description5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Behaviour when clicking on the icon of a running application.</property>
+                            <property name="wrap">True</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="builtin_theme_label5">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Click action</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkBox" id="click_box">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkButton" id="middle_click_options_button">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="valign">center</property>
+                                <child>
+                                  <object class="GtkImage" id="middle_click_image">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="icon_name">emblem-system-symbolic</property>
+                                  </object>
+                                </child>
+                                <style>
+                                  <class name="circular"/>
+                                </style>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkComboBoxText" id="click_action_combo">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="valign">center</property>
+                                <items>
+                                  <item translatable="yes">Raise window</item>
+                                  <item translatable="yes">Minimize</item>
+                                  <item translatable="yes">Launch new instance</item>
+                                  <item translatable="yes">Cycle through windows</item>
+                                  <item translatable="yes">Minimize or overview</item>
+                                  <item translatable="yes">Show window previews</item>
+                                </items>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="height">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="label_item">
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkFrame" id="built_in_theme_frame_scroll">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">in</property>
+            <child>
+              <object class="GtkListBox" id="listbox5">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="selection_mode">none</property>
+                <child>
+                  <object class="GtkListBoxRow" id="listboxrow_scroll">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="buitin_theme_scroll">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkLabel" id="builtin_theme_description_scroll">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="label" translatable="yes">Behaviour when scrolling on the icon of an application.</property>
+                            <property name="wrap">True</property>
+                            <property name="xalign">0</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="builtin_theme_label_scroll">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="label" translatable="yes">Scroll action</property>
+                            <property name="xalign">0</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkBox" id="click_box_scroll">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkComboBoxText" id="scroll_action_combo">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="valign">center</property>
+                                <items>
+                                  <item translatable="yes">Do nothing</item>
+                                  <item translatable="yes">Cycle through windows</item>
+                                  <item translatable="yes">Switch workspace</item>
+                                </items>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                            <property name="height">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="label_item">
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">3</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="position">2</property>
+      </packing>
+    </child>
+    <child type="tab">
+      <object class="GtkLabel" id="behaviour_label">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">Behavior</property>
+      </object>
+      <packing>
+        <property name="position">2</property>
+        <property name="tab_fill">False</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkBox" id="appearance">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="margin_left">24</property>
+        <property name="margin_right">24</property>
+        <property name="margin_top">24</property>
+        <property name="margin_bottom">24</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">24</property>
+        <child>
+          <object class="GtkFrame" id="built_in_theme_frame">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">in</property>
+            <child>
+              <object class="GtkListBox" id="listbox1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="selection_mode">none</property>
+                <child>
+                  <object class="GtkListBoxRow" id="listboxrow1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="buitin_theme">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkLabel" id="builtin_theme_description">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Few customizations meant to integrate the dock with the default GNOME theme. Alternatively, specific options can be enabled below.</property>
+                            <property name="wrap">True</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="builtin_theme_label">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Use built-in theme</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkSwitch" id="builtin_theme_switch">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="halign">end</property>
+                            <property name="valign">center</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                            <property name="height">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="label_item">
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkFrame" id="customize_theme">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label_xalign">0</property>
+            <property name="shadow_type">in</property>
+            <child>
+              <object class="GtkListBox" id="listbox2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="selection_mode">none</property>
+                <child>
+                  <object class="GtkListBoxRow" id="listboxrow2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="shrink_dash">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkSwitch" id="shrink_dash_switch">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="halign">end</property>
+                            <property name="valign">center</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                            <property name="height">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="shrink_dash_description">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Save space reducing padding and border radius.</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="shrink_dash_label">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Shrink the dash</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="listboxrow3">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="running_dots">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkLabel" id="running_dots_description">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Show a dot for each windows of the application.</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="running_dots_label">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Show windows counter indicators</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkBox" id="box4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkButton" id="running_dots_advance_settings_button">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="halign">center</property>
+                                <property name="valign">center</property>
+                                <property name="xalign">0.46000000834465027</property>
+                                <child>
+                                  <object class="GtkImage" id="image1">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="icon_name">emblem-system-symbolic</property>
+                                  </object>
+                                </child>
+                                <style>
+                                  <class name="circular"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkSwitch" id="running_dots_switch">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="halign">end</property>
+                                <property name="valign">center</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                            <property name="height">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="custom_background_color_listboxrow">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkGrid" id="custom_background_color_grid">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="margin_left">12</property>
+                        <property name="margin_right">12</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="column_spacing">32</property>
+                        <child>
+                          <object class="GtkLabel" id="custom_background_color_description">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Set the background color for the dash.</property>
+                            <property name="wrap">True</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="custom_background_color_label">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label" translatable="yes">Customize the dash color</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkBox" id="custom_background_color_box">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkColorButton" id="custom_background_color">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                                <property name="halign">center</property>
+                                <property name="valign">center</property>
+                                <property name="xalign">0.46000000834465027</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkSwitch" id="custom_background_color_switch">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="halign">end</property>
+                                <property name="valign">center</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                            <property name="height">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="listboxrow4">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkBox" id="box2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="orientation">vertical</property>
+                        <child>
+                          <object class="GtkGrid" id="customize_opacity">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="margin_left">12</property>
+                            <property name="margin_right">12</property>
+                            <property name="margin_top">12</property>
+                            <property name="margin_bottom">12</property>
+                            <property name="column_spacing">32</property>
+                            <child>
+                              <object class="GtkSwitch" id="customize_opacity_switch">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="halign">end</property>
+                                <property name="valign">center</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="top_attach">0</property>
+                                <property name="height">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="customize_opacity_description">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="hexpand">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Tune the dash background opacity.</property>
+                                <style>
+                                  <class name="dim-label"/>
+                                </style>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="customize_opacity_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="hexpand">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Customize opacity</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">0</property>
+                                <property name="top_attach">0</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkBox" id="custom_opacity">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="margin_left">12</property>
+                            <property name="margin_right">12</property>
+                            <property name="margin_top">12</property>
+                            <property name="margin_bottom">12</property>
+                            <property name="spacing">32</property>
+                            <child>
+                              <object class="GtkLabel" id="custom_opacity_label">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="label" translatable="yes">Opacity</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">True</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkScale" id="custom_opacity_scale">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="adjustment">custom_opacity_adjustement</property>
+                                <property name="lower_stepper_sensitivity">on</property>
+                                <property name="restrict_to_fill_level">False</property>
+                                <property name="fill_level">0</property>
+                                <property name="round_digits">0</property>
+                                <property name="digits">2</property>
+                                <property name="value_pos">right</property>
+                                <signal name="format-value" handler="custom_opacity_scale_format_value_cb" swapped="no"/>
+                                <signal name="value-changed" handler="custom_opacity_scale_value_changed_cb" swapped="no"/>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="listboxrow_rnd_border">
+                    <property name="width_request">100</property>
+                    <property name="height_request">80</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkBox">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="spacing">32</property>
+                        <child>
+                          <object class="GtkLabel" id="force_straight_corner_label">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="valign">center</property>
+                            <property name="xpad">12</property>
+                            <property name="label" translatable="yes">Force straight corner
+</property>
+                            <property name="xalign">0</property>
+                          </object>
+                          <packing>
+                            <property name="expand">True</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkSwitch" id="force_straight_corner_switch">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="valign">center</property>
+                            <property name="margin_left">3</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="padding">12</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child type="label_item">
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="position">3</property>
+      </packing>
+    </child>
+    <child type="tab">
+      <object class="GtkLabel" id="appearance_label">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">Appearance</property>
+      </object>
+      <packing>
+        <property name="position">3</property>
+        <property name="tab_fill">False</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkBox" id="about">
+        <property name="can_focus">False</property>
+        <property name="margin_top">24</property>
+        <property name="margin_bottom">24</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">5</property>
+        <child>
+          <object class="GtkImage" id="logo">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="pixbuf">./media/logo.svg</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="padding">10</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkLabel" id="extension_name">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label">&lt;b&gt;Dash to Dock&lt;/b&gt;</property>
+            <property name="use_markup">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox" id="box1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="halign">center</property>
+            <child>
+              <object class="GtkLabel" id="extension_version_label">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="label" translatable="yes">version: </property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="extension_version">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">start</property>
+                <property name="label">...</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkLabel" id="extension_description">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="label" translatable="yes">Moves the dash out of the overview transforming it in a dock</property>
+            <property name="justify">center</property>
+            <property name="wrap">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">3</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox" id="box10">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="halign">center</property>
+            <property name="spacing">5</property>
+            <child>
+              <object class="GtkLabel" id="label15">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">Created by</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label16">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="label">Michele (&lt;a href="mailto:micxgx@gmail.com"&gt;micxgx@gmail.com&lt;/a&gt;)</property>
+                <property name="use_markup">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">4</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkLinkButton" id="homepage_link">
+            <property name="label" translatable="yes">Webpage</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="events"/>
+            <property name="halign">center</property>
+            <property name="relief">none</property>
+            <property name="uri">https://micheleg.github.io/dash-to-dock/</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">5</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkLabel" id="label1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="valign">end</property>
+            <property name="label" translatable="yes">&lt;span size="small"&gt;This program comes with ABSOLUTELY NO WARRANTY.
+See the &lt;a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"&gt;GNU General Public License, version 2 or later&lt;/a&gt; for details.&lt;/span&gt;</property>
+            <property name="use_markup">True</property>
+            <property name="justify">center</property>
+            <property name="wrap">True</property>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">6</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="position">4</property>
+      </packing>
+    </child>
+    <child type="tab">
+      <object class="GtkLabel" id="about_label">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">About</property>
+      </object>
+      <packing>
+        <property name="position">4</property>
+        <property name="tab_fill">False</property>
+      </packing>
+    </child>
+  </object>
+  <object class="GtkAdjustment" id="pressure_threshold_adjustment">
+    <property name="upper">1000</property>
+    <property name="step_increment">50</property>
+    <property name="page_increment">250</property>
+  </object>
+  <object class="GtkAdjustment" id="show_timeout_adjustment">
+    <property name="upper">1</property>
+    <property name="step_increment">0.050000000000000003</property>
+    <property name="page_increment">0.25</property>
+  </object>
+  <object class="GtkBox" id="intelligent_autohide_advanced_settings_box">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="margin_left">12</property>
+    <property name="margin_right">12</property>
+    <property name="margin_top">12</property>
+    <property name="margin_bottom">12</property>
+    <property name="orientation">vertical</property>
+    <child>
+      <object class="GtkFrame" id="intelligent_autohide_advanced_settings_frame">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label_xalign">0</property>
+        <property name="shadow_type">in</property>
+        <child>
+          <object class="GtkListBox" id="listbox4">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="selection_mode">none</property>
+            <child>
+              <object class="GtkListBoxRow" id="listboxrow8">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkGrid" id="buitin_theme2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="margin_left">12</property>
+                    <property name="margin_right">12</property>
+                    <property name="margin_top">12</property>
+                    <property name="margin_bottom">12</property>
+                    <property name="column_spacing">32</property>
+                    <child>
+                      <object class="GtkLabel" id="builtin_theme_description2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Show the dock by mouse hover on the screen edge.</property>
+                        <property name="wrap">True</property>
+                        <style>
+                          <class name="dim-label"/>
+                        </style>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="builtin_theme_label2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Autohide</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSwitch" id="autohide_switch">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="halign">end</property>
+                        <property name="valign">center</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">0</property>
+                        <property name="height">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="require_pressure_checkbutton">
+                        <property name="label" translatable="yes">Push to show: require pressure to show the dock</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="xalign">0</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">3</property>
+                        <property name="width">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkCheckButton" id="autohide_enable_in_fullscreen_checkbutton">
+                        <property name="label" translatable="yes">Enable in fullscreen mode</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="margin_top">12</property>
+                        <property name="xalign">0</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">2</property>
+                        <property name="width">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkListBoxRow" id="listboxrow15">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkGrid" id="intellihide_grid">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="margin_left">12</property>
+                    <property name="margin_right">12</property>
+                    <property name="margin_top">12</property>
+                    <property name="margin_bottom">12</property>
+                    <property name="column_spacing">32</property>
+                    <child>
+                      <object class="GtkLabel" id="builtin_theme_description3">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Show the dock when it doesn't obstruct application windows.</property>
+                        <property name="wrap">True</property>
+                        <style>
+                          <class name="dim-label"/>
+                        </style>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="builtin_theme_label3">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Dodge windows</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSwitch" id="intellihide_switch">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="halign">end</property>
+                        <property name="valign">center</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">0</property>
+                        <property name="height">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkBox" id="intellihide_mode_box">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="orientation">vertical</property>
+                        <child>
+                          <object class="GtkRadioButton" id="all_windows_radio_button">
+                            <property name="label" translatable="yes">All windows</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="margin_top">12</property>
+                            <property name="xalign">0</property>
+                            <property name="active">True</property>
+                            <property name="draw_indicator">True</property>
+                            <signal name="toggled" handler="all_windows_radio_button_toggled_cb" swapped="no"/>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkRadioButton" id="focus_application_windows_radio_button">
+                            <property name="label" translatable="yes">Only focused application's windows</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="xalign">0</property>
+                            <property name="active">True</property>
+                            <property name="draw_indicator">True</property>
+                            <property name="group">all_windows_radio_button</property>
+                            <signal name="toggled" handler="focus_application_windows_radio_button_toggled_cb" swapped="no"/>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkRadioButton" id="maximized_windows_radio_button">
+                            <property name="label" translatable="yes">Only maximized windows</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="xalign">0</property>
+                            <property name="active">True</property>
+                            <property name="draw_indicator">True</property>
+                            <property name="group">all_windows_radio_button</property>
+                            <signal name="toggled" handler="maximized_windows_radio_button_toggled_cb" swapped="no"/>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">2</property>
+                        <property name="width">2</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+            <child>
+              <object class="GtkListBoxRow" id="listboxrow5">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <child>
+                  <object class="GtkGrid" id="grid2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="margin_left">12</property>
+                    <property name="margin_right">12</property>
+                    <property name="margin_top">12</property>
+                    <property name="margin_bottom">12</property>
+                    <property name="hexpand">True</property>
+                    <property name="row_spacing">6</property>
+                    <property name="column_spacing">32</property>
+                    <child>
+                      <object class="GtkSpinButton" id="animation_duration_spinbutton">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="halign">end</property>
+                        <property name="adjustment">animation_time_adjustment</property>
+                        <property name="digits">3</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label2">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Animation duration (s)</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="hide_timeout_spinbutton">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="halign">end</property>
+                        <property name="adjustment">hide_timeout_adjustment</property>
+                        <property name="digits">3</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="show_timeout_spinbutton">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="halign">end</property>
+                        <property name="adjustment">show_timeout_adjustment</property>
+                        <property name="digits">3</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkSpinButton" id="pressure_threshold_spinbutton">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="text">0.000</property>
+                        <property name="adjustment">pressure_threshold_adjustment</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="top_attach">3</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="label9">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Hide timeout (s)</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="show_timeout_label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Show timeout (s)</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">2</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="pressure_threshold_label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Pressure threshold</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">3</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+        <child type="label_item">
+          <placeholder/>
+        </child>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+        <property name="position">0</property>
+      </packing>
+    </child>
+  </object>
+</interface>
diff --git a/package/appIcons.js b/package/appIcons.js
new file mode 100644
index 0000000..ac90585
--- /dev/null
+++ b/package/appIcons.js
@@ -0,0 +1,1256 @@
+// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
+
+const Clutter = imports.gi.Clutter;
+const Gio = imports.gi.Gio;
+const GLib = imports.gi.GLib;
+const Gtk = imports.gi.Gtk;
+const Signals = imports.signals;
+const Lang = imports.lang;
+const Meta = imports.gi.Meta;
+const Shell = imports.gi.Shell;
+const St = imports.gi.St;
+const Mainloop = imports.mainloop;
+
+// Use __ () and N__() for the extension gettext domain, and reuse
+// the shell domain with the default _() and N_()
+const Gettext = imports.gettext.domain('dashtodock');
+const __ = Gettext.gettext;
+const N__ = function(e) { return e };
+
+const AppDisplay = imports.ui.appDisplay;
+const AppFavorites = imports.ui.appFavorites;
+const Dash = imports.ui.dash;
+const DND = imports.ui.dnd;
+const IconGrid = imports.ui.iconGrid;
+const Main = imports.ui.main;
+const PopupMenu = imports.ui.popupMenu;
+const Tweener = imports.ui.tweener;
+const Util = imports.misc.util;
+const Workspace = imports.ui.workspace;
+
+const Me = imports.misc.extensionUtils.getCurrentExtension();
+const Utils = Me.imports.utils;
+const WindowPreview = Me.imports.windowPreview;
+
+let tracker = Shell.WindowTracker.get_default();
+
+let DASH_ITEM_LABEL_SHOW_TIME = Dash.DASH_ITEM_LABEL_SHOW_TIME;
+
+const clickAction = {
+    SKIP: 0,
+    MINIMIZE: 1,
+    LAUNCH: 2,
+    CYCLE_WINDOWS: 3,
+    MINIMIZE_OR_OVERVIEW: 4,
+    PREVIEWS: 5,
+    QUIT: 6
+};
+
+const scrollAction = {
+    DO_NOTHING: 0,
+    CYCLE_WINDOWS: 1,
+    SWITCH_WORKSPACE: 2
+};
+
+let recentlyClickedAppLoopId = 0;
+let recentlyClickedApp = null;
+let recentlyClickedAppWindows = null;
+let recentlyClickedAppIndex = 0;
+let recentlyClickedAppMonitor = -1;
+
+/**
+ * Extend AppIcon
+ *
+ * - Pass settings to the constructor and bind settings changes
+ * - Apply a css class based on the number of windows of each application (#N);
+ * - Draw a dot for each window of the application based on the default "dot" style which is hidden (#N);
+ *   a class of the form "running#N" is applied to the AppWellIcon actor.
+ *   like the original .running one.
+ * - Add a .focused style to the focused app
+ * - Customize click actions.
+ * - Update minimization animation target
+ * - Update menu if open on windows change
+ */
+const MyAppIcon = new Lang.Class({
+    Name: 'DashToDock.AppIcon',
+    Extends: AppDisplay.AppIcon,
+
+    // settings are required inside.
+    _init: function(settings, app, monitorIndex, iconParams) {
+        // a prefix is required to avoid conflicting with the parent class variable
+        this._dtdSettings = settings;
+        this.monitorIndex = monitorIndex;
+        this._signalsHandler = new Utils.GlobalSignalsHandler();
+        this._nWindows = 0;
+
+        this.parent(app, iconParams);
+
+        // Monitor windows-changes instead of app state.
+        // Keep using the same Id and function callback (that is extended)
+        if (this._stateChangedId > 0) {
+            this.app.disconnect(this._stateChangedId);
+            this._stateChangedId = 0;
+        }
+
+        this._stateChangedId = this.app.connect('windows-changed',
+                                                Lang.bind(this,
+                                                          this.onWindowsChanged));
+        this._focusAppChangeId = tracker.connect('notify::focus-app',
+                                                 Lang.bind(this,
+                                                           this._onFocusAppChanged));
+        this._enteredMonitorId = global.screen.connect('window-entered-monitor',
+                                                       Lang.bind(this,
+                                                                 this.onWindowsChanged));
+
+        this._dots = null;
+
+        let keys = ['apply-custom-theme',
+                   'custom-theme-running-dots',
+                   'custom-theme-customize-running-dots',
+                   'custom-theme-running-dots-color',
+                   'custom-theme-running-dots-border-color',
+                   'custom-theme-running-dots-border-width'];
+
+        keys.forEach(function(key) {
+            this._signalsHandler.add([
+                this._dtdSettings,
+                'changed::' + key,
+                Lang.bind(this, this._toggleDots)
+            ]);
+        }, this);
+
+        this._toggleDots();
+
+        this._dtdSettings.connect('changed::scroll-action', Lang.bind(this, function() {
+            this._optionalScrollCycleWindows();
+        }));
+        this._optionalScrollCycleWindows();
+
+        this._numberOverlay();
+
+        this._previewMenuManager = null;
+        this._previewMenu = null;
+    },
+
+    _onDestroy: function() {
+        this.parent();
+
+        // This is necessary due to an upstream bug
+        // https://bugzilla.gnome.org/show_bug.cgi?id=757556
+        // It can be safely removed once it get solved upstrea.
+        if (this._menu)
+            this._menu.close(false);
+
+        // Disconect global signals
+        // stateChangedId is already handled by parent)
+        if (this._focusAppChangeId > 0) {
+            tracker.disconnect(this._focusAppChangeId);
+            this._focusAppChangeId = 0;
+        }
+
+        if (this._enteredMonitorId > 0) {
+            global.screen.disconnect(this._enteredMonitorId);
+            this._enteredMonitorId = 0;
+        }
+
+        this._signalsHandler.destroy();
+
+        if (this._scrollEventHandler)
+            this.actor.disconnect(this._scrollEventHandler);
+    },
+
+    _optionalScrollCycleWindows: function() {
+        if (this._scrollEventHandler) {
+            this.actor.disconnect(this._scrollEventHandler);
+            this._scrollEventHandler = 0;
+        }
+
+        let isEnabled = this._dtdSettings.get_enum('scroll-action') === scrollAction.CYCLE_WINDOWS;
+        if (!isEnabled) return;
+
+        this._scrollEventHandler = this.actor.connect('scroll-event', Lang.bind(this,
+                                                          this.onScrollEvent));
+    },
+
+    onScrollEvent: function(actor, event) {
+
+        // We only activate windows of running applications, i.e. we never open new windows
+        // We check if the app is running, and that the # of windows is > 0 in
+        // case we use workspace isolation,
+        let appIsRunning = this.app.state == Shell.AppState.RUNNING
+            && this.getInterestingWindows().length > 0;
+
+        if (!appIsRunning)
+            return false
+
+        if (this._optionalScrollCycleWindowsDeadTimeId > 0)
+            return false;
+        else
+            this._optionalScrollCycleWindowsDeadTimeId = Mainloop.timeout_add(250, Lang.bind(this, function() {
+                this._optionalScrollCycleWindowsDeadTimeId = 0;
+            }));
+
+        let direction = null;
+
+        switch (event.get_scroll_direction()) {
+        case Clutter.ScrollDirection.UP:
+            direction = Meta.MotionDirection.UP;
+            break;
+        case Clutter.ScrollDirection.DOWN:
+            direction = Meta.MotionDirection.DOWN;
+            break;
+        case Clutter.ScrollDirection.SMOOTH:
+            let [dx, dy] = event.get_scroll_delta();
+            if (dy < 0)
+                direction = Meta.MotionDirection.UP;
+            else if (dy > 0)
+                direction = Meta.MotionDirection.DOWN;
+            break;
+        }
+
+        let focusedApp = tracker.focus_app;
+        if (!Main.overview._shown) {
+            let reversed = direction === Meta.MotionDirection.UP;
+            if (this.app == focusedApp)
+                this._cycleThroughWindows(reversed);
+            else {
+                // Activate the first window
+                let windows = this.getInterestingWindows();
+                if (windows.length > 0) {
+                    let w = windows[0];
+                    Main.activateWindow(w);
+                }
+            }
+        }
+        else
+            this.app.activate();
+        return true;
+    },
+
+    onWindowsChanged: function() {
+
+        if (this._menu && this._menu.isOpen)
+            this._menu.update();
+
+        this._updateRunningStyle();
+        this.updateIconGeometry();
+    },
+
+    /**
+     * Update taraget for minimization animation
+     */
+    updateIconGeometry: function() {
+        // If (for unknown reason) the actor is not on the stage the reported size
+        // and position are random values, which might exceeds the integer range
+        // resulting in an error when assigned to the a rect. This is a more like
+        // a workaround to prevent flooding the system with errors.
+        if (this.actor.get_stage() == null)
+            return;
+
+        let rect = new Meta.Rectangle();
+
+        [rect.x, rect.y] = this.actor.get_transformed_position();
+        [rect.width, rect.height] = this.actor.get_transformed_size();
+
+        let windows = this.app.get_windows();
+        if (this._dtdSettings.get_boolean('multi-monitor')){
+            let monitorIndex = this.monitorIndex;
+            windows = windows.filter(function(w) {
+                return w.get_monitor() == monitorIndex;
+            });
+        }
+        windows.forEach(function(w) {
+            w.set_icon_geometry(rect);
+        });
+    },
+
+    _toggleDots: function() {
+        if (this._dtdSettings.get_boolean('custom-theme-running-dots') || this._dtdSettings.get_boolean('apply-custom-theme'))
+            this._showDots();
+        else
+            this._hideDots();
+    },
+
+    _showDots: function() {
+        // I use opacity to hide the default dot because the show/hide function
+        // are used by the parent class.
+        this._dot.opacity = 0;
+
+        // Just update style if dots already exist
+        if (this._dots) {
+            this._updateCounterClass();
+            return;
+        }
+
+        this._dots = new St.DrawingArea({x_expand: true, y_expand: true});
+        this._dots.connect('repaint', Lang.bind(this, function() {
+            this._drawCircles(this._dots, Utils.getPosition(this._dtdSettings));
+        }));
+        this._iconContainer.add_child(this._dots);
+        this._updateCounterClass();
+    },
+
+    _hideDots: function() {
+        this._dot.opacity = 255;
+        if (this._dots)
+            this._dots.destroy()
+        this._dots = null;
+    },
+
+    _updateRunningStyle: function() {
+        // When using workspace isolation, we need to hide the dots of apps with
+        // no windows in the current workspace
+        if (this._dtdSettings.get_boolean('isolate-workspaces') ||
+            this._dtdSettings.get_boolean('isolate-monitors')) {
+            if (this.app.state != Shell.AppState.STOPPED
+                && this.getInterestingWindows().length != 0)
+                this._dot.show();
+            else
+                this._dot.hide();
+        }
+        else
+            this.parent();
+        this._onFocusAppChanged();
+        this._updateCounterClass();
+    },
+
+    popupMenu: function() {
+        this._removeMenuTimeout();
+        this.actor.fake_release();
+        this._draggable.fakeRelease();
+
+        if (!this._menu) {
+            this._menu = new MyAppIconMenu(this, this._dtdSettings);
+            this._menu.connect('activate-window', Lang.bind(this, function(menu, window) {
+                this.activateWindow(window);
+            }));
+            this._menu.connect('open-state-changed', Lang.bind(this, function(menu, isPoppedUp) {
+                if (!isPoppedUp)
+                    this._onMenuPoppedDown();
+                else {
+                    // Setting the max-height is s useful if part of the menu is
+                    // scrollable so the minimum height is smaller than the natural height.
+                    let monitor_index = Main.layoutManager.findIndexForActor(this.actor);
+                    let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor_index);
+                    let position = Utils.getPosition(this._dtdSettings);
+                    this._isHorizontal = ( position == St.Side.TOP ||
+                                           position == St.Side.BOTTOM);
+                    // If horizontal also remove the height of the dash
+                    let additional_margin = this._isHorizontal && !this._dtdSettings.get_boolean('dock-fixed') ? Main.overview._dash.actor.height : 0;
+                    let verticalMargins = this._menu.actor.margin_top + this._menu.actor.margin_bottom;
+                    // Also set a max width to the menu, so long labels (long windows title) get truncated
+                    this._menu.actor.style = ('max-height: ' + Math.round(workArea.height - additional_margin - verticalMargins) + 'px;' +
+                                              'max-width: 400px');
+                }
+            }));
+            let id = Main.overview.connect('hiding', Lang.bind(this, function() {
+                this._menu.close();
+            }));
+            this._menu.actor.connect('destroy', function() {
+                Main.overview.disconnect(id);
+            });
+
+            this._menuManager.addMenu(this._menu);
+        }
+
+        this.emit('menu-state-changed', true);
+
+        this.actor.set_hover(true);
+        this._menu.popup();
+        this._menuManager.ignoreRelease();
+        this.emit('sync-tooltip');
+
+        return false;
+    },
+
+    _onFocusAppChanged: function() {
+        // We need to check the number of windows, as the focus might be
+        // happening on another monitor if using isolation
+        if (tracker.focus_app == this.app && this.getInterestingWindows().length != 0)
+            this.actor.add_style_class_name('focused');
+        else
+            this.actor.remove_style_class_name('focused');
+    },
+
+    activate: function(button) {
+
+        if (!this._dtdSettings.get_boolean('customize-click')) {
+            this.parent(button);
+            return;
+        }
+
+        let event = Clutter.get_current_event();
+        let modifiers = event ? event.get_state() : 0;
+        let focusedApp = tracker.focus_app;
+
+        // Only consider SHIFT and CONTROL as modifiers (exclude SUPER, CAPS-LOCK, etc.)
+        modifiers = modifiers & (Clutter.ModifierType.SHIFT_MASK | Clutter.ModifierType.CONTROL_MASK);
+
+        // We don't change the CTRL-click behaviour: in such case we just chain
+        // up the parent method and return.
+        if (modifiers & Clutter.ModifierType.CONTROL_MASK) {
+                // Keep default behaviour: launch new window
+                // By calling the parent method I make it compatible
+                // with other extensions tweaking ctrl + click
+                this.parent(button);
+                return;
+        }
+
+        // We check what type of click we have and if the modifier SHIFT is
+        // being used. We then define what buttonAction should be for this
+        // event.
+        let buttonAction = 0;
+        if (button && button == 2 ) {
+            if (modifiers & Clutter.ModifierType.SHIFT_MASK)
+                buttonAction = this._dtdSettings.get_enum('shift-middle-click-action');
+            else
+                buttonAction = this._dtdSettings.get_enum('middle-click-action');
+        }
+        else if (button && button == 1) {
+            if (modifiers & Clutter.ModifierType.SHIFT_MASK)
+                buttonAction = this._dtdSettings.get_enum('shift-click-action');
+            else
+                buttonAction = this._dtdSettings.get_enum('click-action');
+        }
+
+        // We check if the app is running, and that the # of windows is > 0 in
+        // case we use workspace isolation.
+        let windows = this.getInterestingWindows();
+        let appIsRunning = this.app.state == Shell.AppState.RUNNING
+            && windows.length > 0;
+
+        // Some action modes (e.g. MINIMIZE_OR_OVERVIEW) require overview to remain open
+        // This variable keeps track of this
+        let shouldHideOverview = true;
+
+        // We customize the action only when the application is already running
+        if (appIsRunning) {
+            switch (buttonAction) {
+            case clickAction.MINIMIZE:
+                // In overview just activate the app, unless the acion is explicitely
+                // requested with a keyboard modifier
+                if (!Main.overview._shown || modifiers){
+                    // If we have button=2 or a modifier, allow minimization even if
+                    // the app is not focused
+                    if (this.app == focusedApp || button == 2 || modifiers & Clutter.ModifierType.SHIFT_MASK) {
+                        // minimize all windows on double click and always in the case of primary click without
+                        // additional modifiers
+                        let click_count = 0;
+                        if (Clutter.EventType.CLUTTER_BUTTON_PRESS)
+                            click_count = event.get_click_count();
+                        let all_windows = (button == 1 && ! modifiers) || click_count > 1;
+                        this._minimizeWindow(all_windows);
+                    }
+                    else
+                        this._activateAllWindows();
+                }
+                else {
+                    let w = windows[0];
+                    Main.activateWindow(w);
+                }
+                break;
+
+            case clickAction.MINIMIZE_OR_OVERVIEW:
+                // When a single window is present, toggle minimization
+                // If only one windows is present toggle minimization, but only when trigggered with the
+                // simple click action (no modifiers, no middle click).
+                if (windows.length == 1 && !modifiers && button == 1) {
+                    let w = windows[0];
+                    if (this.app == focusedApp) {
+                        // Window is raised, minimize it
+                        this._minimizeWindow(w);
+                    } else {
+                        // Window is minimized, raise it
+                        Main.activateWindow(w);
+                    }
+                    // Launch overview when multiple windows are present
+                    // TODO: only show current app windows when gnome shell API will allow it
+                } else {
+                    shouldHideOverview = false;
+                    Main.overview.toggle();
+                }
+                break;
+
+            case clickAction.CYCLE_WINDOWS:
+                if (!Main.overview._shown){
+                    if (this.app == focusedApp)
+                        this._cycleThroughWindows();
+                    else {
+                        // Activate the first window
+                        let w = windows[0];
+                        Main.activateWindow(w);
+                    }
+                }
+                else
+                    this.app.activate();
+                break;
+
+            case clickAction.LAUNCH:
+                this.launchNewWindow();
+                break;
+
+            case clickAction.PREVIEWS:
+                if (!Main.overview._shown) {
+                    // If only one windows is present just switch to it, but only when trigggered with the
+                    // simple click action (no modifiers, no middle click).
+                    if (windows.length == 1 && !modifiers && button == 1) {
+                        let w = windows[0];
+                        Main.activateWindow(w);
+                    } else
+                        this._windowPreviews();
+                }
+                else {
+                    this.app.activate();
+                }
+                break;
+
+            case clickAction.QUIT:
+                this.closeAllWindows();
+                break;
+
+            case clickAction.SKIP:
+                let w = windows[0];
+                Main.activateWindow(w);
+                break;
+            }
+        }
+        else {
+            this.launchNewWindow();
+        }
+
+        // Hide overview except when action mode requires it
+        if(shouldHideOverview) {
+            Main.overview.hide();
+        }
+    },
+
+    shouldShowTooltip: function() {
+        return this.actor.hover && (!this._menu || !this._menu.isOpen) &&
+                            (!this._previewMenu || !this._previewMenu.isOpen);
+    },
+
+    _windowPreviews: function() {
+        if (!this._previewMenu) {
+            this._previewMenuManager = new PopupMenu.PopupMenuManager(this);
+
+            this._previewMenu = new WindowPreview.WindowPreviewMenu(this, this._dtdSettings);
+
+            this._previewMenuManager.addMenu(this._previewMenu);
+
+            this._previewMenu.connect('open-state-changed', Lang.bind(this, function(menu, isPoppedUp) {
+                if (!isPoppedUp)
+                    this._onMenuPoppedDown();
+            }));
+            let id = Main.overview.connect('hiding', Lang.bind(this, function() {
+                this._previewMenu.close();
+            }));
+            this._previewMenu.actor.connect('destroy', function() {
+                Main.overview.disconnect(id);
+            });
+
+        }
+
+        if (this._previewMenu.isOpen)
+            this._previewMenu.close();
+        else
+            this._previewMenu.popup();
+
+        return false;
+    },
+
+    // Try to do the right thing when attempting to launch a new window of an app. In
+    // particular, if the application doens't allow to launch a new window, activate
+    // the existing window instead.
+    launchNewWindow: function(p) {
+        let appInfo = this.app.get_app_info();
+        let actions = appInfo.list_actions();
+        if (this.app.can_open_new_window()) {
+            this.animateLaunch();
+            // This is used as a workaround for a bug resulting in no new windows being opened
+            // for certain running applications when calling open_new_window().
+            //
+            // https://bugzilla.gnome.org/show_bug.cgi?id=756844
+            //
+            // Similar to what done when generating the popupMenu entries, if the application provides
+            // a "New Window" action, use it instead of directly requesting a new window with
+            // open_new_window(), which fails for certain application, notably Nautilus.
+            if (actions.indexOf('new-window') == -1) {
+                this.app.open_new_window(-1);
+            }
+            else {
+                let i = actions.indexOf('new-window');
+                if (i !== -1)
+                    this.app.launch_action(actions[i], global.get_current_time(), -1);
+            }
+        }
+        else {
+            // Try to manually activate the first window. Otherwise, when the app is activated by
+            // switching to a different workspace, a launch spinning icon is shown and disappers only
+            // after a timeout.
+            let windows = this.app.get_windows();
+            if (windows.length > 0)
+                Main.activateWindow(windows[0])
+            else
+                this.app.activate();
+        }
+    },
+
+    _updateCounterClass: function() {
+        let maxN = 4;
+        this._nWindows = Math.min(this.getInterestingWindows().length, maxN);
+
+        for (let i = 1; i <= maxN; i++) {
+            let className = 'running' + i;
+            if (i != this._nWindows)
+                this.actor.remove_style_class_name(className);
+            else
+                this.actor.add_style_class_name(className);
+        }
+
+        if (this._dots)
+            this._dots.queue_repaint();
+    },
+
+    _drawCircles: function(area, side) {
+        let borderColor, borderWidth, bodyColor;
+
+        if (!this._dtdSettings.get_boolean('apply-custom-theme')
+            && this._dtdSettings.get_boolean('custom-theme-running-dots')
+            && this._dtdSettings.get_boolean('custom-theme-customize-running-dots')) {
+            borderColor = Clutter.color_from_string(this._dtdSettings.get_string('custom-theme-running-dots-border-color'))[1];
+            borderWidth = this._dtdSettings.get_int('custom-theme-running-dots-border-width');
+            bodyColor =  Clutter.color_from_string(this._dtdSettings.get_string('custom-theme-running-dots-color'))[1];
+        }
+        else {
+            // Re-use the style - background color, and border width and color -
+            // of the default dot
+            let themeNode = this._dot.get_theme_node();
+            borderColor = themeNode.get_border_color(side);
+            borderWidth = themeNode.get_border_width(side);
+            bodyColor = themeNode.get_background_color();
+        }
+
+        let [width, height] = area.get_surface_size();
+        let cr = area.get_context();
+
+        // Draw the required numbers of dots
+        // Define the radius as an arbitrary size, but keep large enough to account
+        // for the drawing of the border.
+        let radius = Math.max(width/22, borderWidth/2);
+        let padding = 0; // distance from the margin
+        let spacing = radius + borderWidth; // separation between the dots
+        let n = this._nWindows;
+
+        cr.setLineWidth(borderWidth);
+        Clutter.cairo_set_source_color(cr, borderColor);
+
+        switch (side) {
+        case St.Side.TOP:
+            cr.translate((width - (2*n)*radius - (n-1)*spacing)/2, padding);
+            for (let i = 0; i < n; i++) {
+                cr.newSubPath();
+                cr.arc((2*i+1)*radius + i*spacing, radius + borderWidth/2, radius, 0, 2*Math.PI);
+            }
+            break;
+
+        case St.Side.BOTTOM:
+            cr.translate((width - (2*n)*radius - (n-1)*spacing)/2, height - padding);
+            for (let i = 0; i < n; i++) {
+                cr.newSubPath();
+                cr.arc((2*i+1)*radius + i*spacing, -radius - borderWidth/2, radius, 0, 2*Math.PI);
+            }
+            break;
+
+        case St.Side.LEFT:
+            cr.translate(padding, (height - (2*n)*radius - (n-1)*spacing)/2);
+            for (let i = 0; i < n; i++) {
+                cr.newSubPath();
+                cr.arc(radius + borderWidth/2, (2*i+1)*radius + i*spacing, radius, 0, 2*Math.PI);
+            }
+            break;
+
+        case St.Side.RIGHT:
+            cr.translate(width - padding , (height - (2*n)*radius - (n-1)*spacing)/2);
+            for (let i = 0; i < n; i++) {
+                cr.newSubPath();
+                cr.arc(-radius - borderWidth/2, (2*i+1)*radius + i*spacing, radius, 0, 2*Math.PI);
+            }
+            break;
+        }
+
+        cr.strokePreserve();
+
+        Clutter.cairo_set_source_color(cr, bodyColor);
+        cr.fill();
+        cr.$dispose();
+    },
+
+    _numberOverlay: function() {
+        // Add label for a Hot-Key visual aid
+        this._numberOverlayLabel = new St.Label();
+        this._numberOverlayBin = new St.Bin({
+            child: this._numberOverlayLabel,
+            x_align: St.Align.START, y_align: St.Align.START,
+            x_expand: true, y_expand: true
+        });
+        this._numberOverlayLabel.add_style_class_name('number-overlay');
+        this._numberOverlayOrder = -1;
+        this._numberOverlayBin.hide();
+
+        this._iconContainer.add_child(this._numberOverlayBin);
+
+    },
+
+    updateNumberOverlay: function() {
+        // We apply an overall scale factor that might come from a HiDPI monitor.
+        // Clutter dimensions are in physical pixels, but CSS measures are in logical
+        // pixels, so make sure to consider the scale.
+        let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
+        // Set the font size to something smaller than the whole icon so it is
+        // still visible. The border radius is large to make the shape circular
+        let [minWidth, natWidth] = this._iconContainer.get_preferred_width(-1);
+        let font_size = Math.round(Math.max(12, 0.3*natWidth) / scaleFactor);
+        let size = Math.round(font_size*1.2);
+        this._numberOverlayLabel.set_style(
+           'font-size: ' + font_size + 'px;' +
+           'border-radius: ' + this.icon.iconSize + 'px;' +
+           'width: ' + size + 'px; height: ' + size +'px;'
+        );
+    },
+
+    setNumberOverlay: function(number) {
+        this._numberOverlayOrder = number;
+        this._numberOverlayLabel.set_text(number.toString());
+    },
+
+    toggleNumberOverlay: function(activate) {
+        if (activate && this._numberOverlayOrder > -1) {
+            this.updateNumberOverlay();
+            this._numberOverlayBin.show();
+        }
+        else
+            this._numberOverlayBin.hide();
+    },
+
+    _minimizeWindow: function(param) {
+        // Param true make all app windows minimize
+        let windows = this.getInterestingWindows();
+        let current_workspace = global.screen.get_active_workspace();
+        for (let i = 0; i < windows.length; i++) {
+            let w = windows[i];
+            if (w.get_workspace() == current_workspace && w.showing_on_its_workspace()) {
+                w.minimize();
+                // Just minimize one window. By specification it should be the
+                // focused window on the current workspace.
+                if(!param)
+                    break;
+            }
+        }
+    },
+
+    // By default only non minimized windows are activated.
+    // This activates all windows in the current workspace.
+    _activateAllWindows: function() {
+        // First activate first window so workspace is switched if needed.
+        // We don't do this if isolation is on!
+        if (!this._dtdSettings.get_boolean('isolate-workspaces') &&
+            !this._dtdSettings.get_boolean('isolate-monitors'))
+            this.app.activate();
+
+        // then activate all other app windows in the current workspace
+        let windows = this.getInterestingWindows();
+        let activeWorkspace = global.screen.get_active_workspace_index();
+
+        if (windows.length <= 0)
+            return;
+
+        let activatedWindows = 0;
+
+        for (let i = windows.length - 1; i >= 0; i--) {
+            if (windows[i].get_workspace().index() == activeWorkspace) {
+                Main.activateWindow(windows[i]);
+                activatedWindows++;
+            }
+        }
+    },
+
+    //This closes all windows of the app.
+    closeAllWindows: function() {
+        let windows = this.getInterestingWindows();
+        for (let i = 0; i < windows.length; i++)
+            windows[i].delete(global.get_current_time());
+    },
+
+    _cycleThroughWindows: function(reversed) {
+        // Store for a little amount of time last clicked app and its windows
+        // since the order changes upon window interaction
+        let MEMORY_TIME=3000;
+
+        let app_windows = this.getInterestingWindows();
+
+        if (app_windows.length <1)
+            return
+
+        if (recentlyClickedAppLoopId > 0)
+            Mainloop.source_remove(recentlyClickedAppLoopId);
+        recentlyClickedAppLoopId = Mainloop.timeout_add(MEMORY_TIME, this._resetRecentlyClickedApp);
+
+        // If there isn't already a list of windows for the current app,
+        // or the stored list is outdated, use the current windows list.
+        let monitorIsolation = this._dtdSettings.get_boolean('isolate-monitors');
+        if (!recentlyClickedApp ||
+            recentlyClickedApp.get_id() != this.app.get_id() ||
+            recentlyClickedAppWindows.length != app_windows.length ||
+            (recentlyClickedAppMonitor != this.monitorIndex && monitorIsolation)) {
+            recentlyClickedApp = this.app;
+            recentlyClickedAppWindows = app_windows;
+            recentlyClickedAppMonitor = this.monitorIndex;
+            recentlyClickedAppIndex = 0;
+        }
+
+        if (reversed) {
+            recentlyClickedAppIndex--;
+            if (recentlyClickedAppIndex < 0) recentlyClickedAppIndex = recentlyClickedAppWindows.length - 1;
+        } else {
+            recentlyClickedAppIndex++;
+        }
+        let index = recentlyClickedAppIndex % recentlyClickedAppWindows.length;
+        let window = recentlyClickedAppWindows[index];
+
+        Main.activateWindow(window);
+    },
+
+    _resetRecentlyClickedApp: function() {
+        if (recentlyClickedAppLoopId > 0)
+            Mainloop.source_remove(recentlyClickedAppLoopId);
+        recentlyClickedAppLoopId=0;
+        recentlyClickedApp =null;
+        recentlyClickedAppWindows = null;
+        recentlyClickedAppIndex = 0;
+        recentlyClickedAppMonitor = -1;
+
+        return false;
+    },
+
+    // Filter out unnecessary windows, for instance
+    // nautilus desktop window.
+    getInterestingWindows: function() {
+        return getInterestingWindows(this.app, this._dtdSettings, this.monitorIndex);
+    }
+});
+/**
+ * Extend AppIconMenu
+ *
+ * - Pass settings to the constructor
+ * - set popup arrow side based on dash orientation
+ * - Add close windows option based on quitfromdash extension
+ *   (https://github.com/deuill/shell-extension-quitfromdash)
+ * - Add open windows thumbnails instead of list
+ * - update menu when application windows change
+ */
+const MyAppIconMenu = new Lang.Class({
+    Name: 'DashToDock.MyAppIconMenu',
+    Extends: AppDisplay.AppIconMenu,
+
+    _init: function(source, settings) {
+        let side = Utils.getPosition(settings);
+
+        // Damm it, there has to be a proper way of doing this...
+        // As I can't call the parent parent constructor (?) passing the side
+        // parameter, I overwite what I need later
+        this.parent(source);
+
+        // Change the initialized side where required.
+        this._arrowSide = side;
+        this._boxPointer._arrowSide = side;
+        this._boxPointer._userArrowSide = side;
+
+        this._dtdSettings = settings;
+    },
+
+    _redisplay: function() {
+        this.removeAll();
+
+        if (this._dtdSettings.get_boolean('show-windows-preview')) {
+            // Display the app windows menu items and the separator between windows
+            // of the current desktop and other windows.
+
+            this._allWindowsMenuItem = new PopupMenu.PopupSubMenuMenuItem(__('All Windows'), false);
+            this._allWindowsMenuItem.actor.hide();
+            this.addMenuItem(this._allWindowsMenuItem);
+
+            if (!this._source.app.is_window_backed()) {
+                this._appendSeparator();
+
+                let appInfo = this._source.app.get_app_info();
+                let actions = appInfo.list_actions();
+                if (this._source.app.can_open_new_window() &&
+                    actions.indexOf('new-window') == -1) {
+                    this._newWindowMenuItem = this._appendMenuItem(_("New Window"));
+                    this._newWindowMenuItem.connect('activate', Lang.bind(this, function() {
+                        if (this._source.app.state == Shell.AppState.STOPPED)
+                            this._source.animateLaunch();
+
+                        this._source.app.open_new_window(-1);
+                        this.emit('activate-window', null);
+                    }));
+                    this._appendSeparator();
+                }
+
+
+                if (AppDisplay.discreteGpuAvailable &&
+                    this._source.app.state == Shell.AppState.STOPPED &&
+                    actions.indexOf('activate-discrete-gpu') == -1) {
+                    this._onDiscreteGpuMenuItem = this._appendMenuItem(_("Launch using Dedicated Graphics Card"));
+                    this._onDiscreteGpuMenuItem.connect('activate', Lang.bind(this, function() {
+                        if (this._source.app.state == Shell.AppState.STOPPED)
+                            this._source.animateLaunch();
+
+                        this._source.app.launch(0, -1, true);
+                        this.emit('activate-window', null);
+                    }));
+                }
+
+                for (let i = 0; i < actions.length; i++) {
+                    let action = actions[i];
+                    let item = this._appendMenuItem(appInfo.get_action_name(action));
+                    item.connect('activate', Lang.bind(this, function(emitter, event) {
+                        this._source.app.launch_action(action, event.get_time(), -1);
+                        this.emit('activate-window', null);
+                    }));
+                }
+
+                let canFavorite = global.settings.is_writable('favorite-apps');
+
+                if (canFavorite) {
+                    this._appendSeparator();
+
+                    let isFavorite = AppFavorites.getAppFavorites().isFavorite(this._source.app.get_id());
+
+                    if (isFavorite) {
+                        let item = this._appendMenuItem(_("Remove from Favorites"));
+                        item.connect('activate', Lang.bind(this, function() {
+                            let favs = AppFavorites.getAppFavorites();
+                            favs.removeFavorite(this._source.app.get_id());
+                        }));
+                    } else {
+                        let item = this._appendMenuItem(_("Add to Favorites"));
+                        item.connect('activate', Lang.bind(this, function() {
+                            let favs = AppFavorites.getAppFavorites();
+                            favs.addFavorite(this._source.app.get_id());
+                        }));
+                    }
+                }
+
+                if (Shell.AppSystem.get_default().lookup_app('org.gnome.Software.desktop')) {
+                    this._appendSeparator();
+                    let item = this._appendMenuItem(_("Show Details"));
+                    item.connect('activate', Lang.bind(this, function() {
+                        let id = this._source.app.get_id();
+                        let args = GLib.Variant.new('(ss)', [id, '']);
+                        Gio.DBus.get(Gio.BusType.SESSION, null,
+                            function(o, res) {
+                                let bus = Gio.DBus.get_finish(res);
+                                bus.call('org.gnome.Software',
+                                         '/org/gnome/Software',
+                                         'org.gtk.Actions', 'Activate',
+                                         GLib.Variant.new('(sava{sv})',
+                                                          ['details', [args], null]),
+                                         null, 0, -1, null, null);
+                                Main.overview.hide();
+                            });
+                    }));
+                }
+            }
+
+        } else {
+            this.parent();
+        }
+
+        // quit menu
+        this._appendSeparator();
+        this._quitfromDashMenuItem = this._appendMenuItem(_("Quit"));
+        this._quitfromDashMenuItem.connect('activate', Lang.bind(this, function() {
+            this._source.closeAllWindows();
+        }));
+
+        this.update();
+    },
+
+    // update menu content when application windows change. This is desirable as actions
+    // acting on windows (closing) are performed while the menu is shown.
+    update: function() {
+
+      if(this._dtdSettings.get_boolean('show-windows-preview')){
+
+          let windows = this._source.getInterestingWindows();
+
+          // update, show or hide the quit menu
+          if ( windows.length > 0) {
+              let quitFromDashMenuText = "";
+              if (windows.length == 1)
+                  this._quitfromDashMenuItem.label.set_text(_("Quit"));
+              else
+                  this._quitfromDashMenuItem.label.set_text(_("Quit") + ' ' + windows.length + ' ' + _("Windows"));
+
+              this._quitfromDashMenuItem.actor.show();
+
+          } else {
+              this._quitfromDashMenuItem.actor.hide();
+          }
+
+          // update, show, or hide the allWindows menu
+          // Check if there are new windows not already displayed. In such case, repopulate the allWindows
+          // menu. Windows removal is already handled by each preview being connected to the destroy signal
+          let old_windows = this._allWindowsMenuItem.menu._getMenuItems().map(function(item){
+              return item._window;
+          });
+
+          let new_windows = windows.filter(function(w) {return old_windows.indexOf(w) < 0;});
+          if (new_windows.length > 0) {
+              this._populateAllWindowMenu(windows);
+
+              // Try to set the width to that of the submenu.
+              // TODO: can't get the actual size, getting a bit less.
+              // Temporary workaround: add 15px to compensate
+              this._allWindowsMenuItem.actor.width =  this._allWindowsMenuItem.menu.actor.width + 15;
+
+          }
+
+          // The menu is created hidden and never hidded after being shown. Instead, a singlal
+          // connected to its items destroy will set is insensitive if no more windows preview are shown.
+          if (windows.length > 0){
+              this._allWindowsMenuItem.actor.show();
+              this._allWindowsMenuItem.setSensitive(true);
+          }
+
+          // Update separators
+          this._getMenuItems().forEach(Lang.bind(this, this._updateSeparatorVisibility));
+      }
+
+
+    },
+
+    _populateAllWindowMenu: function(windows) {
+
+        this._allWindowsMenuItem.menu.removeAll();
+
+            if (windows.length > 0) {
+
+                let activeWorkspace = global.screen.get_active_workspace();
+                let separatorShown =  windows[0].get_workspace() != activeWorkspace;
+
+                for (let i = 0; i < windows.length; i++) {
+                    let window = windows[i];
+                    if (!separatorShown && window.get_workspace() != activeWorkspace) {
+                        this._allWindowsMenuItem.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
+                        separatorShown = true;
+                    }
+
+                    let item = new WindowPreview.WindowPreviewMenuItem(window);
+                    this._allWindowsMenuItem.menu.addMenuItem(item);
+                    item.connect('activate', Lang.bind(this, function() {
+                        this.emit('activate-window', window);
+                    }));
+
+                    // This is to achieve a more gracefull transition when the last windows is closed.
+                    item.connect('destroy', Lang.bind(this, function() {
+                        if(this._allWindowsMenuItem.menu._getMenuItems().length == 1) // It's still counting the item just going to be destroyed
+                            this._allWindowsMenuItem.setSensitive(false);
+                    }));
+                }
+            }
+    },
+});
+Signals.addSignalMethods(MyAppIconMenu.prototype);
+
+// Filter out unnecessary windows, for instance
+// nautilus desktop window.
+function getInterestingWindows(app, settings, monitorIndex) {
+    let windows = app.get_windows().filter(function(w) {
+        return !w.skip_taskbar;
+    });
+
+    // When using workspace isolation, we filter out windows
+    // that are not in the current workspace
+    if (settings.get_boolean('isolate-workspaces'))
+        windows = windows.filter(function(w) {
+            return w.get_workspace().index() == global.screen.get_active_workspace_index();
+        });
+
+    if (settings.get_boolean('isolate-monitors'))
+        windows = windows.filter(function(w) {
+            return w.get_monitor() == monitorIndex;
+        });
+
+    return windows;
+}
+
+/**
+ * Extend ShowAppsIcon
+ *
+ * - Pass settings to the constructor
+ * - set label position based on dash orientation
+ * - implement a popupMenu based on the AppIcon code
+ *
+ *  I can't subclass the original object because of this: https://bugzilla.gnome.org/show_bug.cgi?id=688973.
+ *  thus use this ugly pattern.
+ */
+function extendShowAppsIcon(showAppsIcon, settings) {
+    showAppsIcon._dtdSettings = settings;
+    /* the variable equivalent to toggleButton has a different name in the appIcon class
+     (actor): duplicate reference to easily reuse appIcon methods */
+    showAppsIcon.actor =  showAppsIcon.toggleButton;
+
+    // Re-use appIcon methods
+    showAppsIcon._removeMenuTimeout = AppDisplay.AppIcon.prototype._removeMenuTimeout;
+    showAppsIcon._setPopupTimeout = AppDisplay.AppIcon.prototype._setPopupTimeout;
+    showAppsIcon._onButtonPress = AppDisplay.AppIcon.prototype._onButtonPress;
+    showAppsIcon._onKeyboardPopupMenu = AppDisplay.AppIcon.prototype._onKeyboardPopupMenu;
+    showAppsIcon._onLeaveEvent = AppDisplay.AppIcon.prototype._onLeaveEvent;
+    showAppsIcon._onTouchEvent = AppDisplay.AppIcon.prototype._onTouchEvent;
+    showAppsIcon._onMenuPoppedDown = AppDisplay.AppIcon.prototype._onMenuPoppedDown;
+
+
+    // No action on clicked (showing of the appsview is controlled elsewhere)
+    showAppsIcon._onClicked = function(actor, button) {
+        showAppsIcon._removeMenuTimeout();
+    };
+
+    showAppsIcon.actor.connect('leave-event', Lang.bind(showAppsIcon, showAppsIcon._onLeaveEvent));
+    showAppsIcon.actor.connect('button-press-event', Lang.bind(showAppsIcon, showAppsIcon._onButtonPress));
+    showAppsIcon.actor.connect('touch-event', Lang.bind(showAppsIcon, showAppsIcon._onTouchEvent));
+    showAppsIcon.actor.connect('clicked', Lang.bind(showAppsIcon, showAppsIcon._onClicked));
+    showAppsIcon.actor.connect('popup-menu', Lang.bind(showAppsIcon, showAppsIcon._onKeyboardPopupMenu));
+
+    showAppsIcon._menu = null;
+    showAppsIcon._menuManager = new PopupMenu.PopupMenuManager(showAppsIcon);
+    showAppsIcon._menuTimeoutId = 0;
+
+    showAppsIcon.showLabel = itemShowLabel;
+
+    showAppsIcon.popupMenu = function() {
+        showAppsIcon._removeMenuTimeout();
+        showAppsIcon.actor.fake_release();
+
+        if (!showAppsIcon._menu) {
+            showAppsIcon._menu = new MyShowAppsIconMenu(showAppsIcon, showAppsIcon._dtdSettings);
+            showAppsIcon._menu.connect('open-state-changed', Lang.bind(showAppsIcon, function(menu, isPoppedUp) {
+                if (!isPoppedUp)
+                    showAppsIcon._onMenuPoppedDown();
+            }));
+            let id = Main.overview.connect('hiding', Lang.bind(showAppsIcon, function() {
+                showAppsIcon._menu.close();
+            }));
+            showAppsIcon._menu.actor.connect('destroy', function() {
+                Main.overview.disconnect(id);
+            });
+            showAppsIcon._menuManager.addMenu(showAppsIcon._menu);
+        }
+
+        showAppsIcon.emit('menu-state-changed', true);
+
+        showAppsIcon.actor.set_hover(true);
+        showAppsIcon._menu.popup();
+        showAppsIcon._menuManager.ignoreRelease();
+        showAppsIcon.emit('sync-tooltip');
+
+        return false;
+    };
+
+    Signals.addSignalMethods(showAppsIcon);
+}
+
+/**
+ * A menu for the showAppsIcon
+ */
+const MyShowAppsIconMenu = new Lang.Class({
+    Name: 'DashToDock.ShowAppsIconMenu',
+    Extends: MyAppIconMenu,
+
+    _redisplay: function() {
+        this.removeAll();
+
+        /* Translators: %s is "Settings", which is automatically translated. You
+           can also translate the full message if this fits better your language. */
+        let name = __('Dash to Dock %s').format(_('Settings'))
+        let item = this._appendMenuItem(name);
+
+        item.connect('activate', function () {
+            Util.spawn(["gnome-shell-extension-prefs", Me.metadata.uuid]);
+        });
+    }
+});
+
+/**
+ * This function is used for both extendShowAppsIcon and extendDashItemContainer
+ */
+function itemShowLabel()  {
+    // Check if the label is still present at all. When switching workpaces, the
+    // item might have been destroyed in between.
+    if (!this._labelText || this.label.get_stage() == null)
+      return;
+
+    this.label.set_text(this._labelText);
+    this.label.opacity = 0;
+    this.label.show();
+
+    let [stageX, stageY] = this.get_transformed_position();
+    let node = this.label.get_theme_node();
+
+    let itemWidth  = this.allocation.x2 - this.allocation.x1;
+    let itemHeight = this.allocation.y2 - this.allocation.y1;
+
+    let labelWidth = this.label.get_width();
+    let labelHeight = this.label.get_height();
+
+    let x, y, xOffset, yOffset;
+
+    let position = Utils.getPosition(this._dtdSettings);
+    this._isHorizontal = ((position == St.Side.TOP) || (position == St.Side.BOTTOM));
+    let labelOffset = node.get_length('-x-offset');
+
+    switch (position) {
+    case St.Side.LEFT:
+        yOffset = Math.floor((itemHeight - labelHeight) / 2);
+        y = stageY + yOffset;
+        xOffset = labelOffset;
+        x = stageX + this.get_width() + xOffset;
+        break;
+    case St.Side.RIGHT:
+        yOffset = Math.floor((itemHeight - labelHeight) / 2);
+        y = stageY + yOffset;
+        xOffset = labelOffset;
+        x = Math.round(stageX) - labelWidth - xOffset;
+        break;
+    case St.Side.TOP:
+        y = stageY + labelOffset + itemHeight;
+        xOffset = Math.floor((itemWidth - labelWidth) / 2);
+        x = stageX + xOffset;
+        break;
+    case St.Side.BOTTOM:
+        yOffset = labelOffset;
+        y = stageY - labelHeight - yOffset;
+        xOffset = Math.floor((itemWidth - labelWidth) / 2);
+        x = stageX + xOffset;
+        break;
+    }
+
+    // keep the label inside the screen border
+    // Only needed fot the x coordinate.
+
+    // Leave a few pixel gap
+    let gap = 5;
+    let monitor = Main.layoutManager.findMonitorForActor(this);
+    if (x - monitor.x < gap)
+        x += monitor.x - x + labelOffset;
+    else if (x + labelWidth > monitor.x + monitor.width - gap)
+        x -= x + labelWidth - (monitor.x + monitor.width) + gap;
+
+    this.label.set_position(x, y);
+    Tweener.addTween(this.label, {
+        opacity: 255,
+        time: DASH_ITEM_LABEL_SHOW_TIME,
+        transition: 'easeOutQuad',
+    });
+}
diff --git a/package/convenience.js b/package/convenience.js
new file mode 100644
index 0000000..9c912bf
--- /dev/null
+++ b/package/convenience.js
@@ -0,0 +1,74 @@
+/* -*- mode: js; js-basic-offset: 4; indent-tabs-mode: nil -*- */
+
+/*
+ * Part of this file comes from gnome-shell-extensions:
+ * http://git.gnome.org/browse/gnome-shell-extensions/
+ */
+
+const Gettext = imports.gettext;
+const Gio = imports.gi.Gio;
+
+const Config = imports.misc.config;
+const ExtensionUtils = imports.misc.extensionUtils;
+
+/**
+ * initTranslations:
+ * @domain: (optional): the gettext domain to use
+ *
+ * Initialize Gettext to load translations from extensionsdir/locale.
+ * If @domain is not provided, it will be taken from metadata['gettext-domain']
+ */
+function initTranslations(domain) {
+    let extension = ExtensionUtils.getCurrentExtension();
+
+    domain = domain || extension.metadata['gettext-domain'];
+
+    // Check if this extension was built with "make zip-file", and thus
+    // has the locale files in a subfolder
+    // otherwise assume that extension has been installed in the
+    // same prefix as gnome-shell
+    let localeDir = extension.dir.get_child('locale');
+    if (localeDir.query_exists(null))
+        Gettext.bindtextdomain(domain, localeDir.get_path());
+    else
+        Gettext.bindtextdomain(domain, Config.LOCALEDIR);
+}
+
+/**
+ * getSettings:
+ * @schema: (optional): the GSettings schema id
+ *
+ * Builds and return a GSettings schema for @schema, using schema files
+ * in extensionsdir/schemas. If @schema is not provided, it is taken from
+ * metadata['settings-schema'].
+ */
+function getSettings(schema) {
+    let extension = ExtensionUtils.getCurrentExtension();
+
+    schema = schema || extension.metadata['settings-schema'];
+
+    const GioSSS = Gio.SettingsSchemaSource;
+
+    // Check if this extension was built with "make zip-file", and thus
+    // has the schema files in a subfolder
+    // otherwise assume that extension has been installed in the
+    // same prefix as gnome-shell (and therefore schemas are available
+    // in the standard folders)
+    let schemaDir = extension.dir.get_child('schemas');
+    let schemaSource;
+    if (schemaDir.query_exists(null))
+        schemaSource = GioSSS.new_from_directory(schemaDir.get_path(),
+                                                 GioSSS.get_default(),
+                                                 false);
+    else
+        schemaSource = GioSSS.get_default();
+
+    let schemaObj = schemaSource.lookup(schema, true);
+    if (!schemaObj)
+        throw new Error('Schema ' + schema + ' could not be found for extension '
+                        + extension.metadata.uuid + '. Please check your installation.');
+
+    return new Gio.Settings({
+        settings_schema: schemaObj
+    });
+}
diff --git a/package/dash.js b/package/dash.js
new file mode 100644
index 0000000..593185a
--- /dev/null
+++ b/package/dash.js
@@ -0,0 +1,1180 @@
+// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
+
+const Clutter = imports.gi.Clutter;
+const Gio = imports.gi.Gio;
+const GLib = imports.gi.GLib;
+const Gtk = imports.gi.Gtk;
+const Signals = imports.signals;
+const Lang = imports.lang;
+const Meta = imports.gi.Meta;
+const Shell = imports.gi.Shell;
+const St = imports.gi.St;
+const Mainloop = imports.mainloop;
+
+const AppDisplay = imports.ui.appDisplay;
+const AppFavorites = imports.ui.appFavorites;
+const Dash = imports.ui.dash;
+const DND = imports.ui.dnd;
+const IconGrid = imports.ui.iconGrid;
+const Main = imports.ui.main;
+const PopupMenu = imports.ui.popupMenu;
+const Tweener = imports.ui.tweener;
+const Util = imports.misc.util;
+const Workspace = imports.ui.workspace;
+
+const Me = imports.misc.extensionUtils.getCurrentExtension();
+const Utils = Me.imports.utils;
+const AppIcons = Me.imports.appIcons;
+
+let DASH_ANIMATION_TIME = Dash.DASH_ANIMATION_TIME;
+let DASH_ITEM_LABEL_HIDE_TIME = Dash.DASH_ITEM_LABEL_HIDE_TIME;
+let DASH_ITEM_HOVER_TIMEOUT = Dash.DASH_ITEM_HOVER_TIMEOUT;
+
+/**
+ * Extend DashItemContainer
+ *
+ * - Pass settings to the constructor
+ * - set label position based on dash orientation
+ *
+ *  I can't subclass the original object because of this: https://bugzilla.gnome.org/show_bug.cgi?id=688973.
+ *  thus use this ugly pattern.
+ */
+function extendDashItemContainer(dashItemContainer, settings) {
+    dashItemContainer._dtdSettings = settings;
+    dashItemContainer.showLabel = AppIcons.itemShowLabel;
+}
+
+/**
+ * This class is a fork of the upstream DashActor class (ui.dash.js)
+ *
+ * Summary of changes:
+ * - passed settings to class as parameter
+ * - modified chldBox calculations for when 'show-apps-at-top' option is checked
+ * - handle horizontal dash
+ */
+const MyDashActor = new Lang.Class({
+    Name: 'DashToDock.MyDashActor',
+
+    _init: function(settings) {
+        // a prefix is required to avoid conflicting with the parent class variable
+        this._dtdSettings = settings;
+        this._rtl = (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL);
+
+        this._position = Utils.getPosition(settings);
+        this._isHorizontal = ((this._position == St.Side.TOP) ||
+                               (this._position == St.Side.BOTTOM));
+
+        let layout = new Clutter.BoxLayout({
+            orientation: this._isHorizontal ? Clutter.Orientation.HORIZONTAL : Clutter.Orientation.VERTICAL
+        });
+
+        this.actor = new Shell.GenericContainer({
+            name: 'dash',
+            layout_manager: layout,
+            clip_to_allocation: true
+        });
+        this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
+        this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
+        this.actor.connect('allocate', Lang.bind(this, this._allocate));
+
+        this.actor._delegate = this;
+    },
+
+    _allocate: function(actor, box, flags) {
+        let contentBox = box;
+        let availWidth = contentBox.x2 - contentBox.x1;
+        let availHeight = contentBox.y2 - contentBox.y1;
+
+        let [appIcons, showAppsButton] = actor.get_children();
+        let [showAppsMinHeight, showAppsNatHeight] = showAppsButton.get_preferred_height(availWidth);
+        let [showAppsMinWidth, showAppsNatWidth] = showAppsButton.get_preferred_width(availHeight);
+
+        let offset_x = this._isHorizontal?showAppsNatWidth:0;
+        let offset_y = this._isHorizontal?0:showAppsNatHeight;
+
+        let childBox = new Clutter.ActorBox();
+        if ((this._dtdSettings.get_boolean('show-apps-at-top') && !this._isHorizontal)
+            || (this._dtdSettings.get_boolean('show-apps-at-top') && !this._rtl)
+            || (!this._dtdSettings.get_boolean('show-apps-at-top') && this._isHorizontal && this._rtl)) {
+            childBox.x1 = contentBox.x1 + offset_x;
+            childBox.y1 = contentBox.y1 + offset_y;
+            childBox.x2 = contentBox.x2;
+            childBox.y2 = contentBox.y2;
+            appIcons.allocate(childBox, flags);
+
+            childBox.y1 = contentBox.y1;
+            childBox.x1 = contentBox.x1;
+            childBox.x2 = contentBox.x1 + showAppsNatWidth;
+            childBox.y2 = contentBox.y1 + showAppsNatHeight;
+            showAppsButton.allocate(childBox, flags);
+        }
+        else {
+            childBox.x1 = contentBox.x1;
+            childBox.y1 = contentBox.y1;
+            childBox.x2 = contentBox.x2 - offset_x;
+            childBox.y2 = contentBox.y2 - offset_y;
+            appIcons.allocate(childBox, flags);
+
+            childBox.x2 = contentBox.x2;
+            childBox.y2 = contentBox.y2;
+            childBox.x1 = contentBox.x2 - showAppsNatWidth;
+            childBox.y1 = contentBox.y2 - showAppsNatHeight;
+            showAppsButton.allocate(childBox, flags);
+        }
+    },
+
+    _getPreferredWidth: function(actor, forHeight, alloc) {
+        // We want to request the natural height of all our children
+        // as our natural height, so we chain up to StWidget (which
+        // then calls BoxLayout), but we only request the showApps
+        // button as the minimum size
+
+        let [, natWidth] = this.actor.layout_manager.get_preferred_width(this.actor, forHeight);
+
+        let themeNode = this.actor.get_theme_node();
+        let [, showAppsButton] = this.actor.get_children();
+        let [minWidth, ] = showAppsButton.get_preferred_height(forHeight);
+
+        alloc.min_size = minWidth;
+        alloc.natural_size = natWidth;
+
+    },
+
+    _getPreferredHeight: function(actor, forWidth, alloc) {
+        // We want to request the natural height of all our children
+        // as our natural height, so we chain up to StWidget (which
+        // then calls BoxLayout), but we only request the showApps
+        // button as the minimum size
+
+        let [, natHeight] = this.actor.layout_manager.get_preferred_height(this.actor, forWidth);
+
+        let themeNode = this.actor.get_theme_node();
+        let [, showAppsButton] = this.actor.get_children();
+        let [minHeight, ] = showAppsButton.get_preferred_height(forWidth);
+
+        alloc.min_size = minHeight;
+        alloc.natural_size = natHeight;
+    }
+});
+
+const baseIconSizes = [16, 22, 24, 32, 48, 64, 96, 128];
+
+/**
+ * This class is a fork of the upstream dash class (ui.dash.js)
+ *
+ * Summary of changes:
+ * - disconnect global signals adding a destroy method;
+ * - play animations even when not in overview mode
+ * - set a maximum icon size
+ * - show running and/or favorite applications
+ * - emit a custom signal when an app icon is added
+ * - hide showApps label when the custom menu is shown.
+ * - add scrollview
+ *   ensure actor is visible on keyfocus inseid the scrollview
+ * - add 128px icon size, might be usefull for hidpi display
+ * - sync minimization application target position.
+ * - keep running apps ordered.
+ */
+const MyDash = new Lang.Class({
+    Name: 'DashToDock.MyDash',
+
+    _init: function(settings, monitorIndex) {
+        this._maxHeight = -1;
+        this.iconSize = 64;
+        this._availableIconSizes = baseIconSizes;
+        this._shownInitially = false;
+
+        this._dtdSettings = settings;
+        this._monitorIndex = monitorIndex;
+        this._position = Utils.getPosition(settings);
+        this._isHorizontal = ((this._position == St.Side.TOP) ||
+                               (this._position == St.Side.BOTTOM));
+        this._signalsHandler = new Utils.GlobalSignalsHandler();
+
+        this._dragPlaceholder = null;
+        this._dragPlaceholderPos = -1;
+        this._animatingPlaceholdersCount = 0;
+        this._showLabelTimeoutId = 0;
+        this._resetHoverTimeoutId = 0;
+        this._ensureAppIconVisibilityTimeoutId = 0;
+        this._labelShowing = false;
+
+        this._containerObject = new MyDashActor(settings);
+        this._container = this._containerObject.actor;
+        this._scrollView = new St.ScrollView({
+            name: 'dashtodockDashScrollview',
+            hscrollbar_policy: Gtk.PolicyType.NEVER,
+            vscrollbar_policy: Gtk.PolicyType.NEVER,
+            enable_mouse_scrolling: false
+        });
+
+        this._scrollView.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
+
+        this._box = new St.BoxLayout({
+            vertical: !this._isHorizontal,
+            clip_to_allocation: false,
+            x_align: Clutter.ActorAlign.START,
+            y_align: Clutter.ActorAlign.START
+        });
+        this._box._delegate = this;
+        this._container.add_actor(this._scrollView);
+        this._scrollView.add_actor(this._box);
+
+        this._showAppsIcon = new Dash.ShowAppsIcon();
+        AppIcons.extendShowAppsIcon(this._showAppsIcon, this._dtdSettings);
+        this._showAppsIcon.childScale = 1;
+        this._showAppsIcon.childOpacity = 255;
+        this._showAppsIcon.icon.setIconSize(this.iconSize);
+        this._hookUpLabel(this._showAppsIcon);
+
+        let appsIcon = this._showAppsIcon;
+        appsIcon.connect('menu-state-changed', Lang.bind(this, function(appsIcon, opened) {
+            this._itemMenuStateChanged(appsIcon, opened);
+        }));
+
+        this.showAppsButton = this._showAppsIcon.toggleButton;
+
+        this._container.add_actor(this._showAppsIcon);
+
+        let rtl = Clutter.get_default_text_direction() == Clutter.TextDirection.RTL;
+        this.actor = new St.Bin({
+            child: this._container,
+            y_align: St.Align.START,
+            x_align: rtl ? St.Align.END : St.Align.START
+        });
+
+        if (this._isHorizontal) {
+            this.actor.connect('notify::width', Lang.bind(this, function() {
+                if (this._maxHeight != this.actor.width)
+                    this._queueRedisplay();
+                this._maxHeight = this.actor.width;
+            }));
+        }
+        else {
+            this.actor.connect('notify::height', Lang.bind(this, function() {
+                if (this._maxHeight != this.actor.height)
+                    this._queueRedisplay();
+                this._maxHeight = this.actor.height;
+            }));
+        }
+
+        // Update minimization animation target position on allocation of the
+        // container and on scrollview change.
+        this._box.connect('notify::allocation', Lang.bind(this, this._updateAppsIconGeometry));
+        let scrollViewAdjustment = this._isHorizontal ? this._scrollView.hscroll.adjustment : this._scrollView.vscroll.adjustment;
+        scrollViewAdjustment.connect('notify::value', Lang.bind(this, this._updateAppsIconGeometry));
+
+        this._workId = Main.initializeDeferredWork(this._box, Lang.bind(this, this._redisplay));
+
+        this._settings = new Gio.Settings({
+            schema_id: 'org.gnome.shell'
+        });
+
+        this._appSystem = Shell.AppSystem.get_default();
+
+        this._signalsHandler.add([
+            this._appSystem,
+            'installed-changed',
+            Lang.bind(this, function() {
+                AppFavorites.getAppFavorites().reload();
+                this._queueRedisplay();
+            })
+        ], [
+            AppFavorites.getAppFavorites(),
+            'changed',
+            Lang.bind(this, this._queueRedisplay)
+        ], [
+            this._appSystem,
+            'app-state-changed',
+            Lang.bind(this, this._queueRedisplay)
+        ], [
+            Main.overview,
+            'item-drag-begin',
+            Lang.bind(this, this._onDragBegin)
+        ], [
+            Main.overview,
+            'item-drag-end',
+            Lang.bind(this, this._onDragEnd)
+        ], [
+            Main.overview,
+            'item-drag-cancelled',
+            Lang.bind(this, this._onDragCancelled)
+        ]);
+    },
+
+    destroy: function() {
+        this._signalsHandler.destroy();
+    },
+
+    _onScrollEvent: function(actor, event) {
+        // If scroll is not used because the icon is resized, let the scroll event propagate.
+        if (!this._dtdSettings.get_boolean('icon-size-fixed'))
+            return Clutter.EVENT_PROPAGATE;
+
+        // Event coordinates are relative to the stage but can be transformed
+        // as the actor will only receive events within his bounds.
+        let stage_x, stage_y, ok, event_x, event_y, actor_w, actor_h;
+        [stage_x, stage_y] = event.get_coords();
+        [ok, event_x, event_y] = actor.transform_stage_point(stage_x, stage_y);
+        [actor_w, actor_h] = actor.get_size();
+
+        // If the scroll event is within a 1px margin from
+        // the relevant edge of the actor, let the event propagate.
+        if ((this._position == St.Side.LEFT && event_x <= 1)
+            || (this._position == St.Side.RIGHT && event_x >= actor_w - 2)
+            || (this._position == St.Side.TOP && event_y <= 1)
+            || (this._position == St.Side.BOTTOM && event_y >= actor_h - 2))
+            return Clutter.EVENT_PROPAGATE;
+
+        // reset timeout to avid conflicts with the mousehover event
+        if (this._ensureAppIconVisibilityTimeoutId > 0) {
+            Mainloop.source_remove(this._ensureAppIconVisibilityTimeoutId);
+            this._ensureAppIconVisibilityTimeoutId = 0;
+        }
+
+        // Skip to avoid double events mouse
+        if (event.is_pointer_emulated())
+            return Clutter.EVENT_STOP;
+
+        let adjustment, delta;
+
+        if (this._isHorizontal)
+            adjustment = this._scrollView.get_hscroll_bar().get_adjustment();
+        else
+            adjustment = this._scrollView.get_vscroll_bar().get_adjustment();
+
+        let increment = adjustment.step_increment;
+
+        switch (event.get_scroll_direction()) {
+        case Clutter.ScrollDirection.UP:
+            delta = -increment;
+            break;
+        case Clutter.ScrollDirection.DOWN:
+            delta = +increment;
+            break;
+        case Clutter.ScrollDirection.SMOOTH:
+            let [dx, dy] = event.get_scroll_delta();
+            delta = dy * increment;
+            // Also consider horizontal component, for instance touchpad
+            if (this._isHorizontal)
+                delta += dx * increment;
+            break;
+        }
+
+        adjustment.set_value(adjustment.get_value() + delta);
+
+        return Clutter.EVENT_STOP;
+    },
+
+    _onDragBegin: function() {
+        this._dragCancelled = false;
+        this._dragMonitor = {
+            dragMotion: Lang.bind(this, this._onDragMotion)
+        };
+        DND.addDragMonitor(this._dragMonitor);
+
+        if (this._box.get_n_children() == 0) {
+            this._emptyDropTarget = new Dash.EmptyDropTargetItem();
+            this._box.insert_child_at_index(this._emptyDropTarget, 0);
+            this._emptyDropTarget.show(true);
+        }
+    },
+
+    _onDragCancelled: function() {
+        this._dragCancelled = true;
+        this._endDrag();
+    },
+
+    _onDragEnd: function() {
+        if (this._dragCancelled)
+            return;
+
+        this._endDrag();
+    },
+
+    _endDrag: function() {
+        this._clearDragPlaceholder();
+        this._clearEmptyDropTarget();
+        this._showAppsIcon.setDragApp(null);
+        DND.removeDragMonitor(this._dragMonitor);
+    },
+
+    _onDragMotion: function(dragEvent) {
+        let app = Dash.getAppFromSource(dragEvent.source);
+        if (app == null)
+            return DND.DragMotionResult.CONTINUE;
+
+        let showAppsHovered = this._showAppsIcon.contains(dragEvent.targetActor);
+
+        if (!this._box.contains(dragEvent.targetActor) || showAppsHovered)
+            this._clearDragPlaceholder();
+
+        if (showAppsHovered)
+            this._showAppsIcon.setDragApp(app);
+        else
+            this._showAppsIcon.setDragApp(null);
+
+        return DND.DragMotionResult.CONTINUE;
+    },
+
+    _appIdListToHash: function(apps) {
+        let ids = {};
+        for (let i = 0; i < apps.length; i++)
+            ids[apps[i].get_id()] = apps[i];
+        return ids;
+    },
+
+    _queueRedisplay: function() {
+        Main.queueDeferredWork(this._workId);
+    },
+
+    _hookUpLabel: function(item, appIcon) {
+        item.child.connect('notify::hover', Lang.bind(this, function() {
+            this._syncLabel(item, appIcon);
+        }));
+
+        let id = Main.overview.connect('hiding', Lang.bind(this, function() {
+            this._labelShowing = false;
+            item.hideLabel();
+        }));
+        item.child.connect('destroy', function() {
+            Main.overview.disconnect(id);
+        });
+
+        if (appIcon) {
+            appIcon.connect('sync-tooltip', Lang.bind(this, function() {
+                this._syncLabel(item, appIcon);
+            }));
+        }
+    },
+
+    _createAppItem: function(app) {
+        let appIcon = new AppIcons.MyAppIcon(this._dtdSettings, app, this._monitorIndex,
+                                             { setSizeManually: true,
+                                               showLabel: false });
+        if (appIcon._draggable) {
+            appIcon._draggable.connect('drag-begin', Lang.bind(this, function() {
+                appIcon.actor.opacity = 50;
+            }));
+            appIcon._draggable.connect('drag-end', Lang.bind(this, function() {
+                appIcon.actor.opacity = 255;
+            }));
+        }
+
+        appIcon.connect('menu-state-changed', Lang.bind(this, function(appIcon, opened) {
+            this._itemMenuStateChanged(item, opened);
+        }));
+
+        let item = new Dash.DashItemContainer();
+
+        extendDashItemContainer(item, this._dtdSettings);
+        item.setChild(appIcon.actor);
+
+        appIcon.actor.connect('notify::hover', Lang.bind(this, function() {
+            if (appIcon.actor.hover) {
+                this._ensureAppIconVisibilityTimeoutId = Mainloop.timeout_add(100, Lang.bind(this, function() {
+                    ensureActorVisibleInScrollView(this._scrollView, appIcon.actor);
+                    this._ensureAppIconVisibilityTimeoutId = 0;
+                    return GLib.SOURCE_REMOVE;
+                }));
+            }
+            else {
+                if (this._ensureAppIconVisibilityTimeoutId > 0) {
+                    Mainloop.source_remove(this._ensureAppIconVisibilityTimeoutId);
+                    this._ensureAppIconVisibilityTimeoutId = 0;
+                }
+            }
+        }));
+
+        appIcon.actor.connect('clicked', Lang.bind(this, function(actor) {
+            ensureActorVisibleInScrollView(this._scrollView, actor);
+        }));
+
+        appIcon.actor.connect('key-focus-in', Lang.bind(this, function(actor) {
+            let [x_shift, y_shift] = ensureActorVisibleInScrollView(this._scrollView, actor);
+
+            // This signal is triggered also by mouse click. The popup menu is opened at the original
+            // coordinates. Thus correct for the shift which is going to be applied to the scrollview.
+            if (appIcon._menu) {
+                appIcon._menu._boxPointer.xOffset = -x_shift;
+                appIcon._menu._boxPointer.yOffset = -y_shift;
+            }
+        }));
+
+        // Override default AppIcon label_actor, now the
+        // accessible_name is set at DashItemContainer.setLabelText
+        appIcon.actor.label_actor = null;
+        item.setLabelText(app.get_name());
+
+        appIcon.icon.setIconSize(this.iconSize);
+        this._hookUpLabel(item, appIcon);
+
+        return item;
+    },
+
+    /**
+     * Return an array with the "proper" appIcons currently in the dash
+     */
+    _getAppIcons: function() {
+        // Only consider children which are "proper"
+        // icons (i.e. ignoring drag placeholders) and which are not
+        // animating out (which means they will be destroyed at the end of
+        // the animation)
+        let iconChildren = this._box.get_children().filter(function(actor) {
+            return actor.child &&
+                   actor.child._delegate &&
+                   actor.child._delegate.icon &&
+                   !actor.animatingOut;
+        });
+
+        let appIcons = iconChildren.map(function(actor) {
+            return actor.child._delegate;
+        });
+
+      return appIcons;
+    },
+
+    _updateAppsIconGeometry: function() {
+        let appIcons = this._getAppIcons();
+        appIcons.forEach(function(icon) {
+            icon.updateIconGeometry();
+        });
+    },
+
+    _itemMenuStateChanged: function(item, opened) {
+        // When the menu closes, it calls sync_hover, which means
+        // that the notify::hover handler does everything we need to.
+        if (opened) {
+            if (this._showLabelTimeoutId > 0) {
+                Mainloop.source_remove(this._showLabelTimeoutId);
+                this._showLabelTimeoutId = 0;
+            }
+
+            item.hideLabel();
+        }
+        else {
+            // I want to listen from outside when a menu is closed. I used to
+            // add a custom signal to the appIcon, since gnome 3.8 the signal
+            // calling this callback was added upstream.
+            this.emit('menu-closed');
+        }
+    },
+
+    _syncLabel: function(item, appIcon) {
+        let shouldShow = appIcon ? appIcon.shouldShowTooltip() : item.child.get_hover();
+
+        if (shouldShow) {
+            if (this._showLabelTimeoutId == 0) {
+                let timeout = this._labelShowing ? 0 : DASH_ITEM_HOVER_TIMEOUT;
+                this._showLabelTimeoutId = Mainloop.timeout_add(timeout, Lang.bind(this, function() {
+                    this._labelShowing = true;
+                    item.showLabel();
+                    this._showLabelTimeoutId = 0;
+                    return GLib.SOURCE_REMOVE;
+                }));
+                GLib.Source.set_name_by_id(this._showLabelTimeoutId, '[gnome-shell] item.showLabel');
+                if (this._resetHoverTimeoutId > 0) {
+                    Mainloop.source_remove(this._resetHoverTimeoutId);
+                    this._resetHoverTimeoutId = 0;
+                }
+            }
+        }
+        else {
+            if (this._showLabelTimeoutId > 0)
+                Mainloop.source_remove(this._showLabelTimeoutId);
+            this._showLabelTimeoutId = 0;
+            item.hideLabel();
+            if (this._labelShowing) {
+                this._resetHoverTimeoutId = Mainloop.timeout_add(DASH_ITEM_HOVER_TIMEOUT, Lang.bind(this, function() {
+                    this._labelShowing = false;
+                    this._resetHoverTimeoutId = 0;
+                    return GLib.SOURCE_REMOVE;
+                }));
+                GLib.Source.set_name_by_id(this._resetHoverTimeoutId, '[gnome-shell] this._labelShowing');
+            }
+        }
+    },
+
+    _adjustIconSize: function() {
+        // For the icon size, we only consider children which are "proper"
+        // icons (i.e. ignoring drag placeholders) and which are not
+        // animating out (which means they will be destroyed at the end of
+        // the animation)
+        let iconChildren = this._box.get_children().filter(function(actor) {
+            return actor.child &&
+                   actor.child._delegate &&
+                   actor.child._delegate.icon &&
+                   !actor.animatingOut;
+        });
+
+        iconChildren.push(this._showAppsIcon);
+
+        if (this._maxHeight == -1)
+            return;
+
+        // Check if the container is present in the stage. This avoids critical
+        // errors when unlocking the screen
+        if (!this._container.get_stage())
+            return;
+
+        let themeNode = this._container.get_theme_node();
+        let maxAllocation = new Clutter.ActorBox({
+            x1: 0,
+            y1: 0,
+            x2: this._isHorizontal ? this._maxHeight : 42 /* whatever */,
+            y2: this._isHorizontal ? 42 : this._maxHeight
+        });
+        let maxContent = themeNode.get_content_box(maxAllocation);
+        let availHeight;
+        if (this._isHorizontal)
+            availHeight = maxContent.x2 - maxContent.x1;
+        else
+            availHeight = maxContent.y2 - maxContent.y1;
+        let spacing = themeNode.get_length('spacing');
+
+        let firstButton = iconChildren[0].child;
+        let firstIcon = firstButton._delegate.icon;
+
+        let minHeight, natHeight, minWidth, natWidth;
+
+        // Enforce the current icon size during the size request
+        firstIcon.setIconSize(this.iconSize);
+        [minHeight, natHeight] = firstButton.get_preferred_height(-1);
+        [minWidth, natWidth] = firstButton.get_preferred_width(-1);
+
+        let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
+        let iconSizes = this._availableIconSizes.map(function(s) {
+            return s * scaleFactor;
+        });
+
+        // Subtract icon padding and box spacing from the available height
+        if (this._isHorizontal)
+            availHeight -= iconChildren.length * (natWidth - this.iconSize * scaleFactor) +
+                           (iconChildren.length - 1) * spacing;
+        else
+            availHeight -= iconChildren.length * (natHeight - this.iconSize * scaleFactor) +
+                           (iconChildren.length - 1) * spacing;
+
+        let availSize = availHeight / iconChildren.length;
+
+
+        let newIconSize = this._availableIconSizes[0];
+        for (let i = 0; i < iconSizes.length; i++) {
+            if (iconSizes[i] < availSize)
+                newIconSize = this._availableIconSizes[i];
+        }
+
+        if (newIconSize == this.iconSize)
+            return;
+
+        let oldIconSize = this.iconSize;
+        this.iconSize = newIconSize;
+        this.emit('icon-size-changed');
+
+        let scale = oldIconSize / newIconSize;
+        for (let i = 0; i < iconChildren.length; i++) {
+            let icon = iconChildren[i].child._delegate.icon;
+
+            // Set the new size immediately, to keep the icons' sizes
+            // in sync with this.iconSize
+            icon.setIconSize(this.iconSize);
+
+            // Don't animate the icon size change when the overview
+            // is transitioning, or when initially filling
+            // the dash
+            if (Main.overview.animationInProgress ||
+                !this._shownInitially)
+                continue;
+
+            let [targetWidth, targetHeight] = icon.icon.get_size();
+
+            // Scale the icon's texture to the previous size and
+            // tween to the new size
+            icon.icon.set_size(icon.icon.width * scale,
+                               icon.icon.height * scale);
+
+            Tweener.addTween(icon.icon,
+                             { width: targetWidth,
+                               height: targetHeight,
+                               time: DASH_ANIMATION_TIME,
+                               transition: 'easeOutQuad',
+                             });
+        }
+    },
+
+    _redisplay: function() {
+        let favorites = AppFavorites.getAppFavorites().getFavoriteMap();
+
+        let running = this._appSystem.get_running();
+        if (this._dtdSettings.get_boolean('isolate-workspaces') ||
+            this._dtdSettings.get_boolean('isolate-monitors')) {
+            // When using isolation, we filter out apps that have no windows in
+            // the current workspace
+            let settings = this._dtdSettings;
+            let monitorIndex = this._monitorIndex;
+            running = running.filter(function(_app) {
+                return AppIcons.getInterestingWindows(_app, settings, monitorIndex).length != 0;
+            });
+        }
+
+        let children = this._box.get_children().filter(function(actor) {
+            return actor.child &&
+                   actor.child._delegate &&
+                   actor.child._delegate.app;
+        });
+        // Apps currently in the dash
+        let oldApps = children.map(function(actor) {
+            return actor.child._delegate.app;
+        });
+        // Apps supposed to be in the dash
+        let newApps = [];
+
+        if (this._dtdSettings.get_boolean('show-favorites')) {
+            for (let id in favorites)
+                newApps.push(favorites[id]);
+        }
+
+        // We reorder the running apps so that they don't change position on the
+        // dash with every redisplay() call
+        if (this._dtdSettings.get_boolean('show-running')) {
+            // First: add the apps from the oldApps list that are still running
+            for (let i = 0; i < oldApps.length; i++) {
+                let index = running.indexOf(oldApps[i]);
+                if (index > -1) {
+                    let app = running.splice(index, 1)[0];
+                    if (this._dtdSettings.get_boolean('show-favorites') && (app.get_id() in favorites))
+                        continue;
+                    newApps.push(app);
+                }
+            }
+            // Second: add the new apps
+            for (let i = 0; i < running.length; i++) {
+                let app = running[i];
+                if (this._dtdSettings.get_boolean('show-favorites') && (app.get_id() in favorites))
+                    continue;
+                newApps.push(app);
+            }
+        }
+
+        // Figure out the actual changes to the list of items; we iterate
+        // over both the list of items currently in the dash and the list
+        // of items expected there, and collect additions and removals.
+        // Moves are both an addition and a removal, where the order of
+        // the operations depends on whether we encounter the position
+        // where the item has been added first or the one from where it
+        // was removed.
+        // There is an assumption that only one item is moved at a given
+        // time; when moving several items at once, everything will still
+        // end up at the right position, but there might be additional
+        // additions/removals (e.g. it might remove all the launchers
+        // and add them back in the new order even if a smaller set of
+        // additions and removals is possible).
+        // If above assumptions turns out to be a problem, we might need
+        // to use a more sophisticated algorithm, e.g. Longest Common
+        // Subsequence as used by diff.
+
+        let addedItems = [];
+        let removedActors = [];
+
+        let newIndex = 0;
+        let oldIndex = 0;
+        while ((newIndex < newApps.length) || (oldIndex < oldApps.length)) {
+            // No change at oldIndex/newIndex
+            if (oldApps[oldIndex] && oldApps[oldIndex] == newApps[newIndex]) {
+                oldIndex++;
+                newIndex++;
+                continue;
+            }
+
+            // App removed at oldIndex
+            if (oldApps[oldIndex] && (newApps.indexOf(oldApps[oldIndex]) == -1)) {
+                removedActors.push(children[oldIndex]);
+                oldIndex++;
+                continue;
+            }
+
+            // App added at newIndex
+            if (newApps[newIndex] && (oldApps.indexOf(newApps[newIndex]) == -1)) {
+                let newItem = this._createAppItem(newApps[newIndex]);
+                addedItems.push({ app: newApps[newIndex],
+                                  item: newItem,
+                                  pos: newIndex });
+                newIndex++;
+                continue;
+            }
+
+            // App moved
+            let insertHere = newApps[newIndex + 1] && (newApps[newIndex + 1] == oldApps[oldIndex]);
+            let alreadyRemoved = removedActors.reduce(function(result, actor) {
+                let removedApp = actor.child._delegate.app;
+                return result || removedApp == newApps[newIndex];
+            }, false);
+
+            if (insertHere || alreadyRemoved) {
+                let newItem = this._createAppItem(newApps[newIndex]);
+                addedItems.push({
+                    app: newApps[newIndex],
+                    item: newItem,
+                    pos: newIndex + removedActors.length
+                });
+                newIndex++;
+            }
+            else {
+                removedActors.push(children[oldIndex]);
+                oldIndex++;
+            }
+        }
+
+        for (let i = 0; i < addedItems.length; i++)
+            this._box.insert_child_at_index(addedItems[i].item,
+                                            addedItems[i].pos);
+
+        for (let i = 0; i < removedActors.length; i++) {
+            let item = removedActors[i];
+
+            // Don't animate item removal when the overview is transitioning
+            if (!Main.overview.animationInProgress)
+                item.animateOutAndDestroy();
+            else
+                item.destroy();
+        }
+
+        this._adjustIconSize();
+
+        for (let i = 0; i < addedItems.length; i++)
+            // Emit a custom signal notifying that a new item has been added
+            this.emit('item-added', addedItems[i]);
+
+        // Skip animations on first run when adding the initial set
+        // of items, to avoid all items zooming in at once
+
+        let animate = this._shownInitially &&
+            !Main.overview.animationInProgress;
+
+        if (!this._shownInitially)
+            this._shownInitially = true;
+
+        for (let i = 0; i < addedItems.length; i++)
+            addedItems[i].item.show(animate);
+
+        // Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=692744
+        // Without it, StBoxLayout may use a stale size cache
+        this._box.queue_relayout();
+
+        // This is required for icon reordering when the scrollview is used.
+        this._updateAppsIconGeometry();
+
+        // This will update the size, and the corresponding number for each icon
+        this._updateNumberOverlay();
+    },
+
+    _updateNumberOverlay: function() {
+        let appIcons = this._getAppIcons();
+        let counter = 1;
+        appIcons.forEach(function(icon) {
+            if (counter < 10){
+                icon.setNumberOverlay(counter);
+                counter++;
+            }
+            else if (counter == 10) {
+                icon.setNumberOverlay(0);
+                counter++;
+            }
+            else {
+                // No overlay after 10
+                icon.setNumberOverlay(-1);
+            }
+            icon.updateNumberOverlay();
+        });
+
+    },
+
+    toggleNumberOverlay: function(activate) {
+        let appIcons = this._getAppIcons();
+        appIcons.forEach(function(icon) {
+            icon.toggleNumberOverlay(activate);
+        });
+    },
+
+    setIconSize: function(max_size, doNotAnimate) {
+        let max_allowed = baseIconSizes[baseIconSizes.length-1];
+        max_size = Math.min(max_size, max_allowed);
+
+        if (this._dtdSettings.get_boolean('icon-size-fixed'))
+            this._availableIconSizes = [max_size];
+        else {
+            this._availableIconSizes = baseIconSizes.filter(function(val) {
+                return (val<max_size);
+            });
+            this._availableIconSizes.push(max_size);
+        }
+
+        if (doNotAnimate)
+            this._shownInitially = false;
+
+        this._queueRedisplay();
+    },
+
+    /**
+     * Reset the displayed apps icon to mantain the correct order when changing
+     * show favorites/show running settings
+     */
+    resetAppIcons: function() {
+        let children = this._box.get_children().filter(function(actor) {
+            return actor.child &&
+                actor.child._delegate &&
+                actor.child._delegate.icon;
+        });
+        for (let i = 0; i < children.length; i++) {
+            let item = children[i];
+            item.destroy();
+        }
+
+        // to avoid ugly animations, just suppress them like when dash is first loaded.
+        this._shownInitially = false;
+        this._redisplay();
+
+    },
+
+    _clearDragPlaceholder: function() {
+        if (this._dragPlaceholder) {
+            this._animatingPlaceholdersCount++;
+            this._dragPlaceholder.animateOutAndDestroy();
+            this._dragPlaceholder.connect('destroy', Lang.bind(this, function() {
+                this._animatingPlaceholdersCount--;
+            }));
+            this._dragPlaceholder = null;
+        }
+        this._dragPlaceholderPos = -1;
+    },
+
+    _clearEmptyDropTarget: function() {
+        if (this._emptyDropTarget) {
+            this._emptyDropTarget.animateOutAndDestroy();
+            this._emptyDropTarget = null;
+        }
+    },
+
+    handleDragOver: function(source, actor, x, y, time) {
+        let app = Dash.getAppFromSource(source);
+
+        // Don't allow favoriting of transient apps
+        if (app == null || app.is_window_backed())
+            return DND.DragMotionResult.NO_DROP;
+
+        if (!this._settings.is_writable('favorite-apps') || !this._dtdSettings.get_boolean('show-favorites'))
+            return DND.DragMotionResult.NO_DROP;
+
+        let favorites = AppFavorites.getAppFavorites().getFavorites();
+        let numFavorites = favorites.length;
+
+        let favPos = favorites.indexOf(app);
+
+        let children = this._box.get_children();
+        let numChildren = children.length;
+        let boxHeight = 0;
+        for (let i = 0; i < numChildren; i++)
+            boxHeight += this._isHorizontal?children[i].width:children[i].height;
+
+        // Keep the placeholder out of the index calculation; assuming that
+        // the remove target has the same size as "normal" items, we don't
+        // need to do the same adjustment there.
+        if (this._dragPlaceholder) {
+            boxHeight -= this._isHorizontal?this._dragPlaceholder.width:this._dragPlaceholder.height;
+            numChildren--;
+        }
+
+        let pos;
+        if (!this._emptyDropTarget) {
+            pos = Math.floor((this._isHorizontal?x:y) * numChildren / boxHeight);
+            if (pos >  numChildren)
+                pos = numChildren;
+        }
+        else
+            pos = 0; // always insert at the top when dash is empty
+
+        // Take into account childredn position in rtl
+        if (this._isHorizontal && (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL))
+            pos = numChildren - pos;
+
+        if ((pos != this._dragPlaceholderPos) && (pos <= numFavorites) && (this._animatingPlaceholdersCount == 0)) {
+            this._dragPlaceholderPos = pos;
+
+            // Don't allow positioning before or after self
+            if ((favPos != -1) && (pos == favPos || pos == favPos + 1)) {
+                this._clearDragPlaceholder();
+                return DND.DragMotionResult.CONTINUE;
+            }
+
+            // If the placeholder already exists, we just move
+            // it, but if we are adding it, expand its size in
+            // an animation
+            let fadeIn;
+            if (this._dragPlaceholder) {
+                this._dragPlaceholder.destroy();
+                fadeIn = false;
+            }
+            else
+                fadeIn = true;
+
+            this._dragPlaceholder = new Dash.DragPlaceholderItem();
+            this._dragPlaceholder.child.set_width (this.iconSize);
+            this._dragPlaceholder.child.set_height (this.iconSize / 2);
+            this._box.insert_child_at_index(this._dragPlaceholder,
+                                            this._dragPlaceholderPos);
+            this._dragPlaceholder.show(fadeIn);
+            // Ensure the next and previous icon are visible when moving the placeholder
+            // (I assume there's room for both of them)
+            if (this._dragPlaceholderPos > 1)
+                ensureActorVisibleInScrollView(this._scrollView, this._box.get_children()[this._dragPlaceholderPos-1]);
+            if (this._dragPlaceholderPos < this._box.get_children().length-1)
+                ensureActorVisibleInScrollView(this._scrollView, this._box.get_children()[this._dragPlaceholderPos+1]);
+        }
+
+        // Remove the drag placeholder if we are not in the
+        // "favorites zone"
+        if (pos > numFavorites)
+            this._clearDragPlaceholder();
+
+        if (!this._dragPlaceholder)
+            return DND.DragMotionResult.NO_DROP;
+
+        let srcIsFavorite = (favPos != -1);
+
+        if (srcIsFavorite)
+            return DND.DragMotionResult.MOVE_DROP;
+
+        return DND.DragMotionResult.COPY_DROP;
+    },
+
+    /**
+     * Draggable target interface
+     */
+    acceptDrop: function(source, actor, x, y, time) {
+        let app = Dash.getAppFromSource(source);
+
+        // Don't allow favoriting of transient apps
+        if (app == null || app.is_window_backed())
+            return false;
+
+        if (!this._settings.is_writable('favorite-apps') || !this._dtdSettings.get_boolean('show-favorites'))
+            return false;
+
+        let id = app.get_id();
+
+        let favorites = AppFavorites.getAppFavorites().getFavoriteMap();
+
+        let srcIsFavorite = (id in favorites);
+
+        let favPos = 0;
+        let children = this._box.get_children();
+        for (let i = 0; i < this._dragPlaceholderPos; i++) {
+            if (this._dragPlaceholder && (children[i] == this._dragPlaceholder))
+                continue;
+
+            let childId = children[i].child._delegate.app.get_id();
+            if (childId == id)
+                continue;
+            if (childId in favorites)
+                favPos++;
+        }
+
+        // No drag placeholder means we don't wan't to favorite the app
+        // and we are dragging it to its original position
+        if (!this._dragPlaceholder)
+            return true;
+
+        Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
+            let appFavorites = AppFavorites.getAppFavorites();
+            if (srcIsFavorite)
+                appFavorites.moveFavoriteToPos(id, favPos);
+            else
+                appFavorites.addFavoriteAtPos(id, favPos);
+            return false;
+        }));
+
+        return true;
+    },
+
+    showShowAppsButton: function() {
+        this.showAppsButton.visible = true
+        this.showAppsButton.set_width(-1)
+        this.showAppsButton.set_height(-1)
+    },
+
+    hideShowAppsButton: function() {
+        this.showAppsButton.hide()
+        this.showAppsButton.set_width(0)
+        this.showAppsButton.set_height(0)
+    }
+});
+
+Signals.addSignalMethods(MyDash.prototype);
+
+/**
+ * This is a copy of the same function in utils.js, but also adjust horizontal scrolling
+ * and perform few further cheks on the current value to avoid changing the values when
+ * it would be clamp to the current one in any case.
+ * Return the amount of shift applied
+ */
+function ensureActorVisibleInScrollView(scrollView, actor) {
+    let adjust_v = true;
+    let adjust_h = true;
+
+    let vadjustment = scrollView.vscroll.adjustment;
+    let hadjustment = scrollView.hscroll.adjustment;
+    let [vvalue, vlower, vupper, vstepIncrement, vpageIncrement, vpageSize] = vadjustment.get_values();
+    let [hvalue, hlower, hupper, hstepIncrement, hpageIncrement, hpageSize] = hadjustment.get_values();
+
+    let [hvalue0, vvalue0] = [hvalue, vvalue];
+
+    let voffset = 0;
+    let hoffset = 0;
+    let fade = scrollView.get_effect('fade');
+    if (fade) {
+        voffset = fade.vfade_offset;
+        hoffset = fade.hfade_offset;
+    }
+
+    let box = actor.get_allocation_box();
+    let y1 = box.y1, y2 = box.y2, x1 = box.x1, x2 = box.x2;
+
+    let parent = actor.get_parent();
+    while (parent != scrollView) {
+        if (!parent)
+            throw new Error('Actor not in scroll view');
+
+        let box = parent.get_allocation_box();
+        y1 += box.y1;
+        y2 += box.y1;
+        x1 += box.x1;
+        x2 += box.x1;
+        parent = parent.get_parent();
+    }
+
+    if (y1 < vvalue + voffset)
+        vvalue = Math.max(0, y1 - voffset);
+    else if (vvalue < vupper - vpageSize && y2 > vvalue + vpageSize - voffset)
+        vvalue = Math.min(vupper -vpageSize, y2 + voffset - vpageSize);
+
+    if (x1 < hvalue + hoffset)
+        hvalue = Math.max(0, x1 - hoffset);
+    else if (hvalue < hupper - hpageSize && x2 > hvalue + hpageSize - hoffset)
+        hvalue = Math.min(hupper - hpageSize, x2 + hoffset - hpageSize);
+
+    if (vvalue !== vvalue0) {
+        Tweener.addTween(vadjustment, { value: vvalue,
+            time: Util.SCROLL_TIME,
+            transition: 'easeOutQuad'
+        });
+    }
+
+    if (hvalue !== hvalue0) {
+        Tweener.addTween(hadjustment,
+                         { value: hvalue,
+                           time: Util.SCROLL_TIME,
+                           transition: 'easeOutQuad' });
+    }
+
+    return [hvalue- hvalue0, vvalue - vvalue0];
+}
diff --git a/package/debian/changelog b/package/debian/changelog
new file mode 100644
index 0000000..8ebc09f
--- /dev/null
+++ b/package/debian/changelog
@@ -0,0 +1,72 @@
+gnome-shell-extension-dashtodock (60-2) testing; urgency=medium
+
+  * Changed distribution
+
+ -- Davisson Paulino <dhpaulino@gmail.com>  Mon, 25 Sep 2017 10:33:48 -0300
+
+gnome-shell-extension-dashtodock (60-1) unstable; urgency=medium
+
+  * New upstream release
+
+ -- Jonathan Carter <jcarter@linux.com>  Mon, 10 Jul 2017 10:22:45 +0200
+
+gnome-shell-extension-dashtodock (59-3) unstable; urgency=medium
+
+  * Don't attempt to build gschemas in rules (Closes: #867448)
+  * Add Testsuite field to debian/control
+
+ -- Jonathan Carter <jcarter@linux.com>  Thu, 06 Jul 2017 19:46:40 +0200
+
+gnome-shell-extension-dashtodock (59-2) unstable; urgency=medium
+
+  * Upload to unstable (no changes)
+
+ -- Jonathan Carter <jcarter@linux.com>  Wed, 05 Jul 2017 15:41:30 +0200
+
+gnome-shell-extension-dashtodock (59-1) experimental; urgency=medium
+
+  * New upstream release
+  * Improvements to install paths (thanks Fran Glais and Jeremy Bicha)
+  * Update standards version to 4.0.0
+
+ -- Jonathan Carter <jcarter@linux.com>  Thu, 08 Jun 2017 19:38:10 +0200
+
+gnome-shell-extension-dashtodock (57-1) unstable; urgency=medium
+
+  * New upstream release
+
+ -- Jonathan Carter <jcarter@linux.com>  Mon, 27 Mar 2017 12:42:33 +0200
+
+gnome-shell-extension-dashtodock (56-1) unstable; urgency=medium
+
+  * New upstream release
+  * Remove unneeded dependency on ${shlibs:Depends}
+  * Remove fix-install-path patch (accepted upstream)
+
+ -- Jonathan Carter <jcarter@linux.com>  Tue, 07 Feb 2017 13:50:55 +0200
+
+gnome-shell-extension-dashtodock (55-4) unstable; urgency=medium
+
+  * Depend on gir1.2-clutter-1.0 (Closes: #848662)
+
+ -- Jonathan Carter <jcarter@linux.com>  Mon, 23 Jan 2017 14:31:20 +0200
+
+gnome-shell-extension-dashtodock (55-3) unstable; urgency=medium
+
+  * Re-apply path fix patch (Closes: #844963)
+  * Upgrade debian/watch to version 4
+
+ -- Jonathan Carter <jcarter@linux.com>  Wed, 16 Nov 2016 09:07:36 +0200
+
+gnome-shell-extension-dashtodock (55-2) unstable; urgency=medium
+
+  * Fix install file to install compiled schema properly
+  * Bump compat level to 10 (no changes)
+
+ -- Jonathan Carter <jcarter@linux.com>  Mon, 14 Nov 2016 13:00:41 +0200
+
+gnome-shell-extension-dashtodock (55-1) unstable; urgency=medium
+
+  * Initial release (Closes: 829185)
+
+ -- Jonathan Carter <jcarter@linux.com>  Mon, 03 Oct 2016 09:22:40 +0200
diff --git a/package/debian/compat b/package/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/package/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/package/debian/control b/package/debian/control
new file mode 100644
index 0000000..1a3351e
--- /dev/null
+++ b/package/debian/control
@@ -0,0 +1,25 @@
+Source: gnome-shell-extension-dashtodock
+Section: gnome
+Priority: optional
+Maintainer: Jonathan Carter <jcarter@linux.com>
+Build-Depends: debhelper (>=9), libglib2.0-bin (>=2.48)
+Standards-Version: 3.9.8
+Homepage: https://micheleg.github.io/dash-to-dock/
+Vcs-Git: https://gitlab.com/highvoltage/gnome-shell-extension-dashtodock-packaging.git
+Vcs-Browser: https://gitlab.com/highvoltage/gnome-shell-extension-dashtodock-packaging/tree/master
+Testsuite: autopkgtest
+
+Package: gnome-shell-extension-dashtodock
+Architecture: all
+Depends: ${misc:Depends}, gnome-shell (>= 3.16), gir1.2-clutter-1.0
+Description: dash-to-dock extension for GNOME shell
+ Dash to dock extension is an enhanced dash for GNOME Shell. It moves the
+ default dash out of the overview and transforms it in a dock for an easier
+ launching of applications and a faster switching between windows and
+ workspaces without leaving the desktop view improving the workflow in your
+ system.
+ .
+ It supports autohide and intellihide modes as well as a fixed mode.
+ Optional features are available in the extension settings. The extension
+ is themes friendly.
+
diff --git a/package/debian/copyright b/package/debian/copyright
new file mode 100644
index 0000000..42395c1
--- /dev/null
+++ b/package/debian/copyright
@@ -0,0 +1,91 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: dash-to-dock
+Source: https://github.com/micheleg/dash-to-dock
+
+Files: *
+Copyright: 2016-2017 Michele <micxgx@gmail.com>
+License: GPL-2+
+
+Files: po/zh_CN.po
+Copyright: 2013 tuhaihe <1132321739qq@gmail.com>
+           2015-2016 绿色圣光 <lishaohui.qd@163.com>
+License: GPL-2+
+
+Files: po/tr.po
+Copyright: 2015 Mustafa Akgün <mustafa.akgun@gmail.com>
+           2016 Çağatay Yiğit Şahin <cyigitsahin@outlook.com>
+License: GPL-2+
+
+Files: po/sv.po
+Copyright: 2016 Anders Jonsson <anders.jonsson@norsjovallen.se>
+License: GPL-2+
+
+Files: po/sk.po
+Copyright: 2016 Dušan Kazik <prescott66@gmail.com>
+License: GPL-2+
+
+Files: po/ru.po
+Copyright: 2015-2016 Ivan Komaritsyn <vantu5z@mail.ru>
+License: GPL-2+
+
+Files: po/pt_BR.po
+Copyright: 2012 Carlos Alberto Junior Spohr Poletto <carlos.spohr@gmail.com>
+           2016 Fábio Nogueira <fnogueira@gnome.org>
+License: GPL-2+
+
+Files: po/pt.po
+Copyright: 2012 Carlos Alberto Junior Spohr Poletto <carlos.spohr@gmail.com>
+License: GPL-2+
+
+Files: po/pl.po
+Copyright: 2012-2016 Piotr Sokół <psokol.l10n@gmail.com>
+License: GPL-2+
+
+Files: po/nl.po
+Copyright: 2014 Michele <micxgx@gmail.com>
+           2014 Morris Jobke <hey@morrisjobke.de>
+           2012 Jonatan Zeidler <jonatan_zeidler@hotmail.de>
+           2012 jonius <jonatan_zeidler@gmx.de>
+           2015 Heimen Stoffels <vistausss@outlook.com>
+License: GPL-2+
+
+Files: po/ja.po
+Copyright: 2013 Jiro Matsuzawa <jmatsuzawa@gnome.org>
+           2014-2016 Debonne Hooties <debonne.hooties@gmail.com>
+License: GPL-2+
+
+Files: po/es.po
+Copyright: 2015 Hugo Olabera <hugolabe@gmail.com>
+License: GPL-2+
+
+Files: po/de.po
+Copyright: 2014 Michele <micxgx@gmail.com>
+           2014 Morris Jobke <hey@morrisjobke.de>
+           2012 Jonatan Zeidler <jonatan_zeidler@hotmail.de>
+           2012 jonius <jonatan_zeidler@gmx.de>
+License: GPL-2+
+
+Files: po/cs.po
+Copyright: 2015 Jiří Doubravský <jiri.doubravsky@gmail.com>
+License: GPL-2+
+
+Files: debian/*
+Copyright: 2016-2017 Jonathan Carter <jcater@linux.com>
+License: GPL-2+
+
+License: GPL-2+
+ This package is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>
+ .
+ On Debian systems, the complete text of the GNU General
+ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
diff --git a/package/debian/docs b/package/debian/docs
new file mode 100644
index 0000000..b43bf86
--- /dev/null
+++ b/package/debian/docs
@@ -0,0 +1 @@
+README.md
diff --git a/package/debian/install b/package/debian/install
new file mode 100644
index 0000000..e1ef024
--- /dev/null
+++ b/package/debian/install
@@ -0,0 +1 @@
+schemas/org.gnome.shell.extensions.dash-to-dock.gschema.xml usr/share/glib-2.0/schemas
diff --git a/package/debian/patches/makefile-clean-translations b/package/debian/patches/makefile-clean-translations
new file mode 100644
index 0000000..9515ed1
--- /dev/null
+++ b/package/debian/patches/makefile-clean-translations
@@ -0,0 +1,20 @@
+Description: Add translations to cleanup in makefile
+ Upstream makefile doesn not clean up translations.
+ Modified to fix this.
+ .
+ gnome-shell-extension-dashtodock (53-1) unstable; urgency=medium
+ .
+   * Initial release (Closes: 829185)
+Author: Jonathan Carter <jcarter@linux.com>
+Bug-Debian: https://bugs.debian.org/829185
+
+--- gnome-shell-extension-dashtodock-53.orig/Makefile
++++ gnome-shell-extension-dashtodock-53/Makefile
+@@ -24,6 +24,7 @@ all: extension
+ 
+ clean:
+ 	rm -f ./schemas/gschemas.compiled
++	rm -f ./po/*.mo
+ 
+ extension: ./schemas/gschemas.compiled $(MSGSRC:.po=.mo)
+ 
diff --git a/package/debian/patches/series b/package/debian/patches/series
new file mode 100644
index 0000000..6b7b386
--- /dev/null
+++ b/package/debian/patches/series
@@ -0,0 +1 @@
+makefile-clean-translations
diff --git a/package/debian/rules b/package/debian/rules
new file mode 100755
index 0000000..0bda0b7
--- /dev/null
+++ b/package/debian/rules
@@ -0,0 +1,13 @@
+#!/usr/bin/make -f
+
+include /usr/share/dpkg/pkg-info.mk
+BASEDIR=debian/gnome-shell-extension-dashtodock/usr/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com
+
+%:
+	dh $@
+
+override_dh_install:
+	dh_install
+	sed -i 's/"version": ""/"version": $(DEB_VERSION_UPSTREAM)/' $(BASEDIR)/metadata.json;
+	rm -f $(BASEDIR)/COPYING
+	rm -rf $(BASEDIR)/schemas
diff --git a/package/debian/source/format b/package/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/package/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/package/debian/watch b/package/debian/watch
new file mode 100644
index 0000000..58b82be
--- /dev/null
+++ b/package/debian/watch
@@ -0,0 +1,3 @@
+version=4
+https://github.com/micheleg/dash-to-dock/tags .*/extensions.gnome.org-v?(\d\S*)\.tar\.gz
+
diff --git a/package/docking.js b/package/docking.js
new file mode 100644
index 0000000..08707b4
--- /dev/null
+++ b/package/docking.js
@@ -0,0 +1,1909 @@
+// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
+
+const Clutter = imports.gi.Clutter;
+const GLib = imports.gi.GLib;
+const Gtk = imports.gi.Gtk;
+const Lang = imports.lang;
+const Meta = imports.gi.Meta;
+const Shell = imports.gi.Shell;
+const St = imports.gi.St;
+const Mainloop = imports.mainloop;
+const Params = imports.misc.params;
+
+const Main = imports.ui.main;
+const Dash = imports.ui.dash;
+const IconGrid = imports.ui.iconGrid;
+const Overview = imports.ui.overview;
+const OverviewControls = imports.ui.overviewControls;
+const PointerWatcher = imports.ui.pointerWatcher;
+const Tweener = imports.ui.tweener;
+const Signals = imports.signals;
+const ViewSelector = imports.ui.viewSelector;
+const WorkspaceSwitcherPopup= imports.ui.workspaceSwitcherPopup;
+const Layout = imports.ui.layout;
+const LayoutManager = imports.ui.main.layoutManager;
+
+const Me = imports.misc.extensionUtils.getCurrentExtension();
+const Convenience = Me.imports.convenience;
+const Utils = Me.imports.utils;
+const Intellihide = Me.imports.intellihide;
+const Theming = Me.imports.theming;
+const MyDash = Me.imports.dash;
+
+const DOCK_DWELL_CHECK_INTERVAL = 100;
+
+const State = {
+    HIDDEN:  0,
+    SHOWING: 1,
+    SHOWN:   2,
+    HIDING:  3
+};
+
+const scrollAction = {
+    DO_NOTHING: 0,
+    CYCLE_WINDOWS: 1,
+    SWITCH_WORKSPACE: 2
+};
+
+/**
+ * A simple St.Widget with one child whose allocation takes into account the
+ * slide out of its child via the _slidex parameter ([0:1]).
+ *
+ * Required since I want to track the input region of this container which is
+ * based on its allocation even if the child overlows the parent actor. By doing
+ * this the region of the dash that is slideout is not steling anymore the input
+ * regions making the extesion usable when the primary monitor is the right one.
+ *
+ * The slidex parameter can be used to directly animate the sliding. The parent
+ * must have a WEST (SOUTH) anchor_point to achieve the sliding to the RIGHT (BOTTOM)
+ * side.
+ *
+ * It can't be an extended object because of this: https://bugzilla.gnome.org/show_bug.cgi?id=688973.
+ * thus use the Shell.GenericContainer pattern.
+*/
+const DashSlideContainer = new Lang.Class({
+    Name: 'DashToDock.DashSlideContainer',
+
+    _init: function(params) {
+        // Default local params
+        let localDefaults = {
+            side: St.Side.LEFT,
+            initialSlideValue: 1
+        }
+
+        let localParams = Params.parse(params, localDefaults, true);
+
+        if (params) {
+            // Remove local params before passing the params to the parent
+            // constructor to avoid errors.
+            let prop;
+            for (prop in localDefaults) {
+                if ((prop in params))
+                    delete params[prop];
+            }
+        }
+
+        this.actor = new Shell.GenericContainer(params);
+        this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
+        this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
+        this.actor.connect('allocate', Lang.bind(this, this._allocate));
+
+        this.actor._delegate = this;
+
+        this._child = null;
+
+        // slide parameter: 1 = visible, 0 = hidden.
+        this._slidex = localParams.initialSlideValue;
+        this._side = localParams.side;
+        this._slideoutSize = 0; // minimum size when slided out
+    },
+
+    _allocate: function(actor, box, flags) {
+        if (this._child == null)
+            return;
+
+        let availWidth = box.x2 - box.x1;
+        let availHeight = box.y2 - box.y1;
+        let [minChildWidth, minChildHeight, natChildWidth, natChildHeight] =
+            this._child.get_preferred_size();
+
+        let childWidth = natChildWidth;
+        let childHeight = natChildHeight;
+
+        let childBox = new Clutter.ActorBox();
+
+        let slideoutSize = this._slideoutSize;
+
+        if (this._side == St.Side.LEFT) {
+            childBox.x1 = (this._slidex -1) * (childWidth - slideoutSize);
+            childBox.x2 = slideoutSize + this._slidex*(childWidth - slideoutSize);
+            childBox.y1 = 0;
+            childBox.y2 = childBox.y1 + childHeight;
+        }
+        else if ((this._side == St.Side.RIGHT) || (this._side == St.Side.BOTTOM)) {
+            childBox.x1 = 0;
+            childBox.x2 = childWidth;
+            childBox.y1 = 0;
+            childBox.y2 = childBox.y1 + childHeight;
+        }
+        else if (this._side == St.Side.TOP) {
+            childBox.x1 = 0;
+            childBox.x2 = childWidth;
+            childBox.y1 = (this._slidex -1) * (childHeight - slideoutSize);
+            childBox.y2 = slideoutSize + this._slidex * (childHeight - slideoutSize);
+        }
+
+        this._child.allocate(childBox, flags);
+        this._child.set_clip(-childBox.x1, -childBox.y1,
+                             -childBox.x1+availWidth, -childBox.y1 + availHeight);
+    },
+
+    /**
+     * Just the child width but taking into account the slided out part
+     */
+    _getPreferredWidth: function(actor, forHeight, alloc) {
+        let [minWidth, natWidth] = this._child.get_preferred_width(forHeight);
+        if ((this._side ==  St.Side.LEFT) || (this._side == St.Side.RIGHT)) {
+            minWidth = (minWidth - this._slideoutSize) * this._slidex + this._slideoutSize;
+            natWidth = (natWidth - this._slideoutSize) * this._slidex + this._slideoutSize;
+        }
+
+        alloc.min_size = minWidth;
+        alloc.natural_size = natWidth;
+    },
+
+    /**
+     * Just the child height but taking into account the slided out part
+     */
+    _getPreferredHeight: function(actor, forWidth,  alloc) {
+        let [minHeight, natHeight] = this._child.get_preferred_height(forWidth);
+        if ((this._side ==  St.Side.TOP) || (this._side ==  St.Side.BOTTOM)) {
+            minHeight = (minHeight - this._slideoutSize) * this._slidex + this._slideoutSize;
+            natHeight = (natHeight - this._slideoutSize) * this._slidex + this._slideoutSize;
+        }
+        alloc.min_size = minHeight;
+        alloc.natural_size = natHeight;
+    },
+
+    /**
+     * I was expecting it to be a virtual function... stil I don't understand
+     * how things work.
+     */
+    add_child: function(actor) {
+        // I'm supposed to have only on child
+        if (this._child !== null)
+            this.actor.remove_child(actor);
+
+        this._child = actor;
+        this.actor.add_child(actor);
+    },
+
+    set slidex(value) {
+        this._slidex = value;
+        this._child.queue_relayout();
+    },
+
+    get slidex() {
+        return this._slidex;
+    }
+});
+
+const DockedDash = new Lang.Class({
+    Name: 'DashToDock.DockedDash',
+
+    _init: function(settings, monitorIndex) {
+        this._rtl = (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL);
+
+        // Load settings
+        this._settings = settings;
+        this._monitorIndex = monitorIndex;
+        // Connect global signals
+        this._signalsHandler = new Utils.GlobalSignalsHandler();
+
+        this._bindSettingsChanges();
+
+        this._position = Utils.getPosition(settings);
+        this._isHorizontal = ((this._position == St.Side.TOP) || (this._position == St.Side.BOTTOM));
+
+        // Temporary ignore hover events linked to autohide for whatever reason
+        this._ignoreHover = false;
+        this._oldignoreHover = null;
+        // This variables are linked to the settings regardles of autohide or intellihide
+        // being temporary disable. Get set by _updateVisibilityMode;
+        this._autohideIsEnabled = null;
+        this._intellihideIsEnabled = null;
+        this._fixedIsEnabled = null;
+
+        // Create intellihide object to monitor windows overlapping
+        this._intellihide = new Intellihide.Intellihide(this._settings, this._monitorIndex);
+
+        // initialize dock state
+        this._dockState = State.HIDDEN;
+
+        // Put dock on the required monitor
+        this._monitor = Main.layoutManager.monitors[this._monitorIndex];
+
+        // this store size and the position where the dash is shown;
+        // used by intellihide module to check window overlap.
+        this.staticBox = new Clutter.ActorBox();
+
+        // Initialize pressure barrier variables
+        this._canUsePressure = false;
+        this._pressureBarrier = null;
+        this._barrier = null;
+        this._removeBarrierTimeoutId = 0;
+
+        // Initialize dwelling system variables
+        this._dockDwelling = false;
+        this._dockWatch = null;
+        this._dockDwellUserTime = 0;
+        this._dockDwellTimeoutId = 0
+
+        // Create a new dash object
+        this.dash = new MyDash.MyDash(this._settings, this._monitorIndex);
+
+        if (!this._settings.get_boolean('show-show-apps-button'))
+            this.dash.hideShowAppsButton();
+
+        // Create the main actor and the containers for sliding in and out and
+        // centering, turn on track hover
+
+        let positionStyleClass = ['top', 'right', 'bottom', 'left'];
+        // This is the centering actor
+        this.actor = new St.Bin({
+            name: 'dashtodockContainer',
+            reactive: false,
+            style_class: positionStyleClass[this._position],
+            x_align: this._isHorizontal?St.Align.MIDDLE:St.Align.START,
+            y_align: this._isHorizontal?St.Align.START:St.Align.MIDDLE
+        });
+        this.actor._delegate = this;
+
+        // This is the sliding actor whose allocation is to be tracked for input regions
+        this._slider = new DashSlideContainer({
+            side: this._position,
+            initialSlideValue: 0
+        });
+
+        // This is the actor whose hover status us tracked for autohide
+        this._box = new St.BoxLayout({
+            name: 'dashtodockBox',
+            reactive: true,
+            track_hover: true
+        });
+        this._box.connect('notify::hover', Lang.bind(this, this._hoverChanged));
+
+        // Create and apply height constraint to the dash. It's controlled by this.actor height
+        this.constrainSize = new Clutter.BindConstraint({
+            source: this.actor,
+            coordinate: this._isHorizontal?Clutter.BindCoordinate.WIDTH:Clutter.BindCoordinate.HEIGHT
+        });
+        this.dash.actor.add_constraint(this.constrainSize);
+
+        this._signalsHandler.add([
+            Main.overview,
+            'item-drag-begin',
+            Lang.bind(this, this._onDragStart)
+        ], [
+            Main.overview,
+            'item-drag-end',
+            Lang.bind(this, this._onDragEnd)
+        ], [
+            Main.overview,
+            'item-drag-cancelled',
+            Lang.bind(this, this._onDragEnd)
+        ], [
+            // update when workarea changes, for instance if  other extensions modify the struts
+            //(like moving th panel at the bottom)
+            global.screen,
+            'workareas-changed',
+            Lang.bind(this, this._resetPosition)
+        ], [
+            Main.overview,
+            'showing',
+            Lang.bind(this, this._onOverviewShowing)
+        ], [
+            Main.overview,
+            'hiding',
+            Lang.bind(this, this._onOverviewHiding)
+        ], [
+            // Hide on appview
+            Main.overview.viewSelector,
+            'page-changed',
+            Lang.bind(this, this._pageChanged)
+        ], [
+            Main.overview.viewSelector,
+            'page-empty',
+            Lang.bind(this, this._onPageEmpty)
+        ], [
+            // Ensure the ShowAppsButton status is kept in sync
+            Main.overview.viewSelector._showAppsButton,
+            'notify::checked',
+            Lang.bind(this, this._syncShowAppsButtonToggled)
+        ], [
+            global.screen,
+            'in-fullscreen-changed',
+            Lang.bind(this, this._updateBarrier)
+        ], [
+            // Monitor windows overlapping
+            this._intellihide,
+            'status-changed',
+            Lang.bind(this, this._updateDashVisibility)
+        ], [
+            // Keep dragged icon consistent in size with this dash
+            this.dash,
+            'icon-size-changed',
+            Lang.bind(this, function() {
+                Main.overview.dashIconSize = this.dash.iconSize;
+            })
+        ], [
+            // This duplicate the similar signal which is in owerview.js.
+            // Being connected and thus executed later this effectively
+            // overwrite any attempt to use the size of the default dash
+            //which given the customization is usually much smaller.
+            // I can't easily disconnect the original signal
+            Main.overview._controls.dash,
+            'icon-size-changed',
+            Lang.bind(this, function() {
+                Main.overview.dashIconSize = this.dash.iconSize;
+            })
+        ]);
+
+        this._injectionsHandler = new Utils.InjectionsHandler();
+        this._themeManager = new Theming.ThemeManager(this._settings, this.actor, this.dash);
+
+        // Since the actor is not a topLevel child and its parent is now not added to the Chrome,
+        // the allocation change of the parent container (slide in and slideout) doesn't trigger
+        // anymore an update of the input regions. Force the update manually.
+        this.actor.connect('notify::allocation',
+                                              Lang.bind(Main.layoutManager, Main.layoutManager._queueUpdateRegions));
+
+        this.dash._container.connect('allocation-changed', Lang.bind(this, this._updateStaticBox));
+        this._slider.actor.connect(this._isHorizontal ? 'notify::x' : 'notify::y', Lang.bind(this, this._updateStaticBox));
+
+        // sync hover after a popupmenu is closed
+        this.dash.connect('menu-closed', Lang.bind(this, function() {
+            this._box.sync_hover();
+        }));
+
+        // Load optional features that need to be activated for one dock only
+        if (this._monitorIndex == this._settings.get_int('preferred-monitor'))
+            this._enableExtraFeatures();
+        // Load optional features that need to be activated once per dock
+        this._optionalScrollWorkspaceSwitch();
+
+         // Delay operations that require the shell to be fully loaded and with
+         // user theme applied.
+
+        this._paintId = this.actor.connect('paint', Lang.bind(this, this._initialize));
+
+        // Manage the  which is used to reserve space in the overview for the dock
+        // Add and additional dashSpacer positioned according to the dash positioning.
+        // It gets restored on extension unload.
+        this._dashSpacer = new OverviewControls.DashSpacer();
+        this._dashSpacer.setDashActor(this._box);
+
+        if (this._position == St.Side.LEFT)
+            Main.overview._controls._group.insert_child_at_index(this._dashSpacer, this._rtl ? -1 : 0); // insert on first
+        else if (this._position ==  St.Side.RIGHT)
+            Main.overview._controls._group.insert_child_at_index(this._dashSpacer, this._rtl ? 0 : -1); // insert on last
+        else if (this._position == St.Side.TOP)
+            Main.overview._overview.insert_child_at_index(this._dashSpacer, 0);
+        else if (this._position == St.Side.BOTTOM)
+            Main.overview._overview.insert_child_at_index(this._dashSpacer, -1);
+
+        // Add dash container actor and the container to the Chrome.
+        this.actor.set_child(this._slider.actor);
+        this._slider.add_child(this._box);
+        this._box.add_actor(this.dash.actor);
+
+        // Add aligning container without tracking it for input region
+        Main.uiGroup.add_child(this.actor);
+
+        if (this._settings.get_boolean('dock-fixed')) {
+            // Note: tracking the fullscreen directly on the slider actor causes some hiccups when fullscreening
+            // windows of certain applications
+            Main.layoutManager._trackActor(this.actor, {affectsInputRegion: false, trackFullscreen: true});
+            Main.layoutManager._trackActor(this._slider.actor, {affectsStruts: true});
+        }
+        else
+            Main.layoutManager._trackActor(this._slider.actor);
+
+        // Set initial position
+        this._resetDepth();
+        this._resetPosition();
+    },
+
+    _initialize: function() {
+        if (this._paintId > 0) {
+            this.actor.disconnect(this._paintId);
+            this._paintId=0;
+        }
+
+        this.dash.setIconSize(this._settings.get_int('dash-max-icon-size'), true);
+
+        // Apply custome css class according to the settings
+        this._themeManager.updateCustomTheme();
+
+        // Since Gnome 3.8 dragging an app without having opened the overview before cause the attemp to
+        //animate a null target since some variables are not initialized when the viewSelector is created
+        if (Main.overview.viewSelector._activePage == null)
+            Main.overview.viewSelector._activePage = Main.overview.viewSelector._workspacesPage;
+
+        this._updateVisibilityMode();
+
+        // In case we are already inside the overview when the extension is loaded,
+        // for instance on unlocking the screen if it was locked with the overview open.
+        if (Main.overview.visibleTarget) {
+            this._onOverviewShowing();
+            this._pageChanged();
+        }
+
+        // Setup pressure barrier (GS38+ only)
+        this._updatePressureBarrier();
+        this._updateBarrier();
+
+        // setup dwelling system if pressure barriers are not available
+        this._setupDockDwellIfNeeded();
+    },
+
+    destroy: function() {
+        // Disconnect global signals
+        this._signalsHandler.destroy();
+        // The dash, intellihide and themeManager have global signals as well internally
+        this.dash.destroy();
+        this._intellihide.destroy();
+        this._themeManager.destroy();
+
+        this._injectionsHandler.destroy();
+
+        // Destroy main clutter actor: this should be sufficient removing it and
+        // destroying  all its children
+        this.actor.destroy();
+
+        // Remove barrier timeout
+        if (this._removeBarrierTimeoutId > 0)
+            Mainloop.source_remove(this._removeBarrierTimeoutId);
+
+        // Remove existing barrier
+        this._removeBarrier();
+
+        // Remove pointer watcher
+        if (this._dockWatch) {
+            PointerWatcher.getPointerWatcher()._removeWatch(this._dockWatch);
+            this._dockWatch = null;
+        }
+
+        // Remove the dashSpacer
+        this._dashSpacer.destroy();
+
+        // Restore legacyTray position
+        this._resetLegacyTray();
+
+    },
+
+    _bindSettingsChanges: function() {
+        this._signalsHandler.add([
+            this._settings,
+            'changed::scroll-action',
+            Lang.bind(this, function() {
+                    this._optionalScrollWorkspaceSwitch();
+            })
+        ], [
+            this._settings,
+            'changed::dash-max-icon-size',
+            Lang.bind(this, function() {
+                    this.dash.setIconSize(this._settings.get_int('dash-max-icon-size'));
+            })
+        ], [
+            this._settings,
+            'changed::icon-size-fixed',
+            Lang.bind(this, function() {
+                    this.dash.setIconSize(this._settings.get_int('dash-max-icon-size'));
+            })
+        ], [
+            this._settings,
+            'changed::show-favorites',
+            Lang.bind(this, function() {
+                    this.dash.resetAppIcons();
+            })
+        ], [
+            this._settings,
+            'changed::show-running',
+            Lang.bind(this, function() {
+                    this.dash.resetAppIcons();
+            })
+        ], [
+            this._settings,
+            'changed::show-apps-at-top',
+            Lang.bind(this, function() {
+                    this.dash.resetAppIcons();
+            })
+        ], [
+            this._settings,
+            'changed::show-show-apps-button',
+            Lang.bind(this, function() {
+                    if (this._settings.get_boolean('show-show-apps-button'))
+                        this.dash.showShowAppsButton();
+                    else
+                        this.dash.hideShowAppsButton();
+            })
+        ], [
+            this._settings,
+            'changed::dock-fixed',
+            Lang.bind(this, function() {
+                    if (this._settings.get_boolean('dock-fixed')) {
+                        Main.layoutManager._untrackActor(this.actor);
+                        Main.layoutManager._trackActor(this.actor, {affectsInputRegion: false, trackFullscreen: true});
+                        Main.layoutManager._untrackActor(this._slider.actor);
+                        Main.layoutManager._trackActor(this._slider.actor, {affectsStruts: true});
+                    } else {
+                        Main.layoutManager._untrackActor(this.actor);
+                        Main.layoutManager._untrackActor(this._slider.actor);
+                        Main.layoutManager._trackActor(this._slider.actor);
+                    }
+
+                    this._resetPosition();
+
+                    // Add or remove barrier depending on if dock-fixed
+                    this._updateBarrier();
+
+                    this._updateVisibilityMode();
+            })
+        ], [
+            this._settings,
+            'changed::intellihide',
+            Lang.bind(this, this._updateVisibilityMode)
+        ], [
+            this._settings,
+            'changed::intellihide-mode',
+            Lang.bind(this, function() {
+                    this._intellihide.forceUpdate();
+            })
+        ], [
+            this._settings,
+            'changed::autohide',
+            Lang.bind(this, function() {
+                    this._updateVisibilityMode();
+                    this._updateBarrier();
+            })
+        ], [
+            this._settings,
+            'changed::autohide-in-fullscreen',
+            Lang.bind(this, this._updateBarrier)
+        ],
+        [
+            this._settings,
+            'changed::extend-height',
+            Lang.bind(this, this._resetPosition)
+        ], [
+            this._settings,
+            'changed::height-fraction',
+            Lang.bind(this, this._resetPosition)
+        ], [
+            this._settings,
+            'changed::require-pressure-to-show',
+            Lang.bind(this, function() {
+                    // Remove pointer watcher
+                    if (this._dockWatch) {
+                        PointerWatcher.getPointerWatcher()._removeWatch(this._dockWatch);
+                        this._dockWatch = null;
+                    }
+                    this._setupDockDwellIfNeeded();
+                    this._updateBarrier();
+            })
+        ], [
+            this._settings,
+            'changed::pressure-threshold',
+            Lang.bind(this, function() {
+                    this._updatePressureBarrier();
+                    this._updateBarrier();
+            })
+        ]);
+
+    },
+
+    /**
+     * This is call when visibility settings change
+     */
+    _updateVisibilityMode: function() {
+        if (this._settings.get_boolean('dock-fixed')) {
+            this._fixedIsEnabled = true;
+            this._autohideIsEnabled = false;
+            this._intellihideIsEnabled = false;
+        }
+        else {
+            this._fixedIsEnabled = false;
+            this._autohideIsEnabled = this._settings.get_boolean('autohide')
+            this._intellihideIsEnabled = this._settings.get_boolean('intellihide')
+        }
+
+        if (this._intellihideIsEnabled)
+            this._intellihide.enable();
+        else
+            this._intellihide.disable();
+
+        this._updateDashVisibility();
+    },
+
+    /**
+     * Show/hide dash based on, in order of priority:
+     * overview visibility
+     * fixed mode
+     * intellihide
+     * autohide
+     * overview visibility
+     */
+    _updateDashVisibility: function() {
+        if (Main.overview.visibleTarget)
+            return;
+
+        if (this._fixedIsEnabled) {
+            this._removeAnimations();
+            this._animateIn(this._settings.get_double('animation-time'), 0);
+        }
+        else if (this._intellihideIsEnabled) {
+            if (this._intellihide.getOverlapStatus()) {
+                this._ignoreHover = false;
+                // Do not hide if autohide is enabled and mouse is hover
+                if (!this._box.hover || !this._autohideIsEnabled)
+                    this._animateOut(this._settings.get_double('animation-time'), 0);
+            }
+            else {
+                this._ignoreHover = true;
+                this._removeAnimations();
+                this._animateIn(this._settings.get_double('animation-time'), 0);
+            }
+        }
+        else {
+            if (this._autohideIsEnabled) {
+                this._ignoreHover = false;
+                global.sync_pointer();
+
+                if (this._box.hover)
+                    this._animateIn(this._settings.get_double('animation-time'), 0);
+                else
+                    this._animateOut(this._settings.get_double('animation-time'), 0);
+            }
+            else
+                this._animateOut(this._settings.get_double('animation-time'), 0);
+        }
+    },
+
+    _onOverviewShowing: function() {
+        this._ignoreHover = true;
+        this._intellihide.disable();
+        this._removeAnimations();
+        this._animateIn(this._settings.get_double('animation-time'), 0);
+    },
+
+    _onOverviewHiding: function() {
+        this._ignoreHover = false;
+        this._intellihide.enable();
+        this._updateDashVisibility();
+    },
+
+    _hoverChanged: function() {
+        if (!this._ignoreHover) {
+            // Skip if dock is not in autohide mode for instance because it is shown
+            // by intellihide.
+            if (this._autohideIsEnabled) {
+                if (this._box.hover)
+                    this._show();
+                else
+                    this._hide();
+            }
+        }
+    },
+
+    _show: function() {
+        if ((this._dockState == State.HIDDEN) || (this._dockState == State.HIDING)) {
+            if (this._dockState == State.HIDING)
+                // suppress all potential queued hiding animations - i.e. added to Tweener but not started,
+                // always give priority to show
+                this._removeAnimations();
+
+            this.emit('showing');
+            this._animateIn(this._settings.get_double('animation-time'), 0);
+        }
+    },
+
+    _hide: function() {
+        // If no hiding animation is running or queued
+        if ((this._dockState == State.SHOWN) || (this._dockState == State.SHOWING)) {
+            let delay;
+
+            if (this._dockState == State.SHOWING)
+                //if a show already started, let it finish; queue hide without removing the show.
+                // to obtain this I increase the delay to avoid the overlap and interference
+                // between the animations
+                delay = this._settings.get_double('hide-delay') + this._settings.get_double('animation-time');
+            else
+                delay = this._settings.get_double('hide-delay');
+
+            this.emit('hiding');
+            this._animateOut(this._settings.get_double('animation-time'), delay);
+        }
+    },
+
+    _animateIn: function(time, delay) {
+        this._dockState = State.SHOWING;
+
+        Tweener.addTween(this._slider, {
+            slidex: 1,
+            time: time,
+            delay: delay,
+            transition: 'easeOutQuad',
+            onComplete: Lang.bind(this, function() {
+                this._dockState = State.SHOWN;
+                // Remove barrier so that mouse pointer is released and can access monitors on other side of dock
+                // NOTE: Delay needed to keep mouse from moving past dock and re-hiding dock immediately. This
+                // gives users an opportunity to hover over the dock
+                if (this._removeBarrierTimeoutId > 0)
+                    Mainloop.source_remove(this._removeBarrierTimeoutId);
+                this._removeBarrierTimeoutId = Mainloop.timeout_add(100, Lang.bind(this, this._removeBarrier));
+            })
+        });
+    },
+
+    _animateOut: function(time, delay) {
+        this._dockState = State.HIDING;
+        Tweener.addTween(this._slider, {
+            slidex: 0,
+            time: time,
+            delay: delay ,
+            transition: 'easeOutQuad',
+            onComplete: Lang.bind(this, function() {
+                this._dockState = State.HIDDEN;
+                this._updateBarrier();
+            })
+        });
+    },
+
+    /**
+     * Dwelling system based on the GNOME Shell 3.14 messageTray code.
+     */
+    _setupDockDwellIfNeeded: function() {
+        // If we don't have extended barrier features, then we need
+        // to support the old tray dwelling mechanism.
+        if (!global.display.supports_extended_barriers() || !this._settings.get_boolean('require-pressure-to-show')) {
+            let pointerWatcher = PointerWatcher.getPointerWatcher();
+            this._dockWatch = pointerWatcher.addWatch(DOCK_DWELL_CHECK_INTERVAL, Lang.bind(this, this._checkDockDwell));
+            this._dockDwelling = false;
+            this._dockDwellUserTime = 0;
+        }
+    },
+
+    _checkDockDwell: function(x, y) {
+
+        let workArea = Main.layoutManager.getWorkAreaForMonitor(this._monitor.index)
+        let shouldDwell;
+        // Check for the correct screen edge, extending the sensitive area to the whole workarea,
+        // minus 1 px to avoid conflicting with other active corners.
+        if (this._position == St.Side.LEFT)
+            shouldDwell = (x == this._monitor.x) && (y > workArea.y) && (y < workArea.y + workArea.height);
+        else if (this._position == St.Side.RIGHT)
+            shouldDwell = (x == this._monitor.x + this._monitor.width - 1) && (y > workArea.y) && (y < workArea.y + workArea.height);
+        else if (this._position == St.Side.TOP)
+            shouldDwell = (y == this._monitor.y) && (x > workArea.x) && (x < workArea.x + workArea.width);
+        else if (this._position == St.Side.BOTTOM)
+            shouldDwell = (y == this._monitor.y + this._monitor.height - 1) && (x > workArea.x) && (x < workArea.x + workArea.width);
+
+        if (shouldDwell) {
+            // We only set up dwell timeout when the user is not hovering over the dock
+            // already (!this._box.hover).
+            // The _dockDwelling variable is used so that we only try to
+            // fire off one dock dwell - if it fails (because, say, the user has the mouse down),
+            // we don't try again until the user moves the mouse up and down again.
+            if (!this._dockDwelling && !this._box.hover && (this._dockDwellTimeoutId == 0)) {
+                // Save the interaction timestamp so we can detect user input
+                let focusWindow = global.display.focus_window;
+                this._dockDwellUserTime = focusWindow ? focusWindow.user_time : 0;
+
+                this._dockDwellTimeoutId = Mainloop.timeout_add(this._settings.get_double('show-delay') * 1000,
+                                                                Lang.bind(this, this._dockDwellTimeout));
+                GLib.Source.set_name_by_id(this._dockDwellTimeoutId, '[dash-to-dock] this._dockDwellTimeout');
+            }
+            this._dockDwelling = true;
+        }
+        else {
+            this._cancelDockDwell();
+            this._dockDwelling = false;
+        }
+    },
+
+    _cancelDockDwell: function() {
+        if (this._dockDwellTimeoutId != 0) {
+            Mainloop.source_remove(this._dockDwellTimeoutId);
+            this._dockDwellTimeoutId = 0;
+        }
+    },
+
+    _dockDwellTimeout: function() {
+        this._dockDwellTimeoutId = 0;
+
+        if (!this._settings.get_boolean('autohide-in-fullscreen') && this._monitor.inFullscreen)
+            return GLib.SOURCE_REMOVE;
+
+        // We don't want to open the tray when a modal dialog
+        // is up, so we check the modal count for that. When we are in the
+        // overview we have to take the overview's modal push into account
+        if (Main.modalCount > (Main.overview.visible ? 1 : 0))
+            return GLib.SOURCE_REMOVE;
+
+        // If the user interacted with the focus window since we started the tray
+        // dwell (by clicking or typing), don't activate the message tray
+        let focusWindow = global.display.focus_window;
+        let currentUserTime = focusWindow ? focusWindow.user_time : 0;
+        if (currentUserTime != this._dockDwellUserTime)
+            return GLib.SOURCE_REMOVE;
+
+        // Reuse the pressure version function, the logic is the same
+        this._onPressureSensed();
+        return GLib.SOURCE_REMOVE;
+    },
+
+    _updatePressureBarrier: function() {
+        this._canUsePressure = global.display.supports_extended_barriers();
+        let pressureThreshold = this._settings.get_double('pressure-threshold');
+
+        // Remove existing pressure barrier
+        if (this._pressureBarrier) {
+            this._pressureBarrier.destroy();
+            this._pressureBarrier = null;
+        }
+
+        if (this._barrier) {
+            this._barrier.destroy();
+            this._barrier = null;
+        }
+
+        // Create new pressure barrier based on pressure threshold setting
+        if (this._canUsePressure) {
+            this._pressureBarrier = new Layout.PressureBarrier(pressureThreshold, this._settings.get_double('show-delay')*1000,
+                                Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW);
+            this._pressureBarrier.connect('trigger', Lang.bind(this, function(barrier) {
+                if (!this._settings.get_boolean('autohide-in-fullscreen') && this._monitor.inFullscreen)
+                    return;
+                this._onPressureSensed();
+            }));
+        }
+    },
+
+    /**
+     * handler for mouse pressure sensed
+     */
+    _onPressureSensed: function() {
+        if (Main.overview.visibleTarget)
+            return;
+
+        // In case the mouse move away from the dock area before hovering it, in such case the leave event
+        // would never be triggered and the dock would stay visible forever.
+        let triggerTimeoutId =  Mainloop.timeout_add(250, Lang.bind(this, function() {
+            triggerTimeoutId = 0;
+
+            let [x, y, mods] = global.get_pointer();
+            let shouldHide = true;
+            switch (this._position) {
+            case St.Side.LEFT:
+                if (x <= this.staticBox.x2 &&
+                    x >= this._monitor.x &&
+                    y >= this._monitor.y &&
+                    y <= this._monitor.y + this._monitor.height) {
+                    shouldHide = false;
+                }
+                break;
+            case St.Side.RIGHT:
+                if (x >= this.staticBox.x1 &&
+                    x <= this._monitor.x + this._monitor.width &&
+                    y >= this._monitor.y &&
+                    y <= this._monitor.y + this._monitor.height) {
+                    shouldHide = false;
+                }
+                break;
+            case St.Side.TOP:
+                if (x >= this._monitor.x &&
+                    x <= this._monitor.x + this._monitor.width &&
+                    y <= this.staticBox.y2 &&
+                    y >= this._monitor.y) {
+                    shouldHide = false;
+                }
+                break;
+            case St.Side.BOTTOM:
+                if (x >= this._monitor.x &&
+                    x <= this._monitor.x + this._monitor.width &&
+                    y >= this.staticBox.y1 &&
+                    y <= this._monitor.y + this._monitor.height) {
+                    shouldHide = false;
+                }
+            }
+            if (shouldHide) {
+                this._hoverChanged();
+                return GLib.SOURCE_REMOVE;
+            }
+            else {
+                return GLib.SOURCE_CONTINUE;
+            }
+
+        }));
+
+        this._show();
+    },
+
+    /**
+     * Remove pressure barrier
+     */
+    _removeBarrier: function() {
+        if (this._barrier) {
+            if (this._pressureBarrier)
+                this._pressureBarrier.removeBarrier(this._barrier);
+            this._barrier.destroy();
+            this._barrier = null;
+        }
+        this._removeBarrierTimeoutId = 0;
+        return false;
+    },
+
+    /**
+     * Update pressure barrier size
+     */
+    _updateBarrier: function() {
+        // Remove existing barrier
+        this._removeBarrier();
+
+        // The barrier needs to be removed in fullscreen with autohide disabled, otherwise the mouse can
+        // get trapped on monitor.
+        if (this._monitor.inFullscreen && !this._settings.get_boolean('autohide-in-fullscreen'))
+            return
+
+        // Manually reset pressure barrier
+        // This is necessary because we remove the pressure barrier when it is triggered to show the dock
+        if (this._pressureBarrier) {
+            this._pressureBarrier._reset();
+            this._pressureBarrier._isTriggered = false;
+        }
+
+        // Create new barrier
+        // The barrier extends to the whole workarea, minus 1 px to avoid conflicting with other active corners
+        // Note: dash in fixed position doesn't use pressure barrier.
+        if (this._canUsePressure && this._autohideIsEnabled && this._settings.get_boolean('require-pressure-to-show')) {
+            let x1, x2, y1, y2, direction;
+            let workArea = Main.layoutManager.getWorkAreaForMonitor(this._monitor.index)
+
+            if (this._position == St.Side.LEFT) {
+                x1 = this._monitor.x + 1;
+                x2 = x1;
+                y1 = workArea.y + 1;
+                y2 = workArea.y + workArea.height - 1;
+                direction = Meta.BarrierDirection.POSITIVE_X;
+            }
+            else if (this._position == St.Side.RIGHT) {
+                x1 = this._monitor.x + this._monitor.width - 1;
+                x2 = x1;
+                y1 = workArea.y + 1;
+                y2 = workArea.y + workArea.height - 1;
+                direction = Meta.BarrierDirection.NEGATIVE_X;
+            }
+            else if (this._position == St.Side.TOP) {
+                x1 = workArea.x + 1;
+                x2 = workArea.x + workArea.width - 1;
+                y1 = this._monitor.y;
+                y2 = y1;
+                direction = Meta.BarrierDirection.POSITIVE_Y;
+            }
+            else if (this._position == St.Side.BOTTOM) {
+                x1 = workArea.x + 1;
+                x2 = workArea.x + workArea.width - 1;
+                y1 = this._monitor.y + this._monitor.height;
+                y2 = y1;
+                direction = Meta.BarrierDirection.NEGATIVE_Y;
+            }
+
+            this._barrier = new Meta.Barrier({
+                display: global.display,
+                x1: x1,
+                x2: x2,
+                y1: y1,
+                y2: y2,
+                directions: direction
+            });
+            if (this._pressureBarrier)
+                this._pressureBarrier.addBarrier(this._barrier);
+        }
+    },
+
+    _isPrimaryMonitor: function() {
+        return (this._monitorIndex == Main.layoutManager.primaryIndex);
+    },
+
+    _resetPosition: function() {
+        // Ensure variables linked to settings are updated.
+        this._updateVisibilityMode();
+
+        let extendHeight = this._settings.get_boolean('extend-height');
+
+        // Note: do not use the workarea coordinates in the direction on which the dock is placed,
+        // to avoid a loop [position change -> workArea change -> position change] with
+        // fixed dock.
+        let workArea = Main.layoutManager.getWorkAreaForMonitor(this._monitorIndex);
+
+        // Reserve space for the dash on the overview
+        // if the dock is on the primary monitor
+        if (this._isPrimaryMonitor())
+            this._dashSpacer.show();
+        else
+            // No space is required in the overview of the dash
+            this._dashSpacer.hide();
+
+        let fraction = this._settings.get_double('height-fraction');
+
+        if (extendHeight)
+            fraction = 1;
+        else if ((fraction < 0) || (fraction > 1))
+            fraction = 0.95;
+
+        let anchor_point;
+
+        if (this._isHorizontal) {
+            this.actor.width = Math.round( fraction * workArea.width);
+
+            let pos_y;
+            if (this._position == St.Side.BOTTOM) {
+                pos_y =  this._monitor.y + this._monitor.height;
+                anchor_point = Clutter.Gravity.SOUTH_WEST;
+            }
+            else {
+                pos_y = this._monitor.y;
+                anchor_point = Clutter.Gravity.NORTH_WEST;
+            }
+
+            this.actor.move_anchor_point_from_gravity(anchor_point);
+            this.actor.x = workArea.x + Math.round((1 - fraction) / 2 * workArea.width);
+            this.actor.y = pos_y;
+
+            if (extendHeight) {
+                this.dash._container.set_width(this.actor.width);
+                this.actor.add_style_class_name('extended');
+            }
+            else {
+                this.dash._container.set_width(-1);
+                this.actor.remove_style_class_name('extended');
+            }
+        }
+        else {
+            this.actor.height = Math.round(fraction * workArea.height);
+
+            let pos_x;
+            if (this._position == St.Side.RIGHT) {
+                pos_x =  this._monitor.x + this._monitor.width;
+                anchor_point = Clutter.Gravity.NORTH_EAST;
+            }
+            else {
+                pos_x =  this._monitor.x;
+                anchor_point = Clutter.Gravity.NORTH_WEST;
+            }
+
+            this.actor.move_anchor_point_from_gravity(anchor_point);
+            this.actor.x = pos_x;
+            this.actor.y = workArea.y + Math.round((1 - fraction) / 2 * workArea.height);
+
+            if (extendHeight) {
+                this.dash._container.set_height(this.actor.height);
+                this.actor.add_style_class_name('extended');
+            }
+            else {
+                this.dash._container.set_height(-1);
+                this.actor.remove_style_class_name('extended');
+            }
+        }
+
+        this._y0 = this.actor.y;
+
+        this._adjustLegacyTray();
+    },
+
+    // Set the dash at the correct depth in z
+    _resetDepth: function() {
+        // Keep the dash below the modalDialogGroup and the legacyTray
+        if (Main.legacyTray && Main.legacyTray.actor)
+            Main.layoutManager.uiGroup.set_child_below_sibling(this.actor, Main.legacyTray.actor);
+        else
+            Main.layoutManager.uiGroup.set_child_below_sibling(this.actor, Main.layoutManager.modalDialogGroup);
+    },
+
+    _adjustLegacyTray: function() {
+        let use_work_area = true;
+
+        if (this._fixedIsEnabled && !this._settings.get_boolean('extend-height')
+            && this._isPrimaryMonitor()
+            && ((this._position == St.Side.BOTTOM) || (this._position == St.Side.LEFT)))
+            use_work_area = false;
+
+        Main.legacyTray.actor.clear_constraints();
+        let constraint = new Layout.MonitorConstraint({
+            primary: true,
+            work_area: use_work_area
+        });
+        Main.legacyTray.actor.add_constraint(constraint);
+    },
+
+    _resetLegacyTray: function() {
+        Main.legacyTray.actor.clear_constraints();
+        let constraint = new Layout.MonitorConstraint({
+            primary: true,
+            work_area: true
+        });
+        Main.legacyTray.actor.add_constraint(constraint);
+    },
+
+    _updateStaticBox: function() {
+        this.staticBox.init_rect(
+            this.actor.x + this._slider.actor.x - (this._position == St.Side.RIGHT ? this._box.width : 0),
+            this.actor.y + this._slider.actor.y - (this._position == St.Side.BOTTOM ? this._box.height : 0),
+            this._box.width,
+            this._box.height
+        );
+
+        this._intellihide.updateTargetBox(this.staticBox);
+    },
+
+    _removeAnimations: function() {
+        Tweener.removeTweens(this._slider);
+    },
+
+    _onDragStart: function() {
+        // The dash need to be above the top_window_group, otherwise it doesn't
+        // accept dnd of app icons when not in overiew mode.
+        Main.layoutManager.uiGroup.set_child_above_sibling(this.actor, global.top_window_group);
+        this._oldignoreHover = this._ignoreHover;
+        this._ignoreHover = true;
+        this._animateIn(this._settings.get_double('animation-time'), 0);
+    },
+
+    _onDragEnd: function() {
+        // Restore drag default dash stack order
+        this._resetDepth();
+        if (this._oldignoreHover !== null)
+            this._ignoreHover  = this._oldignoreHover;
+        this._oldignoreHover = null;
+        this._box.sync_hover();
+        if (Main.overview._shown)
+            this._pageChanged();
+    },
+
+    _pageChanged: function() {
+        let activePage = Main.overview.viewSelector.getActivePage();
+        let dashVisible = (activePage == ViewSelector.ViewPage.WINDOWS ||
+                           activePage == ViewSelector.ViewPage.APPS);
+
+        if (dashVisible)
+            this._animateIn(this._settings.get_double('animation-time'), 0);
+        else
+            this._animateOut(this._settings.get_double('animation-time'), 0);
+    },
+
+    _onPageEmpty: function() {
+        /* The dash spacer is required only in the WINDOWS view if in the default position.
+         * The 'page-empty' signal is emitted in between a change of view,
+         * signalling the spacer can be added and removed without visible effect,
+         * as it's done for the upstream dashSpacer.
+         *
+         * Moreover, hiding the spacer ensure the appGrid allocaton is triggered.
+         * This matter as the appview spring animation is triggered by to first reallocaton of the appGrid,
+         * (See appDisplay.js, line 202 on GNOME Shell 3.14:
+         *                             this._grid.actor.connect('notify::allocation', ...)
+         * which in turn seems to be triggered by changes in the other actors in the overview.
+         * Normally, as far as I could understand, either the dashSpacer being hidden or the workspacesThumbnails
+         * sliding out would trigger the allocation. However, with no stock dash
+         * and no thumbnails, which happen if the user configured only 1 and static workspace,
+         * the animation out of icons is not played.
+         */
+
+        let activePage = Main.overview.viewSelector.getActivePage();
+        this._dashSpacer.visible = (this._isHorizontal || activePage == ViewSelector.ViewPage.WINDOWS);
+    },
+
+    /**
+     * Show dock and give key focus to it
+     */
+    _onAccessibilityFocus: function() {
+        this._box.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+        this._animateIn(this._settings.get_double('animation-time'), 0);
+    },
+
+    /**
+     * Keep ShowAppsButton status in sync with the overview status
+     */
+    _syncShowAppsButtonToggled: function() {
+        let status = Main.overview.viewSelector._showAppsButton.checked;
+        if (this.dash.showAppsButton.checked !== status)
+            this.dash.showAppsButton.checked = status;
+    },
+
+    // Optional features to be enabled only for the main Dock
+    _enableExtraFeatures: function() {
+        // Restore dash accessibility
+        Main.ctrlAltTabManager.addGroup(
+            this.dash.actor, _('Dash'), 'user-bookmarks-symbolic',
+                {focusCallback: Lang.bind(this, this._onAccessibilityFocus)});
+    },
+
+    /**
+     * Switch workspace by scrolling over the dock
+     */
+    _optionalScrollWorkspaceSwitch: function() {
+        let label = 'optionalScrollWorkspaceSwitch';
+
+        function isEnabled() {
+            return this._settings.get_enum('scroll-action') === scrollAction.SWITCH_WORKSPACE;
+        }
+
+        this._settings.connect('changed::scroll-action', Lang.bind(this, function() {
+            if (Lang.bind(this, isEnabled)())
+                Lang.bind(this, enable)();
+            else
+                Lang.bind(this, disable)();
+        }));
+
+        if (Lang.bind(this, isEnabled)())
+            Lang.bind(this, enable)();
+
+        function enable() {
+            this._signalsHandler.removeWithLabel(label);
+
+            this._signalsHandler.addWithLabel(label, [
+                this._box,
+                'scroll-event',
+                Lang.bind(this, onScrollEvent)
+            ]);
+
+            this._optionalScrollWorkspaceSwitchDeadTimeId = 0;
+        }
+
+        function disable() {
+            this._signalsHandler.removeWithLabel(label);
+
+            if (this._optionalScrollWorkspaceSwitchDeadTimeId > 0) {
+                Mainloop.source_remove(this._optionalScrollWorkspaceSwitchDeadTimeId);
+                this._optionalScrollWorkspaceSwitchDeadTimeId = 0;
+            }
+        }
+
+        // This was inspired to desktop-scroller@obsidien.github.com
+        function onScrollEvent(actor, event) {
+            // When in overview change workscape only in windows view
+            if (Main.overview.visible && Main.overview.viewSelector.getActivePage() !== ViewSelector.ViewPage.WINDOWS)
+                return false;
+
+            let activeWs = global.screen.get_active_workspace();
+            let direction = null;
+
+            switch (event.get_scroll_direction()) {
+            case Clutter.ScrollDirection.UP:
+                direction = Meta.MotionDirection.UP;
+                break;
+            case Clutter.ScrollDirection.DOWN:
+                direction = Meta.MotionDirection.DOWN;
+                break;
+            case Clutter.ScrollDirection.SMOOTH:
+                let [dx, dy] = event.get_scroll_delta();
+                if (dy < 0)
+                    direction = Meta.MotionDirection.UP;
+                else if (dy > 0)
+                    direction = Meta.MotionDirection.DOWN;
+                break;
+            }
+
+            if (direction !== null) {
+                // Prevent scroll events from triggering too many workspace switches
+                // by adding a 250ms deadtime between each scroll event.
+                // Usefull on laptops when using a touchpad.
+
+                // During the deadtime do nothing
+                if (this._optionalScrollWorkspaceSwitchDeadTimeId > 0)
+                    return false;
+                else
+                    this._optionalScrollWorkspaceSwitchDeadTimeId = Mainloop.timeout_add(250, Lang.bind(this, function() {
+                        this._optionalScrollWorkspaceSwitchDeadTimeId = 0;
+                    }));
+
+                let ws;
+
+                ws = activeWs.get_neighbor(direction)
+
+                if (Main.wm._workspaceSwitcherPopup == null)
+                    Main.wm._workspaceSwitcherPopup = new WorkspaceSwitcherPopup.WorkspaceSwitcherPopup();
+                    // Set the actor non reactive, so that it doesn't prevent the
+                    // clicks events from reaching the dash actor. I can't see a reason
+                    // why it should be reactive.
+                    Main.wm._workspaceSwitcherPopup.actor.reactive = false;
+                    Main.wm._workspaceSwitcherPopup.connect('destroy', function() {
+                        Main.wm._workspaceSwitcherPopup = null;
+                    });
+
+                // Do not show wokspaceSwithcer in overview
+                if (!Main.overview.visible)
+                    Main.wm._workspaceSwitcherPopup.display(direction, ws.index());
+                Main.wm.actionMoveWorkspace(ws);
+
+                return true;
+            }
+            else
+                return false;
+        }
+    },
+
+    _activateApp: function(appIndex) {
+        let children = this.dash._box.get_children().filter(function(actor) {
+                return actor.child &&
+                       actor.child._delegate &&
+                       actor.child._delegate.app;
+        });
+
+        // Apps currently in the dash
+        let apps = children.map(function(actor) {
+                return actor.child._delegate;
+            });
+
+        // Activate with button = 1, i.e. same as left click
+        let button = 1;
+        if (appIndex < apps.length)
+            apps[appIndex].activate(button);
+    }
+
+});
+
+Signals.addSignalMethods(DockedDash.prototype);
+
+/*
+ * Handle keybaord shortcuts
+ */
+const KeyboardShortcuts = new Lang.Class({
+
+    Name: 'DashToDock.KeyboardShortcuts',
+
+    _numHotkeys: 10,
+
+    _init: function(settings, allDocks){
+
+        this._settings = settings;
+        this._allDocks = allDocks;
+        this._signalsHandler = new Utils.GlobalSignalsHandler();
+
+        this._hotKeysEnabled = false;
+        if (this._settings.get_boolean('hot-keys'))
+            this._enableHotKeys();
+
+        this._signalsHandler.add([
+            this._settings,
+            'changed::hot-keys',
+            Lang.bind(this, function() {
+                    if (this._settings.get_boolean('hot-keys'))
+                        Lang.bind(this, this._enableHotKeys)();
+                    else
+                        Lang.bind(this, this._disableHotKeys)();
+            })
+        ]);
+
+        this._optionalNumberOverlay();
+    },
+
+    destroy: function (){
+        // Remove keybindings
+        this._disableHotKeys();
+        this._disableExtraShortcut();
+        this._signalsHandler.destroy();
+    },
+
+    _enableHotKeys: function() {
+        if (this._hotKeysEnabled)
+            return;
+
+        // Setup keyboard bindings for dash elements
+        let keys = ['app-hotkey-', 'app-shift-hotkey-', 'app-ctrl-hotkey-',  // Regular numbers
+                    'app-hotkey-kp-', 'app-shift-hotkey-kp-', 'app-ctrl-hotkey-kp-']; // Key-pad numbers
+        keys.forEach( function(key) {
+            for (let i = 0; i < this._numHotkeys; i++) {
+                let appNum = i;
+                Main.wm.addKeybinding(key + (i + 1), this._settings,
+                                      Meta.KeyBindingFlags.NONE,
+                                      Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
+                                      Lang.bind(this, function() {
+                                          this._allDocks[0]._activateApp(appNum);
+                                          this._showOverlay();
+                                      }));
+            }
+        }, this);
+
+        this._hotKeysEnabled = true;
+    },
+
+    _disableHotKeys: function() {
+        if (!this._hotKeysEnabled)
+            return;
+
+        let keys = ['app-hotkey-', 'app-shift-hotkey-', 'app-ctrl-hotkey-',  // Regular numbers
+                    'app-hotkey-kp-', 'app-shift-hotkey-kp-', 'app-ctrl-hotkey-kp-']; // Key-pad numbers
+        keys.forEach( function(key) {
+            for (let i = 0; i < this._numHotkeys; i++)
+                Main.wm.removeKeybinding(key + (i + 1));
+        }, this);
+
+        this._hotKeysEnabled = false;
+    },
+
+    _optionalNumberOverlay: function() {
+        this._shortcutIsSet = false;
+        // Enable extra shortcut if either 'overlay' or 'show-dock' are true
+        if (this._settings.get_boolean('hot-keys') &&
+           (this._settings.get_boolean('hotkeys-overlay') || this._settings.get_boolean('hotkeys-show-dock')))
+            this._enableExtraShortcut();
+
+        this._signalsHandler.add([
+            this._settings,
+            'changed::hot-keys',
+            Lang.bind(this, this._checkHotkeysOptions)
+        ], [
+            this._settings,
+            'changed::hotkeys-overlay',
+            Lang.bind(this, this._checkHotkeysOptions)
+        ], [
+            this._settings,
+            'changed::hotkeys-show-dock',
+            Lang.bind(this, this._checkHotkeysOptions)
+        ]);
+    },
+
+    _checkHotkeysOptions: function() {
+        if (this._settings.get_boolean('hot-keys') &&
+           (this._settings.get_boolean('hotkeys-overlay') || this._settings.get_boolean('hotkeys-show-dock')))
+            this._enableExtraShortcut();
+        else
+            this._disableExtraShortcut();
+    },
+
+    _enableExtraShortcut: function() {
+        if (!this._shortcutIsSet) {
+            Main.wm.addKeybinding('shortcut', this._settings,
+                                  Meta.KeyBindingFlags.NONE,
+                                  Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
+                                  Lang.bind(this, this._showOverlay));
+            this._shortcutIsSet = true;
+        }
+    },
+
+    _disableExtraShortcut: function() {
+        if (this._shortcutIsSet) {
+            Main.wm.removeKeybinding('shortcut');
+            this._shortcutIsSet = false;
+        }
+    },
+
+    _showOverlay: function() {
+        for (let i = 0; i < this._allDocks.length; i++) {
+            let dock = this._allDocks[i];
+            if (dock._settings.get_boolean('hotkeys-overlay'))
+                dock.dash.toggleNumberOverlay(true);
+
+            // Restart the counting if the shortcut is pressed again
+            if (dock._numberOverlayTimeoutId) {
+                Mainloop.source_remove(dock._numberOverlayTimeoutId);
+                dock._numberOverlayTimeoutId = 0;
+            }
+
+            // Hide the overlay/dock after the timeout
+            let timeout = dock._settings.get_double('shortcut-timeout') * 1000;
+            dock._numberOverlayTimeoutId = Mainloop.timeout_add(timeout, Lang.bind(dock, function() {
+                    dock._numberOverlayTimeoutId = 0;
+                    dock.dash.toggleNumberOverlay(false);
+                    // Hide the dock again if necessary
+                    dock._updateDashVisibility();
+            }));
+
+            // Show the dock if it is hidden
+            if (dock._settings.get_boolean('hotkeys-show-dock')) {
+                let showDock = (dock._intellihideIsEnabled || dock._autohideIsEnabled);
+                if (showDock)
+                    dock._show();
+            }
+        }
+    }
+
+});
+
+/**
+ * Isolate overview to open new windows for inactive apps
+ * Note: the future implementaion is not fully contained here. Some bits are around in other methods of other classes.
+ * This class just take care of enabling/disabling the option.
+ */
+const WorkspaceIsolation = new Lang.Class({
+
+    Name: 'DashToDock.WorkspaceIsolation',
+
+    _init: function(settings, allDocks) {
+
+        this._settings = settings;
+        this._allDocks = allDocks;
+
+        this._signalsHandler = new Utils.GlobalSignalsHandler();
+        this._injectionsHandler = new Utils.InjectionsHandler();
+
+        this._signalsHandler.add([
+            this._settings,
+            'changed::isolate-workspaces',
+            Lang.bind(this, function() {
+                    this._allDocks.forEach(function(dock) {
+                        dock.dash.resetAppIcons();
+                    });
+                    if (this._settings.get_boolean('isolate-workspaces') ||
+                        this._settings.get_boolean('isolate-monitors'))
+                        Lang.bind(this, this._enable)();
+                    else
+                        Lang.bind(this, this._disable)();
+            })
+        ],[
+            this._settings,
+            'changed::isolate-monitors',
+            Lang.bind(this, function() {
+                    this._allDocks.forEach(function(dock) {
+                        dock.dash.resetAppIcons();
+                    });
+                    if (this._settings.get_boolean('isolate-workspaces') ||
+                        this._settings.get_boolean('isolate-monitors'))
+                        Lang.bind(this, this._enable)();
+                    else
+                        Lang.bind(this, this._disable)();
+            })
+        ]);
+
+        if (this._settings.get_boolean('isolate-workspaces') ||
+            this._settings.get_boolean('isolate-monitors'))
+            this._enable();
+
+    },
+
+    _enable: function() {
+
+        // ensure I never double-register/inject
+        // although it should never happen
+        this._disable();
+
+        this._allDocks.forEach(function(dock) {
+            this._signalsHandler.addWithLabel('isolation', [
+                global.screen,
+                'restacked',
+                Lang.bind(dock.dash, dock.dash._queueRedisplay)
+            ], [
+                global.window_manager,
+                'switch-workspace',
+                Lang.bind(dock.dash, dock.dash._queueRedisplay)
+            ]);
+
+            // This last signal is only needed for monitor isolation, as windows
+            // might migrate from one monitor to another without triggering 'restacked'
+            if (this._settings.get_boolean('isolate-monitors'))
+                this._signalsHandler.addWithLabel('isolation', [
+                    global.screen,
+                    'window-entered-monitor',
+                    Lang.bind(dock.dash, dock.dash._queueRedisplay)
+                ]);
+
+        }, this);
+
+        // here this is the Shell.App
+        function IsolatedOverview() {
+            // These lines take care of Nautilus for icons on Desktop
+            let windows = this.get_windows().filter(function(w) {
+                return w.get_workspace().index() == global.screen.get_active_workspace_index();
+            });
+            if (windows.length == 1)
+                if (windows[0].skip_taskbar)
+                    return this.open_new_window(-1);
+
+            if (this.is_on_workspace(global.screen.get_active_workspace()))
+                return Main.activateWindow(windows[0]);
+            return this.open_new_window(-1);
+        }
+
+        this._injectionsHandler.addWithLabel('isolation', [
+            Shell.App.prototype,
+            'activate',
+            IsolatedOverview
+        ]);
+    },
+
+    _disable: function () {
+        this._signalsHandler.removeWithLabel('isolation');
+        this._injectionsHandler.removeWithLabel('isolation');
+    },
+
+    destroy: function() {
+        this._signalsHandler.destroy();
+        this._injectionsHandler.destroy();
+    }
+
+});
+
+
+const DockManager = new Lang.Class({
+    Name: 'DashToDock.DockManager',
+
+    _init: function() {
+        this._settings = Convenience.getSettings('org.gnome.shell.extensions.dash-to-dock');
+        this._oldDash = Main.overview._dash;
+        /* Array of all the docks created */
+        this._allDocks = [];
+        this._createDocks();
+
+        // status variable: true when the overview is shown through the dash
+        // applications button.
+        this._forcedOverview = false;
+
+        // Connect relevant signals to the toggling function
+        this._bindSettingsChanges();
+    },
+
+    _toggle: function() {
+        this._deleteDocks();
+        this._createDocks();
+        this.emit('toggled');
+    },
+
+    _bindSettingsChanges: function() {
+        // Connect relevant signals to the toggling function
+        this._signalsHandler = new Utils.GlobalSignalsHandler();
+        this._signalsHandler.add([
+            global.screen,
+            'monitors-changed',
+            Lang.bind(this, this._toggle)
+        ], [
+            this._settings,
+            'changed::multi-monitor',
+            Lang.bind(this, this._toggle)
+        ], [
+            this._settings,
+            'changed::preferred-monitor',
+            Lang.bind(this, this._toggle)
+        ], [
+            this._settings,
+            'changed::dock-position',
+            Lang.bind(this, this._toggle)
+        ], [
+            this._settings,
+            'changed::extend-height',
+            Lang.bind(this, this._adjustPanelCorners)
+        ], [
+            this._settings,
+            'changed::dock-fixed',
+            Lang.bind(this, this._adjustPanelCorners)
+        ]);
+    },
+
+    _createDocks: function() {
+
+        this._preferredMonitorIndex = this._settings.get_int('preferred-monitor');
+        // In case of multi-monitor, we consider the dock on the primary monitor to be the preferred (main) one
+        // regardless of the settings
+        // The dock goes on the primary monitor also if the settings are incosistent (e.g. desired monitor not connected).
+        if (this._settings.get_boolean('multi-monitor') ||
+            this._preferredMonitorIndex < 0 || this._preferredMonitorIndex > Main.layoutManager.monitors.length - 1
+            ) {
+            this._preferredMonitorIndex = Main.layoutManager.primaryIndex;
+        } else {
+            // Gdk and shell monitors numbering differ at least under wayland:
+            // While the primary monitor appears to be always index 0 in Gdk,
+            // the shell can assign a different number (Main.layoutManager.primaryMonitor)
+            // This ensure the indexing in the settings (Gdk) and in the shell are matched,
+            // i.e. that we start counting from the primaryMonitorIndex
+            this._preferredMonitorIndex = (Main.layoutManager.primaryIndex + this._preferredMonitorIndex) % Main.layoutManager.monitors.length ;
+        }
+
+        // First we create the main Dock, to get the extra features to bind to this one
+        let dock = new DockedDash(this._settings, this._preferredMonitorIndex);
+        this._mainShowAppsButton = dock.dash.showAppsButton;
+        this._allDocks.push(dock);
+
+        // connect app icon into the view selector
+        dock.dash.showAppsButton.connect('notify::checked', Lang.bind(this, this._onShowAppsButtonToggled));
+
+        // Make the necessary changes to Main.overview._dash
+        this._prepareMainDash();
+
+        // Adjust corners if necessary
+        this._adjustPanelCorners();
+
+        if (this._settings.get_boolean('multi-monitor')) {
+            let nMon = Main.layoutManager.monitors.length;
+            for (let iMon = 0; iMon < nMon; iMon++) {
+                if (iMon == this._preferredMonitorIndex)
+                    continue;
+                let dock = new DockedDash(this._settings, iMon);
+                this._allDocks.push(dock);
+                // connect app icon into the view selector
+                dock.dash.showAppsButton.connect('notify::checked', Lang.bind(this, this._onShowAppsButtonToggled));
+            }
+        }
+
+        // Load optional features. We load *after* the docks are created, since
+        // we need to connect the signals to all dock instances.
+        this._workspaceIsolation = new WorkspaceIsolation(this._settings, this._allDocks);
+        this._keyboardShortcuts = new KeyboardShortcuts(this._settings, this._allDocks);
+    },
+
+    _prepareMainDash: function() {
+        // Pretend I'm the dash: meant to make appgrd swarm animation come from the
+        // right position of the appShowButton.
+        Main.overview._dash = this._allDocks[0].dash;
+
+        // set stored icon size  to the new dash
+        Main.overview.dashIconSize = this._allDocks[0].dash.iconSize;
+
+        // Hide usual Dash
+        Main.overview._controls.dash.actor.hide();
+
+        // Also set dash width to 1, so it's almost not taken into account by code
+        // calculaing the reserved space in the overview. The reason to keep it at 1 is
+        // to allow its visibility change to trigger an allocaion of the appGrid which
+        // in turn is triggergin the appsIcon spring animation, required when no other
+        // actors has this effect, i.e in horizontal mode and without the workspaceThumnails
+        // 1 static workspace only)
+        Main.overview._controls.dash.actor.set_width(1);
+    },
+
+    _deleteDocks: function() {
+        // Remove extra features
+        this._workspaceIsolation.destroy();
+        this._keyboardShortcuts.destroy();
+
+        // Delete all docks
+        let nDocks = this._allDocks.length;
+        for (let i = nDocks-1; i >= 0; i--) {
+            this._allDocks[i].destroy();
+            this._allDocks.pop();
+        }
+    },
+
+    _restoreDash: function() {
+        Main.overview._controls.dash.actor.show();
+        Main.overview._controls.dash.actor.set_width(-1); //reset default dash size
+        // This force the recalculation of the icon size
+        Main.overview._controls.dash._maxHeight = -1;
+
+        // reset stored icon size  to the default dash
+        Main.overview.dashIconSize = Main.overview._controls.dash.iconSize;
+
+        Main.overview._dash = this._oldDash;
+    },
+
+    _onShowAppsButtonToggled: function(button) {
+        // Sync the status of the default appButtons. Only if the two statuses are
+        // different, that means the user interacted with the extension provided
+        // application button, cutomize the behaviour. Otherwise the shell has changed the
+        // status (due to the _syncShowAppsButtonToggled function below) and it
+        // has already performed the desired action.
+
+        let animate = this._settings.get_boolean('animate-show-apps');
+        let selector = Main.overview.viewSelector;
+
+        if (selector._showAppsButton.checked !== button.checked) {
+            // find visible view
+            let visibleView;
+            Main.overview.viewSelector.appDisplay._views.every(function(v, index) {
+                if (v.view.actor.visible) {
+                    visibleView = index;
+                    return false;
+                }
+                else
+                    return true;
+            });
+
+            if (button.checked) {
+                // force spring animation triggering.By default the animation only
+                // runs if we are already inside the overview.
+                if (!Main.overview._shown) {
+                    this._forcedOverview = true;
+                    let view = Main.overview.viewSelector.appDisplay._views[visibleView].view;
+                    let grid = view._grid;
+                    if (animate) {
+                        // Animate in the the appview, hide the appGrid to avoiud flashing
+                        // Go to the appView before entering the overview, skipping the workspaces.
+                        // Do this manually avoiding opacity in transitions so that the setting of the opacity
+                        // to 0 doesn't get overwritten.
+                        Main.overview.viewSelector._activePage.opacity = 0;
+                        Main.overview.viewSelector._activePage.hide();
+                        Main.overview.viewSelector._activePage = Main.overview.viewSelector._appsPage;
+                        Main.overview.viewSelector._activePage.show();
+                        grid.actor.opacity = 0;
+
+                        // The animation has to be trigered manually because the AppDisplay.animate
+                        // method is waiting for an allocation not happening, as we skip the workspace view
+                        // and the appgrid could already be allocated from previous shown.
+                        // It has to be triggered after the overview is shown as wrong coordinates are obtained
+                        // otherwise.
+                        let overviewShownId = Main.overview.connect('shown', Lang.bind(this, function() {
+                            Main.overview.disconnect(overviewShownId);
+                            Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
+                                grid.actor.opacity = 255;
+                                grid.animateSpring(IconGrid.AnimationDirection.IN, this._allDocks[0].dash.showAppsButton);
+                            }));
+                        }));
+                    }
+                    else {
+                        Main.overview.viewSelector._activePage = Main.overview.viewSelector._appsPage;
+                        Main.overview.viewSelector._activePage.show();
+                        grid.actor.opacity = 255;
+                    }
+
+                }
+
+                // Finally show the overview
+                selector._showAppsButton.checked = true;
+                Main.overview.show();
+            }
+            else {
+                if (this._forcedOverview) {
+                    // force exiting overview if needed
+
+                    if (animate) {
+                        // Manually trigger springout animation without activating the
+                        // workspaceView to avoid the zoomout animation. Hide the appPage
+                        // onComplete to avoid ugly flashing of original icons.
+                        let view = Main.overview.viewSelector.appDisplay._views[visibleView].view;
+                        let grid = view._grid;
+                        view.animate(IconGrid.AnimationDirection.OUT, Lang.bind(this, function() {
+                            Main.overview.viewSelector._appsPage.hide();
+                            Main.overview.hide();
+                            selector._showAppsButton.checked = false;
+                            this._forcedOverview = false;
+                        }));
+                    }
+                    else {
+                        Main.overview.hide();
+                        this._forcedOverview = false;
+                    }
+                }
+                else {
+                    selector._showAppsButton.checked = false;
+                    this._forcedOverview = false;
+                }
+            }
+        }
+
+        // whenever the button is unactivated even if not by the user still reset the
+        // forcedOverview flag
+        if (button.checked == false)
+            this._forcedOverview = false;
+    },
+
+    destroy: function() {
+        this._signalsHandler.destroy();
+        this._deleteDocks();
+        this._revertPanelCorners();
+        this._restoreDash();
+    },
+
+    /**
+     * Adjust Panel corners
+     */
+    _adjustPanelCorners: function() {
+        let position = Utils.getPosition(this._settings);
+        let isHorizontal = ((position == St.Side.TOP) || (position == St.Side.BOTTOM));
+        let extendHeight   = this._settings.get_boolean('extend-height');
+        let fixedIsEnabled = this._settings.get_boolean('dock-fixed');
+        let dockOnPrimary  = this._settings.get_boolean('multi-monitor') ||
+                             this._preferredMonitorIndex == Main.layoutManager.primaryIndex;
+
+        if (!isHorizontal && dockOnPrimary && extendHeight && fixedIsEnabled) {
+            Main.panel._rightCorner.actor.hide();
+            Main.panel._leftCorner.actor.hide();
+        }
+        else
+            this._revertPanelCorners();
+    },
+
+    _revertPanelCorners: function() {
+        Main.panel._leftCorner.actor.show();
+        Main.panel._rightCorner.actor.show();
+    }
+});
+Signals.addSignalMethods(DockManager.prototype);
diff --git a/package/extension.js b/package/extension.js
new file mode 100644
index 0000000..86ef700
--- /dev/null
+++ b/package/extension.js
@@ -0,0 +1,21 @@
+// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
+
+const Me = imports.misc.extensionUtils.getCurrentExtension();
+const Docking = Me.imports.docking;
+const Convenience = Me.imports.convenience;
+
+let dockManager;
+
+function init() {
+    Convenience.initTranslations('dashtodock');
+}
+
+function enable() {
+    dockManager = new Docking.DockManager();
+}
+
+function disable() {
+    dockManager.destroy();
+
+    dockManager=null;
+}
diff --git a/package/intellihide.js b/package/intellihide.js
new file mode 100644
index 0000000..0d9fabd
--- /dev/null
+++ b/package/intellihide.js
@@ -0,0 +1,323 @@
+// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
+
+const GLib = imports.gi.GLib;
+const Lang = imports.lang;
+const Mainloop = imports.mainloop;
+const Meta = imports.gi.Meta;
+const Shell = imports.gi.Shell;
+
+const Main = imports.ui.main;
+const Signals = imports.signals;
+
+const Me = imports.misc.extensionUtils.getCurrentExtension();
+const Utils = Me.imports.utils;
+
+// A good compromise between reactivity and efficiency; to be tuned.
+const INTELLIHIDE_CHECK_INTERVAL = 100;
+
+const OverlapStatus = {
+    UNDEFINED: -1,
+    FALSE: 0,
+    TRUE: 1
+};
+
+const IntellihideMode = {
+    ALL_WINDOWS: 0,
+    FOCUS_APPLICATION_WINDOWS: 1,
+    MAXIMIZED_WINDOWS : 2
+};
+
+// List of windows type taken into account. Order is important (keep the original
+// enum order).
+const handledWindowTypes = [
+    Meta.WindowType.NORMAL,
+    Meta.WindowType.DOCK,
+    Meta.WindowType.DIALOG,
+    Meta.WindowType.MODAL_DIALOG,
+    Meta.WindowType.TOOLBAR,
+    Meta.WindowType.MENU,
+    Meta.WindowType.UTILITY,
+    Meta.WindowType.SPLASHSCREEN
+];
+
+/**
+ * A rough and ugly implementation of the intellihide behaviour.
+ * Intallihide object: emit 'status-changed' signal when the overlap of windows
+ * with the provided targetBoxClutter.ActorBox changes;
+ */
+const Intellihide = new Lang.Class({
+    Name: 'DashToDock.Intellihide',
+
+    _init: function(settings, monitorIndex) {
+        // Load settings
+        this._settings = settings;
+        this._monitorIndex = monitorIndex;
+
+        this._signalsHandler = new Utils.GlobalSignalsHandler();
+        this._tracker = Shell.WindowTracker.get_default();
+        this._focusApp = null; // The application whose window is focused.
+        this._topApp = null; // The application whose window is on top on the monitor with the dock.
+
+        this._isEnabled = false;
+        this.status = OverlapStatus.UNDEFINED;
+        this._targetBox = null;
+
+        this._checkOverlapTimeoutContinue = false;
+        this._checkOverlapTimeoutId = 0;
+
+        this._trackedWindows = new Map();
+
+        // Connect global signals
+        this._signalsHandler.add([
+            // Add signals on windows created from now on
+            global.display,
+            'window-created',
+            Lang.bind(this, this._windowCreated)
+        ], [
+            // triggered for instance when the window list order changes,
+            // included when the workspace is switched
+            global.screen,
+            'restacked',
+            Lang.bind(this, this._checkOverlap)
+        ], [
+            // when windows are alwasy on top, the focus window can change
+            // without the windows being restacked. Thus monitor window focus change.
+            this._tracker,
+            'notify::focus-app',
+            Lang.bind(this, this._checkOverlap)
+        ], [
+            // update wne monitor changes, for instance in multimonitor when monitor are attached
+            global.screen,
+            'monitors-changed',
+            Lang.bind(this, this._checkOverlap )
+        ]);
+    },
+
+    destroy: function() {
+        // Disconnect global signals
+        this._signalsHandler.destroy();
+
+        // Remove  residual windows signals
+        this.disable();
+    },
+
+    enable: function() {
+        this._isEnabled = true;
+        this._status = OverlapStatus.UNDEFINED;
+        global.get_window_actors().forEach(function(wa) {
+            this._addWindowSignals(wa);
+        }, this);
+        this._doCheckOverlap();
+    },
+
+    disable: function() {
+        this._isEnabled = false;
+
+        for (let wa of this._trackedWindows.keys()) {
+            this._removeWindowSignals(wa);
+        }
+        this._trackedWindows.clear();
+
+        if (this._checkOverlapTimeoutId > 0) {
+            Mainloop.source_remove(this._checkOverlapTimeoutId);
+            this._checkOverlapTimeoutId = 0;
+        }
+    },
+
+    _windowCreated: function(display, metaWindow) {
+        this._addWindowSignals(metaWindow.get_compositor_private());
+    },
+
+    _addWindowSignals: function(wa) {
+        if (!this._handledWindow(wa))
+            return;
+        let signalId = wa.connect('allocation-changed', Lang.bind(this, this._checkOverlap, wa.get_meta_window()));
+        this._trackedWindows.set(wa, signalId);
+        wa.connect('destroy', Lang.bind(this, this._removeWindowSignals));
+    },
+
+    _removeWindowSignals: function(wa) {
+        if (this._trackedWindows.get(wa)) {
+           wa.disconnect(this._trackedWindows.get(wa));
+           this._trackedWindows.delete(wa);
+        }
+
+    },
+
+    updateTargetBox: function(box) {
+        this._targetBox = box;
+        this._checkOverlap();
+    },
+
+    forceUpdate: function() {
+        this._status = OverlapStatus.UNDEFINED;
+        this._doCheckOverlap();
+    },
+
+    getOverlapStatus: function() {
+        return (this._status == OverlapStatus.TRUE);
+    },
+
+    _checkOverlap: function() {
+        if (!this._isEnabled || (this._targetBox == null))
+            return;
+
+        /* Limit the number of calls to the doCheckOverlap function */
+        if (this._checkOverlapTimeoutId) {
+            this._checkOverlapTimeoutContinue = true;
+            return
+        }
+
+        this._doCheckOverlap();
+
+        this._checkOverlapTimeoutId = Mainloop.timeout_add(INTELLIHIDE_CHECK_INTERVAL, Lang.bind(this, function() {
+            this._doCheckOverlap();
+            if (this._checkOverlapTimeoutContinue) {
+                this._checkOverlapTimeoutContinue = false;
+                return GLib.SOURCE_CONTINUE;
+            } else {
+                this._checkOverlapTimeoutId = 0;
+                return GLib.SOURCE_REMOVE;
+            }
+        }));
+    },
+
+    _doCheckOverlap: function() {
+
+        if (!this._isEnabled || (this._targetBox == null))
+            return;
+
+        let overlaps = OverlapStatus.FALSE;
+        let windows = global.get_window_actors();
+
+        if (windows.length > 0) {
+            /*
+             * Get the top window on the monitor where the dock is placed.
+             * The idea is that we dont want to overlap with the windows of the topmost application,
+             * event is it's not the focused app -- for instance because in multimonitor the user
+             * select a window in the secondary monitor.
+             */
+
+            let topWindow = null;
+            for (let i = windows.length - 1; i >= 0; i--) {
+                let meta_win = windows[i].get_meta_window();
+                if (this._handledWindow(windows[i]) && (meta_win.get_monitor() == this._monitorIndex)) {
+                    topWindow = meta_win;
+                    break;
+                }
+            }
+
+            if (topWindow !== null) {
+                this._topApp = this._tracker.get_window_app(topWindow);
+                // If there isn't a focused app, use that of the window on top
+                this._focusApp = this._tracker.focus_app || this._topApp
+
+                windows = windows.filter(this._intellihideFilterInteresting, this);
+
+                for (let i = 0;  i < windows.length; i++) {
+                    let win = windows[i].get_meta_window();
+
+                    if (win) {
+                        let rect = win.get_frame_rect();
+
+                        let test = (rect.x < this._targetBox.x2) &&
+                                   (rect.x + rect.width > this._targetBox.x1) &&
+                                   (rect.y < this._targetBox.y2) &&
+                                   (rect.y + rect.height > this._targetBox.y1);
+
+                        if (test) {
+                            overlaps = OverlapStatus.TRUE;
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+
+        if (this._status !== overlaps) {
+            this._status = overlaps;
+            this.emit('status-changed', this._status);
+        }
+
+    },
+
+    // Filter interesting windows to be considered for intellihide.
+    // Consider all windows visible on the current workspace.
+    // Optionally skip windows of other applications
+    _intellihideFilterInteresting: function(wa) {
+        let meta_win = wa.get_meta_window();
+        if (!this._handledWindow(wa))
+            return false;
+
+        let currentWorkspace = global.screen.get_active_workspace_index();
+        let wksp = meta_win.get_workspace();
+        let wksp_index = wksp.index();
+
+        // Depending on the intellihide mode, exclude non-relevent windows
+        switch (this._settings.get_enum('intellihide-mode')) {
+            case IntellihideMode.ALL_WINDOWS:
+                // Do nothing
+                break;
+
+            case IntellihideMode.FOCUS_APPLICATION_WINDOWS:
+                // Skip windows of other apps
+                if (this._focusApp) {
+                    // The DropDownTerminal extension is not an application per se
+                    // so we match its window by wm class instead
+                    if (meta_win.get_wm_class() == 'DropDownTerminalWindow')
+                        return true;
+
+                    let currentApp = this._tracker.get_window_app(meta_win);
+                    let focusWindow = global.display.get_focus_window()
+
+                    // Consider half maximized windows side by side
+                    // and windows which are alwayson top
+                    if((currentApp != this._focusApp) && (currentApp != this._topApp)
+                        && !((focusWindow && focusWindow.maximized_vertically && !focusWindow.maximized_horizontally)
+                              && (meta_win.maximized_vertically && !meta_win.maximized_horizontally)
+                              && meta_win.get_monitor() == focusWindow.get_monitor())
+                        && !meta_win.is_above())
+                        return false;
+                }
+                break;
+
+            case IntellihideMode.MAXIMIZED_WINDOWS:
+                // Skip unmaximized windows
+                if (!meta_win.maximized_vertically && !meta_win.maximized_horizontally)
+                    return false;
+                break;
+        }
+
+        if ( wksp_index == currentWorkspace && meta_win.showing_on_its_workspace() )
+            return true;
+        else
+            return false;
+
+    },
+
+    // Filter windows by type
+    // inspired by Opacify@gnome-shell.localdomain.pl
+    _handledWindow: function(wa) {
+        let metaWindow = wa.get_meta_window();
+
+        if (!metaWindow)
+            return false;
+
+        // The DropDownTerminal extension uses the POPUP_MENU window type hint
+        // so we match its window by wm class instead
+        if (metaWindow.get_wm_class() == 'DropDownTerminalWindow')
+            return true;
+
+        let wtype = metaWindow.get_window_type();
+        for (let i = 0; i < handledWindowTypes.length; i++) {
+            var hwtype = handledWindowTypes[i];
+            if (hwtype == wtype)
+                return true;
+            else if (hwtype > wtype)
+                return false;
+        }
+        return false;
+    }
+});
+
+Signals.addSignalMethods(Intellihide.prototype);
diff --git a/package/media/logo.svg b/package/media/logo.svg
new file mode 100644
index 0000000..eebd0b1
--- /dev/null
+++ b/package/media/logo.svg
@@ -0,0 +1,528 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="33.866665mm"
+   height="33.866684mm"
+   viewBox="0 0 33.866665 33.866683"
+   id="svg5179"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="logo.svg">
+  <defs
+     id="defs5181">
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath4379-92-4-9-6-8-0">
+      <rect
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.83189655;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;enable-background:accumulate"
+         id="rect4381-17-7-5-2-0-6"
+         width="19.934219"
+         height="33.52573"
+         x="356.02826"
+         y="457.71631" />
+    </clipPath>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:collect="always"
+       id="filter4435-8-5-3-2-13-8"
+       x="-0.22881356"
+       width="1.4576271"
+       y="-0.22881356"
+       height="1.4576271">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="1.0352993"
+         id="feGaussianBlur4437-6-7-9-8-8-1" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:collect="always"
+       id="filter4365-71-5-7-0-6-2"
+       x="-0.21864407"
+       width="1.437288"
+       y="-0.21864407"
+       height="1.437288">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="0.98928601"
+         id="feGaussianBlur4367-74-5-92-0-6-5" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath4379-6-7-5-8-6-01-2">
+      <rect
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.83189655;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;enable-background:accumulate"
+         id="rect4381-1-8-5-2-0-2-7"
+         width="19.934219"
+         height="33.52573"
+         x="356.02826"
+         y="457.71631" />
+    </clipPath>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:collect="always"
+       id="filter4435-6-1-2-8-2-2-7"
+       x="-0.22881356"
+       width="1.4576271"
+       y="-0.22881356"
+       height="1.4576271">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="1.0352993"
+         id="feGaussianBlur4437-1-1-3-60-1-4-4" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:collect="always"
+       id="filter4365-4-5-2-24-7-3-3"
+       x="-0.21864407"
+       width="1.437288"
+       y="-0.21864407"
+       height="1.437288">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="0.98928601"
+         id="feGaussianBlur4367-7-0-7-7-9-0-3" />
+    </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath4379-5-6-0-9-8-7-9">
+      <rect
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.83189655;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;enable-background:accumulate"
+         id="rect4381-6-8-5-9-9-2-4"
+         width="19.934219"
+         height="33.52573"
+         x="356.02826"
+         y="457.71631" />
+    </clipPath>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:collect="always"
+       id="filter4435-63-9-2-4-1-2-6"
+       x="-0.22881356"
+       width="1.4576271"
+       y="-0.22881356"
+       height="1.4576271">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="1.0352993"
+         id="feGaussianBlur4437-0-5-6-8-8-9-9" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB"
+       inkscape:collect="always"
+       id="filter4365-2-4-3-6-3-1-7"
+       x="-0.21864407"
+       width="1.437288"
+       y="-0.21864407"
+       height="1.437288">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="0.98928601"
+         id="feGaussianBlur4367-1-2-5-3-5-8-3" />
+    </filter>
+    <filter
+       inkscape:collect="always"
+       style="color-interpolation-filters:sRGB"
+       id="filter4255"
+       x="-0.20374454"
+       width="1.4074891"
+       y="-0.13779147"
+       height="1.2755829">
+      <feGaussianBlur
+         inkscape:collect="always"
+         stdDeviation="0.25863247"
+         id="feGaussianBlur4257" />
+    </filter>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="60.090739"
+     inkscape:cy="60.108985"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1861"
+     inkscape:window-height="1023"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5184">
+    <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
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(136.97858,-11.552354)">
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#0055d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;enable-background:accumulate"
+       id="rect4006-4-6-9-2-0-6"
+       width="33.83363"
+       height="33.859909"
+       x="-136.9473"
+       y="11.552354"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.15440008;marker:none;filter:url(#filter4365-3);enable-background:accumulate"
+       d="m -130.12265,11.559157 c -4.30029,5.691881 -6.67207,12.608761 -6.82289,19.674442 -0.0115,0.54232 -0.0147,1.0766 0,1.62024 0.11433,4.23572 1.04846,8.50668 2.82497,12.565201 l 31.00865,0 0,-33.859883 -27.01073,0 z"
+       id="path6097-2-6-0-89-4"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <path
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+       d="m -136.9473,18.430158 0,0.7896 0,20.641361 0,0.7896 1.23782,0 2.26288,0 1.60528,0 c 0.68577,0 1.23783,-0.3548 1.23783,-0.7896 l 0,-20.641361 c 0,-0.4398 -0.55206,-0.7896 -1.23783,-0.7896 l -1.60528,0 -2.26288,0 z"
+       id="rect4008-7-9-2-0-3-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccssssccc"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.15;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.15440008;marker:none;filter:url(#filter4365-3);enable-background:accumulate"
+       d="m -119.36792,11.559157 c -10.47023,5.721881 -17.57762,16.847401 -17.57762,29.627402 0,1.43804 0.0897,2.841801 0.26432,4.232481 l 33.5693,0 0,-33.859883 -16.256,0 z"
+       id="path6097-4-5-23-9"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;enable-background:accumulate"
+       id="rect4247-4-4-5-3-8-1"
+       width="33.83363"
+       height="2.1162443"
+       x="-136.9473"
+       y="11.552354"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;enable-background:accumulate"
+       d="m -103.11365,13.668597 0,1.05812 c 0,-0.58196 -0.47338,-1.05812 -1.05731,-1.05812 l 1.05731,0 z"
+       id="rect4272-0-7-8-1-1-3-3-1"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;enable-background:accumulate"
+       id="rect4031-9-9-2-4-2-5"
+       width="4.2292037"
+       height="4.2324886"
+       x="-135.89"
+       y="19.488146"
+       rx="1.0583334"
+       ry="1.0583334"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;enable-background:accumulate"
+       d="m -136.94728,13.668597 0,1.05812 c 0,-0.58196 0.47337,-1.05812 1.0573,-1.05812 l -1.0573,0 z"
+       id="rect4272-0-2-1-74-41-1-6"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <g
+       id="g4353-9-2-1-5-5-4"
+       transform="matrix(0.10331261,0,0,0.10339285,-173.76079,-27.453246)"
+       clip-path="url(#clipPath4379-92-4-9-6-8-0)"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099">
+      <circle
+         r="5.4295697"
+         cy="477.71164"
+         cx="274.13016"
+         transform="matrix(0.94749688,0,0,0.94749688,96.290796,21.848877)"
+         id="path3153-1-7-3-5-60-3-6"
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.42241378;fill:#d7eef4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;filter:url(#filter4435-8-5-3-2-13-8);enable-background:accumulate" />
+      <circle
+         r="5.4295697"
+         cy="477.71164"
+         cx="274.13016"
+         transform="matrix(0.24231546,0,0,0.24231546,289.60229,358.72226)"
+         id="path3153-2-4-1-6-6-9-4-1"
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#d7eef4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;filter:url(#filter4365-71-5-7-0-6-2);enable-background:accumulate" />
+    </g>
+    <g
+       id="g4589-4-1-1-3-6-2"
+       transform="matrix(0.49926208,0,0,0.49964988,-318.21072,-206.05794)"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099">
+      <g
+         clip-path="url(#clipPath4379-6-7-5-8-6-01-2)"
+         transform="matrix(0.20693061,0,0,0.20693061,289.32686,368.5622)"
+         id="g4353-66-1-4-2-6-94-5">
+        <circle
+           r="5.4295697"
+           cy="477.71164"
+           cx="274.13016"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.42241378;fill:#d7eef4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;filter:url(#filter4435-6-1-2-8-2-2-7);enable-background:accumulate"
+           id="path3153-1-6-4-5-63-7-1-0"
+           transform="matrix(0.94749688,0,0,0.94749688,96.290796,21.848877)" />
+        <circle
+           r="5.4295697"
+           cy="477.71164"
+           cx="274.13016"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#d7eef4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;filter:url(#filter4365-4-5-2-24-7-3-3);enable-background:accumulate"
+           id="path3153-2-4-7-6-5-8-5-9-5"
+           transform="matrix(0.24231546,0,0,0.24231546,289.60229,358.72226)" />
+      </g>
+      <g
+         clip-path="url(#clipPath4379-5-6-0-9-8-7-9)"
+         transform="matrix(0.20693061,0,0,0.20693061,289.32686,367.53449)"
+         id="g4353-7-2-2-6-4-5-1">
+        <circle
+           r="5.4295697"
+           cy="477.71164"
+           cx="274.13016"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.42241378;fill:#d7eef4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;filter:url(#filter4435-63-9-2-4-1-2-6);enable-background:accumulate"
+           id="path3153-1-19-3-1-5-5-7-8"
+           transform="matrix(0.94749688,0,0,0.94749688,96.290796,21.848877)" />
+        <circle
+           r="5.4295697"
+           cy="477.71164"
+           cx="274.13016"
+           style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#d7eef4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;filter:url(#filter4365-2-4-3-6-3-1-7);enable-background:accumulate"
+           id="path3153-2-4-5-7-9-9-9-7-6"
+           transform="matrix(0.24231546,0,0,0.24231546,289.60229,358.72226)" />
+      </g>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:1.28805089px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none"
+       x="-124.44726"
+       y="13.10139"
+       id="text4824-5-2-0-4-8"
+       sodipodi:linespacing="125%"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099"
+       transform="scale(0.99961185,1.0003883)"><tspan
+         sodipodi:role="line"
+         id="tspan4826-16-3-8-8-1"
+         x="-124.44726"
+         y="13.10139">Dash to Dock</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:1.28805089px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none"
+       x="-136.50272"
+       y="13.10139"
+       id="text4824-8-8-6-8-7-4"
+       sodipodi:linespacing="125%"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099"
+       transform="scale(0.99961185,1.0003883)"><tspan
+         sodipodi:role="line"
+         id="tspan4826-1-7-7-5-07-5"
+         x="-136.50272"
+         y="13.10139">Michele</tspan></text>
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;enable-background:accumulate"
+       id="rect4031-9-0-8-5-4-0-7-6"
+       width="4.2292037"
+       height="4.2324886"
+       x="-135.89"
+       y="24.778917"
+       rx="1.0583334"
+       ry="1.0583334"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;enable-background:accumulate"
+       id="rect4031-9-0-7-3-3-6-0-1"
+       width="4.2292037"
+       height="4.2324886"
+       x="-135.89"
+       y="30.069445"
+       rx="1.0583334"
+       ry="1.0583334"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.04922473;marker:none;enable-background:accumulate"
+       id="rect4031-9-0-6-5-1-3-9-0"
+       width="4.2292037"
+       height="4.2324886"
+       x="-135.89"
+       y="35.359974"
+       rx="1.0583334"
+       ry="1.0583334"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <path
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+       d="m -136.9473,17.901078 0,0.52908 2.42849,0 2.21372,0 c 0.94338,0 1.7016,0.3372 1.7016,0.77704 l 0,20.649921 c 0,0.43476 -0.75822,0.7936 -1.7016,0.7936 l -2.21372,0 -2.42849,0 0,0.52904 0.90862,0 2.64325,0 1.88332,0 c 0.80005,0 1.43727,-0.3712 1.43727,-0.82664 l 0,-21.625361 c 0,-0.46072 -0.63722,-0.82668 -1.43727,-0.82668 l -1.88332,0 -2.64325,0 z"
+       id="rect4008-7-0-0-3-3-3-7-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccsssscccccssssccc"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <path
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:accumulate"
+       d="m -136.9473,17.901078 0,0.52908 2.42849,0 2.21372,0 c 0.94338,0 1.7016,0.3372 1.7016,0.77704 l 0,20.649921 c 0,0.43476 -0.75822,0.7936 -1.7016,0.7936 l -2.21372,0 -2.42849,0 0,0.52904 0.90862,0 2.64325,0 1.88332,0 c 0.80005,0 1.43727,-0.3712 1.43727,-0.82664 l 0,-21.625361 c 0,-0.46072 -0.63722,-0.82668 -1.43727,-0.82668 l -1.88332,0 -2.64325,0 z"
+       id="rect4008-7-0-0-3-1-5-0-5-5"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccsssscccccssssccc"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="44.99099"
+       inkscape:export-ydpi="44.99099" />
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f2f2f2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;filter:url(#filter4365-3);enable-background:accumulate"
+       id="rect6777-7-9-6-9-8"
+       width="20.108335"
+       height="18.256252"
+       x="-125.24149"
+       y="19.139757"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="45"
+       inkscape:export-ydpi="45" />
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.13229166;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+       id="rect4923-8-7-8-2"
+       width="3.7041669"
+       height="3.7041669"
+       x="-116.71888"
+       y="30.163927"
+       rx="1.0583334"
+       ry="1.0583334" />
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.15;fill:#b3b3b3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;filter:url(#filter4365-3);enable-background:accumulate"
+       d="m -111.94623,19.146638 c -5.49508,1.3884 -10.21465,5.00036 -13.29531,9.92188 l 0,8.334361 20.10833,0 0,-18.256241 -6.81302,0 z"
+       id="path6862-84-2-2-6-7"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="45"
+       inkscape:export-ydpi="45" />
+    <path
+       inkscape:connector-curvature="0"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;filter:url(#filter4365-3);enable-background:accumulate"
+       d="m -125.02657,18.882038 c -0.11728,0 -0.21496,0.0812 -0.21496,0.1984 l 0,0.44648 0,1.2568 0,0.2148 0.21496,0 19.67838,0 0.215,0 0,-0.2148 0,-1.2568 0,-0.44648 c 0,-0.1172 -0.0977,-0.1984 -0.215,-0.1984 l -19.67838,0 z"
+       id="rect6779-5-8-6-4-6"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="45"
+       inkscape:export-ydpi="45" />
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;filter:url(#filter4365-3);enable-background:accumulate"
+       id="rect6779-2-3-9-9-0-8"
+       width="20.108335"
+       height="0.5291667"
+       x="-125.24149"
+       y="20.991808"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="45"
+       inkscape:export-ydpi="45" />
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#b3b3b3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;filter:url(#filter4365-3);enable-background:accumulate"
+       id="rect6779-2-4-8-0-7-1-1"
+       width="15.875001"
+       height="0.5291667"
+       x="21.521105"
+       y="105.13315"
+       transform="rotate(90)"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="45"
+       inkscape:export-ydpi="45" />
+    <g
+       id="g6839-1-5-1-33-0"
+       transform="matrix(0.02002288,0.02002284,-0.02002288,0.02002284,-106.62848,-6.0229242)"
+       style="fill:#1a1a1a"
+       inkscape:export-filename="/home/michele/Dropbox/lavori/gnome-shell-extension/icon/g5218.png"
+       inkscape:export-xdpi="45"
+       inkscape:export-ydpi="45">
+      <rect
+         y="616.07727"
+         x="653.01312"
+         height="41.542522"
+         width="11.313708"
+         id="rect6819-8-9-2-56-9"
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;filter:url(#filter4365-3);enable-background:accumulate" />
+      <rect
+         transform="rotate(90)"
+         y="-679.44122"
+         x="631.19165"
+         height="41.542522"
+         width="11.313708"
+         id="rect6819-3-9-4-3-1-5"
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;filter:url(#filter4365-3);enable-background:accumulate" />
+    </g>
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.13229166;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+       id="rect4923-6-8-9-1"
+       width="3.7041669"
+       height="3.7041669"
+       x="-123.59805"
+       y="30.163927"
+       rx="1.0583334"
+       ry="1.0583334" />
+    <path
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.26458335;stroke-miterlimit:4;stroke-dasharray:none;marker:none;enable-background:accumulate;opacity:0.866;filter:url(#filter4255)"
+       d="m -121.46776,32.043964 -5e-4,1.742839 -4.9e-4,1.742839 0.71518,-0.708051 0.99716,1.727136 1.33421,-0.770304 -0.99542,-1.724104 0.96903,-0.268366 -1.50959,-0.870995 z"
+       id="path6155-6-0-01-4-5-6-0-0"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <path
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.13229167;stroke-miterlimit:4;stroke-dasharray:none;marker:none;filter:url(#filter4365-3);enable-background:accumulate"
+       d="m -121.86464,32.043964 -5e-4,1.742839 -4.9e-4,1.742839 0.71518,-0.708051 1.05563,1.8284 1.3342,-0.770304 -1.05388,-1.825368 0.96903,-0.268366 -1.50959,-0.870995 z"
+       id="path6155-6-0-8-0-7-97-5"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.13229166;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+       id="rect4923-4-8-4"
+       width="3.7041669"
+       height="3.7041669"
+       x="-123.59805"
+       y="23.020128"
+       rx="1.0583334"
+       ry="1.0583334" />
+    <rect
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.13229166;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+       id="rect4923-2-6-7-8"
+       width="3.7041669"
+       height="3.7041669"
+       x="-116.71888"
+       y="23.020128"
+       rx="1.0583334"
+       ry="1.0583334" />
+  </g>
+</svg>
diff --git a/package/media/screenshot.jpg b/package/media/screenshot.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1707cce7f457bab069efbadcb32a2e5b51c7d17e
GIT binary patch
literal 148723
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
M*^wCi(*FNV0DVY+v;Y7A

literal 0
HcmV?d00001

diff --git a/package/metadata.json b/package/metadata.json
new file mode 100644
index 0000000..0ab15c6
--- /dev/null
+++ b/package/metadata.json
@@ -0,0 +1,10 @@
+{
+"shell-version": ["3.18", "3.20", "3.22", "3.24"],
+"uuid": "dash-to-dock@micxgx.gmail.com",
+"name": "Dash to Dock",
+"description": "A dock for the Gnome Shell. This extension moves the dash out of the overview transforming it in a dock for an easier launching of applications and a faster switching between windows and desktops. Side and bottom placement options are available.",
+"original-author": "micxgx@gmail.com",
+"url": "https://micheleg.github.io/dash-to-dock/",
+"gettext-domain": "dashtodock",
+"version": -1
+}
diff --git a/package/po/ar.po b/package/po/ar.po
new file mode 100644
index 0000000..1ef4b36
--- /dev/null
+++ b/package/po/ar.po
@@ -0,0 +1,554 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dash to Dock\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2015-04-18 18:01+0100\n"
+"Last-Translator: Jean-Baptiste Le Cz <jb.lecoz@gmail.com>\n"
+"Language-Team: Faissal Chamekh <chamfay@gmail.com>\n"
+"Language: ar_DZ\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
+"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
+"X-Generator: Poedit 1.7.5\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "الشاشة الرئيسية"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "الشاشة الثانوية"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "يمين"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "يسار"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "تخصيص الإخفاء التلقائي"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "العودة للافتراضي"
+
+#: prefs.js:386
+#, fuzzy
+msgid "Show dock and application numbers"
+msgstr "أظهر التطبيقات قيد التشغيل"
+
+#: prefs.js:443
+#, fuzzy
+msgid "Customize middle-click behavior"
+msgstr "خصّص الإعتام"
+
+#: prefs.js:514
+#, fuzzy
+msgid "Customize running indicators"
+msgstr "أظهر التطبيقات قيد التشغيل"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr ""
+
+#: Settings.ui.h:1
+#, fuzzy
+msgid "Customize indicator style"
+msgstr "خصّص الإعتام"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr ""
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr ""
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr ""
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr ""
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+
+#: Settings.ui.h:7
+#, fuzzy
+msgid "Show the dock if it is hidden"
+msgstr "أظهر المرساة فوق"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr ""
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr ""
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "زمن الاختفاء (ثا)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "حدث Shift+Click"
+
+#: Settings.ui.h:14
+#, fuzzy
+msgid "Raise window"
+msgstr "صغّر النافذة"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "صغّر النافذة"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "شغّل نسخة جديدة"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "التبديل بين النوافذ"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr ""
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:20
+#, fuzzy
+msgid "Middle-Click action"
+msgstr "حدث النقر"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:22
+#, fuzzy
+msgid "Shift+Middle-Click action"
+msgstr "حدث Shift+Click"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "أظهر المرساة فوق"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "الشاشة الثانوية"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "الموضع على الشاشة"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "أسفل"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "أعلى"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr "إخفاء المرساة عندما تحجب نافذة التطبيق الحالي. تخصيصات أكثر متوفرة."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "إخفاء تلقائي ذكي"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "حدّ حجم المرساة"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "نمط الشريط: تمديد إلى حواف الشاشة"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "حدّ حجم الأيقونة"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "حجم أيقونات ثابت: استعمل التمرير لكشف أيقونات أخرى"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "الموضع والحجم"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "أظهر التطبيقات المفضّلة"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "أظهر التطبيقات قيد التشغيل"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr ""
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr ""
+
+#: Settings.ui.h:41
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+
+#: Settings.ui.h:42
+#, fuzzy
+msgid "Show <i>Applications</i> icon"
+msgstr "أظهر أيقونة التطبيقات أولا"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr ""
+
+#: Settings.ui.h:44
+#, fuzzy
+msgid "Animate <i>Show Applications</i>."
+msgstr "أظهر أيقونة التطبيقات أولا"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr ""
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr ""
+
+#: Settings.ui.h:48
+#, fuzzy
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "التصرّف عن النقر على أيقونة التطبيق قيد التشغيل."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "حدث النقر"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "صغّر"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "صغّر النافذة"
+
+#: Settings.ui.h:52
+#, fuzzy
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "التصرّف عن النقر على أيقونة التطبيق قيد التشغيل."
+
+#: Settings.ui.h:53
+#, fuzzy
+msgid "Scroll action"
+msgstr "حدث النقر"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "لا تفعل شيئا"
+
+#: Settings.ui.h:55
+#, fuzzy
+msgid "Switch workspace"
+msgstr "تبديل مساحة عمل واحدة في نفس الوقت"
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "السلوك"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "استعمل السمة المضمّنة"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr ""
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "تقليص المرساة"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "أظهر نقطة لكل نوافذة من التطبيق."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "أظهر مؤشرات عدد النوافذ"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr ""
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr ""
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "ضبط إعتام خلفية المرساة."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "خصّص الإعتام"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "العتمة"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "المظهر"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "الإصدار:"
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr ""
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "أنشئ من طرف"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr ""
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">هذا البرنامج يأتي بدون أي ضمانات.\n"
+"لمزيد من المعلومات أنظر <a href=\"https://www.gnu.org/licenses/old-licenses/"
+"gpl-2.0.html\">رخصة غنو العمومية، الإصدارة 2 فما فوق.</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "حول"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "أظهر المرساة بتمرير الفأرة على حافة النافذة"
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "إخفاء تلقائي"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "اضغط للإظهار: يتطلب ضغطا لإظهار المرساة"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr ""
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "إظهار المرساة عندما لا تحجب نوافذ التطبيق."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr ""
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr ""
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr ""
+
+#: Settings.ui.h:86
+#, fuzzy
+msgid "Only maximized windows"
+msgstr "صغّر النافذة"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "مدة التحريك (ثا)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "زمن الظهور (ثا)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "عتبة الضغط"
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "بدّل مساحة العمل عند التمرير فوق المرساة"
+
+#~ msgid "Main Settings"
+#~ msgstr "الخصائص الأساسية"
+
+#~ msgid "Dock Position"
+#~ msgstr "موضع المرساة"
+
+#~ msgid "Dock is fixed and always visible"
+#~ msgstr "المرساة ثابتة وظاهرة دائما"
+
+#~ msgid "Show delay [ms]"
+#~ msgstr "تأخير الظهور (ميلي ثانية)"
+
+#~ msgid "Hide delay [ms]"
+#~ msgstr "تأخير الإخفاء (ميلي ثانية)"
+
+#~ msgid "Application based intellihide"
+#~ msgstr "إخفاء تلقائي على حسب التطبيق"
+
+#~ msgid "Show the dock on following monitor (if attached)"
+#~ msgstr "أظهر المرساة في الشاشة الحالية (إن وُصلت)"
+
+#~ msgid "Primary (default)"
+#~ msgstr "الأساسية (الافتراضي)"
+
+#~ msgid "1"
+#~ msgstr "1"
+
+#~ msgid "2"
+#~ msgstr "2"
+
+#~ msgid "3"
+#~ msgstr "3"
+
+#~ msgid "4"
+#~ msgstr "4"
+
+#~ msgid "Max height"
+#~ msgstr "الارتفاع الأقصى"
+
+#~ msgid "Expand (experimental and buggy)"
+#~ msgstr "تمديد (تجريبي)"
+
+#~ msgid "Maximum icon size"
+#~ msgstr "الحجم الأقصى للأيقونة"
+
+#~ msgid "16"
+#~ msgstr "16"
+
+#~ msgid "24"
+#~ msgstr "24"
+
+#~ msgid "32"
+#~ msgstr "32"
+
+#~ msgid "48"
+#~ msgstr "48"
+
+#~ msgid "64"
+#~ msgstr "64"
+
+#~ msgid "Optional features"
+#~ msgstr "ميزات إضافية"
+
+#~ msgid "Deadtime between each workspace switching [ms]"
+#~ msgstr "الوقت بين تبديل كل مساحة عمل"
+
+#~ msgid "Only a 1px wide area close to the screen edge is active"
+#~ msgstr "مساحة بعرض 1 بكسل فقط قريبة من حافة الشاشة هي النشطة"
+
+#~ msgid "All the area of the dock is active"
+#~ msgstr "جميع مناطق المرساة نشطة"
+
+#~ msgid "Customize actions on mouse click"
+#~ msgstr "خصّص حدث النقر على الفأرة"
+
+#~ msgid "Action on clicking on running app"
+#~ msgstr "الحدث عن النقر على تطبيق قيد التشغيل"
+
+#~ msgid "Minimize window on shift+click (double click for all app windows)"
+#~ msgstr ""
+#~ "تصغير النافذة عند النقر مع shift (الضغط المزدوج بالنسبة لكل نوافذ التطبيق)"
+
+#~ msgid "Make message tray insensitive to mouse events"
+#~ msgstr "اجعل رسالة التنبيه غير حساسة لأحداث الفأرة"
+
+#~ msgid "Appearence and Themes"
+#~ msgstr "المظهر والسمة"
+
+#~ msgid ""
+#~ "A customized theme is built in the extension. This is meant to work with "
+#~ "the default Adwaita theme: the dash is shrunk to save space, its "
+#~ "background transparency reduced, and custom indicators for the number of "
+#~ "windows of each application are added."
+#~ msgstr ""
+#~ "تم تضمين سمة مخصّصة للإضافة، هذا يعني أنها تعمل مع السمة الافتراضية "
+#~ "Adwaita: تقليص المرساة لكسب مساحة، إنقاص شفافيتها، كذلك تم إضافة مؤشرات "
+#~ "لعدد نوافذ التطبيق."
+
+#~ msgid ""
+#~ "Alternatively, for a better integration with custom themes, each "
+#~ "customization can be applied indipendently"
+#~ msgstr "بدلا من هذا، لتكاملية أفضل مع سمات مخصّصة، كل تخصيص يطبّق على حدة"
+
+#~ msgid "Shrink the dash size by reducing padding"
+#~ msgstr "مساحة المرساة بإنقاص الحشو"
+
+#~ msgid "Only when in autohide"
+#~ msgstr "Seulement en mode masquage intelligent"
diff --git a/package/po/cs.po b/package/po/cs.po
new file mode 100644
index 0000000..2132485
--- /dev/null
+++ b/package/po/cs.po
@@ -0,0 +1,460 @@
+# Translation for cs
+# Copyright (C) 2014 Michele
+# This file is distributed under the same license as the dash-to-dock package.
+# Jiří Doubravský <jiri.doubravsky@gmail.com>, 2015.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dash to Dock\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2015-05-21 21:17+0100\n"
+"Last-Translator: Jiří Doubravský <jiri.doubravsky@gmail.com>\n"
+"Language-Team: CZECH <jiri.doubravsky@gmail.com>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.7.5\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Primární obrazovka"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Sekundární obrazovka"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Vpravo"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Vlevo"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Přizpůsobení chytrého skrývání"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Vrátit výchozí nastavení"
+
+#: prefs.js:386
+#, fuzzy
+msgid "Show dock and application numbers"
+msgstr "Zobrazit spuštěné aplikace"
+
+#: prefs.js:443
+#, fuzzy
+msgid "Customize middle-click behavior"
+msgstr "Volitelná průhlednost"
+
+#: prefs.js:514
+#, fuzzy
+msgid "Customize running indicators"
+msgstr "Zobrazit spuštěné aplikace"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Uhýbat oknům"
+
+#: Settings.ui.h:1
+#, fuzzy
+msgid "Customize indicator style"
+msgstr "Volitelná průhlednost"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr ""
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr ""
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr ""
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr ""
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+
+#: Settings.ui.h:7
+#, fuzzy
+msgid "Show the dock if it is hidden"
+msgstr "Kde zobrazit dok"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr ""
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr ""
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Odklad skrývání (s)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Pokud zvolíte minimalizaci, dvojté poklepání minimalizuje všechna okna "
+"aplikace."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Shift+Klik akce"
+
+#: Settings.ui.h:14
+#, fuzzy
+msgid "Raise window"
+msgstr "Minimalizovat okno"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Minimalizovat okno"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Otevřít nové okno"
+
+#: Settings.ui.h:17
+#, fuzzy
+msgid "Cycle through windows"
+msgstr "Přepínat mezi existujícími okny"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr ""
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:20
+#, fuzzy
+msgid "Middle-Click action"
+msgstr "Akce klepnutím"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:22
+#, fuzzy
+msgid "Shift+Middle-Click action"
+msgstr "Shift+Klik akce"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Kde zobrazit dok"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "Sekundární obrazovka"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Umístění na obrazovce"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Dole"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Nahoře"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Skývat dok automaticky kdykoliv by překážel otevřenému oknu aktivní "
+"aplikace. Více možností k dispozici."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Chytré skrývání"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Maximální velikost doku"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Režim zobrazení: roztáhnout od kraje ke kraji"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Maximální velikost ikon"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Neměnná velikost ikon: rolováním je možné zobrazit další"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Umístění a velikost"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Zobrazit oblíbené aplikace"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Zobrazit spuštěné aplikace"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr ""
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr ""
+
+#: Settings.ui.h:41
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+
+#: Settings.ui.h:42
+#, fuzzy
+msgid "Show <i>Applications</i> icon"
+msgstr "<i>Zobrazit tlačítko všech aplikací</i> jako první"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Přesunout tlačítko přístupu ke všem aplikacím na začátek"
+
+#: Settings.ui.h:44
+#, fuzzy
+msgid "Animate <i>Show Applications</i>."
+msgstr "<i>Zobrazit tlačítko všech aplikací</i> jako první"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr ""
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr ""
+
+#: Settings.ui.h:48
+#, fuzzy
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Akce klepnutím na ikonu běžící aplikace"
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Akce klepnutím"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Minimalizovat"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "Minimalizovat okno"
+
+#: Settings.ui.h:52
+#, fuzzy
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Akce klepnutím na ikonu běžící aplikace"
+
+#: Settings.ui.h:53
+#, fuzzy
+msgid "Scroll action"
+msgstr "Akce klepnutím"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Nedělat nic"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr ""
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Chování"
+
+#: Settings.ui.h:57
+#, fuzzy
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr "Výchozí motiv doku nebo alternativní přizpůsobitelný motiv."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Použít výchozí motiv doku"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Prostorově méně náročné zobrazení, zmenšením volného místa kolem ikon"
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Zmenšit panel"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Zobrazit pod ikonou tečku indikující každé otevřené okno aplikace."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Zobrazit indikátory počtu oken"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr ""
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr ""
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Nastavit průhlednost panelu."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Volitelná průhlednost"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Průhlednost"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Vzhled"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "verze:"
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr ""
+"Verplaatst de dash naar buiten het activiteitenoverzicht zodat het een dock "
+"wordt"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Autor "
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr ""
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Na tento program NEJSOU POSKYTOVÁNY ZÁRUKY.\n"
+"Podrobněji viz <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0."
+"html\">GNU General Public License, verze 2 nebo pozdější</a>.</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "O tomto doplňku"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Zobrazit dok najetím myši ke kraji obrazovky."
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Automatické skrývání"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Zatlač: k zobrazení doku je potřeba na kraj přitlačit"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr ""
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Zobrazit dok, kdykoliv sám nepřekáží spuštěným aplikacím"
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Uhýbat oknům"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Uhýbat oknům"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr ""
+
+#: Settings.ui.h:86
+#, fuzzy
+msgid "Only maximized windows"
+msgstr "Minimalizovat okno"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Délka efektů (s)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Odklad zobrazení (s)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Míra tlaku (px)"
+
+#, fuzzy
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "Oblast po okrajích doku a tlačítko zobrazení všech aplikací jsou aktivní."
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "Přepínat pracovní plochy kolečkem myši nad dokem."
+
+#~ msgid "Only consider windows of the focused application"
+#~ msgstr "Brát v úvahu jen okna aktivní aplikace"
diff --git a/package/po/de.po b/package/po/de.po
new file mode 100644
index 0000000..3844359
--- /dev/null
+++ b/package/po/de.po
@@ -0,0 +1,589 @@
+# Translation for de
+# Copyright (C) 2014 Michele
+# This file is distributed under the same license as the dash-to-dock package.
+# Morris Jobke <hey@morrisjobke.de>, 2014.
+# Jonatan Zeidler <jonatan_zeidler@hotmail.de>, 2012
+# jonius <jonatan_zeidler@gmx.de>, 2012
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dash to Dock\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2015-10-29 14:54-0300\n"
+"Last-Translator: Jonatan Zeidler <jonatan_zeidler@gmx.de>\n"
+"Language-Team: jonius <jonatan_zeidler@gmx.de>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.7.7\n"
+
+# Konjugation wegen Stellung im Satz
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Primärer Anzeige"
+
+# Konjugation wegen Stellung im Satz
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Sekundärer Anzeige"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Rechts"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Links"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Automatisches Ausblenden anpassen"
+
+# Verwende Übersetzung aus Nautilus
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Auf Vorgaben zurücksetzen"
+
+#: prefs.js:386
+#, fuzzy
+msgid "Show dock and application numbers"
+msgstr "Laufende Anwendungen anzeigen"
+
+#: prefs.js:443
+#, fuzzy
+msgid "Customize middle-click behavior"
+msgstr "Transparenz anpassen"
+
+#: prefs.js:514
+#, fuzzy
+msgid "Customize running indicators"
+msgstr "Laufende Anwendungen anzeigen"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Alle Fenstern"
+
+#: Settings.ui.h:1
+#, fuzzy
+msgid "Customize indicator style"
+msgstr "Transparenz anpassen"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr ""
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr ""
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr ""
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr ""
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+
+#: Settings.ui.h:7
+#, fuzzy
+msgid "Show the dock if it is hidden"
+msgstr "Dock anzeigen auf"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr ""
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr ""
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Ausblende-Verzögerung in s"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Wenn auf »Minimieren« eingestellt, können durch Doppelklick alle Fenster der "
+"Anwendung gleichzeitig minimiert werden."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Wirkung bei Umschalttaste + Mausklick"
+
+#: Settings.ui.h:14
+#, fuzzy
+msgid "Raise window"
+msgstr "Minimieren"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Minimieren"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Neues Fenster"
+
+# Vielleicht einen Tick besser als „umschalten“?
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "Zwischen den Fenstern der Anwendung wechseln"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr ""
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:20
+#, fuzzy
+msgid "Middle-Click action"
+msgstr "Wirkung bei Mausklick"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:22
+#, fuzzy
+msgid "Shift+Middle-Click action"
+msgstr "Wirkung bei Umschalttaste + Mausklick"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Dock anzeigen auf"
+
+# Konjugation wegen Stellung im Satz
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "Sekundärer Anzeige"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Position auf Bildschirm"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Unten"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Oben"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Das Dock automatisch ausblenden, falls es ein Fenster der laufenden "
+"Anwendung überlagert. Einstellungen können weiter verfeinert werden."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Automatisch ausblenden"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Maximale Dockgröße"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Panelmodus: bis zu Bildschirmkanten ausdehnen"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Maximale Icongröße"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Feste Icongröße: andere Icons durch Scrollen sichtbar machen"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Position und Größe"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Favoriten anzeigen"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Laufende Anwendungen anzeigen"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr ""
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr ""
+
+#: Settings.ui.h:41
+#, fuzzy
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Falls deaktiviert, sind diese Einstellungen über das Optimierungswerkzeug "
+"oder die Erweiterungsseite erreichbar."
+
+# Durchkopplung von Kompositum
+#: Settings.ui.h:42
+#, fuzzy
+msgid "Show <i>Applications</i> icon"
+msgstr "Symbol <i>Anwendungen anzeigen</i> anzeigen"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Anwendungen-anzeigen-Button an den Anfang verschieben."
+
+# Durchkopplung von Kompositum
+#: Settings.ui.h:44
+#, fuzzy
+msgid "Animate <i>Show Applications</i>."
+msgstr "Symbol <i>Anwendungen anzeigen</i> anzeigen"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr ""
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr ""
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Verhalten bei Mausklick auf das Icon einer laufenden Anwendung."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Wirkung bei Mausklick"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Minimieren"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "Minimieren"
+
+#: Settings.ui.h:52
+#, fuzzy
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Verhalten bei Mausklick auf das Icon einer laufenden Anwendung."
+
+#: Settings.ui.h:53
+#, fuzzy
+msgid "Scroll action"
+msgstr "Wirkung bei Mausklick"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Nichts tun"
+
+#: Settings.ui.h:55
+#, fuzzy
+msgid "Switch workspace"
+msgstr "Nur eine Arbeitsfläche pro Scrollen weiterschalten"
+
+# Verwende Übersetzung aus Nautilus
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Verhalten"
+
+#: Settings.ui.h:57
+#, fuzzy
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Einige Anpassungen, durch die das Dock besser in das standardmäßige GNOME-"
+"Thema eingepasst werden soll. Alternativ können im Folgenden besondere "
+"Einstellungen vorgenommen werden."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Angepasstes Thema dieser Erweiterung nutzen"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Platz sparen, indem Innenabstand und Eckenradius verkleinert werden."
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Dash verkleinern"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Für jedes Fenster einer Anwendung einen kleinen Indikator einblenden."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Indikatoren für Fensterzahl"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr ""
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr ""
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Die Hintergrundtransparenz des Docks einstellen."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Transparenz anpassen"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Transparenz"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Erscheinungsbild"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "Version: "
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "Verwandelt das Dash aus dem Übersichtsmodus in ein Dock"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Erstellt von"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Internetseite"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Für dieses Programm besteht KEINERLEI GARANTIE.\n"
+" Details finden Sie in der <a href=\"https://www.gnu.org/licenses/old-"
+"licenses/gpl-2.0.html\">GNU General Public License, Version 2 oder später</"
+"a>.</span>"
+
+# Verwende Übersetzung aus Nautilus
+#: Settings.ui.h:77
+msgid "About"
+msgstr "Info"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Dock einblenden, wenn Mauszeiger an Bildschirmkante anliegt."
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Automatisch verstecken"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr ""
+"Anstoßen erforderlich: Dock nur einblenden, wenn Mauszeiger schnell gegen "
+"Bildschirmkante stößt"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr ""
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Dock einblenden, falls es keine Anwendungsfenster überlagert."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Fenstern ausweichen"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Alle Fenster"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "Nur Anwendungsfenster mit Fokus"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "Nur maximierte Fenster"
+
+# Nach DIN 1313 werden Einheiten nicht in Klammern gesetzt
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Animationsdauer in s"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0,000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Einblende-Verzögerung in s"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Stoßschwellwert"
+
+#, fuzzy
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "Falls es zu viele Symbole auf dem Dock werden, dann bleibt nur "
+#~ "<i>Anwendungen anzeigen</i> aktiv."
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "Arbeitsfläche durch Scrollen wechseln"
+
+#~ msgid "Only consider windows of the focused application"
+#~ msgstr "Nur Fenster der fokussierten Anwendung einbeziehen"
+
+#~ msgid "Main Settings"
+#~ msgstr "Grundeinstellungen"
+
+#~ msgid "Dock Position"
+#~ msgstr "Dock-Position"
+
+#~ msgid "Dock is fixed and always visible"
+#~ msgstr "Das Dock hat eine feste Position und ist immer sichtbar"
+
+#~ msgid "Show delay [ms]"
+#~ msgstr "Einblendeverzögerung [ms]"
+
+#~ msgid "Hide delay [ms]"
+#~ msgstr "Ausblendeverzögerung [ms]"
+
+#~ msgid "Application based intellihide"
+#~ msgstr "Anwendungsbasiertes intelligentes Verstecken"
+
+#~ msgid "Show the dock on following monitor (if attached)"
+#~ msgstr "Zeige Dock auf folgendem Monitor (falls angeschlossen)"
+
+#~ msgid "Primary (default)"
+#~ msgstr "Primäranzeige (Standard)"
+
+#~ msgid "1"
+#~ msgstr "1"
+
+#~ msgid "2"
+#~ msgstr "2"
+
+#~ msgid "3"
+#~ msgstr "3"
+
+#~ msgid "4"
+#~ msgstr "4"
+
+#~ msgid "Max height"
+#~ msgstr "Maximale Höhe"
+
+#~ msgid "Expand (experimental and buggy)"
+#~ msgstr "Komplette Höhe (experimentell und fehlerbehaftet)"
+
+#~ msgid "Maximum icon size"
+#~ msgstr "Maximale Symbolgröße"
+
+#~ msgid "16"
+#~ msgstr "16"
+
+#~ msgid "24"
+#~ msgstr "24"
+
+#~ msgid "32"
+#~ msgstr "32"
+
+#~ msgid "48"
+#~ msgstr "48"
+
+#~ msgid "64"
+#~ msgstr "64"
+
+#~ msgid "Optional features"
+#~ msgstr "Optionale Funktionen"
+
+#~ msgid "Deadtime between each workspace switching [ms]"
+#~ msgstr "Stillstandszeit zwischen Arbeitsflächenwechsel [ms]"
+
+#~ msgid "Only a 1px wide area close to the screen edge is active"
+#~ msgstr "Nur einen 1 Pixel-breiten Bereich am Rand nutzen"
+
+#~ msgid "All the area of the dock is active"
+#~ msgstr "Den gesamten Bereich des Docks nutzen"
+
+#~ msgid "Customize actions on mouse click"
+#~ msgstr "Aktion bei Mausklick anpassen"
+
+#~ msgid "Action on clicking on running app"
+#~ msgstr "Aktion beim Klicken auf eine laufende Anwendung"
+
+#~ msgid "Minimize window on shift+click (double click for all app windows)"
+#~ msgstr ""
+#~ "Fenster mit Shift+Klick minimieren (Doppelklick für alle Fenster der "
+#~ "Anwendung)"
+
+#~ msgid "Appearence and Themes"
+#~ msgstr "Erscheinungsbild und Themen"
+
+#~ msgid ""
+#~ "A customized theme is built in the extension. This is meant to work with "
+#~ "the default Adwaita theme: the dash is shrunk to save space, its "
+#~ "background transparency reduced, and custom indicators for the number of "
+#~ "windows of each application are added."
+#~ msgstr ""
+#~ "Ein angepasstes Thema ist in dieser Erweiterung enthalten. Es ist für das "
+#~ "Vorgabe-Adwaita-Thema gedacht: Das Dash ist schmaler, um Platz zu sparen, "
+#~ "die Hintergrundtransparenz ist reduziert und für jede Anwendung wird ein "
+#~ "Indikator für die Anzahl der Fenster eingefügt."
+
+#~ msgid ""
+#~ "Alternatively, for a better integration with custom themes, each "
+#~ "customization can be applied indipendently"
+#~ msgstr ""
+#~ "Alternativ können für eine bessere Integration Anpassungen vorgenommen "
+#~ "werden"
+
+#~ msgid "Shrink the dash size by reducing padding"
+#~ msgstr "Das Dash schmaler machen durch Verkleinern des Abstands zum Rand"
+
+#~ msgid "Apply custom theme (work only with the default Adwaita theme)"
+#~ msgstr ""
+#~ "Benutzerdefiniertes Theme verwenden (funktioniert nur mit dem Standard-"
+#~ "Adwaita-Theme)"
diff --git a/package/po/el.po b/package/po/el.po
new file mode 100644
index 0000000..a20d295
--- /dev/null
+++ b/package/po/el.po
@@ -0,0 +1,442 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: Dash to Dock\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2017-05-17 15:40+0300\n"
+"Last-Translator: \n"
+"Language-Team: Δημήτριος-Ρωμανός Ησαΐας <dirosissaias@cosmotemail.gr>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.0.1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Κυρίως οθόνη"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Δευτερεύουσα οθόνη "
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Δεξιά"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Αριστερά"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Εξατομίκευση έξυπνης απόκρυψης"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Επαναφορά στις προεπιλογές"
+
+#: prefs.js:386
+msgid "Show dock and application numbers"
+msgstr "Προβολή της μπάρας και της αρίθμησης εφαρμογών"
+
+#: prefs.js:443
+msgid "Customize middle-click behavior"
+msgstr "Προσαρμογή συμπεριφοράς μεσαίου κλικ"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "Προσαρμογή δεικτών τρεχόντων εφαρμογών"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Όλα τα παράθυρα"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "Προσαρμογή του στυλ του δείκτη"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "Χρώμα"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "Χρώμα περιγράμματος"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "Πλάτος περιγράμματος"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr "Αρίθμηση εφαρμογών"
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+"Προσωρινή εμφάνιση της αρίθμησης των εφαρμογών πάνω από τα εικονίδια που "
+"αντιστοιχεί στη συντόμευση πληκτρολογίου."
+
+#: Settings.ui.h:7
+msgid "Show the dock if it is hidden"
+msgstr "Προβολή της μπάρας αν είναι κρυμμένη"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+"Αν η αυτόματη απόκρυψη είναι σε χρήση, η μπάρα θα εμφανίζεται σύντομα με την "
+"χρήση της συντόμευσης."
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr "Συντόμευση για τις παραπάνω επιλογές"
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr "Σύνταξη: <Shift>, <Ctrl>, <Alt>, <Super>"
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Καθυστέρηση απόκρυψης"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Όταν είναι ρυθμισμένο στην ελαχιστοποίηση, το διπλό κλικ ελαχιστοποιεί όλα "
+"τα παράθυρα της εφαρμογής."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Λειτουργία του Shift+Click"
+
+#: Settings.ui.h:14
+msgid "Raise window"
+msgstr "Ανύψωση παραθύρου"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Ελαχιστοποίηση παραθύρου"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Νέο παράθυρο"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "Περιήγηση στα ανοικτά παράθυρα"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr "Έξοδος"
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr "Συμπεριφορά μεσαίου κλικ."
+
+#: Settings.ui.h:20
+msgid "Middle-Click action"
+msgstr "Λειτουργία του μεσαίου κλικ"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr "Συμπεριφορά Shift+Μεσαίο κλικ."
+
+#: Settings.ui.h:22
+msgid "Shift+Middle-Click action"
+msgstr "Λειτουργία του Shift+Μεσαίο κλικ"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Εμφάνιση της μπάρας στην"
+
+#: Settings.ui.h:24
+msgid "Show on all monitors."
+msgstr "Εμφάνιση σε όλες τις οθόνες."
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Θέση στην οθόνη"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Κάτω"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Πάνω"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Απόκρυψη της μπάρας όταν εμποδίζει ένα παράθυρο της τρέχουσας εφαρμογής. Πιο "
+"εξειδικευμένες επιλογές είναι επίσης διαθέσιμες."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Έξυπνη απόκρυψη"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Περιορισμός μεγέθους μπάρας"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Λειτουργιά πάνελ: επέκταση της μπάρας ως τις άκρες της οθόνης"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Περιορισμός μεγέθους εικονιδίων"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr ""
+"Σταθερό μέγεθος εικονιδίων: κύλιση για την εμφάνιση περαιτέρω εικονιδίων"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Θέση και μέγεθος"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Εμφάνιση αγαπημένων εφαρμογών"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Εμφάνιση εκτελούμενων εφαρμογών"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr "Απομόνωση χώρων εργασίας."
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr "Εμφάνιση προεπισκόπησης ανοικτών παραθύρων."
+
+#: Settings.ui.h:41
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Αν είναι απενεργοποιημένο, αυτές οι ρυθμίσεις είναι προσβάσιμες από το "
+"εργαλείο μικρορυθμίσεων του GNOME ή την ιστοσελίδα των επεκτάσεων."
+
+#: Settings.ui.h:42
+msgid "Show <i>Applications</i> icon"
+msgstr "Εμφάνιση εικονιδίου <i>Εφαρμογών</i>"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Μετακίνηση του πλήκτρου εφαρμογών στην αρχή της μπάρας."
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "Ενεργοποίηση γραφικών κατά την <i>Εμφάνιση Εφαρμογών</i>."
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr "Εκκινητές"
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+"Ενεργοποίηση του Super+(0-9) ως συντόμευση για την ενεργοποίηση εφαρμογών. "
+"Μπορεί επίσης να χρησιμοποιηθεί με το Shift και το Ctrl."
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr "Χρήση συντομεύσεων πληκτρολογίου για την ενεργοποίηση εφαρμογών"
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Συμπεριφορά κατά το κλικ σε εικονίδιο τρέχουσας εφαρμογής."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Συμπεριφορά κλικ"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Ελαχιστοποίηση"
+
+#: Settings.ui.h:51
+msgid "Minimize or overview"
+msgstr "Ελαχιστοποίηση ή επισκόπηση"
+
+#: Settings.ui.h:52
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Συμπεριφορά κατά την κύλιση σε εικονίδιο τρέχουσας εφαρμογής."
+
+#: Settings.ui.h:53
+msgid "Scroll action"
+msgstr "Συμπεριφορά κύλισης"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Καμία δράση"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr "Αλλαγή χώρου εργασίας"
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Συμπεριφορά"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Μερικές προσαρμογές στοχεύουν στο να ενοποιήσουν την μπάρα με το "
+"προκαθορισμένο θέμα του GNOME. Εναλλακτικά, ειδικές επιλογές μπορούν να "
+"ενεργοποιηθούν παρακάτω."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Χρήση ενσωματωμένου θέματος"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Εξοικονόμηση χώρου μειώνοντας τα κενά και τα περιθώρια."
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Σμίκρυνση της μπάρας"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Εμφανίζει μία τελεία για κάθε παράθυρο της εφαρμογής."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Εμφάνιση μετρητή παραθύρων"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr "Ορισμός χρώματος φόντου της μπάρας."
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr "Προσαρμογή του χρώματος της μπάρας"
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Αλλαγή της αδιαφάνειας του φόντου της μπάρας."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Προσαρμογή αδιαφάνειας"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Αδιαφάνεια"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr "Εξαναγκασμός ευθείας γωνίας\n"
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Εμφάνιση"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "έκδοση: "
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr ""
+"Μετακινεί το ταμπλώ και εκτός της προεπισκόπησης μετατρέποντάς το σε μπάρα "
+"εφαρμογών"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Δημιουργήθηκε από"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Ιστοσελίδα"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Αυτό πρόγραμμα παρέχεται χωρίς ΑΠΟΛΥΤΩΣ ΚΑΜΙΑ ΕΓΓΥΗΣΗ.\n"
+"Για λεπτομέρειες δείτε την <a href=\"https://www.gnu.org/licenses/old-"
+"licenses/gpl-2.0.html\">Γενική δημόσια άδεια GNU, έκδοση 2 ή νεότερη.</a> </"
+"span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "Περί"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Εμφάνιση της μπάρας όταν το ποντίκι πηγαίνει στην άκρη της οθόνης."
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Αυτόματη απόκρυψη"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Πίεση για εμφάνιση: απαιτείται πίεση για την εμφάνιση της μπάρας"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "Ενεργοποίηση σε λειτουργία πλήρους οθόνης"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Εμφάνιση της μπάρας όταν δεν εμποδίζει τα παράθυρά των εφαρμογών."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Αποφυγή παραθύρων"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Όλα τα παράθυρα"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "Μόνο τα παράθυρα της εστιασμένης εφαρμογής"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "Μόνο μεγιστοποιημένα παράθυρα"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Διάρκεια γραφικών"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Χρονικό όριο εμφάνισης"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Ελάχιστη πίεση"
diff --git a/package/po/es.po b/package/po/es.po
new file mode 100644
index 0000000..a678419
--- /dev/null
+++ b/package/po/es.po
@@ -0,0 +1,438 @@
+# Dash to Dock spanish translation.
+# This file is distributed under the same license as the Dash to Dock package.
+# Hugo Olabera <hugolabe@gmail.com>, 2015.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-05-30 17:27-0400\n"
+"PO-Revision-Date: 2017-02-17 12:11+0100\n"
+"Last-Translator: Hugo Olabera <hugolabe@gmail.com>\n"
+"Language-Team: \n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.11\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Pantalla principal"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Pantalla secundaria"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Derecha"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Izquierda"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Opciones de auto ocultado"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Restaurar"
+
+#: prefs.js:386
+msgid "Show dock and application numbers"
+msgstr "Mostrar el dock y el número de aplicación"
+
+#: prefs.js:443
+msgid "Customize middle-click behavior"
+msgstr "Personalizar comportamiento del botón central"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "Personalizar indicadores de ejecución"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Todas las ventanas"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "Personalizar estilo del indicador"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "Color"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "Color del borde"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "Grosor del borde"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr "Número de aplicación"
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+"Al usar atajos, mostrar momentáneamente el número de aplicación sobre los "
+"íconos."
+
+#: Settings.ui.h:7
+msgid "Show the dock if it is hidden"
+msgstr "Mostrar el dock si está oculto"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+"Si auto-ocultar está activado, el dock aparecerá momentáneamente al usar el "
+"atajo."
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr "Atajo para las opciones de arriba"
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr "Sintaxis: <Shift>, <Ctrl>, <Alt>, <Super>"
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Tiempo de ocultación"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Cuando está seleccionado minimizar, doble click minimiza todas las ventanas "
+"de la aplicación."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Acción de Mayúsculas+Click"
+
+#: Settings.ui.h:14
+msgid "Raise window"
+msgstr "Elevar ventana"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Minimizar ventana"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Lanzar una nueva instancia"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "Alternar entre ventanas"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr "Salir"
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr "Comportamiento del botón central"
+
+#: Settings.ui.h:20
+msgid "Middle-Click action"
+msgstr "Acción del botón central"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr "Comportamiento para Mayúsculas+Botón-Central"
+
+#: Settings.ui.h:22
+msgid "Shift+Middle-Click action"
+msgstr "Acción de Mayúsculas+Botón-Central"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Mostrar el dock en"
+
+#: Settings.ui.h:24
+msgid "Show on all monitors."
+msgstr "Mostrar en todas las pantallas."
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Posición en pantalla"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Abajo"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Arriba"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Ocultar el dock cuando cubre una ventana de la aplicación activa. Otras "
+"opciones disponibles."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Auto ocultado inteligente"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Tamaño máximo del dock"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Modo panel: extender hasta los bordes de la pantalla"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Tamaño máximo de los iconos"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Tamaño fijo de los iconos: desplazarse para mostrar otros"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Posición y tamaño"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Mostrar aplicaciones favoritas"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Mostrar aplicaciones en ejecución"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr "Aislar los espacios de trabajo."
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr "Mostrar vista rápida de ventanas."
+
+#: Settings.ui.h:41
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Si está deshabilitado, estas opciones están accesibles desde gnome-tweak-"
+"tool o desde el sitio web de extensiones."
+
+#: Settings.ui.h:42
+msgid "Show <i>Applications</i> icon"
+msgstr "Mostrar el icono <i>Mostrar aplicaciones</i>"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Mover el botón de aplicaciones al comienzo del dock"
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "Animar <i>Mostrar aplicaciones</i>"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr "Lanzadores"
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+"Habilitar Súper+(0-9) como atajos para activar aplicaciones. También puede "
+"ser usado junto con Mayús y Ctrl."
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr "Usar atajos de teclado para activar aplicaciones"
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Comportamiento al pulsar el icono de una aplicación en ejecución"
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Acción del Click"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Minimizar"
+
+#: Settings.ui.h:51
+msgid "Minimize or overview"
+msgstr "Minimizar o vista de actividades"
+
+#: Settings.ui.h:52
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Comportamiento al usar scroll sobre el icono de una aplicación."
+
+#: Settings.ui.h:53
+msgid "Scroll action"
+msgstr "Acción de scroll"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "No hacer nada"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr "Cambiar de espacio de trabajo."
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Comportamiento"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Utilizar el tema predeterminado de GNOME. Alternativamente, pueden elegirse "
+"ciertas opciones más abajo."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Utilizar el tema por defecto"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Reducir los márgenes para ganar espacio"
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Encoger el dock"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Mostrar un punto por cada ventana de la aplicación."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Mostrar contador de ventanas"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr "Escoger el color de fondo del dock."
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr "Personalizar el color del dock"
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Ajustar la opacidad del fondo del dock."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Personalizar opacidad"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Opacidad"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr "Forzar esquinas rectas\n"
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Apariencia"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "versión: "
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr ""
+"Mueve el panel fuera de la vista de actividades trasformándolo en un dock"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Creado por"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Sitio web"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Este programa viene SIN NINGUNA GARANTÍA.\n"
+"Consulte la <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">Licencia Pública General de GNU, versión 2 o posterior</a> para obtener "
+"más detalles.</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "Acerca de"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Mostrar el dock al mover el puntero al borde de la pantalla"
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Auto ocultar"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Empujar para mostrar: requiere hacer presión para mostrar el dock"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "Habilitar en modo pantalla completa"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Mostrar el dock cuando no cubra otras ventanas de aplicaciones"
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Auto ocultado inteligente"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Todas las ventanas"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "Sólo las ventanas de la aplicación activa"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "Sólo las ventanas maximizadas"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Duración de la animación"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Tiempo de aparición"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Nivel de presión"
diff --git a/package/po/fr.po b/package/po/fr.po
new file mode 100644
index 0000000..4982ab2
--- /dev/null
+++ b/package/po/fr.po
@@ -0,0 +1,438 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dash to Dock\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-05-30 17:27-0400\n"
+"PO-Revision-Date: 2017-04-17 10:31+0200\n"
+"Last-Translator: Thomas GONET <th.gonet@gmail.com>\n"
+"Language-Team: Jean-Baptiste Le Cz <jb.lecoz@gmail.com>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Moniteur principal"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Moniteur secondaire"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Droite"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Gauche"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Personnalisation du masquage automatique"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Restaurer la configuration par défaut"
+
+#: prefs.js:386
+msgid "Show dock and application numbers"
+msgstr "Afficher le dock et le numéro d'application"
+
+#: prefs.js:443
+msgid "Customize middle-click behavior"
+msgstr "Personnaliser le comportement du clic milieu"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "Régler les indicateurs de fenêtres"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Toutes les fenêtres"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "Régler le style des indicateurs"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "Couleur"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "Couleur de la bordure"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "Épaisseur de la bordure"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr "Numéro d'application"
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+"Afficher temporairement les numéros d'application sur les icônes, "
+"correspondant au raccourci clavier."
+
+#: Settings.ui.h:7
+msgid "Show the dock if it is hidden"
+msgstr "Afficher le dock s'il est caché"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+"Si le masquage automatique est actif, le dock apparaîtra temporairement lors "
+"de l'utilisation du raccourci."
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr "Raccourci pour les options dessus"
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr "Syntaxe: <Shift>, <Ctrl>, <Alt>, <Super>"
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Délai de masquage (s)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Quand réglé sur Minimiser, double-cliquer minimise toutes les fenêtres de "
+"l'application."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Action Shift+Clic"
+
+#: Settings.ui.h:14
+msgid "Raise window"
+msgstr "Faire apparaître la fenêtre"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Minimiser la fenêtre"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Lancer une nouvelle fenêtre"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "Cycler sur les fenêtres"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr "Quitter"
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr "Comportement pour le clic milieu"
+
+#: Settings.ui.h:20
+msgid "Middle-Click action"
+msgstr "Action du clic milieu"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr "Comportement pour Shift+Clic milieu"
+
+#: Settings.ui.h:22
+msgid "Shift+Middle-Click action"
+msgstr "Action de Shift+Clic milieu"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Afficher le dock sur le"
+
+#: Settings.ui.h:24
+msgid "Show on all monitors."
+msgstr "Afficher sur tous les écrans."
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Position sur l'écran"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Bas"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Haut"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Cache le dock quand il gêne l'application principale. D'autres paramètres "
+"plus spécifiques sont disponibles."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Masquage intelligent"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Taille maximum du dock"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Mode barre: étendre aux bords de l'écran"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Taille maximum des icônes"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Taille des icônes fixe: faire défiler pour voir les autres icônes"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Position et taille"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Afficher les applications favorites"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Afficher les applications en cours"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr "Isoler les espaces de travail."
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr "Afficher des aperçus de fenêtres."
+
+#: Settings.ui.h:41
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Si désactivés, ces paramètres sont accessibles via gnome-tweak-tool ou le "
+"site d'extension GNOME."
+
+#: Settings.ui.h:42
+msgid "Show <i>Applications</i> icon"
+msgstr "Afficher le raccourci <i>Afficher les Applications</i>"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr ""
+"Placer le raccourci <i>Afficher les Applications</i> en première position"
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "Animer le raccourci <i>Afficher les Applications</i>"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr "Lanceurs"
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+"Activer Super+(0-9) comme raccourcis pour activer les applications. On peut "
+"l'utiliser aussi avec Shift et Ctrl."
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr "Utiliser des raccourcis clavier pour activer les applications"
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Comportement du clic sur l'icône d'une application ouverte."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Action du clic"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Minimiser la fenêtre"
+
+#: Settings.ui.h:51
+msgid "Minimize or overview"
+msgstr "Minimiser ou lancer l'exposé"
+
+#: Settings.ui.h:52
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Comportement lors du défilement sur l'icône d'une application."
+
+#: Settings.ui.h:53
+msgid "Scroll action"
+msgstr "Action du défilement"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Ne rien faire"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr "Changer d'espace de travail"
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Comportement"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Assortir le dock avec le thème par défaut. Sinon, vous pouvez personnaliser "
+"quelques paramètres ci-dessous."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Utiliser le thème par défaut"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Réduire la taille des marges pour gagner de la place."
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Réduire les marges"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Afficher un point pour chaque fenêtre ouverte de l'application."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Afficher un compteur de fenêtres"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr "Choisir la couleur de fond du dock."
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr "Changer la couleur du dock"
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Régler l'opacité en fond du dock."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Régler l'opacité du dock"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Opacité"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr "Forcer des coins droits\n"
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Apparence"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "Version: "
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "Place le dash hors de l'aperçu des fenêtres, le transformant en dock"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Conçu par"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Site web"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Ce programme est distribué SANS AUCUNE GARANTIE.\n"
+"Consultez la <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">Licence Générale Publique GNU version 2 ou plus récente</a> pour plus "
+"d'informations.</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "À propos"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Afficher le dock en survolant le bord de l'écran."
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Masquage automatique"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Pousser pour Afficher: requiert une pression pour afficher le dock"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "Activer en mode plein-écran"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Afficher le dock quand il ne gêne pas les fenêtres."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Masquage automatique intelligent"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Toutes les fenêtres"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "Seulement la fenêtre de l'application active"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "Seulement les fenêtres maximisées"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Durée de l'animation (s)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Délai d'apparition (s)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Seuil de pression"
diff --git a/package/po/hu.po b/package/po/hu.po
new file mode 100644
index 0000000..7c91908
--- /dev/null
+++ b/package/po/hu.po
@@ -0,0 +1,440 @@
+# Hungarian translation for dash-to-dock.
+# Copyright (C) 2017 Free Software Foundation, Inc.
+# This file is distributed under the same license as the dash-to-dock package.
+#
+# Balázs Úr <urbalazs@gmail.com>, 2017.
+msgid ""
+msgstr ""
+"Project-Id-Version: dash-to-dock master\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2017-04-10 22:02+0100\n"
+"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
+"Language-Team: Hungarian <openscope@googlegroups.com>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 2.0\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Elsődleges kijelző"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Másodlagos kijelző"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Jobb"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Bal"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Intelligens automatikus elrejtés személyre szabása"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Visszaállítás az alapértékekre"
+
+#: prefs.js:386
+msgid "Show dock and application numbers"
+msgstr "A dokk és az alkalmazás számainak megjelenítése"
+
+#: prefs.js:443
+msgid "Customize middle-click behavior"
+msgstr "Középső kattintás viselkedésének személyre szabása"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "Futásjelzők személyre szabása"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Összes Ablak"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "Jelző stílusának személyre szabása"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "Szín"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "Szegély színe"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "Szegély szélessége"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr "Szám rátét"
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+"Az alkalmazás számainak átmeneti megjelenítése az ikonok fölött a "
+"gyorsbillentyűnek megfelelően."
+
+#: Settings.ui.h:7
+msgid "Show the dock if it is hidden"
+msgstr "A dokk megjelenítése, ha el van rejtve"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+"Az automatikus elrejtés használatakor a dokk meg fog jelenni egy rövid ideig "
+"a gyorsbillentyű megnyomásakor."
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr "Gyorsbillentyűk a fenti beállításokhoz"
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr "Szintaxis: <Shift>, <Ctrl>, <Alt>, <Super>"
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Elrejtési időkorlát (mp)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Ha minimalizálásra van állítva, akkor a dupla kattintás az alkalmazás összes "
+"ablakát minimalizálja."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Shift + kattintás művelet"
+
+#: Settings.ui.h:14
+msgid "Raise window"
+msgstr "Ablak előre hozása"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Ablak minimalizálása"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Új példány indítása"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "Ablakok körbeléptetése"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr "Kilépés"
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr "A középső kattintás viselkedése."
+
+#: Settings.ui.h:20
+msgid "Middle-Click action"
+msgstr "Középső kattintás művelet"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr "A Shift + középső kattintás viselkedése."
+
+#: Settings.ui.h:22
+msgid "Shift+Middle-Click action"
+msgstr "Shift + középső kattintás művelet"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "A dokk megjelenítése"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "Másodlagos kijelző"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Elhelyezkedés a képernyőn"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Lent"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Fent"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"A dokk elrejtése, amikor az aktuális alkalmazás ablakát akadályozza. További "
+"finombeállítások is elérhetők."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Intelligens automatikus elrejtés"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Dokk méretkorlátja"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Panel mód: kiterjesztés a képernyő széléig"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Ikon méretkorlátja"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Rögzített ikonméret: görgetés egyéb ikonok felfedéséhez"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Elhelyezkedés és méret"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Kedvenc alkalmazások megjelenítése"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Futó alkalmazások megjelenítése"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr "Munkaterületek elkülönítése."
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr "Nyitott ablakok előnézeteinek megjelenítése."
+
+#: Settings.ui.h:41
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Ha le van tiltva, akkor ezek a beállítások elérhetők a GNOME finomhangoló "
+"eszközből vagy a kiegészítők weboldaláról."
+
+#: Settings.ui.h:42
+msgid "Show <i>Applications</i> icon"
+msgstr "<i>Alkalmazások</i> ikon megjelenítése"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Az alkalmazások gombjának áthelyezése a dokk elejére."
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "<i>Alkalmazások megjelenítése</i> animálása."
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr "Indítok"
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+"Szuper + (0-9) engedélyezése gyorsbillentyűként az alkalmazások "
+"aktiválásához. Használható a Shift és a Ctrl billentyűkkel együtt is."
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr "Gyorsbillentyűk használata az alkalmazások aktiválásához"
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Viselkedés egy futó alkalmazás ikonjára való kattintáskor."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Kattintás művelet"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Minimalizálás"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "Ablak minimalizálása"
+
+#: Settings.ui.h:52
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Viselkedés egy alkalmazás ikonján való görgetéskor."
+
+#: Settings.ui.h:53
+msgid "Scroll action"
+msgstr "Görgetési művelet"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Ne tegyen semmit"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr "Munkaterület váltása"
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Viselkedés"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Néhány személyre szabás célja, hogy integrálja a dokkot az alapértelmezett "
+"GNOME témába. Alternatív esetben bizonyos beállítások engedélyezhetők lent."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Beépített téma használata"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Helymegtakarítás a kitöltés és a szegély sugarának csökkentésével."
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "A dash zsugorítása"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Egy pont megjelenítése az alkalmazás minden ablakánál."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Ablakszámlálók jelzőinek megjelenítése"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr "A dash háttérszínének beállítása."
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr "A dash színének személyre szabása"
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "A dash háttér átlátszatlanságának finomhangolása."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Átlátszatlanság személyre szabása"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Átlátszatlanság"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr "Egyenes sarok kényszerítése\n"
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Megjelenés"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "verzió: "
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "Áthelyezi a dasht az áttekintőn kívülre egy dokká alakítva azt"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Létrehozta"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Weboldal"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Ehhez a programhoz SEMMILYEN GARANCIA NEM JÁR.\n"
+"Nézze meg a <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html "
+"\">GNU General Public License 2. vagy későbbi verzióját</a> a részletekért.</"
+"span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "Névjegy"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "A dokk megjelenítése a képernyő szélére történő egér rámutatással."
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Automatikus elrejtés"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Nyomás a megjelenítéshez: nyomást igényel a dokk megjelenítéséhez"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "Engedélyezés teljes képernyős módban"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "A dokk megjelenítése, amikor nem akadályozza az alkalmazás ablakait."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Ablakok kikerülése"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Összes ablak"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "Csak a kijelölt alkalmazások ablakai"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "Csak a maximalizált ablakok"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Animáció időtartama (mp)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0,000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Megjelenítési időkorlát (mp)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Nyomás küszöbszintje"
diff --git a/package/po/it.po b/package/po/it.po
new file mode 100644
index 0000000..6744588
--- /dev/null
+++ b/package/po/it.po
@@ -0,0 +1,453 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dash-to-Dock\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2017-06-04 12:59+0100\n"
+"Last-Translator: Giuseppe Pignataro (Fastbyte01) <rogepix@gmail.com>\n"
+"Language-Team: Italian <micxgx@gmail.com>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.8.11\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Monitor primario"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Monitor secondario"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Destra"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Sinistra"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Personalizzazione nascondimento automatico intelligente"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Ripristina a predefinito"
+
+#: prefs.js:386
+msgid "Show dock and application numbers"
+msgstr "Mostra applicazioni in esecuzione"
+
+#: prefs.js:443
+msgid "Customize middle-click behavior"
+msgstr "Personalizza comportamento clic centrale"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "Personalizza indicatori in esecuzione"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Tutte le finestre"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "Personalizza stile indicatori"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "Colore"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "Colore bordo"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "Larghezza bordo"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr "Indicatore numerico in sovraimpressione"
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+"Mostra brevemente il numero corrispondente alla scorciatoia sull'icona "
+"dell'applicazione."
+
+#: Settings.ui.h:7
+msgid "Show the dock if it is hidden"
+msgstr "Mostra dock se nascosta"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+"Con nascondimento automatico intelligente, la dock viene mostrata per un "
+"istante quando la scorciatoia è attivata"
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr "Scorciatoia"
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr "Formato: <Shift>, <Ctrl>, <Alt>, <Super>"
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Timeout nascondimento (s)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Quando impostati su minimizza, un doppio clic minimizza tutte le finestre "
+"dell'applicazione."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Azione Shift+Clic"
+
+#: Settings.ui.h:14
+msgid "Raise window"
+msgstr "Solleva finestra"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Minimizza finestra"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Lancia nuova istanza"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "Passa attraverso le finestre"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr "Chiudi"
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr "Comportamento per Clic-centrale"
+
+#: Settings.ui.h:20
+msgid "Middle-Click action"
+msgstr "Azione Clic-centrale"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr "Comportamento per Shift+Clic-centrale"
+
+#: Settings.ui.h:22
+msgid "Shift+Middle-Click action"
+msgstr "Azione Shift+Clic-centrale"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Mostra dock sul"
+
+#: Settings.ui.h:24
+msgid "Show on all monitors."
+msgstr "Mostra su tutti gli schermi"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Posizione sullo schermo"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Basso"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Alto"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Nasconde la dock quando questa ostruisce una finestra dell'applicazione "
+"corrente. Sono disponibili maggiori impostazioni."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Autohide intelligente"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Limite dimensione dock"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Modalità pannello: si estende fino al bordo dello schermo"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Limite dimensione icone"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Dimensione icona fissa: scorri per rivelare le altre icone"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Posizione e dimensione"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Mostra applicazioni preferite"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Mostra applicazioni in esecuzione"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr "Isola spazi di lavoro."
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr "Mostra anteprime delle finestre aperte"
+
+#: Settings.ui.h:41
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Se disabilitate, queste impostazioni sono accessibili da gnome-tweak-tool o "
+"dal sito web delle estensioni."
+
+#: Settings.ui.h:42
+msgid "Show <i>Applications</i> icon"
+msgstr "Mostra icona <i>Applicazioni</i>"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Sposta il pulsante delle applicazioni all'inizio della dock."
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "Anima <i>Mostra Applicazioni</i>."
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr "Icone delle applicazoni"
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+"Attiva Super+(0-9) come scorciatoie per attivare le applicazioni. Funziona "
+"anche con Shift e Ctrl"
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr "Usa scorciatoie da tastiera per attivare le applicazioni."
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr ""
+"Comportamento quando si fa clic sull'icona di una applicazione in esecuzione."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Azione clic"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Minimizza"
+
+#: Settings.ui.h:51
+msgid "Minimize or overview"
+msgstr "Minimizza o mostra attività"
+
+#: Settings.ui.h:52
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr ""
+"Comportamento quando si fa clic sull'icona di una applicazione in esecuzione."
+
+#: Settings.ui.h:53
+msgid "Scroll action"
+msgstr "Azione clic"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Non fare nulla"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr "Cambia spazio di lavoro."
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Comportamento"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Poche personalizzazioni significative per integrare la dock con il tema di "
+"default di GNOME. In alternativa, delle opzioni specifiche possono essere "
+"abilitate qui sotto."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Usa teme integrato"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Salva spazio riducendo il margine e il raggio dei bordi."
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Riduci la dash"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Mostra un punto per ogni finestra dell'applicazione."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Mostra indicatore numerico delle finestra"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr "Imposta il colore di sfondo della dash."
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr "Personalizza il colore della dash"
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Personalizza l'opacità dello sfondo della dash."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Personalizza opacità"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Opacità"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Aspetto"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "versione:"
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "Sposta la dash fuori dalla panoramica trasformandola in una dock"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Creata da "
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Sito web"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Questo programma viene dato senza ASSOLUTAMENTE NESSUNA "
+"GARANZIA.\n"
+"Vedi la <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, versione 2 o successiva</a> per maggiori "
+"dettagli.</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "Info su"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Mostra la dock passando con il mouse sul bordo dello schermo"
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Nascondi automaticamente"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Premi per vedere: richiede una pressione per mostrare la dock"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "Abilità in modalità a schermo intero"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr ""
+"Mostra la dock quando questa non ostruisce le finestre dell'applicazione."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Schive finestre"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Tutte le finestre"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "Solo le finestre delle applicazione a fuoco"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "Solo le finestre massimizzate"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Durata Animazione (s)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Timeout rivelazione (s)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Soglia pressione"
+
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "Con la dimensione fissa delle icone, solo il bordo della dock e l'icona "
+#~ "<i> Mostra Applicazioni</i> sono attive."
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "Cambia spazio di lavoro scorrendo sulla dock"
diff --git a/package/po/ja.po b/package/po/ja.po
new file mode 100644
index 0000000..20acd17
--- /dev/null
+++ b/package/po/ja.po
@@ -0,0 +1,458 @@
+# Dash to Dock master ja.po
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the dash-to-dock package.
+# Jiro Matsuzawa <jmatsuzawa@gnome.org>, 2013.
+# Debonne Hooties <debonne.hooties@gmail.com>, 2014-2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: dash-to-dock master\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2016-04-03 17:02+0900\n"
+"Last-Translator: Debonne Hooties <debonne.hooties@gmail.com>\n"
+"Language-Team: Safranjoepe (an unofficial team of Japanese) <>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "プライマリーモニター"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "セカンダリーモニター"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "右"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "左"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "インテリジェント表示の設定"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "既定値にリセット"
+
+#: prefs.js:386
+#, fuzzy
+msgid "Show dock and application numbers"
+msgstr "実行中アプリケーションの表示"
+
+#: prefs.js:443
+#, fuzzy
+msgid "Customize middle-click behavior"
+msgstr "表示スタイルの設定"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "インジケーターの表示設定"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "すべてのウィンドウが対象"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "表示スタイルの設定"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "ボディ色"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "縁取り色"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "縁取り幅"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr ""
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+
+#: Settings.ui.h:7
+#, fuzzy
+msgid "Show the dock if it is hidden"
+msgstr "ドックを表示するモニター"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr ""
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr ""
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "非表示までのタイムアウト (秒)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"[ウィンドウの最小化] に設定したときは、アイコンをダブルクリックするとそのアプ"
+"リケーションのウィンドウをすべて最小化します。"
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Shift+クリック時のアクション"
+
+#: Settings.ui.h:14
+#, fuzzy
+msgid "Raise window"
+msgstr "ウィンドウの最小化"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "ウィンドウの最小化"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "新しいウィンドウを開く"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "ウィンドウの切り替え"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr ""
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:20
+#, fuzzy
+msgid "Middle-Click action"
+msgstr "クリック時のアクション"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:22
+#, fuzzy
+msgid "Shift+Middle-Click action"
+msgstr "Shift+クリック時のアクション"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "ドックを表示するモニター"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "セカンダリーモニター"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "表示位置"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "下"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "上"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"開いているウィンドウの邪魔にならないようドックの表示/非表示を自動的に切り替え"
+"ます。より洗練された表示設定も可能です。"
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "インテリジェント表示"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "ドックサイズの上限"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "パネルモード(画面の端までドックを拡張)"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "アイコンサイズの上限"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "アイコンサイズの固定(隠れたアイコンはスクロールで表示)"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "位置とサイズ"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "お気に入りアプリケーションの表示"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "実行中アプリケーションの表示"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr ""
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr ""
+
+#: Settings.ui.h:41
+#, fuzzy
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"オフにしたときは、gnome-tweak-tool または拡張機能ウェブサイトを経由してこの設"
+"定ダイアログにアクセスします。"
+
+#: Settings.ui.h:42
+#, fuzzy
+msgid "Show <i>Applications</i> icon"
+msgstr "[アプリケーションを表示する] アイコンの表示"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "ドックの先頭(最上段または左端)に表示"
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "アニメーションしながらアプリケーション一覧を表示"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr ""
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr ""
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "実行中アプリケーションのアイコンをクリックしたときの動作を指定します。"
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "クリック時のアクション"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "ウィンドウの最小化"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "ウィンドウの最小化"
+
+#: Settings.ui.h:52
+#, fuzzy
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "実行中アプリケーションのアイコンをクリックしたときの動作を指定します。"
+
+#: Settings.ui.h:53
+#, fuzzy
+msgid "Scroll action"
+msgstr "クリック時のアクション"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "何もしない"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr ""
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "動作"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"この設定がオンのときは、お使いのGNOMEテーマとの調和を図るためカスタマイズは無"
+"効になります。オフのときには以下のカスタマイズが可能です。"
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "ビルトインテーマの使用"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "境界線の太さとパディングを減らして表示域を小さくします。"
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Dashの縮小表示"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "アプリケーションウィンドウの数をドットで表示します。"
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "ウィンドウ数インジケーターの表示"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr ""
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr ""
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Dash背景の不透明度を調整します。"
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "不透明度の調整"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "不透明度"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "外観"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "バージョン: "
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "Dashをドック化してアクティビティ画面以外でもDash操作を可能にします。"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "作者:"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "ウェブページ"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">このプログラムに<b>保証は一切ありません</b>。\n"
+"詳しくは <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU一般公衆ライセンス(GPL)バージョン2</a> またはそれ以降のバージョンをご"
+"覧ください。</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "情報"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr ""
+"ドックを表示したいとき、ポインターを画面端に移動するとドックが表示されます。"
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "オンデマンド表示"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr ""
+"押し込んで表示(画面外にポインターを移動するようにマウスを動かして表示)"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "フルスクリーンモード時でも表示"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr ""
+"ドックを常に表示しますが、アプリケーションウィンドウと重なるときは表示しませ"
+"ん。"
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "ウィンドウ重なり防止"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "すべてのウィンドウが対象"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "フォーカスされたアプリケーションのウィンドウが対象"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "最大化されたウィンドウが対象"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "アニメーション表示時間 (秒)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "表示までのタイムアウト (秒)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "押し込み量 (ピクセル)"
+
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "アイコンサイズを固定しているときは、ドックの端または [アプリケーションを表"
+#~ "示する] アイコン上でのスクロールのみが有効です。"
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "ドック上でスクロールしたらワークスペースを切り替える"
diff --git a/package/po/nl.po b/package/po/nl.po
new file mode 100644
index 0000000..8cedf7d
--- /dev/null
+++ b/package/po/nl.po
@@ -0,0 +1,581 @@
+# Translation for de
+# Copyright (C) 2014 Michele
+# This file is distributed under the same license as the dash-to-dock package.
+# Morris Jobke <hey@morrisjobke.de>, 2014.
+# Jonatan Zeidler <jonatan_zeidler@hotmail.de>, 2012
+# jonius <jonatan_zeidler@gmx.de>, 2012
+# Heimen Stoffels <vistausss@outlook.com>, 2015.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dash to Dock\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2015-05-14 14:26+0200\n"
+"Last-Translator: Heimen Stoffels <vistausss@outlook.com>\n"
+"Language-Team: Nederlands <vistausss@outlook.com>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Gtranslator 2.91.7\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Eerste beeldscherm"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Tweede beeldscherm"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Rechts"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Links"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Voorkeuren voor intelligente verbergmodus"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Herstellen naar standaardwaarden"
+
+#: prefs.js:386
+#, fuzzy
+msgid "Show dock and application numbers"
+msgstr "Geopende applicaties weergeven"
+
+#: prefs.js:443
+#, fuzzy
+msgid "Customize middle-click behavior"
+msgstr "Doorzichtigheid aanpassen"
+
+#: prefs.js:514
+#, fuzzy
+msgid "Customize running indicators"
+msgstr "Geopende applicaties weergeven"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Vensters ontwijken"
+
+#: Settings.ui.h:1
+#, fuzzy
+msgid "Customize indicator style"
+msgstr "Doorzichtigheid aanpassen"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr ""
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr ""
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr ""
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr ""
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+
+#: Settings.ui.h:7
+#, fuzzy
+msgid "Show the dock if it is hidden"
+msgstr "Het dock weergeven op"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr ""
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr ""
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Verberginterval (s)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Indien gekozen voor minimaliseren zal dubbelklikken alle vensters van de "
+"huidige applicatie minimaliseren."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Shift+Klik-actie"
+
+#: Settings.ui.h:14
+#, fuzzy
+msgid "Raise window"
+msgstr "Venster minimalisren"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Venster minimalisren"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Nieuw proces openen"
+
+#: Settings.ui.h:17
+#, fuzzy
+msgid "Cycle through windows"
+msgstr "Schakelen tussen vensters"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr ""
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:20
+#, fuzzy
+msgid "Middle-Click action"
+msgstr "Klikactie"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:22
+#, fuzzy
+msgid "Shift+Middle-Click action"
+msgstr "Shift+Klik-actie"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Het dock weergeven op"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "Tweede beeldscherm"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Positie op het scherm"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Onderaan"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Bovenaan"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Het dock verbergen wanneer het een venster van de huidige applicatie in de "
+"weg zit. Er zijn gedetailleerde instellingen hiervoor beschikbaar."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Intelligente verbergmodus"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Maximale dockgrootte"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Paneelmodus: uitrekken tot aan de schermrand"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Maximale pictogramgrootte"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr ""
+"Vastgezette pictogramgrootte: scroll om meer pictogrammen weer te geven"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Positie en grootte"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Favoriete applicaties weergeven"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Geopende applicaties weergeven"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr ""
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr ""
+
+#: Settings.ui.h:41
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+
+#: Settings.ui.h:42
+#, fuzzy
+msgid "Show <i>Applications</i> icon"
+msgstr "<i>Applicaties weergeven</i>-pictogram aan het begin"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Verplaatst de applicaties-knop naar het begin van het dock."
+
+#: Settings.ui.h:44
+#, fuzzy
+msgid "Animate <i>Show Applications</i>."
+msgstr "<i>Applicaties weergeven</i>-pictogram aan het begin"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr ""
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr ""
+
+#: Settings.ui.h:48
+#, fuzzy
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Gedrag van het klikken op het pictogram van een geopende applicatie."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Klikactie"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Minimaliseren"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "Venster minimalisren"
+
+#: Settings.ui.h:52
+#, fuzzy
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Gedrag van het klikken op het pictogram van een geopende applicatie."
+
+#: Settings.ui.h:53
+#, fuzzy
+msgid "Scroll action"
+msgstr "Klikactie"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Niets doen"
+
+#: Settings.ui.h:55
+#, fuzzy
+msgid "Switch workspace"
+msgstr "Nur eine Arbeitsfläche pro Scrollen weiterschalten"
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Gedrag"
+
+#: Settings.ui.h:57
+#, fuzzy
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Enkele aanpassingen die bedoeld zijn om het dock te integreren met het "
+"standaard GNOME-thema. In plaats daarvan kunt specifieke opties hieronder "
+"inschakelen."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Ingebouwd thema gebruiken"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Bespaar ruimte door de radius van de dikte en rand te verkleinen."
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "De dash verkleinen"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Een stip weergeven voor elk venster van de applicatie."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Indicatoren van de vensterteller weergeven"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr ""
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr ""
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "De doorzichtigheid van de dash-achtergrond aanpassen."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Doorzichtigheid aanpassen"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Doorzichtigheid"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Uiterlijk"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "versie:"
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr ""
+"Verplaatst de dash naar buiten het activiteitenoverzicht zodat het een dock "
+"wordt"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Gecreëerd door"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr ""
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Dit programma wordt geleverd ZONDER ENIGE GARANTIE.\n"
+"Bekijk de <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, versie 2 of nieuwer</a> voor details.</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "Over"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Het dock weergeven door de muiscursor op de schermrand te plaatsen"
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Automatisch verbergen"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Weergeven middels druk: druk toepassen om het dock weer te geven"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr ""
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Het dock weergeven wanneer het geen applicatievensters in de weg zit."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Vensters ontwijken"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Vensters ontwijken"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr ""
+
+#: Settings.ui.h:86
+#, fuzzy
+msgid "Only maximized windows"
+msgstr "Venster minimalisren"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Animatieduur (s)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Weergaveinterval (s)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Drukwaarde (px)"
+
+#, fuzzy
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "Het gebied nabij de schermrand en de <i>Applicaties weergeven</i>-knop "
+#~ "zijn actief."
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "Van werkblad wisselen door te scrollen op het dock"
+
+#~ msgid "Only consider windows of the focused application"
+#~ msgstr "Alleen vensters van de huidige gefocuste applicatie overwegen"
+
+#~ msgid "Main Settings"
+#~ msgstr "Grundeinstellungen"
+
+#~ msgid "Dock Position"
+#~ msgstr "Dock-Position"
+
+#~ msgid "Dock is fixed and always visible"
+#~ msgstr "Das Dock hat eine feste Position und ist immer sichtbar"
+
+#~ msgid "Show delay [ms]"
+#~ msgstr "Einblendeverzögerung [ms]"
+
+#~ msgid "Hide delay [ms]"
+#~ msgstr "Ausblendeverzögerung [ms]"
+
+#~ msgid "Application based intellihide"
+#~ msgstr "Anwendungsbasiertes intelligentes Verstecken"
+
+#~ msgid "Show the dock on following monitor (if attached)"
+#~ msgstr "Zeige Dock auf folgendem Monitor (falls angeschlossen)"
+
+#~ msgid "Primary (default)"
+#~ msgstr "Primäranzeige (Standard)"
+
+#~ msgid "1"
+#~ msgstr "1"
+
+#~ msgid "2"
+#~ msgstr "2"
+
+#~ msgid "3"
+#~ msgstr "3"
+
+#~ msgid "4"
+#~ msgstr "4"
+
+#~ msgid "Max height"
+#~ msgstr "Maximale Höhe"
+
+#~ msgid "Expand (experimental and buggy)"
+#~ msgstr "Komplette Höhe (experimentell und fehlerbehaftet)"
+
+#~ msgid "Maximum icon size"
+#~ msgstr "Maximale Symbolgröße"
+
+#~ msgid "16"
+#~ msgstr "16"
+
+#~ msgid "24"
+#~ msgstr "24"
+
+#~ msgid "32"
+#~ msgstr "32"
+
+#~ msgid "48"
+#~ msgstr "48"
+
+#~ msgid "64"
+#~ msgstr "64"
+
+#~ msgid "Optional features"
+#~ msgstr "Optionale Funktionen"
+
+#~ msgid "Deadtime between each workspace switching [ms]"
+#~ msgstr "Stillstandszeit zwischen Arbeitsflächenwechsel [ms]"
+
+#~ msgid "Only a 1px wide area close to the screen edge is active"
+#~ msgstr "Nur einen 1 Pixel-breiten Bereich am Rand nutzen"
+
+#~ msgid "All the area of the dock is active"
+#~ msgstr "Den gesamten Bereich des Docks nutzen"
+
+#~ msgid "Customize actions on mouse click"
+#~ msgstr "Aktion bei Mausklick anpassen"
+
+#~ msgid "Action on clicking on running app"
+#~ msgstr "Aktion beim Klicken auf eine laufende Anwendung"
+
+#~ msgid "Minimize window on shift+click (double click for all app windows)"
+#~ msgstr ""
+#~ "Fenster mit Shift+Klick minimieren (Doppelklick für alle Fenster der "
+#~ "Anwendung)"
+
+#~ msgid "Appearence and Themes"
+#~ msgstr "Erscheinungsbild und Themen"
+
+#~ msgid ""
+#~ "A customized theme is built in the extension. This is meant to work with "
+#~ "the default Adwaita theme: the dash is shrunk to save space, its "
+#~ "background transparency reduced, and custom indicators for the number of "
+#~ "windows of each application are added."
+#~ msgstr ""
+#~ "Ein angepasstes Thema ist in dieser Erweiterung enthalten. Es ist für das "
+#~ "Vorgabe-Adwaita-Thema gedacht: Das Dash ist schmaler, um Platz zu sparen, "
+#~ "die Hintergrundtransparenz ist reduziert und für jede Anwendung wird ein "
+#~ "Indikator für die Anzahl der Fenster eingefügt."
+
+#~ msgid ""
+#~ "Alternatively, for a better integration with custom themes, each "
+#~ "customization can be applied indipendently"
+#~ msgstr ""
+#~ "Alternativ können für eine bessere Integration Anpassungen vorgenommen "
+#~ "werden"
+
+#~ msgid "Shrink the dash size by reducing padding"
+#~ msgstr "Das Dash schmaler machen durch Verkleinern des Abstands zum Rand"
+
+#~ msgid "Apply custom theme (work only with the default Adwaita theme)"
+#~ msgstr ""
+#~ "Benutzerdefiniertes Theme verwenden (funktioniert nur mit dem Standard-"
+#~ "Adwaita-Theme)"
diff --git a/package/po/pl.po b/package/po/pl.po
new file mode 100644
index 0000000..39eae9d
--- /dev/null
+++ b/package/po/pl.po
@@ -0,0 +1,564 @@
+# Polish translation for dash-to-dock GNOME Shell extension
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the dash-to-dock package.
+# 
+# Piotr Sokół <psokol.l10n@gmail.com>, 2012, 2013, 2015, 2016, 2017.
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: 55\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2017-04-09 09:44+0200\n"
+"Last-Translator: Piotr Sokół <psokol.l10n@gmail.com>\n"
+"Language-Team: polski <>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bits\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2;\n"
+"X-Generator: Gtranslator 2.91.7\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Podstawowy"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Drugorzędny"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Prawo"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Lewo"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Dostosowanie automatycznego ukrywania"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Przywróć domyślne"
+
+#: prefs.js:386
+msgid "Show dock and application numbers"
+msgstr "Wyświetlanie doku i numerów programów"
+
+#: prefs.js:443
+msgid "Customize middle-click behavior"
+msgstr "Dostosowanie działania przycisków myszy"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "Dostosowanie wskaźników okien"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Wszystkie okna"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "Dostosowanie stylu wskaźników"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "Kolor"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "Kolor obramowania"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "Szerokość obramowania"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr "Nakładka z numerem"
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr "Wyświetla chwilowo na ikonach numery programów powiązane ze skrótami"
+
+#: Settings.ui.h:7
+msgid "Show the dock if it is hidden"
+msgstr "Wyświetlenie ukrytego doku"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr "Wyświetla chwilowo dok po wciśnięciu skrótu klawiszowego"
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr "Skrót klawiszowy dla powyższych poleceń"
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr "Składnia: <Shift>, <Ctrl>, <Alt>, <Super>"
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Czas ukrywania (s)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Wybranie zminimalizowania okna, umożliwia minimalizowanie wszystkich okien "
+"programu dwukrotnym kliknięciem"
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Kliknięcia lewym przyciskiem + Shift"
+
+#: Settings.ui.h:14
+msgid "Raise window"
+msgstr "Przywrócenie okna"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Zminimalizowanie okna"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Otwarcie nowego okna"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "Przełączenie pomiędzy oknami"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr "Zakończenie działania"
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr "Konfiguruje działanie kliknięcia środkowym przyciskiem myszy"
+
+#: Settings.ui.h:20
+msgid "Middle-Click action"
+msgstr "Kliknięcie środkowym przyciskiem"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr ""
+"Konfiguruje działanie kliknięcia środkowym przyciskiem myszy z przytrzymanym "
+"klawiszem Shift"
+
+#: Settings.ui.h:22
+msgid "Shift+Middle-Click action"
+msgstr "Kliknięcie środkowym przyciskiem + Shift"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Ekran wyświetlania doku"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "Drugorzędny"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Położenie na ekranie"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Dół"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Góra"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Ukrywa dok jeśli zakrywa okno bieżącego programu. Dostępnych jest więcej "
+"szczegółowych opcji."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Inteligentne ukrywanie"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Ograniczenie rozmiaru doku"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Tryb panelu: rozciągnięcie do krawędzi ekranu"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Ograniczenie rozmiaru ikon"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Ustalony rozmiar ikon: odsłanianie ikon przewijaniem"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Położenie i rozmiar"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Ulubione programy"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Uruchomione programy"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr "Izolowanie obszarów roboczych"
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr "Podgląd otwartych okien"
+
+#: Settings.ui.h:41
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Przełącza widoczność przycisku programów. Można też skonfigurować za pomocą "
+"narzędzia dostrajania lub witryny internetowej z rozszerzeniami."
+
+#: Settings.ui.h:42
+msgid "Show <i>Applications</i> icon"
+msgstr "Przycisk <i>Wyświetl programy</i>"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Przemieszczenie przycisku programów na początek doku"
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "Animowanie przycisku <i>Wyświetl programy</i>"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr "Aktywatory"
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+"Używa skrótu Super+(0-9) do uruchomienia aktywatorów. Można użyć z "
+"modyfikatorem Shift lub Ctrl."
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr "Uruchamianie aktywatorów skrótami klawiszowymi"
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Określa działanie kliknięcia ikony uruchomionego programu"
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Działanie kliknięcia"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Zminimalizowanie okna"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "Zminimalizowanie okna"
+
+#: Settings.ui.h:52
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Określa działanie przewijania kółkiem ikony programu"
+
+#: Settings.ui.h:53
+msgid "Scroll action"
+msgstr "Działanie przewijania"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Brak"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr "Przełączenie obszaru roboczego"
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Zachowanie"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Integruje dok z domyślnym stylem GNOME przy użyciu kilku ustawień. "
+"Opcjonalnie ustawienia te można określić poniżej."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Użycie zintegrowanego stylu"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr ""
+"Zmniejsza zajmowaną powierzchnię redukując\n"
+"odległość od krawędzi i jej zaokrąglenie"
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Zmniejszenie kokpitu"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Wyświetla kropkę dla każdego okna programu"
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Wskaźniki ilości okien"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr "Ustala wybrany kolor tła kokpitu"
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr "Kolor kokpitu"
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Modyfikuje przezroczystość tła kokpitu"
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Dostosowanie przezroczystości tła"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Nieprzezroczystość"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr "Kąty proste narożników\n"
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Wygląd"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "wersja: "
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "Przemieszcza kokpit z widoku podglądu do doku"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Autor:"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Strona internetowa"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Niniejszy program rozpowszechniany jest bez "
+"jakiejkolwiek gwarancji.\n"
+"Więcej informacji: <a href=\"https://www.gnu.org/licenses/old-licenses/"
+"gpl-2.0.html\">Powszechna licencja publiczna GNU, wersja 2 lub późniejsza</"
+"a>.</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "O programie"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Wyświetla dok po przemieszczeniu wskaźnika myszy do krawędzi ekranu"
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Automatyczne ukrywanie"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Wymagany nacisk do wyświetlenia doku"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "Wyświetlanie na pełnym ekranie"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Wyświetla dok jeśli nie zakrywa okien programu"
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Ukrywanie przed oknami"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Wszystkie okna"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "Tylko aktywne okna programu"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "Tylko zmaksymalizowane okna"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Czas animacji (s)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Czas wyświetlania (s)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Próg nacisku"
+
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "W przypadku ustalonego rozmiaru ikon, używa jedynie obszaru krawędzi doku "
+#~ "i przycisku <i>Wyświetl programy</i>."
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "Przełączanie obszarów roboczych przewijaniem doku"
+
+#~ msgid "Main Settings"
+#~ msgstr "Ogólne"
+
+#~ msgid "Dock Position"
+#~ msgstr "Położenie paska"
+
+#~ msgid "Dock is fixed and always visible"
+#~ msgstr "Zawsze widoczny pasek"
+
+#~ msgid "Show delay [ms]"
+#~ msgstr "Opóźnienie wysuwania [ms]"
+
+#~ msgid "Hide delay [ms]"
+#~ msgstr "Opóźnienie ukrywania [ms]"
+
+#~ msgid "Application based intellihide"
+#~ msgstr "Ukrywanie tylko przed uaktywnionymi oknami"
+
+#~ msgid "Show the dock on following monitor (if attached)"
+#~ msgstr "Wyświetlanie paska na podłączonym ekranie"
+
+#~ msgid "Primary (default)"
+#~ msgstr "Podstawowy (domyślnie)"
+
+#~ msgid "1"
+#~ msgstr "1"
+
+#~ msgid "2"
+#~ msgstr "2"
+
+#~ msgid "3"
+#~ msgstr "3"
+
+#~ msgid "4"
+#~ msgstr "4"
+
+#~ msgid "Max height"
+#~ msgstr "Maksymalna wysokość"
+
+#~ msgid "Expand (experimental and buggy)"
+#~ msgstr "Rozciągnięcie (opcja eksperymentalna)"
+
+#~ msgid "Maximum icon size"
+#~ msgstr "Maksymalny rozmiar ikony"
+
+#~ msgid "16"
+#~ msgstr "16"
+
+#~ msgid "24"
+#~ msgstr "24"
+
+#~ msgid "32"
+#~ msgstr "32"
+
+#~ msgid "48"
+#~ msgstr "48"
+
+#~ msgid "64"
+#~ msgstr "64"
+
+#~ msgid "Optional features"
+#~ msgstr "Dodatkowe"
+
+#~ msgid "Deadtime between each workspace switching [ms]"
+#~ msgstr "Opóźnienie przełączenia pomiędzy obszarami roboczymi [ms]"
+
+#~ msgid "Only a 1px wide area close to the screen edge is active"
+#~ msgstr ""
+#~ "Ograniczenie aktywnego obszaru do szerokości 1 piksela od krawędzi ekranu"
+
+#~ msgid "All the area of the dock is active"
+#~ msgstr "Aktywny cały obszar paska"
+
+#~ msgid "Customize actions on mouse click"
+#~ msgstr "Dostosowanie kliknięcia przyciskiem myszy"
+
+#~ msgid "Action on clicking on running app"
+#~ msgstr "Działanie kliknięcia ikony uruchomionego programu"
+
+#~ msgid "Minimize window on shift+click (double click for all app windows)"
+#~ msgstr ""
+#~ "Minimalizowanie okien kliknięciem z przytrzymanym klawiszem shift\n"
+#~ "(dwukrotne kliknięcie minimalizuje wszystkie okna programu)"
+
+#~ msgid "Appearence and Themes"
+#~ msgstr "Wygląd"
+
+#~ msgid ""
+#~ "A customized theme is built in the extension. This is meant to work with "
+#~ "the default Adwaita theme: the dash is shrunk to save space, its "
+#~ "background transparency reduced, and custom indicators for the number of "
+#~ "windows of each application are added."
+#~ msgstr ""
+#~ "Wraz z rozszerzeniem udostępniony jest zmodyfikowany styl paska, "
+#~ "zaprojektowany do działania z domyślnym stylem Adwaita: pasek został "
+#~ "zmniejszony, zredukowano jego przezroczystość i dodano wskaźniki ilości "
+#~ "okien programów."
+
+#~ msgid ""
+#~ "Alternatively, for a better integration with custom themes, each "
+#~ "customization can be applied indipendently"
+#~ msgstr ""
+#~ "Dla lepszego dopasowania do stylu, każdą z cech można dostosować "
+#~ "niezależnie."
+
+#~ msgid "Shrink the dash size by reducing padding"
+#~ msgstr "Zmniejszenie odległości krawędzi"
+
+#~ msgid "Only when in autohide"
+#~ msgstr "Włączenie tylko podczas automatycznego ukrywania"
diff --git a/package/po/pt.po b/package/po/pt.po
new file mode 100644
index 0000000..f4209c8
--- /dev/null
+++ b/package/po/pt.po
@@ -0,0 +1,526 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Carlos Alberto Junior Spohr Poletto <carlos.spohr@gmail.com>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dash to Dock\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2012-12-20 20:45+1100\n"
+"Last-Translator: Carlos Alberto Junior Spohr Poletto <carlos."
+"spohr@gmail>com>\n"
+"Language-Team: Carlos Alberto Junior Spohr Poletto <carlos.spohr@gmail>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Portuguese\n"
+"X-Poedit-Country: Portugal\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr ""
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr ""
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr ""
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr ""
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr ""
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr ""
+
+#: prefs.js:386
+#, fuzzy
+msgid "Show dock and application numbers"
+msgstr "Mostrar aplicações em execução"
+
+#: prefs.js:443
+#, fuzzy
+msgid "Customize middle-click behavior"
+msgstr "Alterar a opacidade do fundo do dock"
+
+#: prefs.js:514
+#, fuzzy
+msgid "Customize running indicators"
+msgstr "Mostrar aplicações em execução"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr ""
+
+#: Settings.ui.h:1
+#, fuzzy
+msgid "Customize indicator style"
+msgstr "Alterar a opacidade do fundo do dock"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr ""
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr ""
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr ""
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr ""
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+
+#: Settings.ui.h:7
+msgid "Show the dock if it is hidden"
+msgstr ""
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr ""
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr ""
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr ""
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr ""
+
+#: Settings.ui.h:14
+#, fuzzy
+msgid "Raise window"
+msgstr "Minimizar"
+
+#: Settings.ui.h:15
+#, fuzzy
+msgid "Minimize window"
+msgstr "Minimizar"
+
+#: Settings.ui.h:16
+#, fuzzy
+msgid "Launch new instance"
+msgstr "Abrir uma nova janela"
+
+#: Settings.ui.h:17
+#, fuzzy
+msgid "Cycle through windows"
+msgstr "Percorrer janelas de aplicativos"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr ""
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:20
+msgid "Middle-Click action"
+msgstr ""
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:22
+msgid "Shift+Middle-Click action"
+msgstr ""
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr ""
+
+#: Settings.ui.h:24
+msgid "Show on all monitors."
+msgstr ""
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr ""
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr ""
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr ""
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+
+#: Settings.ui.h:31
+#, fuzzy
+msgid "Intelligent autohide"
+msgstr "Ocultação inteligente"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr ""
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr ""
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr ""
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr ""
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr ""
+
+#: Settings.ui.h:37
+#, fuzzy
+msgid "Show favorite applications"
+msgstr "Mostrar ícones das aplicações favoritas"
+
+#: Settings.ui.h:38
+#, fuzzy
+msgid "Show running applications"
+msgstr "Mostrar aplicações em execução"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr ""
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr ""
+
+#: Settings.ui.h:41
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+
+#: Settings.ui.h:42
+#, fuzzy
+msgid "Show <i>Applications</i> icon"
+msgstr "Mostrar aplicações em execução"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr ""
+
+#: Settings.ui.h:44
+#, fuzzy
+msgid "Animate <i>Show Applications</i>."
+msgstr "Mostrar aplicações em execução"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr ""
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr ""
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr ""
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr ""
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Minimizar"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "Minimizar"
+
+#: Settings.ui.h:52
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr ""
+
+#: Settings.ui.h:53
+msgid "Scroll action"
+msgstr ""
+
+#: Settings.ui.h:54
+#, fuzzy
+msgid "Do nothing"
+msgstr "Não faça nada (padrão)"
+
+#: Settings.ui.h:55
+#, fuzzy
+msgid "Switch workspace"
+msgstr "Trocar de espaço de trabalho um por vez"
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr ""
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr ""
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr ""
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr ""
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr ""
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr ""
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr ""
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr ""
+
+#: Settings.ui.h:65
+#, fuzzy
+msgid "Tune the dash background opacity."
+msgstr "Alterar a opacidade do fundo do dock"
+
+#: Settings.ui.h:66
+#, fuzzy
+msgid "Customize opacity"
+msgstr "Alterar a opacidade do fundo do dock"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Opacidade"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr ""
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr ""
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr ""
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr ""
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr ""
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr ""
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr ""
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Masquage automatique"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr ""
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr ""
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr ""
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr ""
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr ""
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr ""
+
+#: Settings.ui.h:86
+#, fuzzy
+msgid "Only maximized windows"
+msgstr "Minimizar"
+
+#: Settings.ui.h:87
+#, fuzzy
+msgid "Animation duration (s)"
+msgstr "Tempo da animação [ms]"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr ""
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr ""
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr ""
+
+#, fuzzy
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "Trocar de espaço de trabalho quando scrolar o mouse sobre o dock"
+
+#~ msgid "Main Settings"
+#~ msgstr "Configurações principais"
+
+#~ msgid "Dock is fixed and always visible"
+#~ msgstr "O Dock está fixo e sempre visível"
+
+#~ msgid "Show delay [ms]"
+#~ msgstr "Mostrar delay [ms]"
+
+#~ msgid "Hide delay [ms]"
+#~ msgstr "Ocultar delay [ms]"
+
+#~ msgid "Application based intellihide"
+#~ msgstr "Ocultação inteligente por aplicação"
+
+#~ msgid "Show the dock on following monitor (if attached)"
+#~ msgstr "Mostrar o dock nos monitores abaixo (se anexados)"
+
+#~ msgid "Primary (default)"
+#~ msgstr "Primário (por padrão)"
+
+#~ msgid "1"
+#~ msgstr "1"
+
+#~ msgid "2"
+#~ msgstr "2"
+
+#~ msgid "3"
+#~ msgstr "3"
+
+#~ msgid "4"
+#~ msgstr "4"
+
+#~ msgid "Max height"
+#~ msgstr "Altura máxima"
+
+#~ msgid "Expand (experimental and buggy)"
+#~ msgstr "Expandir (experimental e bugada)"
+
+#~ msgid "Maximum icon size"
+#~ msgstr "Tamanho máximo dos ícones"
+
+#~ msgid "16"
+#~ msgstr "16"
+
+#~ msgid "24"
+#~ msgstr "24"
+
+#~ msgid "32"
+#~ msgstr "32"
+
+#~ msgid "48"
+#~ msgstr "48"
+
+#~ msgid "64"
+#~ msgstr "64"
+
+#~ msgid "Optional features"
+#~ msgstr "Recursos opcionais"
+
+#~ msgid "Only a 1px wide area close to the screen edge is active"
+#~ msgstr ""
+#~ "Somente uma área de 1px de largura na borda da tela quando estiver ativa"
+
+#~ msgid "All the area of the dock is active"
+#~ msgstr "Toda a área quando o dock estiver ativo"
+
+#~ msgid "Customize actions on mouse click"
+#~ msgstr "Alterar configurações do click do mouse"
+
+#~ msgid "Action on clicking on running app"
+#~ msgstr "Ações de clique em aplicações em execução"
+
+#~ msgid "Minimize window on shift+click (double click for all app windows)"
+#~ msgstr ""
+#~ "Minimizar a janela com shift+click (clique duplo para todas as janelas de "
+#~ "aplicação)"
+
+#~ msgid "Only when in autohide"
+#~ msgstr "Somente quando estiver em auto-esconder"
diff --git a/package/po/pt_BR.po b/package/po/pt_BR.po
new file mode 100644
index 0000000..9545d01
--- /dev/null
+++ b/package/po/pt_BR.po
@@ -0,0 +1,555 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Carlos Alberto Junior Spohr Poletto <carlos.spohr@gmail.com>, 2012.
+# Fábio Nogueira <fnogueira@gnome.org>, 2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dash to Dock\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2017-04-16 23:10-0300\n"
+"Last-Translator: Fábio Nogueira <fnogueira@gnome.org>\n"
+"Language-Team: Português do Brasil\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.0.1\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Monitor primário"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Monitor secundário"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Direita"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Esquerda"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Configuração da ocultação inteligente"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Restaurar o padrão"
+
+#: prefs.js:386
+msgid "Show dock and application numbers"
+msgstr "Exibir o dock e os números dos aplicativos"
+
+#: prefs.js:443
+msgid "Customize middle-click behavior"
+msgstr "Customizar o comportamento do clique do botão do meio"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "Customizar os indicadores de execução"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Todas as Janelas"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "Customizar o estilo do indicador"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "Cor"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "Cor da borda"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "Tamanho da borda"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr "Sobreposição de número"
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+"Mostrar temporariamente os números dos aplicativos sobre os ícones, "
+"correspondentes ao atalho."
+
+#: Settings.ui.h:7
+msgid "Show the dock if it is hidden"
+msgstr "Exibir o dock se este estiver oculto"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+"Se utilizar a ocultação, o dock será exibido por um curto período de tempo "
+"ao acionar o atalho."
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr "Atalho para as opções acima"
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr "Sintaxe: <Shift>, <Ctrl>, <Alt>, <Super>"
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Ocultar tempo limite [s]"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Quando minimizar, o duplo clique minizará todas as janelas dos aplicativos"
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Ação do Shift+Clique"
+
+#: Settings.ui.h:14
+msgid "Raise window"
+msgstr "Aumentar janela"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Minimizar janela"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Iniciar nova instância"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "Percorrer através das janelas"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr "Sair"
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr "Comportamento do Clique do botão do meio."
+
+#: Settings.ui.h:20
+msgid "Middle-Click action"
+msgstr "Ação do clique do botão do meio"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr "Comportamento para Shift + Clique do botão do meio."
+
+#: Settings.ui.h:22
+msgid "Shift+Middle-Click action"
+msgstr "Ação do Shift+Clique do botão do meio"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Exibir o dock"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "Monitor secundário"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Posição na tela"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Embaixo"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Em cima"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Ocultar o dock quando o mesmo sobrepor a janela do aplicativo em uso. "
+"Definições mais aperfeiçoadas estão disponíveis."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Ocultação inteligente"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Tamanho limite do dock"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Modo do painel: estender até a borda da tela"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Tamanho limite do ícone"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Tamanho do ícone fixo: use o scroll do mouse para revelar outro ícone"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Posição e tamanho"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Mostrar aplicativos favoritos"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Mostrar aplicativos em execução"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr "Isolar espaços de trabalho."
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr "Mostrar pré-visualizações de janelas abertas."
+
+#: Settings.ui.h:41
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Se desabilitado, essas configurações estão acessíveis através do gnome-tweak-"
+"tool ou no site da extensão."
+
+#: Settings.ui.h:42
+msgid "Show <i>Applications</i> icon"
+msgstr "Exibir ícone dos <i>Aplicativos</i>"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Mover o botão de aplicativos para o início do dock."
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "<i>Mostrar aplicativos</i> com efeitos."
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr "Lançadores"
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+"Habilita tecla Super+(0-9) como atalhos para ativar aplicativos. Também pode "
+"ser usado junto com Shift e Ctrl."
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr "Usar atalhos de teclado para ativar aplicativos"
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Comportamento ao clicar sobre o ícone de um aplicativo em execução."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Ação do clique"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Minimizar"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "Minimizar janela"
+
+#: Settings.ui.h:52
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Comportamento ao rolar sobre o ícone de um aplicativo."
+
+#: Settings.ui.h:53
+msgid "Scroll action"
+msgstr "Ação da rolagem"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Não fazer nada"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr "Alternar espaço de trabalho"
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Comportamento"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Algumas personalizações se destinam a integrar o dock com o tema padrão do "
+"GNOME. Alternativamente, as opções específicas podem ser ativadas abaixo."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Usar o tema do sistema"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Economizar espaço reduzindo preenchimento e a borda arredondada"
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Encolher o dash"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Mostrar um ponto para cada janela do aplicativo"
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Mostrar indicadores de contador de janelas"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr "Define a cor de fundo para o dash."
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr "Customizar a cor do dash"
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Ajustar a opacidade do fundo do dash."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Customizar opacidade"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Opacidade"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr "Forçar canto reto\n"
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Aparência"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "versão:"
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "Mover o dash para fora da visão geral transformando-o em dock"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Criado por"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Página Web"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Este programa é distribuido SEM QUALQUER GARANTIA.\n"
+"Veja em <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, versão 2 ou posterior</a> para maiores "
+"detalhes.</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "Sobre"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Mostrar o dock quando o mouse pairar sobre a tela."
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Ocultação"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Empurrar para mostrar: requer pressão para mostrar o dock"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "Habilitar modo tela cheia"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Mostrar o dock quando nenhum aplicativo sobrepor o mesmo."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Esconder janela"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Todas as janelas"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "Apenas janelas de aplicativos em foco"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "Somente janelas maximizadas"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Tempo da animação [s]"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Mostrar tempo limite [s]"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Limite de pressão"
+
+#~ msgid "New Window"
+#~ msgstr "Nova janela"
+
+#~ msgid "Launch using Dedicated Graphics Card"
+#~ msgstr "Inicia utilizando uma placa gráfica dedicada"
+
+#~ msgid "Remove from Favorites"
+#~ msgstr "Remover dos favoritos"
+
+#~ msgid "Add to Favorites"
+#~ msgstr "Adicionar aos favoritos"
+
+#~ msgid "Show Details"
+#~ msgstr "Exibir detalhes"
+
+#~ msgid "Windows"
+#~ msgstr "Janelas"
+
+#~ msgid "Settings"
+#~ msgstr "Configurações"
+
+#~ msgid "Dash"
+#~ msgstr "Dash"
+
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "Com o tamanho do ícone fixo, somente a borda do dock e o ícone <i>Mostrar "
+#~ "aplicativos</i> são ativados."
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr ""
+#~ "Trocar de área de trabalho quando usar o scroll do mouse sobre o dock"
+
+#~ msgid "Only consider windows of the focused application"
+#~ msgstr "Considere apenas janelas de aplicativos em uso."
+
+#~ msgid "Dock is fixed and always visible"
+#~ msgstr "O Dock está fixo e sempre visível"
+
+#~ msgid "Show delay [ms]"
+#~ msgstr "Mostrar delay [ms]"
+
+#~ msgid "Hide delay [ms]"
+#~ msgstr "Ocultar delay [ms]"
+
+#~ msgid "Application based intellihide"
+#~ msgstr "Ocultação inteligente por aplicação"
+
+#~ msgid "Show the dock on following monitor (if attached)"
+#~ msgstr "Mostrar o dock nos monitores abaixo (se anexados)"
+
+#~ msgid "Primary (default)"
+#~ msgstr "Primário (por padrão)"
+
+#~ msgid "1"
+#~ msgstr "1"
+
+#~ msgid "2"
+#~ msgstr "2"
+
+#~ msgid "3"
+#~ msgstr "3"
+
+#~ msgid "4"
+#~ msgstr "4"
+
+#~ msgid "Max height"
+#~ msgstr "Altura máxima"
+
+#~ msgid "Expand (experimental and buggy)"
+#~ msgstr "Expandir (experimental e bugada)"
+
+#~ msgid "Maximum icon size"
+#~ msgstr "Tamanho máximo dos ícones"
+
+#~ msgid "16"
+#~ msgstr "16"
+
+#~ msgid "24"
+#~ msgstr "24"
+
+#~ msgid "32"
+#~ msgstr "32"
+
+#~ msgid "48"
+#~ msgstr "48"
+
+#~ msgid "64"
+#~ msgstr "64"
+
+#~ msgid "Optional features"
+#~ msgstr "Recursos opcionais"
+
+#~ msgid "Only a 1px wide area close to the screen edge is active"
+#~ msgstr ""
+#~ "Somente uma área de 1px de largura na borda da tela quando estiver ativa"
+
+#~ msgid "All the area of the dock is active"
+#~ msgstr "Toda a área quando o dock estiver ativo"
+
+#~ msgid "Customize actions on mouse click"
+#~ msgstr "Alterar configurações do click do mouse"
+
+#~ msgid "Action on clicking on running app"
+#~ msgstr "Ações de clique em aplicações em execução"
+
+#~ msgid "Minimize window on shift+click (double click for all app windows)"
+#~ msgstr ""
+#~ "Minimizar a janela com shift+click (clique duplo para todas as janelas de "
+#~ "aplicação)"
+
+#~ msgid "Only when in autohide"
+#~ msgstr "Somente quando estiver em auto-esconder"
diff --git a/package/po/ru.po b/package/po/ru.po
new file mode 100644
index 0000000..ad19a5f
--- /dev/null
+++ b/package/po/ru.po
@@ -0,0 +1,564 @@
+# Russian translation for dash-to-dock GNOME Shell extension
+# Ivan Komaritsyn <vantu5z@mail.ru>, 2015, 2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: dash-to-dock\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2017-04-28 13:26+0300\n"
+"Last-Translator: Ivan Komaritsyn <vantu5z@mail.ru>\n"
+"Language-Team: \n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+"X-Generator: Gtranslator 2.91.7\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Основной монитор"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Дополнительный монитор"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Справа"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Слева"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Настройка автоскрытия"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Сбросить настройки"
+
+#: prefs.js:386
+msgid "Show dock and application numbers"
+msgstr "Показывать количество запущенных приложений"
+
+#: prefs.js:443
+msgid "Customize middle-click behavior"
+msgstr "Настройка действий для средней кнопки мыши"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "Настройка индикаторов запуска"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Все окна"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "Настроить стиль индикатора"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "Цвет"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "Цвет границы"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "Ширина границы"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr "Отображение номера"
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+"Временно показывать номера приложений рядом с иконками, при нажатии "
+"сочетания клавиш."
+
+#: Settings.ui.h:7
+msgid "Show the dock if it is hidden"
+msgstr "Показать Док, если он скрыт"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+"Если используется автоматическое скрытие, то Док кратковреммено появится при "
+"обработке сочетания клавиш."
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr "Сочетания клавиш для указанных параметров"
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr "Синтаксис: <Shift>, <Ctrl>, <Alt>, <Super>"
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Задержка скрытия (сек.)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Если установлено на «Минимизировать», то двойной клик минимизирует все окна "
+"данного приложения."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Действие по Shift+Click"
+
+#: Settings.ui.h:14
+msgid "Raise window"
+msgstr "Показать окно"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Минимизировать окно"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Открыть новое окно"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "Переключить окно приложения"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr "Выйти"
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr "Действие по нажатию средней кнопки мыши."
+
+#: Settings.ui.h:20
+msgid "Middle-Click action"
+msgstr "Действие по Middle-Click"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr "Действие по нажатию Shift + средняя кнопка мыши."
+
+#: Settings.ui.h:22
+msgid "Shift+Middle-Click action"
+msgstr "Действие по Shift+Middle-Click"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Показывать Док на"
+
+#: Settings.ui.h:24
+msgid "Show on all monitors."
+msgstr "Показывать на всех мониторах."
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Расположение на экране"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Снизу"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Сверху"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Скрывать Док, если он перекрывается окном активного приложения. Доступны "
+"дополнительные настройки."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Интеллектуальное скрытие"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Ограничение размера Дока"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Режим панели: Док растянут по всей стороне экрана"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Ограничение размера иконок"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr ""
+"Фиксированный размер иконок: используйте прокрутку для доступа к нужному "
+"приложению"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Положение и размер"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Показывать избранные приложения"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Показывать запущенные приложения"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr "Для текущего рабочего стола."
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr "Показывать миниатюры открытых окон."
+
+#: Settings.ui.h:41
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Если отключено, то эти настройки доступны в gnome-tweak-tool или через сайт "
+"дополнений."
+
+#: Settings.ui.h:42
+msgid "Show <i>Applications</i> icon"
+msgstr "Показывать иконку <i>«Приложения»</i>"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Расположить кнопку «Приложения» с другой стороны Дока."
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "Анимация при показе <i>«Приложений»</i>"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr "Команды"
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+"Включить сочетания клавиш Super+(0-9) для выбора приложений. Также может "
+"быть использовано совместно с Shift и Ctrl."
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr "Использовать сочетания клавиш для выбора приложений"
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Поведение при нажатии на иконку запущенного приложения."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Действие по нажатию"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Минимизировать"
+
+#: Settings.ui.h:51
+msgid "Minimize or overview"
+msgstr "Минимизация или обзор"
+
+#: Settings.ui.h:52
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Поведение при прокрутке на иконке приложения."
+
+#: Settings.ui.h:53
+msgid "Scroll action"
+msgstr "Действие при прокрутке"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Ничего не делать"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr "Переключить рабочий стол"
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Поведение"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Сбалансированные настройки для интеграции Дока с темой Gnome по умолчанию. "
+"Ниже можно установить настройки вручную."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Использовать встроенную тему"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr ""
+"Экономия рабочего пространства за счёт уменьшения промежутков и "
+"использования скругленных углов."
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Сжать Док"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Отображает точку для каждого окна приложения."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Показывать индикаторы количества окон"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr "Вобор цвета фона для панели."
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr "Настроить цвет Дока"
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Настройка прозрачности фона Дока."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Настроить прозрачность"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Непрозрачность"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr "Не скруглять углы\n"
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Внешний вид"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "версия: "
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "Показывает панель из режима «Обзор» в виде дока"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Автор"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Домашняя страница"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Эта программа распространяется БЕЗ КАКИХ ЛИБО "
+"ГАРАНТИЙ.\n"
+"Смотри <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, версия 2 или позднее</a> для информации.</"
+"span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "О дополнении"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Показывать Док при подведении мыши к стороне экрана."
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Автоматическое скрытие"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Давление для появления: требуется давление для открытия Дока"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "Включить для полноэкранного режима"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Скрывать Док, когда он перекрыт окнами приложений"
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Перекрытие окнами"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Все окна"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "Только активное окно приложения"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "Только развёрнутые окна"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Время анимации (сек.)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Задержка открытия (сек.)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Порог давления"
+
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "При фиксированном размере иконок приложений активна только область иконки "
+#~ "<i>«Приложения»</i> и край дока."
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "Переключать рабочие столы при прокрутке на Доке"
+
+#~ msgid "Only consider windows of the focused application"
+#~ msgstr "Применить только к активным окнам приложений"
+
+#~ msgid "Main Settings"
+#~ msgstr "Основные настройки"
+
+#~ msgid "Dock Position"
+#~ msgstr "Расположение Дока"
+
+#~ msgid "Dock is fixed and always visible"
+#~ msgstr "Док зафиксирован и всегда виден"
+
+#~ msgid "Show delay [ms]"
+#~ msgstr "Задержка перед появлением [мс]"
+
+#~ msgid "Hide delay [ms]"
+#~ msgstr "Задержка перед скрытием [мс]"
+
+#~ msgid "Application based intellihide"
+#~ msgstr "Интеллектуальное скрытие действует только для активных окон"
+
+#~ msgid "Show the dock on following monitor (if attached)"
+#~ msgstr "Показывать Док на дополнительном мониторе (если подключен)"
+
+#~ msgid "Primary (default)"
+#~ msgstr "Главный (по умолчанию)"
+
+#~ msgid "1"
+#~ msgstr "1"
+
+#~ msgid "2"
+#~ msgstr "2"
+
+#~ msgid "3"
+#~ msgstr "3"
+
+#~ msgid "4"
+#~ msgstr "4"
+
+#~ msgid "Max height"
+#~ msgstr "Максимальная высота"
+
+#~ msgid "Expand (experimental and buggy)"
+#~ msgstr "Расширяемый (экспериментально и неустойчиво)"
+
+#~ msgid "Maximum icon size"
+#~ msgstr "Максимальный размер иконки"
+
+#~ msgid "16"
+#~ msgstr "16"
+
+#~ msgid "24"
+#~ msgstr "24"
+
+#~ msgid "32"
+#~ msgstr "32"
+
+#~ msgid "48"
+#~ msgstr "48"
+
+#~ msgid "64"
+#~ msgstr "64"
+
+#~ msgid "Optional features"
+#~ msgstr "Дополнительные функции"
+
+#~ msgid "Deadtime between each workspace switching [ms]"
+#~ msgstr "Задержка между каждым переключением [мс]"
+
+#~ msgid "Only a 1px wide area close to the screen edge is active"
+#~ msgstr "Активная область - 1 пиксель от края экрана"
+
+#~ msgid "All the area of the dock is active"
+#~ msgstr "Активен весь Док"
+
+#~ msgid "Customize actions on mouse click"
+#~ msgstr "Настроить действия по нажатию мыши"
+
+#~ msgid "Action on clicking on running app"
+#~ msgstr "Действие по нажатию на иконку запущенного приложения"
+
+#~ msgid "Minimize window on shift+click (double click for all app windows)"
+#~ msgstr ""
+#~ "Минимизировать окно при shift+click (двойное нажатие скрывает все окна "
+#~ "приложений)"
+
+#~ msgid "Make message tray insensitive to mouse events"
+#~ msgstr "Сделать область сообщений нечувствительной к мыши"
+
+#~ msgid "Appearence and Themes"
+#~ msgstr "Внешний вид и Темы"
+
+#~ msgid ""
+#~ "A customized theme is built in the extension. This is meant to work with "
+#~ "the default Adwaita theme: the dash is shrunk to save space, its "
+#~ "background transparency reduced, and custom indicators for the number of "
+#~ "windows of each application are added."
+#~ msgstr ""
+#~ "Тема встроена в расширение. Она оптимизирована для темы Adwaita по "
+#~ "умолчанию: Док уменьшен, чтобы сохранить пространство; прозрачность фона "
+#~ "снижена; включены индикаторы количества окон для каждого приложения."
+
+#~ msgid ""
+#~ "Alternatively, for a better integration with custom themes, each "
+#~ "customization can be applied indipendently"
+#~ msgstr ""
+#~ "Для большей интеграции с пользовательской темой, каждый параметр можно "
+#~ "настроить независимо"
+
+#~ msgid "Shrink the dash size by reducing padding"
+#~ msgstr "Уменьшить Док за счёт промежутков"
diff --git a/package/po/sk.po b/package/po/sk.po
new file mode 100644
index 0000000..5f9997e
--- /dev/null
+++ b/package/po/sk.po
@@ -0,0 +1,454 @@
+# Slovak translation of dash-to-dock.
+# Copyright (C) 2016 Dušan Kazik
+# This file is distributed under the same license as the PACKAGE package.
+# Dušan Kazik <prescott66@gmail.com>, 2015, 2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2016-07-15 12:48+0200\n"
+"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
+"Language-Team: \n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Hlavnom monitore"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Vedľajšom monitore"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Vpravo"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Vľavo"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Prispôsobenie inteligentného automatického skrývania"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Obnoviť pôvodné"
+
+#: prefs.js:386
+#, fuzzy
+msgid "Show dock and application numbers"
+msgstr "Zobraziť spustené aplikácie"
+
+#: prefs.js:443
+#, fuzzy
+msgid "Customize middle-click behavior"
+msgstr "Prispôsobenie štýlu indikátorov"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "Prispôsobenie "
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Všetky okná"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "Prispôsobenie štýlu indikátorov"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "Farba"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "Farba okraja"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "Šírka okraja"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr ""
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+
+#: Settings.ui.h:7
+#, fuzzy
+msgid "Show the dock if it is hidden"
+msgstr "Zobraziť dok na"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr ""
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr ""
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Časový limit na skrytie (s)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Keď je nastavené na minimalizovanie, dvojklik minimalizuje všetky okná "
+"aplikácie."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Akcia Shift+Kliknutie"
+
+#: Settings.ui.h:14
+#, fuzzy
+msgid "Raise window"
+msgstr "Minimalizovať okno"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Minimalizovať okno"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Spustiť novú inštanciu"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "Striedať okná"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr ""
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:20
+#, fuzzy
+msgid "Middle-Click action"
+msgstr "Akcia po kliknutí"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:22
+#, fuzzy
+msgid "Shift+Middle-Click action"
+msgstr "Akcia Shift+Kliknutie"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Zobraziť dok na"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "Vedľajšom monitore"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Pozícia na obrazovke"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Na spodku"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Na vrchu"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Skryť dok, keď zasahuje do okna aktuálnej aplikácie. Sú dostupné "
+"podrobnejšie nastavenia."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Inteligentné automatické skrývanie"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Limit veľkosti doku"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Režim panelu: roztiahnutie k hranám obrazovky"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Limit veľkosti ikôn"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Pevná veľkosť ikôn: rolovaním odhalíte ostatné ikony"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Pozícia a veľkosť"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Zobraziť obľúbené aplikácie"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Zobraziť spustené aplikácie"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr "Oddelené pracovné priestory."
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr ""
+
+#: Settings.ui.h:41
+#, fuzzy
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Ak je voľba zakázaná, nastavenia sú dostupné z nástroja na vyladenie "
+"nastavení prostredia Gnome alebo webovej stránky rozšírenia."
+
+#: Settings.ui.h:42
+msgid "Show <i>Applications</i> icon"
+msgstr "Zobraziť ikonu <i>Aplikácie</i>"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Premiestni tlačidlo aplikácií na začiatok doku."
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "Animovať položku <i>Zobraziť aplikácie</i>."
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr ""
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr ""
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Správanie pri kliknutí na ikonu spustenej aplikácie."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Akcia po kliknutí"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Minimalizovať"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "Minimalizovať okno"
+
+#: Settings.ui.h:52
+#, fuzzy
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Správanie pri kliknutí na ikonu spustenej aplikácie."
+
+#: Settings.ui.h:53
+#, fuzzy
+msgid "Scroll action"
+msgstr "Akcia po kliknutí"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Nevykonať nič"
+
+#: Settings.ui.h:55
+#, fuzzy
+msgid "Switch workspace"
+msgstr "Oddelené pracovné priestory."
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Správanie"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Niekoľko úprav na integrovanie doku s predvolenou témou prostredia GNOME. "
+"Alternatívne môžu byť povolené špecifické voľby nižšie."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Použiť zabudovanú tému"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Ušetrí miesto zmenšením rádiusu odsadenia a okrajov."
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Zmenšiť panel"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Zobrazí bodku za každé okno aplikácie."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Zobraziť indikátory počítadiel okien"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr "Nastaví farbu pozadia panelu."
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr "Prispôsobenie farby panelu"
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Vyladí krytie pozadia panelu."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Prispôsobenie krytia"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Krytie"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Vzhľad"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "Verzia: c"
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "Presunie panel z prehľadu transformovaním do doku"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Vytvoril"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Webová stránka"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Tento program je ABSOLÚTNE BEZ ZÁRUKY.\n"
+"Pre viac podrobností si pozrite <a href=\"https://www.gnu.org/licenses/old-"
+"licenses/gpl-2.0.html\">Licenciu GNU General Public, verzie 2 alebo novšiu</"
+"a>.</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "O rozšírení"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Zobrazí dok prejdením myši na hranu obrazovky."
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Automatické skrytie"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Zobraziť stlačením: vyžaduje tlak na zobrazenie doku"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "Povoliť v režime na celú obrazovku"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Zobrazí dok, keď nebude zasahovať do okien aplikácií."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Vyhýbať sa oknám"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Všetky okná"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "Iba zamerané okná aplikácií"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "Iba maximalizované okná"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Trvanie animácie (s)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Zobraziť časový limit (s)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Medza tlaku"
+
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "S pevnou veľkosťou ikon je aktívna iba hrana doku a ikona <i>Zobraziť "
+#~ "aplikácie</i>."
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "Prepínať pracovné priestory rolovaním na doku"
diff --git a/package/po/sr.po b/package/po/sr.po
new file mode 100644
index 0000000..76e659e
--- /dev/null
+++ b/package/po/sr.po
@@ -0,0 +1,465 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2015-07-29 18:11+0200\n"
+"Last-Translator: Слободан Терзић <Xabre@archlinux.info>\n"
+"Language-Team: \n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.2\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "примарном монитору"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "секундарном монитору"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "десно"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "лево"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Поставке интелигентног самосакривања"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Поврати основно"
+
+#: prefs.js:386
+#, fuzzy
+msgid "Show dock and application numbers"
+msgstr "Приказ покренутих програма"
+
+#: prefs.js:443
+#, fuzzy
+msgid "Customize middle-click behavior"
+msgstr "Прилагоћавање прозирности"
+
+#: prefs.js:514
+#, fuzzy
+msgid "Customize running indicators"
+msgstr "Приказ покренутих програма"
+
+#: appIcons.js:804
+#, fuzzy
+msgid "All Windows"
+msgstr "Избегавање розора"
+
+#: Settings.ui.h:1
+#, fuzzy
+msgid "Customize indicator style"
+msgstr "Прилагоћавање прозирности"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr ""
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr ""
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr ""
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr ""
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+
+#: Settings.ui.h:7
+#, fuzzy
+msgid "Show the dock if it is hidden"
+msgstr "Прикажи док на"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr ""
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr ""
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Застој скривања"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Кад је постављено на минимизовање, дупли клик минимизује све прозоре "
+"програма."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Радња шифт+клика"
+
+#: Settings.ui.h:14
+#, fuzzy
+msgid "Raise window"
+msgstr "минимиуј прозор"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "минимиуј прозор"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "покрени нови примерак"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "кружење кроз прозоре"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr ""
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:20
+#, fuzzy
+msgid "Middle-Click action"
+msgstr "Радња клика"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:22
+#, fuzzy
+msgid "Shift+Middle-Click action"
+msgstr "Радња шифт+клика"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Прикажи док на"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "секундарном монитору"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Позиција на екрану"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "дно"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "врх"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Сакриј док када је на путу прозора тренутног програма. Доступне су финије "
+"поставке."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Интелигентно самосакривање"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Ограничење величине дока"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Режим панела: проширен до ивица екрана"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Ограничење величине икона"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Устаљена величина икона: клизајте за друге иконе"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Позиција и величина"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Приказ омиљених програма"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Приказ покренутих програма"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr ""
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr ""
+
+#: Settings.ui.h:41
+#, fuzzy
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Уколико је онемогућено, ове поставке су доступне кроз алатку за лицкање или "
+"веб сајт проширења."
+
+#: Settings.ui.h:42
+#, fuzzy
+msgid "Show <i>Applications</i> icon"
+msgstr "Приказ иконе <i>Прикажи програме</i>"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Помери дугме програма на почетак дока"
+
+#: Settings.ui.h:44
+#, fuzzy
+msgid "Animate <i>Show Applications</i>."
+msgstr "Приказ иконе <i>Прикажи програме</i>"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr ""
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr ""
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Понашање при клику на покренути програм."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Радња клика"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "минимизуј"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "минимиуј прозор"
+
+#: Settings.ui.h:52
+#, fuzzy
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Понашање при клику на покренути програм."
+
+#: Settings.ui.h:53
+#, fuzzy
+msgid "Scroll action"
+msgstr "Радња клика"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "ништа"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr ""
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Понашање"
+
+#: Settings.ui.h:57
+#, fuzzy
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Неколико поставки је намењено уграђивању дока у основну тему Гнома. "
+"Алтернативно, посебне поставке се могу уредити испод."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Користи уграђену тему"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Чува простор сужавањем попуне и опсега ивица."
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Скупи плочу"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Приказује тачку за сваки прозор програма."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Приказ индикаторa бројача прозора."
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr ""
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr ""
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Прилагоди прозирност позадине плоче."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Прилагоћавање прозирности"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Прозирност"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Изглед"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "верзија:"
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "Помера плочу из глобалног приказа, претварајући је у док"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Направи"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Веб страница"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Овај програм се доставља БЕЗ ИКАКВИХ ГАРАНЦИЈА.\n"
+"Погледајте <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">ГНУову Општу Јавну лиценцу, верзија 2 или каснија</a>, за детаље.</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "О програму"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Прикажи док прелазом миша пеко ивице екрана."
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Самоскривање"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Приказ притиском: захтева притисак за приказ дока"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr ""
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Приказује док када није на путу прозорима програма."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Избегавање розора"
+
+#: Settings.ui.h:84
+#, fuzzy
+msgid "All windows"
+msgstr "Избегавање розора"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr ""
+
+#: Settings.ui.h:86
+#, fuzzy
+msgid "Only maximized windows"
+msgstr "минимиуј прозор"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Трајање(а) анимације"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0,000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Застој приказивања"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Праг притиска"
+
+#, fuzzy
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "Ако се иконе преклапају на доку, приказује се само икона <i>Прикажи "
+#~ "програме</i>."
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "Промена радног простора клизањем по доку"
+
+#~ msgid "Only consider windows of the focused application"
+#~ msgstr "Разматрај само прозор фокусираног програма"
diff --git a/package/po/sr@latin.po b/package/po/sr@latin.po
new file mode 100644
index 0000000..6c01f54
--- /dev/null
+++ b/package/po/sr@latin.po
@@ -0,0 +1,464 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2015-07-29 18:11+0200\n"
+"Last-Translator: Slobodan Terzić <Xabre@archlinux.info>\n"
+"Language-Team: \n"
+"Language: sr@latin\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.2\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "primarnom monitoru"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "sekundarnom monitoru"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "desno"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "levo"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Postavke inteligentnog samosakrivanja"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Povrati osnovno"
+
+#: prefs.js:386
+#, fuzzy
+msgid "Show dock and application numbers"
+msgstr "Prikaz pokrenutih programa"
+
+#: prefs.js:443
+#, fuzzy
+msgid "Customize middle-click behavior"
+msgstr "Prilagoćavanje prozirnosti"
+
+#: prefs.js:514
+#, fuzzy
+msgid "Customize running indicators"
+msgstr "Prikaz pokrenutih programa"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Izbegavanje rozora"
+
+#: Settings.ui.h:1
+#, fuzzy
+msgid "Customize indicator style"
+msgstr "Prilagoćavanje prozirnosti"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr ""
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr ""
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr ""
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr ""
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+
+#: Settings.ui.h:7
+#, fuzzy
+msgid "Show the dock if it is hidden"
+msgstr "Prikaži dok na"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr ""
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr ""
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Zastoj skrivanja"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Kad je postavljeno na minimizovanje, dupli klik minimizuje sve prozore "
+"programa."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Radnja šift+klika"
+
+#: Settings.ui.h:14
+#, fuzzy
+msgid "Raise window"
+msgstr "minimiuj prozor"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "minimiuj prozor"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "pokreni novi primerak"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "kruženje kroz prozore"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr ""
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:20
+#, fuzzy
+msgid "Middle-Click action"
+msgstr "Radnja klika"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:22
+#, fuzzy
+msgid "Shift+Middle-Click action"
+msgstr "Radnja šift+klika"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Prikaži dok na"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "sekundarnom monitoru"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Pozicija na ekranu"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "dno"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "vrh"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Sakrij dok kada je na putu prozora trenutnog programa. Dostupne su finije "
+"postavke."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Inteligentno samosakrivanje"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Ograničenje veličine doka"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Režim panela: proširen do ivica ekrana"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Ograničenje veličine ikona"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Ustaljena veličina ikona: klizajte za druge ikone"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Pozicija i veličina"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Prikaz omiljenih programa"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Prikaz pokrenutih programa"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr ""
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr ""
+
+#: Settings.ui.h:41
+#, fuzzy
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Ukoliko je onemogućeno, ove postavke su dostupne kroz alatku za lickanje ili "
+"veb sajt proširenja."
+
+#: Settings.ui.h:42
+#, fuzzy
+msgid "Show <i>Applications</i> icon"
+msgstr "Prikaz ikone <i>Prikaži programe</i>"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Pomeri dugme programa na početak doka"
+
+#: Settings.ui.h:44
+#, fuzzy
+msgid "Animate <i>Show Applications</i>."
+msgstr "Prikaz ikone <i>Prikaži programe</i>"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr ""
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr ""
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Ponašanje pri kliku na pokrenuti program."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Radnja klika"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "minimizuj"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "minimiuj prozor"
+
+#: Settings.ui.h:52
+#, fuzzy
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Ponašanje pri kliku na pokrenuti program."
+
+#: Settings.ui.h:53
+#, fuzzy
+msgid "Scroll action"
+msgstr "Radnja klika"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "ništa"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr ""
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Ponašanje"
+
+#: Settings.ui.h:57
+#, fuzzy
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Nekoliko postavki je namenjeno ugrađivanju doka u osnovnu temu Gnoma. "
+"Alternativno, posebne postavke se mogu urediti ispod."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Koristi ugrađenu temu"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Čuva prostor sužavanjem popune i opsega ivica."
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Skupi ploču"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Prikazuje tačku za svaki prozor programa."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Prikaz indikatora brojača prozora."
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr ""
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr ""
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Prilagodi prozirnost pozadine ploče."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Prilagoćavanje prozirnosti"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Prozirnost"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Izgled"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "verzija:"
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "Pomera ploču iz globalnog prikaza, pretvarajući je u dok"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Napravi"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Veb stranica"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Ovaj program se dostavlja BEZ IKAKVIH GARANCIJA.\n"
+"Pogledajte <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNUovu Opštu Javnu licencu, verzija 2 ili kasnija</a>, za detalje.</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "O programu"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Prikaži dok prelazom miša peko ivice ekrana."
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Samoskrivanje"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Prikaz pritiskom: zahteva pritisak za prikaz doka"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr ""
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Prikazuje dok kada nije na putu prozorima programa."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Izbegavanje rozora"
+
+#: Settings.ui.h:84
+#, fuzzy
+msgid "All windows"
+msgstr "Izbegavanje rozora"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr ""
+
+#: Settings.ui.h:86
+#, fuzzy
+msgid "Only maximized windows"
+msgstr "minimiuj prozor"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Trajanje(a) animacije"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0,000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Zastoj prikazivanja"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Prag pritiska"
+
+#, fuzzy
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "Ako se ikone preklapaju na doku, prikazuje se samo ikona <i>Prikaži "
+#~ "programe</i>."
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "Promena radnog prostora klizanjem po doku"
+
+#~ msgid "Only consider windows of the focused application"
+#~ msgstr "Razmatraj samo prozor fokusiranog programa"
diff --git a/package/po/sv.po b/package/po/sv.po
new file mode 100644
index 0000000..db33fb2
--- /dev/null
+++ b/package/po/sv.po
@@ -0,0 +1,452 @@
+# Swedish translation for dash-to-dock.
+# Copyright © 2016 dash-to-dock's COPYRIGHT HOLDER
+# This file is distributed under the same license as the dash-to-dock package.
+# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2016-07-01 18:37+0200\n"
+"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.8\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Primär skärm"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "Sekundär skärm "
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Höger"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Vänster"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Anpassning av intelligent automatiskt döljande"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Återställ till standardvärden"
+
+#: prefs.js:386
+#, fuzzy
+msgid "Show dock and application numbers"
+msgstr "Visa körande program"
+
+#: prefs.js:443
+#, fuzzy
+msgid "Customize middle-click behavior"
+msgstr "Anpassa indikatorstil"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "Anpassa körningsindikatorer"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Alla fönster"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "Anpassa indikatorstil"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "Färg"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "Kantfärg"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "Kantbredd"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr ""
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+
+#: Settings.ui.h:7
+#, fuzzy
+msgid "Show the dock if it is hidden"
+msgstr "Visa dockan på"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr ""
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr ""
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Tidsgräns för att dölja (s)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"Då inställd till minimera så minimerar dubbelklick alla fönster för "
+"programmet."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Skift+klick-åtgärd"
+
+#: Settings.ui.h:14
+#, fuzzy
+msgid "Raise window"
+msgstr "Minimera fönster"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Minimera fönster"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Starta ny instans"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "Växla mellan fönster"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr ""
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:20
+#, fuzzy
+msgid "Middle-Click action"
+msgstr "Klickåtgärd"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:22
+#, fuzzy
+msgid "Shift+Middle-Click action"
+msgstr "Skift+klick-åtgärd"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Visa dockan på"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "Sekundär skärm "
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Position på skärmen"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Nederkant"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Överkant"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Dölj dockan då den är i vägen för ett fönster för det aktuella programmet. "
+"Mer förfinade inställningar finns tillgängliga."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Intelligent automatiskt döljande"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Storleksgräns för docka"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Panelläge: sträck ut till skärmkanten"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Storleksgräns för ikoner"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Fast ikonstorlek: rulla för att avslöja andra ikoner"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Position och storlek"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Visa favoritprogram"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Visa körande program"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr ""
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr ""
+
+#: Settings.ui.h:41
+#, fuzzy
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Om inaktiverad är dessa inställningar tillgängliga från gnome-tweak-tool "
+"eller webbplatsen för utökningar."
+
+#: Settings.ui.h:42
+msgid "Show <i>Applications</i> icon"
+msgstr "Visa <i>Program</i>-ikon"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Flytta programknappen till början på dockan."
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "Animera <i>Visa program</i>."
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr ""
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr ""
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Beteende då ikonen för ett körande program klickas på."
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Klickåtgärd"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Minimera"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "Minimera fönster"
+
+#: Settings.ui.h:52
+#, fuzzy
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Beteende då ikonen för ett körande program klickas på."
+
+#: Settings.ui.h:53
+#, fuzzy
+msgid "Scroll action"
+msgstr "Klickåtgärd"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Gör ingenting"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr ""
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Beteende"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Några anpassningar för att integrera dockan med GNOME:s standardtema. "
+"Alternativt kan specifika alternativ aktiveras nedan."
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Använd inbyggt tema"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Spara utrymme genom att minska utfyllnad och kantradie."
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Krymp snabbstartspanelen"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Visa en punkt för varje fönster för programmet."
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Visa fönsterräknarindikatorer"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr "Ställ in bakgrundsfärg för snabbstartspanelen."
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr "Anpassa färgen för snabbstartspanelen"
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Justera opacitet för bakgrunden till snabbstartspanelen."
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Anpassa opacitet"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Opacitet"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Utseende"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "version: "
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr ""
+"Flyttar snabbstartspanelen från översiktsvyn och förvandlar den till en docka"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Skapat av"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Webbsida"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Detta program kommer HELT UTAN GARANTI.\n"
+"Se <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html\">GNU "
+"General Public License, version 2 eller senare</a> för detaljer.</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "Om"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Visa dockan genom att hovra musen över skärmkanten."
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Dölj automatiskt"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Tryck för att visa: kräv tryck för att visa dockan"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "Aktivera i helskärmsläge"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Visa dockan då den inte är i vägen för programfönster."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Undvik fönster"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Alla fönster"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "Endast fokuserade programs fönster"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "Endast maximerade fönster"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Längd på animering (s)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Tidsgräns för att visa (s)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Tröskelvärde för tryck"
+
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "Med fast ikonstorlek är endast kanten på dockan och <i>Visa program</i>-"
+#~ "ikonen aktiva."
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "Växla arbetsyta genom att rulla på dockan"
diff --git a/package/po/tr.po b/package/po/tr.po
new file mode 100644
index 0000000..757f07f
--- /dev/null
+++ b/package/po/tr.po
@@ -0,0 +1,457 @@
+# Turkish Translation.
+# Copyright (C) 2015
+# This file is distributed under the same license with main package.
+# Mustafa Akgün <mustafa.akgun@gmail.com>, 2015.
+# Çağatay Yiğit Şahin <cyigitsahin@outlook.com>, 2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dash to Dock\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2016-09-04 21:25+0300\n"
+"Last-Translator: Çağatay Yiğit Şahin <cyigitsahin@outlook.com>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Gtranslator 2.91.7\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "Ana Ekran"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "İkincil Ekran"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "Sağ"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "Sol"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "Akıllı otomatik saklama ayarları"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "Öntanımlı ayarlara geri dön"
+
+#: prefs.js:386
+#, fuzzy
+msgid "Show dock and application numbers"
+msgstr "Çalışan uygulamaları göster"
+
+#: prefs.js:443
+#, fuzzy
+msgid "Customize middle-click behavior"
+msgstr "Panel biçemini ayarla"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "Çalışan uygulamaları göster"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "Bütün pencereler"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "Panel biçemini ayarla"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "Renk"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "Çerçeve rengi"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "Çerçeve genişliği"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr ""
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+
+#: Settings.ui.h:7
+#, fuzzy
+msgid "Show the dock if it is hidden"
+msgstr "Panelde göster"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr ""
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr ""
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "Gecikme zaman aşımı(s)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr ""
+"En küçüğe ayarlandığında, tüm uygulama pencerelerini küçültmek için çift "
+"tıklayın."
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Shift+Tıkla hareketi"
+
+#: Settings.ui.h:14
+#, fuzzy
+msgid "Raise window"
+msgstr "Pencereyi küçült"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "Pencereyi küçült"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "Yeni durumu başlat"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "Penceler döngüsü"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr ""
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:20
+#, fuzzy
+msgid "Middle-Click action"
+msgstr "Hareket için tıkla"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr ""
+
+#: Settings.ui.h:22
+#, fuzzy
+msgid "Shift+Middle-Click action"
+msgstr "Shift+Tıkla hareketi"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "Panelde göster"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "İkincil Ekran"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "Ekrandaki konumu"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "Alt"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "Üst"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"Etkin uygulamanın penceresini engellediğinde paneli gizle. Daha ileri "
+"ayarlar mevcuttur."
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "Akıllı otogizleme"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Panel ölçü sınırı"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "Panel modu: Ekran köşelerine genişlet"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "Simge ölçü sınırı"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "Sabit simge ölçüsü: Diğer simgeleri görmek için kaydır"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "Konum ve ölçü"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "Kullanılan uygulamaları göster"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "Çalışan uygulamaları göster"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr ""
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr ""
+
+#: Settings.ui.h:41
+#, fuzzy
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr ""
+"Eğer engellenmiş ise, bu ayarlara Gnome-tweak-tool ile  veya Gnome extension "
+"sitesinden ulaşılabilir."
+
+#: Settings.ui.h:42
+#, fuzzy
+msgid "Show <i>Applications</i> icon"
+msgstr "<i>Uygulamaları Göster</i> simgesini göster"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "Uygulamalar düğmesini panelin başlangıcına taşı "
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "<i>Uygulamaları Göster</i> simgesini göster"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr ""
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr ""
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "Çalışan uygulama simgesine tıkladığındaki davranış"
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "Hareket için tıkla"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "Küçült"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "Pencereyi küçült"
+
+#: Settings.ui.h:52
+#, fuzzy
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "Çalışan uygulama simgesine tıkladığındaki davranış"
+
+#: Settings.ui.h:53
+#, fuzzy
+msgid "Scroll action"
+msgstr "Hareket için tıkla"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "Hiçbir şey yapma"
+
+#: Settings.ui.h:55
+msgid "Switch workspace"
+msgstr ""
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "Davranış"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"Varsayılan GNOME temasıyla bütünleşme için birkaç kişiselleştirme. Tercihen, "
+"belirli ayarlar aşağıdan etkinleştirilebilir"
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "Varsayılan temayı kullan"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "Yer kazanmak için dolguyu ve kenar çevresini azalt."
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "Paneli daralt"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "Uygulamanın her penceresi için bir nokta göster"
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "Pencere sayacını göster"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr ""
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr ""
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "Panel arkaplanının saydamlığını ayarla"
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "Saydamlığı ayarla"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "Saydamlık"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "Görünüm"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "Sürüm: "
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "Paneli genel görünümden ana ekrana taşır"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "Tarafından oluşturulmuştur:"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "Web sayfası"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">Bu yazılım kesinlikle garantisiz olarak gelmektedir..\n"
+"Detayları görüntülemek için <a href=\"https://www.gnu.org/licenses/old-"
+"licenses/gpl-2.0.html\">GNU Genel Halk Lisansı, sürüm 2 veya üstü</a> "
+"tıklayın</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "Hakkında"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "Fare Ekran köşeleri üzerinde iken paneli göster. "
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "Otogizleme"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "Göstermek için it: Panelin gösterilmesi icin etki gerektirir."
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "Tam ekran modunda etkinleştir"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "Uygulama penceresini engellemediğinde paneli göster."
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "Pencereleri atlat"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "Bütün pencereler"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "Sadece odaklanan uygulamanın pencereleri"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "Sadece büyütülen pencereler"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "Animasyon süresi(s)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "Zaman aşımını göster(s)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "Etki eşiği"
+
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "Simge boyutu sabitlenmişse, sadece panelin kenarları ve <i>Uygulamaları "
+#~ "Göster</i> simgesi etkindir."
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "Panel üzerinde kaydırarak çalışma alanını değiştir"
+
+#~ msgid "Only consider windows of the focused application"
+#~ msgstr "Sadece açık olan uygulama penceresini dikkate al"
diff --git a/package/po/zh_CN.po b/package/po/zh_CN.po
new file mode 100644
index 0000000..c0a743b
--- /dev/null
+++ b/package/po/zh_CN.po
@@ -0,0 +1,524 @@
+# Simplified Chinese translation of dash-to-dock
+# Copyright (C) 2013 tuhaihe
+# This file is distributed under the same license as the dash-to-dock package.
+# tuhaihe <1132321739qq@gmail.com>, 2013.
+# 绿色圣光 <lishaohui.qd@163.com>, 2015, 2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dash to Dock\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-06-04 12:35+0100\n"
+"PO-Revision-Date: 2016-10-02 23:45+0800\n"
+"Last-Translator: 绿色圣光 <lishaohui.qd@163.com>\n"
+"Language-Team: Chinese (Simplified) <>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Gtranslator 2.91.7\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: prefs.js:113
+msgid "Primary monitor"
+msgstr "主显示器"
+
+#: prefs.js:122 prefs.js:129
+msgid "Secondary monitor "
+msgstr "副显示器"
+
+#: prefs.js:154 Settings.ui.h:29
+msgid "Right"
+msgstr "右侧"
+
+#: prefs.js:155 Settings.ui.h:26
+msgid "Left"
+msgstr "左侧"
+
+#: prefs.js:205
+msgid "Intelligent autohide customization"
+msgstr "智能自动隐藏自定义"
+
+#: prefs.js:212 prefs.js:393 prefs.js:450
+msgid "Reset to defaults"
+msgstr "重置为默认值"
+
+#: prefs.js:386
+#, fuzzy
+msgid "Show dock and application numbers"
+msgstr "显示正在运行的应用程序"
+
+#: prefs.js:443
+msgid "Customize middle-click behavior"
+msgstr "自定义中键点击行为"
+
+#: prefs.js:514
+msgid "Customize running indicators"
+msgstr "自定义“运行中”指示器"
+
+#: appIcons.js:804
+msgid "All Windows"
+msgstr "所有窗口"
+
+#: Settings.ui.h:1
+msgid "Customize indicator style"
+msgstr "自定义指示器样式"
+
+#: Settings.ui.h:2
+msgid "Color"
+msgstr "颜色"
+
+#: Settings.ui.h:3
+msgid "Border color"
+msgstr "边框颜色"
+
+#: Settings.ui.h:4
+msgid "Border width"
+msgstr "边框宽度"
+
+#: Settings.ui.h:5
+msgid "Number overlay"
+msgstr ""
+
+#: Settings.ui.h:6
+msgid ""
+"Temporarily show the application numbers over the icons, corresponding to "
+"the shortcut."
+msgstr ""
+
+#: Settings.ui.h:7
+#, fuzzy
+msgid "Show the dock if it is hidden"
+msgstr "显示 dock 于"
+
+#: Settings.ui.h:8
+msgid ""
+"If using autohide, the dock will appear for a short time when triggering the "
+"shortcut."
+msgstr ""
+
+#: Settings.ui.h:9
+msgid "Shortcut for the options above"
+msgstr ""
+
+#: Settings.ui.h:10
+msgid "Syntax: <Shift>, <Ctrl>, <Alt>, <Super>"
+msgstr ""
+
+#: Settings.ui.h:11
+msgid "Hide timeout (s)"
+msgstr "隐藏超时时间(秒)"
+
+#: Settings.ui.h:12
+msgid ""
+"When set to minimize, double clicking minimizes all the windows of the "
+"application."
+msgstr "当设置为最小化时,双击会最小化应用程序的所有窗口。"
+
+#: Settings.ui.h:13
+msgid "Shift+Click action"
+msgstr "Shift+点击动作"
+
+#: Settings.ui.h:14
+msgid "Raise window"
+msgstr "提升窗口"
+
+#: Settings.ui.h:15
+msgid "Minimize window"
+msgstr "最小化窗口"
+
+#: Settings.ui.h:16
+msgid "Launch new instance"
+msgstr "启动新实例"
+
+#: Settings.ui.h:17
+msgid "Cycle through windows"
+msgstr "在窗口间循环"
+
+#: Settings.ui.h:18
+msgid "Quit"
+msgstr "退出"
+
+#: Settings.ui.h:19
+msgid "Behavior for Middle-Click."
+msgstr "中键点击的行为。"
+
+#: Settings.ui.h:20
+msgid "Middle-Click action"
+msgstr "中键点击动作"
+
+#: Settings.ui.h:21
+msgid "Behavior for Shift+Middle-Click."
+msgstr "Shift+中键点击的行为"
+
+#: Settings.ui.h:22
+msgid "Shift+Middle-Click action"
+msgstr "Shift+中键点击动作"
+
+#: Settings.ui.h:23
+msgid "Show the dock on"
+msgstr "显示 dock 于"
+
+#: Settings.ui.h:24
+#, fuzzy
+msgid "Show on all monitors."
+msgstr "副显示器"
+
+#: Settings.ui.h:25
+msgid "Position on screen"
+msgstr "屏幕中的位置"
+
+#: Settings.ui.h:27
+msgid "Bottom"
+msgstr "底部"
+
+#: Settings.ui.h:28
+msgid "Top"
+msgstr "顶部"
+
+#: Settings.ui.h:30
+msgid ""
+"Hide the dock when it obstructs a window of the the current application. "
+"More refined settings are available."
+msgstr ""
+"当 dock 会挡住当前应用程序的某个窗口时,将其隐藏。点击右侧设置按钮可以设置更"
+"多细节。"
+
+#: Settings.ui.h:31
+msgid "Intelligent autohide"
+msgstr "智能隐藏"
+
+#: Settings.ui.h:32
+msgid "Dock size limit"
+msgstr "Dock 大小限制"
+
+#: Settings.ui.h:33
+msgid "Panel mode: extend to the screen edge"
+msgstr "面板模式:延伸到屏幕边缘"
+
+#: Settings.ui.h:34
+msgid "Icon size limit"
+msgstr "图标大小限制"
+
+#: Settings.ui.h:35
+msgid "Fixed icon size: scroll to reveal other icons"
+msgstr "固定图标大小:滚动显示其它图标"
+
+#: Settings.ui.h:36
+msgid "Position and size"
+msgstr "位置和大小"
+
+#: Settings.ui.h:37
+msgid "Show favorite applications"
+msgstr "显示收藏的应用程序"
+
+#: Settings.ui.h:38
+msgid "Show running applications"
+msgstr "显示正在运行的应用程序"
+
+#: Settings.ui.h:39
+msgid "Isolate workspaces."
+msgstr "隔离工作区。"
+
+#: Settings.ui.h:40
+msgid "Show open windows previews."
+msgstr ""
+
+#: Settings.ui.h:41
+#, fuzzy
+msgid ""
+"If disabled, these settings are accessible from gnome-tweak-tool or the "
+"extension website."
+msgstr "禁用之后,可以通过 gnome-tweak-tool 或者扩展网站来访问设置。"
+
+#: Settings.ui.h:42
+msgid "Show <i>Applications</i> icon"
+msgstr "显示“<i>应用程序</i>”图标"
+
+#: Settings.ui.h:43
+msgid "Move the applications button at the beginning of the dock."
+msgstr "将应用程序按钮移至 dock 的起始位置。"
+
+#: Settings.ui.h:44
+msgid "Animate <i>Show Applications</i>."
+msgstr "动画“<i>显示应用程序</i>”。"
+
+#: Settings.ui.h:45
+msgid "Launchers"
+msgstr ""
+
+#: Settings.ui.h:46
+msgid ""
+"Enable Super+(0-9) as shortcuts to activate apps. It can also be used "
+"together with Shift and Ctrl."
+msgstr ""
+
+#: Settings.ui.h:47
+msgid "Use keyboard shortcuts to activate apps"
+msgstr ""
+
+#: Settings.ui.h:48
+msgid "Behaviour when clicking on the icon of a running application."
+msgstr "点击一个正在运行的应用程序图标时的行为。"
+
+#: Settings.ui.h:49
+msgid "Click action"
+msgstr "点击动作"
+
+#: Settings.ui.h:50
+msgid "Minimize"
+msgstr "最小化"
+
+#: Settings.ui.h:51
+#, fuzzy
+msgid "Minimize or overview"
+msgstr "最小化窗口"
+
+#: Settings.ui.h:52
+#, fuzzy
+msgid "Behaviour when scrolling on the icon of an application."
+msgstr "点击一个正在运行的应用程序图标时的行为。"
+
+#: Settings.ui.h:53
+#, fuzzy
+msgid "Scroll action"
+msgstr "点击动作"
+
+#: Settings.ui.h:54
+msgid "Do nothing"
+msgstr "无动作"
+
+#: Settings.ui.h:55
+#, fuzzy
+msgid "Switch workspace"
+msgstr "一次切换一个工作区"
+
+#: Settings.ui.h:56
+msgid "Behavior"
+msgstr "行为"
+
+#: Settings.ui.h:57
+msgid ""
+"Few customizations meant to integrate the dock with the default GNOME theme. "
+"Alternatively, specific options can be enabled below."
+msgstr ""
+"几个自定义项可以将 dock 整合到默认 GNOME 主题中。或者,也可以启动下面的几个特"
+"殊选项。"
+
+#: Settings.ui.h:58
+msgid "Use built-in theme"
+msgstr "使用内置主题"
+
+#: Settings.ui.h:59
+msgid "Save space reducing padding and border radius."
+msgstr "减小填充和边框半径以节省空间。"
+
+#: Settings.ui.h:60
+msgid "Shrink the dash"
+msgstr "收缩 dash"
+
+#: Settings.ui.h:61
+msgid "Show a dot for each windows of the application."
+msgstr "为应用程序的每个窗口显示一个点。"
+
+#: Settings.ui.h:62
+msgid "Show windows counter indicators"
+msgstr "显示窗口个数指示器"
+
+#: Settings.ui.h:63
+msgid "Set the background color for the dash."
+msgstr "设置 dash 的背景颜色。"
+
+#: Settings.ui.h:64
+msgid "Customize the dash color"
+msgstr "自定义 dash 颜色"
+
+#: Settings.ui.h:65
+msgid "Tune the dash background opacity."
+msgstr "调整 dash 的背景透明度。"
+
+#: Settings.ui.h:66
+msgid "Customize opacity"
+msgstr "自定义透明度"
+
+#: Settings.ui.h:67
+msgid "Opacity"
+msgstr "不透明度"
+
+#: Settings.ui.h:68
+msgid "Force straight corner\n"
+msgstr ""
+
+#: Settings.ui.h:70
+msgid "Appearance"
+msgstr "外观"
+
+#: Settings.ui.h:71
+msgid "version: "
+msgstr "版本:"
+
+#: Settings.ui.h:72
+msgid "Moves the dash out of the overview transforming it in a dock"
+msgstr "让 dash 跳出概览之外,转化为一个 dock"
+
+#: Settings.ui.h:73
+msgid "Created by"
+msgstr "作者:"
+
+#: Settings.ui.h:74
+msgid "Webpage"
+msgstr "网站主页"
+
+#: Settings.ui.h:75
+msgid ""
+"<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
+"See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+"\">GNU General Public License, version 2 or later</a> for details.</span>"
+msgstr ""
+"<span size=\"small\">本程序不提供任何担保。\n"
+"参见 <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html\">GNU "
+"通用公共许可证,第二版或更高版本</a>以了解更多细节。</span>"
+
+#: Settings.ui.h:77
+msgid "About"
+msgstr "关于"
+
+#: Settings.ui.h:78
+msgid "Show the dock by mouse hover on the screen edge."
+msgstr "鼠标移至屏幕边缘时显示 dock"
+
+#: Settings.ui.h:79
+msgid "Autohide"
+msgstr "自动隐藏"
+
+#: Settings.ui.h:80
+msgid "Push to show: require pressure to show the dock"
+msgstr "推压以显示:需要一定压力来显示 dock"
+
+#: Settings.ui.h:81
+msgid "Enable in fullscreen mode"
+msgstr "在全屏模式下启用"
+
+#: Settings.ui.h:82
+msgid "Show the dock when it doesn't obstruct application windows."
+msgstr "在不妨碍应用程序窗口时,显示 dock。"
+
+#: Settings.ui.h:83
+msgid "Dodge windows"
+msgstr "避开窗口"
+
+#: Settings.ui.h:84
+msgid "All windows"
+msgstr "所有窗口"
+
+#: Settings.ui.h:85
+msgid "Only focused application's windows"
+msgstr "仅焦点程序窗口"
+
+#: Settings.ui.h:86
+msgid "Only maximized windows"
+msgstr "仅最大化窗口"
+
+#: Settings.ui.h:87
+msgid "Animation duration (s)"
+msgstr "动画持续时间(秒)"
+
+#: Settings.ui.h:88
+msgid "0.000"
+msgstr "0.000"
+
+#: Settings.ui.h:89
+msgid "Show timeout (s)"
+msgstr "显示超时时间(秒)"
+
+#: Settings.ui.h:90
+msgid "Pressure threshold"
+msgstr "压力阈值"
+
+#~ msgid ""
+#~ "With fixed icon size, only the edge of the dock and the <i>Show "
+#~ "Applications</i> icon are active."
+#~ msgstr ""
+#~ "如果固定了图标大小,只有 dock 边缘和“<i>显示应用程序</i>”图标会激活该功"
+#~ "能。"
+
+#~ msgid "Switch workspace by scrolling on the dock"
+#~ msgstr "通过滚动 dock 来切换工作区"
+
+#~ msgid "Main Settings"
+#~ msgstr "主设置"
+
+#~ msgid "Dock is fixed and always visible"
+#~ msgstr "Dock 固定且总是可见"
+
+#~ msgid "Show delay [ms]"
+#~ msgstr "显示延迟(毫秒)"
+
+#~ msgid "Hide delay [ms]"
+#~ msgstr "隐藏延迟(毫秒)"
+
+#~ msgid "Application based intellihide"
+#~ msgstr "应用程序基于智能隐藏"
+
+#~ msgid "Show the dock on following monitor (if attached)"
+#~ msgstr "Dock 将在如下显示器显示(如果已连接)"
+
+#~ msgid "Primary (default)"
+#~ msgstr "主显示器(默认)"
+
+#~ msgid "1"
+#~ msgstr "1"
+
+#~ msgid "2"
+#~ msgstr "2"
+
+#~ msgid "3"
+#~ msgstr "3"
+
+#~ msgid "4"
+#~ msgstr "4"
+
+#~ msgid "Max height"
+#~ msgstr "最大高度"
+
+#~ msgid "Expand (experimental and buggy)"
+#~ msgstr "全部展开(实验阶段且存在问题)"
+
+#~ msgid "Maximum icon size"
+#~ msgstr "最大图标尺寸"
+
+#~ msgid "16"
+#~ msgstr "16"
+
+#~ msgid "24"
+#~ msgstr "24"
+
+#~ msgid "32"
+#~ msgstr "32"
+
+#~ msgid "48"
+#~ msgstr "48"
+
+#~ msgid "64"
+#~ msgstr "64"
+
+#~ msgid "Optional features"
+#~ msgstr "可选功能"
+
+#~ msgid "Only a 1px wide area close to the screen edge is active"
+#~ msgstr "仅当靠近屏幕边缘1像素宽区域时启用"
+
+#~ msgid "All the area of the dock is active"
+#~ msgstr "Dock 全部区域时启用"
+
+#~ msgid "Customize actions on mouse click"
+#~ msgstr "自定义鼠标点击动作"
+
+#~ msgid "Action on clicking on running app"
+#~ msgstr "点击正在运行程序的动作"
+
+#~ msgid "Minimize window on shift+click (double click for all app windows)"
+#~ msgstr "当按下“Shift+单击”(双击适用于全部程序窗口)时最小化窗口"
+
+#~ msgid "Only when in autohide"
+#~ msgstr "仅当自动隐藏时"
diff --git a/package/prefs.js b/package/prefs.js
new file mode 100644
index 0000000..5f1f378
--- /dev/null
+++ b/package/prefs.js
@@ -0,0 +1,705 @@
+// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
+
+const Gio = imports.gi.Gio;
+const GLib = imports.gi.GLib;
+const GObject = imports.gi.GObject;
+const Gtk = imports.gi.Gtk;
+const Gdk = imports.gi.Gdk;
+const Lang = imports.lang;
+const Mainloop = imports.mainloop;
+
+// Use __ () and N__() for the extension gettext domain, and reuse
+// the shell domain with the default _() and N_()
+const Gettext = imports.gettext.domain('dashtodock');
+const __ = Gettext.gettext;
+const N__ = function(e) { return e };
+
+const ExtensionUtils = imports.misc.extensionUtils;
+const Me = ExtensionUtils.getCurrentExtension();
+const Convenience = Me.imports.convenience;
+
+const SCALE_UPDATE_TIMEOUT = 500;
+const DEFAULT_ICONS_SIZES = [ 128, 96, 64, 48, 32, 24, 16 ];
+
+/**
+ * This function was copied from the activities-config extension
+ * https://github.com/nls1729/acme-code/tree/master/activities-config
+ * by Norman L. Smith.
+ */
+function cssHexString(css) {
+    let rrggbb = '#';
+    let start;
+    for (let loop = 0; loop < 3; loop++) {
+        let end = 0;
+        let xx = '';
+        for (let loop = 0; loop < 2; loop++) {
+            while (true) {
+                let x = css.slice(end, end + 1);
+                if ((x == '(') || (x == ',') || (x == ')'))
+                    break;
+                end++;
+            }
+            if (loop == 0) {
+                end++;
+                start = end;
+            }
+        }
+        xx = parseInt(css.slice(start, end)).toString(16);
+        if (xx.length == 1)
+            xx = '0' + xx;
+        rrggbb += xx;
+        css = css.slice(end);
+    }
+    return rrggbb;
+}
+
+function setShortcut(settings) {
+    let shortcut_text = settings.get_string('shortcut-text');
+    let [key, mods] = Gtk.accelerator_parse(shortcut_text);
+
+    if (Gtk.accelerator_valid(key, mods)) {
+        let shortcut = Gtk.accelerator_name(key, mods);
+        settings.set_strv('shortcut', [shortcut]);
+    }
+    else {
+        settings.set_strv('shortcut', []);
+    }
+}
+
+const Settings = new Lang.Class({
+    Name: 'DashToDock.Settings',
+
+    _init: function() {
+        this._settings = Convenience.getSettings('org.gnome.shell.extensions.dash-to-dock');
+
+        this._rtl = (Gtk.Widget.get_default_direction() == Gtk.TextDirection.RTL);
+
+        this._builder = new Gtk.Builder();
+        this._builder.set_translation_domain(Me.metadata['gettext-domain']);
+        this._builder.add_from_file(Me.path + '/Settings.ui');
+
+        this.widget = this._builder.get_object('settings_notebook');
+
+        // Timeout to delay the update of the settings
+        this._dock_size_timeout = 0;
+        this._icon_size_timeout = 0;
+        this._opacity_timeout = 0;
+
+        this._bindSettings();
+
+        this._builder.connect_signals_full(Lang.bind(this, this._connector));
+    },
+
+    /**
+     * Connect signals
+     */
+    _connector: function(builder, object, signal, handler) {
+        object.connect(signal, Lang.bind(this, this._SignalHandler[handler]));
+    },
+
+    _bindSettings: function() {
+        // Position and size panel
+
+        // Monitor options
+
+        this._monitors = [];
+        // Build options based on the number of monitors and the current settings.
+        let n_monitors = Gdk.Screen.get_default().get_n_monitors();
+        let primary_monitor = Gdk.Screen.get_default().get_primary_monitor();
+
+        let monitor = this._settings.get_int('preferred-monitor');
+
+        // Add primary monitor with index 0, because in GNOME Shell the primary monitor is always 0
+        this._builder.get_object('dock_monitor_combo').append_text(__('Primary monitor'));
+        this._monitors.push(0);
+
+        // Add connected monitors
+        let ctr = 0;
+        for (let i = 0; i < n_monitors; i++) {
+            if (i !== primary_monitor) {
+                ctr++;
+                this._monitors.push(ctr);
+                this._builder.get_object('dock_monitor_combo').append_text(__('Secondary monitor ') + ctr);
+            }
+        }
+
+        // If one of the external monitor is set as preferred, show it even if not attached
+        if ((monitor >= n_monitors) && (monitor !== primary_monitor)) {
+            this._monitors.push(monitor)
+            this._builder.get_object('dock_monitor_combo').append_text(__('Secondary monitor ') + ++ctr);
+        }
+
+        this._builder.get_object('dock_monitor_combo').set_active(this._monitors.indexOf(monitor));
+
+        // Position option
+        let position = this._settings.get_enum('dock-position');
+
+        switch (position) {
+            case 0:
+                this._builder.get_object('position_top_button').set_active(true);
+                break;
+            case 1:
+                this._builder.get_object('position_right_button').set_active(true);
+                break;
+            case 2:
+                this._builder.get_object('position_bottom_button').set_active(true);
+                break;
+            case 3:
+                this._builder.get_object('position_left_button').set_active(true);
+                break;
+        }
+
+        if (this._rtl) {
+            /* Left is Right in rtl as a setting */
+            this._builder.get_object('position_left_button').set_label(__('Right'));
+            this._builder.get_object('position_right_button').set_label(__('Left'));
+        }
+
+        // Intelligent autohide options
+        this._settings.bind('dock-fixed',
+                            this._builder.get_object('intelligent_autohide_switch'),
+                            'active',
+                            Gio.SettingsBindFlags.INVERT_BOOLEAN);
+        this._settings.bind('dock-fixed',
+                            this._builder.get_object('intelligent_autohide_button'),
+                            'sensitive',
+                            Gio.SettingsBindFlags.INVERT_BOOLEAN);
+        this._settings.bind('autohide',
+                            this._builder.get_object('autohide_switch'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('autohide-in-fullscreen',
+                            this._builder.get_object('autohide_enable_in_fullscreen_checkbutton'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('require-pressure-to-show',
+                            this._builder.get_object('require_pressure_checkbutton'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('intellihide',
+                            this._builder.get_object('intellihide_switch'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('animation-time',
+                            this._builder.get_object('animation_duration_spinbutton'),
+                            'value',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('hide-delay',
+                            this._builder.get_object('hide_timeout_spinbutton'),
+                            'value',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('show-delay',
+                            this._builder.get_object('show_timeout_spinbutton'),
+                            'value',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('pressure-threshold',
+                            this._builder.get_object('pressure_threshold_spinbutton'),
+                            'value',
+                            Gio.SettingsBindFlags.DEFAULT);
+
+        //this._builder.get_object('animation_duration_spinbutton').set_value(this._settings.get_double('animation-time'));
+
+        // Create dialog for intelligent autohide advanced settings
+        this._builder.get_object('intelligent_autohide_button').connect('clicked', Lang.bind(this, function() {
+
+            let dialog = new Gtk.Dialog({ title: __('Intelligent autohide customization'),
+                                          transient_for: this.widget.get_toplevel(),
+                                          use_header_bar: true,
+                                          modal: true });
+
+            // GTK+ leaves positive values for application-defined response ids.
+            // Use +1 for the reset action
+            dialog.add_button(__('Reset to defaults'), 1);
+
+            let box = this._builder.get_object('intelligent_autohide_advanced_settings_box');
+            dialog.get_content_area().add(box);
+
+            this._settings.bind('intellihide',
+                            this._builder.get_object('intellihide_mode_box'),
+                            'sensitive',
+                            Gio.SettingsBindFlags.GET);
+
+            // intellihide mode
+
+            let intellihideModeRadioButtons = [
+                this._builder.get_object('all_windows_radio_button'),
+                this._builder.get_object('focus_application_windows_radio_button'),
+                this._builder.get_object('maximized_windows_radio_button')
+            ];
+
+            intellihideModeRadioButtons[this._settings.get_enum('intellihide-mode')].set_active(true);
+
+            this._settings.bind('autohide',
+                            this._builder.get_object('require_pressure_checkbutton'),
+                            'sensitive',
+                            Gio.SettingsBindFlags.GET);
+
+            this._settings.bind('autohide',
+                            this._builder.get_object('autohide_enable_in_fullscreen_checkbutton'),
+                            'sensitive',
+                            Gio.SettingsBindFlags.GET);
+
+            this._settings.bind('require-pressure-to-show',
+                                this._builder.get_object('show_timeout_spinbutton'),
+                                'sensitive',
+                                Gio.SettingsBindFlags.INVERT_BOOLEAN);
+            this._settings.bind('require-pressure-to-show',
+                                this._builder.get_object('show_timeout_label'),
+                                'sensitive',
+                                Gio.SettingsBindFlags.INVERT_BOOLEAN);
+            this._settings.bind('require-pressure-to-show',
+                                this._builder.get_object('pressure_threshold_spinbutton'),
+                                'sensitive',
+                                Gio.SettingsBindFlags.DEFAULT);
+            this._settings.bind('require-pressure-to-show',
+                                this._builder.get_object('pressure_threshold_label'),
+                                'sensitive',
+                                Gio.SettingsBindFlags.DEFAULT);
+
+            dialog.connect('response', Lang.bind(this, function(dialog, id) {
+                if (id == 1) {
+                    // restore default settings for the relevant keys
+                    let keys = ['intellihide', 'autohide', 'intellihide-mode', 'autohide-in-fullscreen', 'require-pressure-to-show',
+                                'animation-time', 'show-delay', 'hide-delay', 'pressure-threshold'];
+                    keys.forEach(function(val) {
+                        this._settings.set_value(val, this._settings.get_default_value(val));
+                    }, this);
+                    intellihideModeRadioButtons[this._settings.get_enum('intellihide-mode')].set_active(true);
+                } else {
+                    // remove the settings box so it doesn't get destroyed;
+                    dialog.get_content_area().remove(box);
+                    dialog.destroy();
+                }
+                return;
+            }));
+
+            dialog.show_all();
+
+        }));
+
+        // size options
+        this._builder.get_object('dock_size_scale').set_value(this._settings.get_double('height-fraction'));
+        this._builder.get_object('dock_size_scale').add_mark(0.9, Gtk.PositionType.TOP, null);
+        let icon_size_scale = this._builder.get_object('icon_size_scale');
+        icon_size_scale.set_range(8, DEFAULT_ICONS_SIZES[0]);
+        icon_size_scale.set_value(this._settings.get_int('dash-max-icon-size'));
+        DEFAULT_ICONS_SIZES.forEach(function(val) {
+             icon_size_scale.add_mark(val, Gtk.PositionType.TOP, val.toString());
+        });
+
+        // Corrent for rtl languages
+        if (this._rtl) {
+            // Flip value position: this is not done automatically
+            this._builder.get_object('dock_size_scale').set_value_pos(Gtk.PositionType.LEFT);
+            icon_size_scale.set_value_pos(Gtk.PositionType.LEFT);
+            // I suppose due to a bug, having a more than one mark and one above a value of 100
+            // makes the rendering of the marks wrong in rtl. This doesn't happen setting the scale as not flippable
+            // and then manually inverting it
+            icon_size_scale.set_flippable(false);
+            icon_size_scale.set_inverted(true);
+        }
+
+        this._settings.bind('icon-size-fixed', this._builder.get_object('icon_size_fixed_checkbutton'), 'active', Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('extend-height', this._builder.get_object('dock_size_extend_checkbutton'), 'active', Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('extend-height', this._builder.get_object('dock_size_scale'), 'sensitive', Gio.SettingsBindFlags.INVERT_BOOLEAN);
+
+
+        // Apps panel
+
+        this._settings.bind('show-running',
+                            this._builder.get_object('show_running_switch'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('isolate-workspaces',
+                            this._builder.get_object('application_button_isolation_button'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('isolate-monitors',
+                            this._builder.get_object('application_button_monitor_isolation_button'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('show-windows-preview',
+                            this._builder.get_object('windows_preview_button'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('multi-monitor',
+                            this._builder.get_object('multi_monitor_button'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('show-favorites',
+                            this._builder.get_object('show_favorite_switch'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('show-show-apps-button',
+                            this._builder.get_object('show_applications_button_switch'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('show-apps-at-top',
+                            this._builder.get_object('application_button_first_button'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('show-show-apps-button',
+                            this._builder.get_object('application_button_first_button'),
+                            'sensitive',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('animate-show-apps',
+                            this._builder.get_object('application_button_animation_button'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('show-show-apps-button',
+                            this._builder.get_object('application_button_animation_button'),
+                            'sensitive',
+                            Gio.SettingsBindFlags.DEFAULT);
+
+
+        // Behavior panel
+
+        this._settings.bind('hot-keys',
+                            this._builder.get_object('hot_keys_switch'),
+                            'active',
+                            Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('hot-keys',
+                            this._builder.get_object('overlay_button'),
+                            'sensitive',
+                            Gio.SettingsBindFlags.DEFAULT);
+
+        this._builder.get_object('click_action_combo').set_active(this._settings.get_enum('click-action'));
+        this._builder.get_object('click_action_combo').connect('changed', Lang.bind (this, function(widget) {
+            this._settings.set_enum('click-action', widget.get_active());
+        }));
+
+        this._builder.get_object('scroll_action_combo').set_active(this._settings.get_enum('scroll-action'));
+        this._builder.get_object('scroll_action_combo').connect('changed', Lang.bind (this, function(widget) {
+            this._settings.set_enum('scroll-action', widget.get_active());
+        }));
+
+        this._builder.get_object('shift_click_action_combo').connect('changed', Lang.bind (this, function(widget) {
+            this._settings.set_enum('shift-click-action', widget.get_active());
+        }));
+
+        this._builder.get_object('middle_click_action_combo').connect('changed', Lang.bind (this, function(widget) {
+            this._settings.set_enum('middle-click-action', widget.get_active());
+        }));
+        this._builder.get_object('shift_middle_click_action_combo').connect('changed', Lang.bind (this, function(widget) {
+            this._settings.set_enum('shift-middle-click-action', widget.get_active());
+        }));
+
+        // Create dialog for number overlay options
+        this._builder.get_object('overlay_button').connect('clicked', Lang.bind(this, function() {
+
+            let dialog = new Gtk.Dialog({ title: __('Show dock and application numbers'),
+                                          transient_for: this.widget.get_toplevel(),
+                                          use_header_bar: true,
+                                          modal: true });
+
+            // GTK+ leaves positive values for application-defined response ids.
+            // Use +1 for the reset action
+            dialog.add_button(__('Reset to defaults'), 1);
+
+            let box = this._builder.get_object('box_overlay_shortcut');
+            dialog.get_content_area().add(box);
+
+            this._builder.get_object('overlay_switch').set_active(this._settings.get_boolean('hotkeys-overlay'));
+            this._builder.get_object('show_dock_switch').set_active(this._settings.get_boolean('hotkeys-show-dock'));
+
+            // We need to update the shortcut 'strv' when the text is modified
+            this._settings.connect('changed::shortcut-text', Lang.bind(this, function() {setShortcut(this._settings);}));
+            this._settings.bind('shortcut-text',
+                                this._builder.get_object('shortcut_entry'),
+                                'text',
+                                Gio.SettingsBindFlags.DEFAULT);
+
+            this._settings.bind('hotkeys-overlay',
+                                this._builder.get_object('overlay_switch'),
+                                'active',
+                                Gio.SettingsBindFlags.DEFAULT);
+            this._settings.bind('hotkeys-show-dock',
+                                this._builder.get_object('show_dock_switch'),
+                                'active',
+                                Gio.SettingsBindFlags.DEFAULT);
+            this._settings.bind('shortcut-timeout',
+                                this._builder.get_object('timeout_spinbutton'),
+                                'value',
+                                Gio.SettingsBindFlags.DEFAULT);
+
+            dialog.connect('response', Lang.bind(this, function(dialog, id) {
+                if (id == 1) {
+                    // restore default settings for the relevant keys
+                    let keys = ['shortcut-text', 'hotkeys-overlay', 'hotkeys-show-dock', 'shortcut-timeout'];
+                    keys.forEach(function(val) {
+                        this._settings.set_value(val, this._settings.get_default_value(val));
+                    }, this);
+                } else {
+                    // remove the settings box so it doesn't get destroyed;
+                    dialog.get_content_area().remove(box);
+                    dialog.destroy();
+                }
+                return;
+            }));
+
+            dialog.show_all();
+
+        }));
+
+        // Create dialog for middle-click options
+        this._builder.get_object('middle_click_options_button').connect('clicked', Lang.bind(this, function() {
+
+            let dialog = new Gtk.Dialog({ title: __('Customize middle-click behavior'),
+                                          transient_for: this.widget.get_toplevel(),
+                                          use_header_bar: true,
+                                          modal: true });
+
+            // GTK+ leaves positive values for application-defined response ids.
+            // Use +1 for the reset action
+            dialog.add_button(__('Reset to defaults'), 1);
+
+            let box = this._builder.get_object('box_middle_click_options');
+            dialog.get_content_area().add(box);
+
+            this._builder.get_object('shift_click_action_combo').set_active(this._settings.get_enum('shift-click-action'));
+
+            this._builder.get_object('middle_click_action_combo').set_active(this._settings.get_enum('middle-click-action'));
+
+            this._builder.get_object('shift_middle_click_action_combo').set_active(this._settings.get_enum('shift-middle-click-action'));
+
+            this._settings.bind('shift-click-action',
+                                this._builder.get_object('shift_click_action_combo'),
+                                'active-id',
+                                Gio.SettingsBindFlags.DEFAULT);
+            this._settings.bind('middle-click-action',
+                                this._builder.get_object('middle_click_action_combo'),
+                                'active-id',
+                                Gio.SettingsBindFlags.DEFAULT);
+            this._settings.bind('shift-middle-click-action',
+                                this._builder.get_object('shift_middle_click_action_combo'),
+                                'active-id',
+                                Gio.SettingsBindFlags.DEFAULT);
+
+            dialog.connect('response', Lang.bind(this, function(dialog, id) {
+                if (id == 1) {
+                    // restore default settings for the relevant keys
+                    let keys = ['shift-click-action', 'middle-click-action', 'shift-middle-click-action'];
+                    keys.forEach(function(val) {
+                        this._settings.set_value(val, this._settings.get_default_value(val));
+                    }, this);
+                    this._builder.get_object('shift_click_action_combo').set_active(this._settings.get_enum('shift-click-action'));
+                    this._builder.get_object('middle_click_action_combo').set_active(this._settings.get_enum('middle-click-action'));
+                    this._builder.get_object('shift_middle_click_action_combo').set_active(this._settings.get_enum('shift-middle-click-action'));
+                } else {
+                    // remove the settings box so it doesn't get destroyed;
+                    dialog.get_content_area().remove(box);
+                    dialog.destroy();
+                }
+                return;
+            }));
+
+            dialog.show_all();
+
+        }));
+
+        // Appearance Panel
+
+        this._settings.bind('apply-custom-theme', this._builder.get_object('customize_theme'), 'sensitive', Gio.SettingsBindFlags.INVERT_BOOLEAN | Gio.SettingsBindFlags.GET);
+        this._settings.bind('apply-custom-theme', this._builder.get_object('builtin_theme_switch'), 'active', Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('custom-theme-shrink', this._builder.get_object('shrink_dash_switch'), 'active', Gio.SettingsBindFlags.DEFAULT);
+
+        this._settings.bind('custom-theme-running-dots',
+                             this._builder.get_object('running_dots_switch'),
+                             'active',
+                             Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('custom-theme-running-dots',
+                            this._builder.get_object('running_dots_advance_settings_button'),
+                            'sensitive',
+                            Gio.SettingsBindFlags.DEFAULT);
+
+        // Create dialog for running dots advanced settings
+        this._builder.get_object('running_dots_advance_settings_button').connect('clicked', Lang.bind(this, function() {
+
+            let dialog = new Gtk.Dialog({ title: __('Customize running indicators'),
+                                          transient_for: this.widget.get_toplevel(),
+                                          use_header_bar: true,
+                                          modal: true });
+
+            let box = this._builder.get_object('running_dots_advance_settings_box');
+            dialog.get_content_area().add(box);
+
+            this._settings.bind('custom-theme-customize-running-dots',
+                                this._builder.get_object('dot_style_switch'),
+                                'active',
+                                Gio.SettingsBindFlags.DEFAULT);
+            this._settings.bind('custom-theme-customize-running-dots',
+                                this._builder.get_object('dot_style_settings_box'),
+                                'sensitive', Gio.SettingsBindFlags.DEFAULT);
+
+            let rgba = new Gdk.RGBA();
+            rgba.parse(this._settings.get_string('custom-theme-running-dots-color'));
+            this._builder.get_object('dot_color_colorbutton').set_rgba(rgba);
+
+            this._builder.get_object('dot_color_colorbutton').connect('notify::color', Lang.bind(this, function(button) {
+                let rgba = button.get_rgba();
+                let css = rgba.to_string();
+                let hexString = cssHexString(css);
+                this._settings.set_string('custom-theme-running-dots-color', hexString);
+            }));
+
+            rgba.parse(this._settings.get_string('custom-theme-running-dots-border-color'));
+            this._builder.get_object('dot_border_color_colorbutton').set_rgba(rgba);
+
+            this._builder.get_object('dot_border_color_colorbutton').connect('notify::color', Lang.bind(this, function(button) {
+                let rgba = button.get_rgba();
+                let css = rgba.to_string();
+                let hexString = cssHexString(css);
+                this._settings.set_string('custom-theme-running-dots-border-color', hexString);
+            }));
+
+            this._settings.bind('custom-theme-running-dots-border-width',
+                                this._builder.get_object('dot_border_width_spin_button'),
+                                'value',
+                                Gio.SettingsBindFlags.DEFAULT);
+
+
+            dialog.connect('response', Lang.bind(this, function(dialog, id) {
+                // remove the settings box so it doesn't get destroyed;
+                dialog.get_content_area().remove(box);
+                dialog.destroy();
+                return;
+            }));
+
+            dialog.show_all();
+
+        }));
+
+        this._settings.bind('custom-background-color', this._builder.get_object('custom_background_color_switch'), 'active', Gio.SettingsBindFlags.DEFAULT);
+        this._settings.bind('custom-background-color', this._builder.get_object('custom_background_color'), 'sensitive', Gio.SettingsBindFlags.DEFAULT);
+
+        let rgba = new Gdk.RGBA();
+        rgba.parse(this._settings.get_string('background-color'));
+        this._builder.get_object('custom_background_color').set_rgba(rgba);
+
+        this._builder.get_object('custom_background_color').connect('notify::color', Lang.bind(this, function(button) {
+            let rgba = button.get_rgba();
+            let css = rgba.to_string();
+            let hexString = cssHexString(css);
+            this._settings.set_string('background-color', hexString);
+        }));
+
+        this._settings.bind('opaque-background', this._builder.get_object('customize_opacity_switch'), 'active', Gio.SettingsBindFlags.DEFAULT);
+        this._builder.get_object('custom_opacity_scale').set_value(this._settings.get_double('background-opacity'));
+        this._settings.bind('opaque-background', this._builder.get_object('custom_opacity'), 'sensitive', Gio.SettingsBindFlags.DEFAULT);
+
+        this._settings.bind('force-straight-corner',
+            this._builder.get_object('force_straight_corner_switch'),
+            'active', Gio.SettingsBindFlags.DEFAULT);
+
+        // About Panel
+
+        this._builder.get_object('extension_version').set_label(Me.metadata.version.toString());
+    },
+
+    /**
+     * Object containing all signals defined in the glade file
+     */
+    _SignalHandler: {
+        dock_display_combo_changed_cb: function(combo) {
+            this._settings.set_int('preferred-monitor', this._monitors[combo.get_active()]);
+        },
+
+        position_top_button_toggled_cb: function(button) {
+            if (button.get_active())
+                this._settings.set_enum('dock-position', 0);
+        },
+
+        position_right_button_toggled_cb: function(button) {
+            if (button.get_active())
+                this._settings.set_enum('dock-position', 1);
+        },
+
+        position_bottom_button_toggled_cb: function(button) {
+            if (button.get_active())
+                this._settings.set_enum('dock-position', 2);
+        },
+
+        position_left_button_toggled_cb: function(button) {
+            if (button.get_active())
+                this._settings.set_enum('dock-position', 3);
+        },
+
+        icon_size_combo_changed_cb: function(combo) {
+            this._settings.set_int('dash-max-icon-size', this._allIconSizes[combo.get_active()]);
+        },
+
+        dock_size_scale_format_value_cb: function(scale, value) {
+            return Math.round(value*100)+ ' %';
+        },
+
+        dock_size_scale_value_changed_cb: function(scale) {
+            // Avoid settings the size consinuosly
+            if (this._dock_size_timeout > 0)
+                Mainloop.source_remove(this._dock_size_timeout);
+
+            this._dock_size_timeout = Mainloop.timeout_add(SCALE_UPDATE_TIMEOUT, Lang.bind(this, function() {
+                this._settings.set_double('height-fraction', scale.get_value());
+                this._dock_size_timeout = 0;
+                return GLib.SOURCE_REMOVE;
+            }));
+        },
+
+        icon_size_scale_format_value_cb: function(scale, value) {
+            return value+ ' px';
+        },
+
+        icon_size_scale_value_changed_cb: function(scale) {
+            // Avoid settings the size consinuosly
+            if (this._icon_size_timeout > 0)
+                Mainloop.source_remove(this._icon_size_timeout);
+
+            this._icon_size_timeout = Mainloop.timeout_add(SCALE_UPDATE_TIMEOUT, Lang.bind(this, function() {
+                this._settings.set_int('dash-max-icon-size', scale.get_value());
+                this._icon_size_timeout = 0;
+                return GLib.SOURCE_REMOVE;
+            }));
+        },
+
+        custom_opacity_scale_value_changed_cb: function(scale) {
+            // Avoid settings the opacity consinuosly as it's change is animated
+            if (this._opacity_timeout > 0)
+                Mainloop.source_remove(this._opacity_timeout);
+
+            this._opacity_timeout = Mainloop.timeout_add(SCALE_UPDATE_TIMEOUT, Lang.bind(this, function() {
+                this._settings.set_double('background-opacity', scale.get_value());
+                this._opacity_timeout = 0;
+                return GLib.SOURCE_REMOVE;
+            }));
+        },
+
+        custom_opacity_scale_format_value_cb: function(scale, value) {
+            return Math.round(value*100) + ' %';
+        },
+
+        all_windows_radio_button_toggled_cb: function(button) {
+            if (button.get_active())
+                this._settings.set_enum('intellihide-mode', 0);
+        },
+
+        focus_application_windows_radio_button_toggled_cb: function(button) {
+            if (button.get_active())
+                this._settings.set_enum('intellihide-mode', 1);
+        },
+
+        maximized_windows_radio_button_toggled_cb: function(button) {
+            if (button.get_active())
+                this._settings.set_enum('intellihide-mode', 2);
+        }
+    }
+});
+
+function init() {
+    Convenience.initTranslations();
+}
+
+function buildPrefsWidget() {
+    let settings = new Settings();
+    let widget = settings.widget;
+    widget.show_all();
+    return widget;
+}
diff --git a/package/schemas/org.gnome.shell.extensions.dash-to-dock.gschema.xml b/package/schemas/org.gnome.shell.extensions.dash-to-dock.gschema.xml
new file mode 100644
index 0000000..0f43bd7
--- /dev/null
+++ b/package/schemas/org.gnome.shell.extensions.dash-to-dock.gschema.xml
@@ -0,0 +1,713 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schemalist gettext-domain="gnome-shell-extensions">
+  <enum id='org.gnome.shell.extensions.dash-to-dock.clickAction'>
+    <value value='0' nick='skip'/>
+    <value value='1' nick='minimize'/>
+    <value value='2' nick='launch'/>
+    <value value='3' nick='cycle-windows'/>
+    <value value='4' nick='minimize-or-overview'/>
+    <value value='5' nick='previews'/>
+    <value value='6' nick='quit'/>
+  </enum>
+  <enum id='org.gnome.shell.extensions.dash-to-dock.scrollAction'>
+    <value value='0' nick='do-nothing'/>
+    <value value='1' nick='cycle-windows'/>
+    <value value='2' nick='switch-workspace'/>
+  </enum>
+  <!-- this is mean to Match StSide. LEFT and RIGHT actual position in reversed in
+       rtl languages -->
+  <enum id='org.gnome.shell.extensions.dash-to-dock.position'>
+    <value value='0' nick='TOP'/>
+    <value value='1' nick='RIGHT'/>
+    <value value='2' nick='BOTTOM'/>
+    <value value='3' nick='LEFT'/>
+  </enum>
+  <enum id='org.gnome.shell.extensions.dash-to-dock.intellihide-mode'>
+    <value value='0' nick='ALL_WINDOWS'/>
+    <value value='1' nick='FOCUS_APPLICATION_WINDOWS'/>
+    <value value='2' nick='MAXIMIZED_WINDOWS'/>
+  </enum>
+  <schema path="/org/gnome/shell/extensions/dash-to-dock/" id="org.gnome.shell.extensions.dash-to-dock">
+    <key name="dock-position" enum="org.gnome.shell.extensions.dash-to-dock.position">
+      <default>'LEFT'</default>
+      <summary>Dock position</summary>
+      <description>Dock is shown on the Left, Right, Top or Bottom side of the screen.</description>
+    </key>
+    <key type="d" name="animation-time">
+      <default>0.2</default>
+      <summary>Animation time</summary>
+      <description>Sets the time duration of the autohide effect.</description>
+    </key>
+    <key type="d" name="show-delay">
+      <default>0.25</default>
+      <summary>Show delay</summary>
+      <description>Sets the delay after the mouse reaches the screen border before showing the dock.</description>
+    </key>
+    <key type="d" name="hide-delay">
+      <default>0.20</default>
+      <summary>Show delay</summary>
+      <description>Sets the delay after the mouse left the dock before hiding it.</description>
+    </key>
+    <key type="b" name="custom-background-color">
+      <default>false</default>
+      <summary>Set a custom dash background background color</summary>
+      <description>Sets the color for the dash background.</description>
+    </key>
+    <key type="s" name="background-color">
+      <default>"#ffffff"</default>
+      <summary>Dash background color.</summary>
+      <description>Customize the background color of the dash.</description>
+    </key>
+    <key type="b" name="opaque-background">
+      <default>false</default>
+      <summary>Dash background is opaque</summary>
+      <description>Makes the background of the dash opaque improving readability when in autohide mode.</description>
+    </key>
+    <key type="d" name="background-opacity">
+      <default>0.8</default>
+      <summary>Opacity of the dash background</summary>
+      <description>Sets the opacity of the dash background  when in autohide mode.</description>
+    </key>
+    <key type="b" name="intellihide">
+      <default>true</default>
+      <summary>Dock dodges windows</summary>
+      <description>Enable or disable intellihide mode</description>
+    </key>
+    <key name="intellihide-mode" enum="org.gnome.shell.extensions.dash-to-dock.intellihide-mode">
+      <default>'FOCUS_APPLICATION_WINDOWS'</default>
+      <summary>Define which windows are considered for intellihide.</summary>
+      <description></description>
+    </key>
+    <key type="b" name="autohide">
+      <default>true</default>
+      <summary>Dock shown on mouse over</summary>
+      <description>Enable or disable autohide mode</description>
+    </key>
+    <key type="b" name="require-pressure-to-show">
+      <default>true</default>
+      <summary>Require pressure to show dash</summary>
+      <description>Enable or disable requiring pressure to show the dash</description>
+    </key>
+    <key type="d" name="pressure-threshold">
+      <default>100</default>
+      <summary>Pressure threshold</summary>
+      <description>Sets how much pressure is needed to show the dash.</description>
+    </key>
+    <key type="b" name="autohide-in-fullscreen">
+      <default>false</default>
+      <summary>Enable autohide in fullscreen mode.</summary>
+      <description>Enable autohide in fullscreen mode.</description>
+    </key>
+    <key type="b" name="dock-fixed">
+      <default>false</default>
+      <summary>Dock always visible</summary>
+      <description>Dock is always visible</description>
+    </key>
+    <key type="b" name="scroll-switch-workspace">
+      <default>true</default>
+      <summary>Switch workspace by scrolling over the dock</summary>
+      <description>Add the possibility to switch workspace by mouse scrolling over the dock.</description>
+    </key>
+    <key type="i" name="dash-max-icon-size">
+      <default>48</default>
+      <summary>Maximum dash icon size</summary>
+      <description>Set the allowed maximum dash icon size. Allowed range: 16..64.</description>
+    </key>
+    <key type="b" name="icon-size-fixed">
+      <default>false</default>
+      <summary>Fixed icon size</summary>
+      <description>Keep the icon size fived by scrolling the dock.</description>
+    </key>
+    <key type="b" name="apply-custom-theme">
+      <default>false</default>
+      <summary>Apply custom theme</summary>
+      <description>Apply customization to the dash appearance</description>
+    </key>
+    <key type="b" name="custom-theme-shrink">
+      <default>false</default>
+      <summary>TODO</summary>
+      <description>TODO</description>
+    </key>
+    <key type="b" name="custom-theme-running-dots">
+      <default>false</default>
+      <summary>TODO</summary>
+      <description>TODO</description>
+    </key>
+    <key type="b" name="custom-theme-customize-running-dots">
+      <default>false</default>
+      <summary>Customize the style of the running application indicators.</summary>
+      <description>Customize the style of the running application indicators.</description>
+    </key>
+    <key type="s" name="custom-theme-running-dots-color">
+      <default>"#ffffff"</default>
+      <summary>Running application indicators color</summary>
+      <description>Customize the color of the running application indicators.</description>
+    </key>
+    <key type="s" name="custom-theme-running-dots-border-color">
+      <default>"#ffffff"</default>
+      <summary>Running application indicators border color.</summary>
+      <description>Customize the border color of the running application indicators.</description>
+    </key>
+    <key type="i" name="custom-theme-running-dots-border-width">
+      <default>0</default>
+      <summary>Running application indicators border width.</summary>
+      <description>Customize the border width of the running application indicators.</description>
+    </key>
+    <key type="b" name="show-running">
+      <default>true</default>
+      <summary>Show running apps</summary>
+      <description>Show or hide running appplications icons in the dash</description>
+    </key>
+    <key type="b" name="isolate-workspaces">
+      <default>false</default>
+      <summary>Provide workspace isolation</summary>
+      <description>Dash shows only windows from the currentworkspace</description>
+    </key>
+    <key type="b" name="isolate-monitors">
+      <default>false</default>
+      <summary>Provide monitor isolation</summary>
+      <description>Dash shows only windows from the monitor</description>
+    </key>
+    <key type="b" name="show-windows-preview">
+      <default>true</default>
+      <summary>Show preview of the open windows</summary>
+      <description>Replace open windows list with windows previews</description>
+    </key>
+    <key type="b" name="show-favorites">
+      <default>true</default>
+      <summary>Show favorites apps</summary>
+      <description>Show or hide favorite appplications icons in the dash</description>
+    </key>
+    <key type="b" name="show-show-apps-button">
+      <default>true</default>
+      <summary>Show applications button</summary>
+      <description>Show appplications button in the dash</description>
+    </key>
+    <key type="b" name="show-apps-at-top">
+      <default>false</default>
+      <summary>Show application button at top</summary>
+      <description>Show appplication button at top of the dash</description>
+    </key>
+    <key type="b" name="animate-show-apps">
+      <default>true</default>
+      <summary>Animate Show Applications from the desktop</summary>
+      <description>Animate Show Applications from the desktop</description>
+    </key>
+    <key type="b" name="bolt-support">
+      <default>true</default>
+      <summary>Basic compatibility with bolt extensions</summary>
+      <description>Make the extension work properly when bolt extensions is enabled</description>
+    </key>
+    <key type="d" name="height-fraction">
+      <default>0.90</default>
+      <summary>Dock max height (fraction of available space)</summary>
+    </key>
+    <key type="b" name="extend-height">
+      <default>false</default>
+      <summary>Extend the dock container to all the available height</summary>
+    </key>
+    <key type="i" name="preferred-monitor">
+      <default>-1</default>
+      <summary>Monitor on which putting the dock</summary>
+      <description>Set on which monitor to put the dock, use -1 for the primary one</description>
+    </key>
+    <key type="b" name="multi-monitor">
+      <default>false</default>
+      <summary>Enable multi-monitor docks</summary>
+      <description>Show a dock on every monitor</description>
+    </key>
+    <key type="b" name="customize-click">
+      <default>true</default>
+      <summary>Customize click behaviour</summary>
+      <description>Customize action on various mouse events</description>
+    </key>
+    <key type="b" name="minimize-shift">
+      <default>true</default>
+      <summary>Minimize on shift+click</summary>
+    </key>
+    <key type="b" name="activate-single-window">
+      <default>true</default>
+      <summary>Activate only one window</summary>
+    </key>
+    <key name="click-action" enum="org.gnome.shell.extensions.dash-to-dock.clickAction">
+      <default>'cycle-windows'</default>
+      <summary>Action when clicking on a running app</summary>
+      <description>Set the action that is executed when clicking on the icon of a running application</description>
+    </key>
+    <key name="scroll-action" enum="org.gnome.shell.extensions.dash-to-dock.scrollAction">
+      <default>'do-nothing'</default>
+      <summary>Action when scrolling app</summary>
+      <description>Set the action that is executed when scrolling on the application icon</description>
+    </key>
+    <key name="shift-click-action" enum="org.gnome.shell.extensions.dash-to-dock.clickAction">
+      <default>'minimize'</default>
+      <summary>Action when shit+clicking on a running app</summary>
+      <description>Set the action that is executed when shift+clicking on the icon of a running application</description>
+    </key>
+    <key name="middle-click-action" enum="org.gnome.shell.extensions.dash-to-dock.clickAction">
+      <default>'launch'</default>
+      <summary>Action when clicking on a running app</summary>
+      <description>Set the action that is executed when middle-clicking on the icon of a running application</description>
+    </key>
+    <key name="shift-middle-click-action" enum="org.gnome.shell.extensions.dash-to-dock.clickAction">
+      <default>'launch'</default>
+      <summary>Action when clicking on a running app</summary>
+      <description>Set the action that is executed when shift+middle-clicking on the icon of a running application</description>
+    </key>
+    <key type="b" name="hot-keys">
+      <default>true</default>
+      <summary>Super Hot-Keys</summary>
+      <description>Launch and switch between dash items using Super+(0-9)</description>
+    </key>
+    <key type="b" name="hotkeys-show-dock">
+      <default>true</default>
+      <summary>Show the dock when using the hotkeys</summary>
+      <description>The dock will be quickly shown so that the number-overlay is visible and app activation is easier</description>
+    </key>
+    <key type="s" name="shortcut-text">
+      <default>"&lt;Super&gt;q"</default>
+      <summary>Keybinding to show the dock and the number overlay.</summary>
+      <description>Behavior depends on hotkeys-show-dock and hotkeys-overlay.</description>
+    </key>
+    <key type="as" name="shortcut">
+      <default><![CDATA[['<Super>q']]]></default>
+      <summary>Keybinding to show the dock and the number overlay.</summary>
+      <description>Behavior depends on hotkeys-show-dock and hotkeys-overlay.</description>
+    </key>
+    <key type="d" name="shortcut-timeout">
+      <default>2</default>
+      <summary>Timeout to hide the dock</summary>
+      <description>Sets the time duration before the dock is hidden again.</description>
+    </key>
+    <key type="b" name="hotkeys-overlay">
+      <default>true</default>
+      <summary>Show the dock when using the hotkeys</summary>
+      <description>The dock will be quickly shown so that the number-overlay is visible and app activation is easier</description>
+    </key>
+    <key name="app-ctrl-hotkey-1" type="as">
+      <default><![CDATA[['<Ctrl><Super>1']]]></default>
+      <summary>Keybinding to launch 1st dash app</summary>
+      <description>
+        Keybinding to launch 1st app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-2" type="as">
+      <default><![CDATA[['<Ctrl><Super>2']]]></default>
+      <summary>Keybinding to launch 2nd dash app</summary>
+      <description>
+        Keybinding to launch 2nd app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-3" type="as">
+      <default><![CDATA[['<Ctrl><Super>3']]]></default>
+      <summary>Keybinding to launch 3rd dash app</summary>
+      <description>
+        Keybinding to launch 3rd app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-4" type="as">
+      <default><![CDATA[['<Ctrl><Super>4']]]></default>
+      <summary>Keybinding to launch 4th dash app</summary>
+      <description>
+        Keybinding to launch 4th app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-5" type="as">
+      <default><![CDATA[['<Ctrl><Super>5']]]></default>
+      <summary>Keybinding to launch 5th dash app</summary>
+      <description>
+        Keybinding to launch 5th app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-6" type="as">
+      <default><![CDATA[['<Ctrl><Super>6']]]></default>
+      <summary>Keybinding to launch 6th dash app</summary>
+      <description>
+        Keybinding to launch 6th app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-7" type="as">
+      <default><![CDATA[['<Ctrl><Super>7']]]></default>
+      <summary>Keybinding to launch 7th dash app</summary>
+      <description>
+        Keybinding to launch 7th app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-8" type="as">
+      <default><![CDATA[['<Ctrl><Super>8']]]></default>
+      <summary>Keybinding to launch 8th dash app</summary>
+      <description>
+        Keybinding to launch 8th app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-9" type="as">
+      <default><![CDATA[['<Ctrl><Super>9']]]></default>
+      <summary>Keybinding to launch 9th dash app</summary>
+      <description>
+        Keybinding to launch 9th app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-10" type="as">
+      <default><![CDATA[['<Ctrl><Super>0']]]></default>
+      <summary>Keybinding to launch 10th dash app</summary>
+      <description>
+        Keybinding to launch 10th app.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-1" type="as">
+      <default><![CDATA[['<Shift><Super>1']]]></default>
+      <summary>Keybinding to trigger 1st dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 1st app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-2" type="as">
+      <default><![CDATA[['<Shift><Super>2']]]></default>
+      <summary>Keybinding to trigger 2nd dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 2nd app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-3" type="as">
+      <default><![CDATA[['<Shift><Super>3']]]></default>
+      <summary>Keybinding to trigger 3rd dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 3rd app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-4" type="as">
+      <default><![CDATA[['<Shift><Super>4']]]></default>
+      <summary>Keybinding to trigger 4th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 4th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-5" type="as">
+      <default><![CDATA[['<Shift><Super>5']]]></default>
+      <summary>Keybinding to trigger 5th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 5th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-6" type="as">
+      <default><![CDATA[['<Shift><Super>6']]]></default>
+      <summary>Keybinding to trigger 6th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 6th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-7" type="as">
+      <default><![CDATA[['<Shift><Super>7']]]></default>
+      <summary>Keybinding to trigger 7th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 7th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-8" type="as">
+      <default><![CDATA[['<Shift><Super>8']]]></default>
+      <summary>Keybinding to trigger 8th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 8th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-9" type="as">
+      <default><![CDATA[['<Shift><Super>9']]]></default>
+      <summary>Keybinding to trigger 9th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 9th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-10" type="as">
+      <default><![CDATA[['<Shift><Super>0']]]></default>
+      <summary>Keybinding to trigger 10th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 10th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-hotkey-1" type="as">
+      <default><![CDATA[['<Super>1']]]></default>
+      <summary>Keybinding to trigger 1st dash app</summary>
+      <description>
+        Keybinding to either show or launch the 1st application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-2" type="as">
+      <default><![CDATA[['<Super>2']]]></default>
+      <summary>Keybinding to trigger 2nd dash app</summary>
+      <description>
+        Keybinding to either show or launch the 2nd application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-3" type="as">
+      <default><![CDATA[['<Super>3']]]></default>
+      <summary>Keybinding to trigger 3rd dash app</summary>
+      <description>
+        Keybinding to either show or launch the 3rd application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-4" type="as">
+      <default><![CDATA[['<Super>4']]]></default>
+      <summary>Keybinding to trigger 4th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 4th application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-5" type="as">
+      <default><![CDATA[['<Super>5']]]></default>
+      <summary>Keybinding to trigger 5th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 5th application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-6" type="as">
+      <default><![CDATA[['<Super>6']]]></default>
+      <summary>Keybinding to trigger 6th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 6th application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-7" type="as">
+      <default><![CDATA[['<Super>7']]]></default>
+      <summary>Keybinding to trigger 7th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 7th application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-8" type="as">
+      <default><![CDATA[['<Super>8']]]></default>
+      <summary>Keybinding to trigger 8th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 8th application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-9" type="as">
+      <default><![CDATA[['<Super>9']]]></default>
+      <summary>Keybinding to trigger 9th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 9th application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-10" type="as">
+      <default><![CDATA[['<Super>0']]]></default>
+      <summary>Keybinding to trigger 10th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 10th application in the dash.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-kp-1" type="as">
+      <default><![CDATA[['<Ctrl><Super>KP_1']]]></default>
+      <summary>Keybinding to launch 1st dash app</summary>
+      <description>
+        Keybinding to launch 1st app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-kp-2" type="as">
+      <default><![CDATA[['<Ctrl><Super>KP_2']]]></default>
+      <summary>Keybinding to launch 2nd dash app</summary>
+      <description>
+        Keybinding to launch 2nd app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-kp-3" type="as">
+      <default><![CDATA[['<Ctrl><Super>KP_3']]]></default>
+      <summary>Keybinding to launch 3rd dash app</summary>
+      <description>
+        Keybinding to launch 3rd app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-kp-4" type="as">
+      <default><![CDATA[['<Ctrl><Super>KP_4']]]></default>
+      <summary>Keybinding to launch 4th dash app</summary>
+      <description>
+        Keybinding to launch 4th app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-kp-5" type="as">
+      <default><![CDATA[['<Ctrl><Super>KP_5']]]></default>
+      <summary>Keybinding to launch 5th dash app</summary>
+      <description>
+        Keybinding to launch 5th app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-kp-6" type="as">
+      <default><![CDATA[['<Ctrl><Super>KP_6']]]></default>
+      <summary>Keybinding to launch 6th dash app</summary>
+      <description>
+        Keybinding to launch 6th app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-kp-7" type="as">
+      <default><![CDATA[['<Ctrl><Super>KP_7']]]></default>
+      <summary>Keybinding to launch 7th dash app</summary>
+      <description>
+        Keybinding to launch 7th app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-kp-8" type="as">
+      <default><![CDATA[['<Ctrl><Super>KP_8']]]></default>
+      <summary>Keybinding to launch 8th dash app</summary>
+      <description>
+        Keybinding to launch 8th app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-kp-9" type="as">
+      <default><![CDATA[['<Ctrl><Super>KP_9']]]></default>
+      <summary>Keybinding to launch 9th dash app</summary>
+      <description>
+        Keybinding to launch 9th app.
+      </description>
+    </key>
+    <key name="app-ctrl-hotkey-kp-10" type="as">
+      <default><![CDATA[['<Ctrl><Super>KP_0']]]></default>
+      <summary>Keybinding to launch 10th dash app</summary>
+      <description>
+        Keybinding to launch 10th app.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-kp-1" type="as">
+      <default><![CDATA[['<Shift><Super>KP_1']]]></default>
+      <summary>Keybinding to trigger 1st dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 1st app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-kp-2" type="as">
+      <default><![CDATA[['<Shift><Super>KP_2']]]></default>
+      <summary>Keybinding to trigger 2nd dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 2nd app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-kp-3" type="as">
+      <default><![CDATA[['<Shift><Super>KP_3']]]></default>
+      <summary>Keybinding to trigger 3rd dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 3rd app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-kp-4" type="as">
+      <default><![CDATA[['<Shift><Super>KP_4']]]></default>
+      <summary>Keybinding to trigger 4th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 4th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-kp-5" type="as">
+      <default><![CDATA[['<Shift><Super>KP_5']]]></default>
+      <summary>Keybinding to trigger 5th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 5th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-kp-6" type="as">
+      <default><![CDATA[['<Shift><Super>KP_6']]]></default>
+      <summary>Keybinding to trigger 6th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 6th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-kp-7" type="as">
+      <default><![CDATA[['<Shift><Super>KP_7']]]></default>
+      <summary>Keybinding to trigger 7th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 7th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-kp-8" type="as">
+      <default><![CDATA[['<Shift><Super>KP_8']]]></default>
+      <summary>Keybinding to trigger 8th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 8th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-kp-9" type="as">
+      <default><![CDATA[['<Shift><Super>KP_9']]]></default>
+      <summary>Keybinding to trigger 9th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 9th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-shift-hotkey-kp-10" type="as">
+      <default><![CDATA[['<Shift><Super>KP_0']]]></default>
+      <summary>Keybinding to trigger 10th dash app with shift behavior</summary>
+      <description>
+        Keybinding to trigger 10th app with shift behavior.
+      </description>
+    </key>
+    <key name="app-hotkey-kp-1" type="as">
+      <default><![CDATA[['<Super>KP_1']]]></default>
+      <summary>Keybinding to trigger 1st dash app</summary>
+      <description>
+        Keybinding to either show or launch the 1st application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-kp-2" type="as">
+      <default><![CDATA[['<Super>KP_2']]]></default>
+      <summary>Keybinding to trigger 2nd dash app</summary>
+      <description>
+        Keybinding to either show or launch the 2nd application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-kp-3" type="as">
+      <default><![CDATA[['<Super>KP_3']]]></default>
+      <summary>Keybinding to trigger 3rd dash app</summary>
+      <description>
+        Keybinding to either show or launch the 3rd application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-kp-4" type="as">
+      <default><![CDATA[['<Super>KP_4']]]></default>
+      <summary>Keybinding to trigger 4th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 4th application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-kp-5" type="as">
+      <default><![CDATA[['<Super>KP_5']]]></default>
+      <summary>Keybinding to trigger 5th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 5th application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-kp-6" type="as">
+      <default><![CDATA[['<Super>KP_6']]]></default>
+      <summary>Keybinding to trigger 6th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 6th application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-kp-7" type="as">
+      <default><![CDATA[['<Super>KP_7']]]></default>
+      <summary>Keybinding to trigger 7th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 7th application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-kp-8" type="as">
+      <default><![CDATA[['<Super>KP_8']]]></default>
+      <summary>Keybinding to trigger 8th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 8th application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-kp-9" type="as">
+      <default><![CDATA[['<Super>KP_9']]]></default>
+      <summary>Keybinding to trigger 9th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 9th application in the dash.
+      </description>
+    </key>
+    <key name="app-hotkey-kp-10" type="as">
+      <default><![CDATA[['<Super>KP_0']]]></default>
+      <summary>Keybinding to trigger 10th dash app</summary>
+      <description>
+        Keybinding to either show or launch the 10th application in the dash.
+      </description>
+    </key>
+    <key name="force-straight-corner" type="b">
+      <default>false</default>
+      <summary>Force straight corners in dash</summary>
+      <description>Make the borders in the dash non rounded</description>
+    </key>
+  </schema>
+</schemalist>
diff --git a/package/stylesheet.css b/package/stylesheet.css
new file mode 100644
index 0000000..6e9bf38
--- /dev/null
+++ b/package/stylesheet.css
@@ -0,0 +1,109 @@
+/* Shrink the dash by reducing padding and border radius */
+#dashtodockContainer.shrink #dash,
+#dashtodockContainer.dashtodock #dash {
+    border:1px;
+    padding:0px;
+}
+
+#dashtodockContainer.shrink.left #dash,
+#dashtodockContainer.dashtodock.left #dash {
+    border-left: 0px;
+    border-radius: 0px 9px 9px 0px;
+}
+
+
+#dashtodockContainer.shrink.right #dash,
+#dashtodockContainer.dashtodock.right #dash {
+    border-right: 0px;
+    border-radius: 9px 0px 0px 9px;
+}
+
+
+#dashtodockContainer.shrink.top #dash,
+#dashtodockContainer.dashtodock.top #dash {
+    border-top: 0px;
+    border-radius: 0px 0px 9px 9px;
+}
+
+#dashtodockContainer.shrink.bottom #dash,
+#dashtodockContainer.dashtodock.bottom #dash {
+    border-bottom: 0px;
+    border-radius: 9px 9px 0px 0px;
+}
+
+#dashtodockContainer.straight-corner #dash,
+#dashtodockContainer.shrink.straight-corner #dash {
+    border-radius: 0px;
+}
+
+/* Scrollview style */
+.bottom #dashtodockDashScrollview,
+.top #dashtodockDashScrollview {
+    -st-hfade-offset: 24px;
+}
+
+.left #dashtodockDashScrollview,
+.right #dashtodockDashScrollview {
+    -st-vfade-offset: 24px;
+}
+
+#dashtodockContainer.running-dots .dash-item-container > StButton,
+#dashtodockContainer.dashtodock .dash-item-container > StButton {
+    transition-duration: 250;
+    background-size: contain;
+}
+
+#dashtodockContainer.shrink .dash-item-container > StButton,
+#dashtodockContainer.dashtodock .dash-item-container > StButton {
+   padding: 1px 2px;
+}
+
+/* Dash height extended to the whole available vertical space */
+#dashtodockContainer.extended.top #dash,
+#dashtodockContainer.extended.right #dash,
+#dashtodockContainer.extended.bottom #dash,
+#dashtodockContainer.extended.left #dash {
+    border-radius: 0;
+}
+
+#dashtodockContainer.extended.top #dash,
+#dashtodockContainer.extended.bottom #dash {
+    border-left:0px;
+    border-right:0px;
+}
+
+#dashtodockContainer.extended.right #dash,
+#dashtodockContainer.extended.left #dash {
+    border-top:0px;
+    border-bottom:0px;
+}
+
+/* Running and focused application style */
+
+#dashtodockContainer.running-dots .app-well-app.running > .overview-icon,
+#dashtodockContainer.dashtodock .app-well-app.running > .overview-icon {
+	background-image:none;
+}
+
+
+#dashtodockContainer.running-dots .app-well-app.focused  .overview-icon,
+#dashtodockContainer.dashtodock .app-well-app.focused  .overview-icon {
+    background-color: rgba(238, 238, 236, 0.1);
+}
+
+#dashtodockContainer.dashtodock #dash {
+    background: #2e3436;
+}
+
+#dashtodockContainer .number-overlay {
+    color: rgba(255,255,255,1);
+    background-color: rgba(0,0,0,0.8);
+    text-align: center;
+}
+
+#dashtodockPreviewSeparator.popup-separator-menu-item-horizontal {
+    width: 1px;
+    height: auto;
+    border-right-width: 1px;
+    margin: 32px 0px;
+}
diff --git a/package/theming.js b/package/theming.js
new file mode 100644
index 0000000..0a306b4
--- /dev/null
+++ b/package/theming.js
@@ -0,0 +1,293 @@
+// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
+
+const Clutter = imports.gi.Clutter;
+const Gio = imports.gi.Gio;
+const GLib = imports.gi.GLib;
+const Gtk = imports.gi.Gtk;
+const Signals = imports.signals;
+const Lang = imports.lang;
+const Meta = imports.gi.Meta;
+const Shell = imports.gi.Shell;
+const St = imports.gi.St;
+const Mainloop = imports.mainloop;
+
+const AppDisplay = imports.ui.appDisplay;
+const AppFavorites = imports.ui.appFavorites;
+const Dash = imports.ui.dash;
+const DND = imports.ui.dnd;
+const IconGrid = imports.ui.iconGrid;
+const Main = imports.ui.main;
+const PopupMenu = imports.ui.popupMenu;
+const Tweener = imports.ui.tweener;
+const Util = imports.misc.util;
+const Workspace = imports.ui.workspace;
+
+const Me = imports.misc.extensionUtils.getCurrentExtension();
+const Utils = Me.imports.utils;
+
+/**
+ * Manage theme customization and custom theme support
+ */
+const ThemeManager = new Lang.Class({
+    Name: 'DashToDock.ThemeManager',
+
+    _init: function(settings, actor, dash) {
+        this._settings = settings;
+        this._signalsHandler = new Utils.GlobalSignalsHandler();
+        this._bindSettingsChanges();
+        this._actor = actor;
+        this._dash = dash;
+
+        // initialize colors with generic values
+        this._customizedBackground = {red: 0, green: 0, blue: 0, alpha: 0};
+        this._customizedBorder = {red: 0, green: 0, blue: 0, alpha: 0};
+
+        this._signalsHandler.add([
+            // When theme changes re-obtain default background color
+            St.ThemeContext.get_for_stage (global.stage),
+            'changed',
+            Lang.bind(this, this.updateCustomTheme)
+        ], [
+            // update :overview pseudoclass
+            Main.overview,
+            'showing',
+            Lang.bind(this, this._onOverviewShowing)
+        ], [
+            Main.overview,
+            'hiding',
+            Lang.bind(this, this._onOverviewHiding)
+        ]);
+
+        this._updateCustomStyleClasses();
+
+        // destroy themeManager when the managed actor is destroyed (e.g. extension unload)
+        // in order to disconnect signals
+        this._actor.connect('destroy', Lang.bind(this, this.destroy));
+
+    },
+
+    destroy: function() {
+        this._signalsHandler.destroy();
+    },
+
+    _onOverviewShowing: function() {
+        this._actor.add_style_pseudo_class('overview');
+    },
+
+    _onOverviewHiding: function() {
+        this._actor.remove_style_pseudo_class('overview');
+    },
+
+    _updateDashOpacity: function() {
+        let newAlpha = this._settings.get_double('background-opacity');
+
+        let [backgroundColor, borderColor] = this._getDefaultColors();
+
+        if (backgroundColor==null)
+            return;
+
+        // Get the background and border alphas. We check the background alpha
+        // for a minimum of .001 to prevent division by 0 errors
+        let backgroundAlpha = Math.max(Math.round(backgroundColor.alpha/2.55)/100, .001);
+        let borderAlpha = Math.round(borderColor.alpha/2.55)/100;
+
+        // The border and background alphas should remain in sync
+        // We also limit the borderAlpha to a maximum of 1 (full opacity)
+        borderAlpha = Math.min((borderAlpha/backgroundAlpha)*newAlpha, 1);
+
+        this._customizedBackground = 'rgba(' +
+            backgroundColor.red + ',' +
+            backgroundColor.green + ',' +
+            backgroundColor.blue + ',' +
+            newAlpha + ')';
+
+        this._customizedBorder = 'rgba(' +
+            borderColor.red + ',' +
+            borderColor.green + ',' +
+            borderColor.blue + ',' +
+            borderAlpha + ')';
+
+    },
+
+    _getDefaultColors: function() {
+        // Prevent shell crash if the actor is not on the stage.
+        // It happens enabling/disabling repeatedly the extension
+        if (!this._dash._container.get_stage())
+            return [null, null];
+
+        // Remove custom style
+        let oldStyle = this._dash._container.get_style();
+        this._dash._container.set_style(null);
+
+        let themeNode = this._dash._container.get_theme_node();
+        this._dash._container.set_style(oldStyle);
+
+        let backgroundColor = themeNode.get_background_color();
+
+        // Just in case the theme has different border colors ..
+        // We want to find the inside border-color of the dock because it is
+        // the side most visible to the user. We do this by finding the side
+        // opposite the position
+        let position = Utils.getPosition(this._settings);
+        let side = position + 2;
+        if (side > 3)
+            side = Math.abs(side - 4);
+
+        let borderColor = themeNode.get_border_color(side);
+
+        return [backgroundColor, borderColor];
+    },
+
+    _updateDashColor: function() {
+        if (this._settings.get_boolean('custom-background-color')) {
+            let [backgroundColor, borderColor] = this._getDefaultColors();
+
+            if (backgroundColor==null)
+              return;
+
+            let newAlpha = Math.round(backgroundColor.alpha/2.55)/100;
+            if (this._settings.get_boolean('opaque-background'))
+                newAlpha = this._settings.get_double('background-opacity');
+
+            let newColor = Clutter.color_from_string(this._settings.get_string('background-color'))[1];
+            this._customizedBackground = 'rgba(' +
+                newColor.red + ',' +
+                newColor.green + ',' +
+                newColor.blue + ',' +
+                newAlpha + ')';
+
+            this._customizedBorder = this._customizedBackground;
+        }
+    },
+
+    _updateCustomStyleClasses: function() {
+        if (this._settings.get_boolean('apply-custom-theme'))
+            this._actor.add_style_class_name('dashtodock');
+        else
+            this._actor.remove_style_class_name('dashtodock');
+
+        if (this._settings.get_boolean('custom-theme-shrink'))
+            this._actor.add_style_class_name('shrink');
+        else
+            this._actor.remove_style_class_name('shrink');
+
+        if (this._settings.get_boolean('custom-theme-running-dots'))
+            this._actor.add_style_class_name('running-dots');
+        else
+            this._actor.remove_style_class_name('running-dots');
+
+        // If not the built-in theme option is not selected
+        if (!this._settings.get_boolean('apply-custom-theme')) {
+            if (this._settings.get_boolean('force-straight-corner'))
+                this._actor.add_style_class_name('straight-corner');
+            else 
+                this._actor.remove_style_class_name('straight-corner');
+        } else {
+            this._actor.remove_style_class_name('straight-corner');
+        }
+    },
+
+    updateCustomTheme: function() {
+        this._updateCustomStyleClasses();
+        this._updateDashOpacity();
+        this._updateDashColor();
+        this._adjustTheme();
+        this._dash._redisplay();
+    },
+
+    /**
+     * Reimported back and adapted from atomdock
+     */
+    _adjustTheme: function() {
+        // Prevent shell crash if the actor is not on the stage.
+        // It happens enabling/disabling repeatedly the extension
+        if (!this._dash._container.get_stage())
+            return;
+
+        // Remove prior style edits
+        this._dash._container.set_style(null);
+
+        // If built-in theme is enabled do nothing else
+        if (this._settings.get_boolean('apply-custom-theme'))
+            return;
+
+        let newStyle = '';
+        let position = Utils.getPosition(this._settings);
+
+        if (!this._settings.get_boolean('custom-theme-shrink')) {
+            // obtain theme border settings
+            let themeNode = this._dash._container.get_theme_node();
+            let borderColor = themeNode.get_border_color(St.Side.TOP);
+            let borderWidth = themeNode.get_border_width(St.Side.TOP);
+            let borderRadius = themeNode.get_border_radius(St.Corner.TOPRIGHT);
+
+            // We're copying border and corner styles to left border and top-left
+            // corner, also removing bottom border and bottom-right corner styles
+            let borderInner = '';
+            let borderRadiusValue = '';
+            let borderMissingStyle = '';
+
+            if (this._rtl && (position != St.Side.RIGHT))
+                borderMissingStyle = 'border-right: ' + borderWidth + 'px solid ' +
+                       borderColor.to_string() + ';';
+            else if (!this._rtl && (position != St.Side.LEFT))
+                borderMissingStyle = 'border-left: ' + borderWidth + 'px solid ' +
+                       borderColor.to_string() + ';';
+
+            switch (position) {
+            case St.Side.LEFT:
+                borderInner = 'border-left';
+                borderRadiusValue = '0 ' + borderRadius + 'px ' + borderRadius + 'px 0;';
+                break;
+            case St.Side.RIGHT:
+                borderInner = 'border-right';
+                borderRadiusValue = borderRadius + 'px 0 0 ' + borderRadius + 'px;';
+                break;
+            case St.Side.TOP:
+                borderInner = 'border-top';
+                borderRadiusValue = '0 0 ' + borderRadius + 'px ' + borderRadius + 'px;';
+                break;
+            case St.Side.BOTTOM:
+                borderInner = 'border-bottom';
+                borderRadiusValue = borderRadius + 'px ' + borderRadius + 'px 0 0;';
+                break;
+            }
+
+            newStyle = borderInner + ': none;' +
+                'border-radius: ' + borderRadiusValue +
+                borderMissingStyle;
+
+            // I do call set_style possibly twice so that only the background gets the transition.
+            // The transition-property css rules seems to be unsupported
+            this._dash._container.set_style(newStyle);
+        }
+
+        // Customize background
+        if (this._settings.get_boolean('opaque-background') || this._settings.get_boolean('custom-background-color')) {
+            newStyle = newStyle + 'background-color:'+ this._customizedBackground + '; ' +
+                       'border-color:'+ this._customizedBorder + '; ' +
+                       'transition-delay: 0s; transition-duration: 0.250s;';
+            this._dash._container.set_style(newStyle);
+        }
+    },
+
+    _bindSettingsChanges: function() {
+        let keys = ['opaque-background',
+                    'background-opacity',
+                    'custom-background-color',
+                    'background-color',
+                    'apply-custom-theme',
+                    'custom-theme-shrink',
+                    'custom-theme-running-dots',
+                    'extend-height',
+                    'force-straight-corner'];
+
+        keys.forEach(function(key) {
+            this._signalsHandler.add([
+                this._settings,
+                'changed::' + key,
+                Lang.bind(this, this.updateCustomTheme)
+           ]);
+        }, this);
+    }
+});
diff --git a/package/utils.js b/package/utils.js
new file mode 100644
index 0000000..b98fe45
--- /dev/null
+++ b/package/utils.js
@@ -0,0 +1,123 @@
+const Clutter = imports.gi.Clutter;
+const Lang = imports.lang;
+const St = imports.gi.St;
+
+/**
+ * Simplify global signals and function injections handling
+ * abstract class
+ */
+const BasicHandler = new Lang.Class({
+    Name: 'DashToDock.BasicHandler',
+
+    _init: function() {
+        this._storage = new Object();
+    },
+
+    add: function(/* unlimited 3-long array arguments */) {
+        // Convert arguments object to array, concatenate with generic
+        let args = Array.concat('generic', Array.slice(arguments));
+        // Call addWithLabel with ags as if they were passed arguments
+        this.addWithLabel.apply(this, args);
+    },
+
+    destroy: function() {
+        for( let label in this._storage )
+            this.removeWithLabel(label);
+    },
+
+    addWithLabel: function(label /* plus unlimited 3-long array arguments*/) {
+        if (this._storage[label] == undefined)
+            this._storage[label] = new Array();
+
+        // Skip first element of the arguments
+        for (let i = 1; i < arguments.length; i++) {
+            this._storage[label].push( this._create(arguments[i]));
+        }
+    },
+
+    removeWithLabel: function(label) {
+        if (this._storage[label]) {
+            for (let i = 0; i < this._storage[label].length; i++)
+                this._remove(this._storage[label][i]);
+
+            delete this._storage[label];
+        }
+    },
+
+    // Virtual methods to be implemented by subclass
+
+    /**
+     * Create single element to be stored in the storage structure
+     */
+    _create: function(item) {
+        throw new Error('no implementation of _create in ' + this);
+    },
+
+    /**
+     * Correctly delete single element
+     */
+    _remove: function(item) {
+        throw new Error('no implementation of _remove in ' + this);
+    }
+});
+
+/**
+ * Manage global signals
+ */
+const GlobalSignalsHandler = new Lang.Class({
+    Name: 'DashToDock.GlobalSignalHandler',
+    Extends: BasicHandler,
+
+    _create: function(item) {
+        let object = item[0];
+        let event = item[1];
+        let callback = item[2]
+        let id = object.connect(event, callback);
+
+        return [object, id];
+    },
+
+    _remove: function(item) {
+         item[0].disconnect(item[1]);
+    }
+});
+
+/**
+ * Manage function injection: both instances and prototype can be overridden
+ * and restored
+ */
+const InjectionsHandler = new Lang.Class({
+    Name: 'DashToDock.InjectionsHandler',
+    Extends: BasicHandler,
+
+    _create: function(item) {
+        let object = item[0];
+        let name = item[1];
+        let injectedFunction = item[2];
+        let original = object[name];
+
+        object[name] = injectedFunction;
+        return [object, name, injectedFunction, original];
+    },
+
+    _remove: function(item) {
+        let object = item[0];
+        let name = item[1];
+        let original = item[3];
+        object[name] = original;
+    }
+});
+
+/**
+ * Return the actual position reverseing left and right in rtl
+ */
+function getPosition(settings) {
+    let position = settings.get_enum('dock-position');
+    if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL) {
+        if (position == St.Side.LEFT)
+            position = St.Side.RIGHT;
+        else if (position == St.Side.RIGHT)
+            position = St.Side.LEFT;
+    }
+    return position;
+}
diff --git a/package/windowPreview.js b/package/windowPreview.js
new file mode 100644
index 0000000..4f84b4d
--- /dev/null
+++ b/package/windowPreview.js
@@ -0,0 +1,595 @@
+/*
+ * Credits:
+ * This file is based on code from the Dash to Panel extension by Jason DeRose
+ * and code from the Taskbar extension by Zorin OS
+ * Some code was also adapted from the upstream Gnome Shell source code.
+ */
+const Clutter = imports.gi.Clutter;
+const GLib = imports.gi.GLib;
+const Lang = imports.lang;
+const St = imports.gi.St;
+const Mainloop = imports.mainloop;
+const Main = imports.ui.main;
+const Gtk = imports.gi.Gtk;
+
+const Params = imports.misc.params;
+const PopupMenu = imports.ui.popupMenu;
+const Tweener = imports.ui.tweener;
+const Workspace = imports.ui.workspace;
+
+const Me = imports.misc.extensionUtils.getCurrentExtension();
+const Utils = Me.imports.utils;
+
+const PREVIEW_MAX_WIDTH = 250;
+const PREVIEW_MAX_HEIGHT = 150;
+
+const WindowPreviewMenu = new Lang.Class({
+    Name: 'WindowPreviewMenu',
+    Extends: PopupMenu.PopupMenu,
+
+    _init: function(source, settings) {
+        this._dtdSettings = settings;
+
+        let side = Utils.getPosition(settings);
+
+        this.parent(source.actor, 0.5, side);
+
+        // We want to keep the item hovered while the menu is up
+        this.blockSourceEvents = true;
+
+        this._source = source;
+        this._app = this._source.app;
+        let monitorIndex = this._source.monitorIndex;
+
+        this.actor.add_style_class_name('app-well-menu');
+        this.actor.set_style('max-width: '  + (Main.layoutManager.monitors[monitorIndex].width  - 22) + 'px; ' +
+                             'max-height: ' + (Main.layoutManager.monitors[monitorIndex].height - 22) + 'px;');
+        this.actor.hide();
+
+        // Chain our visibility and lifecycle to that of the source
+        this._mappedId = this._source.actor.connect('notify::mapped', Lang.bind(this, function () {
+            if (!this._source.actor.mapped)
+                this.close();
+        }));
+        this._destroyId = this._source.actor.connect('destroy', Lang.bind(this, this.destroy));
+
+        Main.uiGroup.add_actor(this.actor);
+
+        // Change the initialized side where required.
+        this._arrowSide = side;
+        this._boxPointer._arrowSide = side;
+        this._boxPointer._userArrowSide = side;
+
+        this._previewBox = new WindowPreviewList(this._source, this._dtdSettings);
+        this.addMenuItem(this._previewBox);
+    },
+
+    _redisplay: function() {
+        this._previewBox._shownInitially = false;
+        this._previewBox._redisplay();
+    },
+
+    popup: function() {
+        let windows = this._source.getInterestingWindows();
+        if (windows.length > 0) {
+            this._redisplay();
+            this.open();
+            this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+            this._source.emit('sync-tooltip');
+        }
+    },
+
+    destroy: function () {
+        if (this._mappedId)
+            this._source.actor.disconnect(this._mappedId);
+
+        if (this._destroyId)
+            this._source.actor.disconnect(this._destroyId);
+
+        this.parent();
+    }
+
+});
+
+const WindowPreviewList = new Lang.Class({
+    Name: 'WindowPreviewMenuSection',
+    Extends: PopupMenu.PopupMenuSection,
+
+    _init: function(source, settings) {
+        this._dtdSettings = settings;
+
+        this.parent();
+
+        this.actor = new St.ScrollView({ name: 'dashtodockWindowScrollview',
+                                               hscrollbar_policy: Gtk.PolicyType.AUTOMATIC,
+                                               vscrollbar_policy: Gtk.PolicyType.AUTOMATIC,
+                                               enable_mouse_scrolling: true });
+
+        this.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent ));
+
+        let position = Utils.getPosition(this._dtdSettings);
+        this.isHorizontal = position == St.Side.BOTTOM || position == St.Side.TOP;
+        this.box.set_vertical(!this.isHorizontal);
+        this.box.set_name('dashtodockWindowList');
+        this.actor.add_actor(this.box);
+        this.actor._delegate = this;
+
+        this._shownInitially = false;
+
+        this._source = source;
+        this.app = source.app;
+
+        this._redisplayId = Main.initializeDeferredWork(this.actor, Lang.bind(this, this._redisplay));
+
+        this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
+        this._stateChangedId = this.app.connect('windows-changed',
+                                                Lang.bind(this,
+                                                          this._queueRedisplay));
+    },
+
+    _queueRedisplay: function () {
+        Main.queueDeferredWork(this._redisplayId);
+    },
+
+    _onScrollEvent: function(actor, event) {
+        // Event coordinates are relative to the stage but can be transformed
+        // as the actor will only receive events within his bounds.
+        let stage_x, stage_y, ok, event_x, event_y, actor_w, actor_h;
+        [stage_x, stage_y] = event.get_coords();
+        [ok, event_x, event_y] = actor.transform_stage_point(stage_x, stage_y);
+        [actor_w, actor_h] = actor.get_size();
+
+        // If the scroll event is within a 1px margin from
+        // the relevant edge of the actor, let the event propagate.
+        if (event_y >= actor_h - 2)
+            return Clutter.EVENT_PROPAGATE;
+
+        // Skip to avoid double events mouse
+        if (event.is_pointer_emulated())
+            return Clutter.EVENT_STOP;
+
+        let adjustment, delta;
+
+        if (this.isHorizontal)
+            adjustment = this.actor.get_hscroll_bar().get_adjustment();
+        else
+            adjustment = this.actor.get_vscroll_bar().get_adjustment();
+
+        let increment = adjustment.step_increment;
+
+        switch ( event.get_scroll_direction() ) {
+        case Clutter.ScrollDirection.UP:
+            delta = -increment;
+            break;
+        case Clutter.ScrollDirection.DOWN:
+            delta = +increment;
+            break;
+        case Clutter.ScrollDirection.SMOOTH:
+            let [dx, dy] = event.get_scroll_delta();
+            delta = dy*increment;
+            delta += dx*increment;
+            break;
+
+        }
+
+        adjustment.set_value(adjustment.get_value() + delta);
+
+        return Clutter.EVENT_STOP;
+    },
+
+    _onDestroy: function() {
+        this.app.disconnect(this._stateChangedId);
+        this._stateChangedId = 0;
+    },
+
+    _createPreviewItem: function(window) {
+        let preview = new WindowPreviewMenuItem(window);
+        return preview;
+    },
+
+    _redisplay: function () {
+        // Remove separator
+        let nonWinItem = this._getMenuItems().filter(function(actor) {
+                return !actor._window;
+            });
+        for (let i = 0; i < nonWinItem.length; i++) {
+             let item = nonWinItem[i];
+             item.destroy();
+        }
+
+        let children = this._getMenuItems().filter(function(actor) {
+                return actor._window;
+            });
+
+        // Windows currently on the menu
+        let oldWin = children.map(function(actor) {
+                return actor._window;
+            });
+
+        // All app windows
+        let newWin = this._source.getInterestingWindows().sort(this.sortWindowsCompareFunction);
+
+        let addedItems = [];
+        let removedActors = [];
+
+        let newIndex = 0;
+        let oldIndex = 0;
+
+        while (newIndex < newWin.length || oldIndex < oldWin.length) {
+            // No change at oldIndex/newIndex
+            if (oldWin[oldIndex] &&
+                oldWin[oldIndex] == newWin[newIndex]) {
+                oldIndex++;
+                newIndex++;
+                continue;
+            }
+
+            // Window removed at oldIndex
+            if (oldWin[oldIndex] &&
+                newWin.indexOf(oldWin[oldIndex]) == -1) {
+                removedActors.push(children[oldIndex]);
+                oldIndex++;
+                continue;
+            }
+
+            // Window added at newIndex
+            if (newWin[newIndex] &&
+                oldWin.indexOf(newWin[newIndex]) == -1) {
+                addedItems.push({ item: this._createPreviewItem(newWin[newIndex]),
+                                  pos: newIndex });
+                newIndex++;
+                continue;
+            }
+
+            // Window moved
+            let insertHere = newWin[newIndex + 1] &&
+                             newWin[newIndex + 1] == oldWin[oldIndex];
+            let alreadyRemoved = removedActors.reduce(function(result, actor) {
+                let removedWin = actor._window;
+                return result || removedWin == newWin[newIndex];
+            }, false);
+
+            if (insertHere || alreadyRemoved) {
+                addedItems.push({ item: this._createPreviewItem(newWin[newIndex]),
+                                  pos: newIndex + removedActors.length });
+                newIndex++;
+            } else {
+                removedActors.push(children[oldIndex]);
+                oldIndex++;
+            }
+        }
+
+        for (let i = 0; i < addedItems.length; i++)
+            this.addMenuItem(addedItems[i].item,
+                             addedItems[i].pos);
+
+        for (let i = 0; i < removedActors.length; i++) {
+            let item = removedActors[i];
+            if (this._shownInitially)
+                item._animateOutAndDestroy();
+            else
+                item.actor.destroy();
+        }
+
+        // Separate windows from other workspaces
+        let ws_index = global.screen.get_active_workspace_index();
+        let separator_index = 0;
+        for (let i = 0; i < newWin.length; i++)
+            if (newWin[i].get_workspace().index() == ws_index)
+                separator_index++;
+
+        if (separator_index > 0 && separator_index !== newWin.length) {
+            let separatorItem = new PopupMenu.PopupSeparatorMenuItem();
+            if (this.isHorizontal) {
+                separatorItem._separator.set_x_expand(false);
+                separatorItem._separator.set_y_expand(true);
+                separatorItem._separator.set_name('dashtodockPreviewSeparator');
+                separatorItem._separator.add_style_class_name('popup-separator-menu-item-horizontal');
+                separatorItem._separator.set_x_align(Clutter.ActorAlign.CENTER);
+                separatorItem._separator.set_y_align(Clutter.ActorAlign.FILL);
+            }
+            this.addMenuItem(separatorItem, separator_index);
+        }
+
+        // Skip animations on first run when adding the initial set
+        // of items, to avoid all items zooming in at once
+        let animate = this._shownInitially;
+
+        if (!this._shownInitially)
+            this._shownInitially = true;
+
+        for (let i = 0; i < addedItems.length; i++)
+            addedItems[i].item.show(animate);
+
+        // Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=692744
+        // Without it, StBoxLayout may use a stale size cache
+        this.box.queue_relayout();
+
+        if (newWin.length < 1)
+            this._getTopMenu().close(~0);
+    },
+
+    isAnimatingOut: function() {
+        return this.actor.get_children().reduce(function(result, actor) {
+                   return result || actor.animatingOut;
+               }, false);
+    },
+
+    sortWindowsCompareFunction: function(windowA, windowB) {
+        let ws_index = global.screen.get_active_workspace_index();
+        let winA_inActiveWS = windowA.get_workspace().index() == ws_index;
+        let winB_inActiveWS = windowB.get_workspace().index() == ws_index;
+
+        // Only change the order if winA is not in the current WS, while winB is
+        if (!winA_inActiveWS && winB_inActiveWS)
+            return 1;
+
+        return 0;
+    }
+});
+
+const WindowPreviewMenuItem = new Lang.Class({
+    Name: 'WindowPreviewMenuItem',
+    Extends: PopupMenu.PopupBaseMenuItem,
+
+    _init: function(window, params) {
+        this._window = window;
+        this._destroyId = 0;
+        this._windowAddedId = 0;
+        params = Params.parse(params, { style_class: 'app-well-preview-menu-item' });
+        this.parent(params);
+
+        this._cloneBin = new St.Bin();
+        this._cloneBin.set_size(PREVIEW_MAX_WIDTH, PREVIEW_MAX_HEIGHT);
+
+        // TODO: improve the way the closebutton is layout. Just use some padding
+        // for the moment.
+        this._cloneBin.set_style('padding: 5px');
+
+        this.closeButton = new St.Button({ style_class: 'window-close',
+                                          x_expand: true,
+                                          y_expand: true});
+        this.closeButton.set_x_align(Clutter.ActorAlign.END);
+        this.closeButton.set_y_align(Clutter.ActorAlign.START);
+
+
+        this.closeButton.opacity = 0;
+        this.closeButton.connect('clicked', Lang.bind(this, this._closeWindow));
+
+        let overlayGroup = new Clutter.Actor({layout_manager: new Clutter.BinLayout() });
+
+        overlayGroup.add_actor(this._cloneBin);
+        overlayGroup.add_actor(this.closeButton);
+
+        let label = new St.Label({ text: window.get_title()});
+        label.set_style('max-width: '+PREVIEW_MAX_WIDTH +'px');
+        let labelBin = new St.Bin({ child: label,
+                                    x_align: St.Align.MIDDLE});
+
+        this._windowTitleId = this._window.connect('notify::title', Lang.bind(this, function() {
+                                  label.set_text(this._window.get_title());
+                              }));
+
+        let box = new St.BoxLayout({ vertical: true,
+                                     reactive:true,
+                                     x_expand:true });
+        box.add(overlayGroup);
+        box.add(labelBin);
+        this.actor.add_actor(box);
+
+        this.actor.connect('enter-event',
+                                  Lang.bind(this, this._onEnter));
+        this.actor.connect('leave-event',
+                                  Lang.bind(this, this._onLeave));
+        this.actor.connect('key-focus-in',
+                                  Lang.bind(this, this._onEnter));
+        this.actor.connect('key-focus-out',
+                                  Lang.bind(this, this._onLeave));
+
+        this._cloneTexture(window);
+
+    },
+
+    _cloneTexture: function(metaWin){
+
+        let mutterWindow = metaWin.get_compositor_private();
+
+        // Newly-created windows are added to a workspace before
+        // the compositor finds out about them...
+        // Moreover sometimes they return an empty texture, thus as a workarounf also check for it size
+        if (!mutterWindow || !mutterWindow.get_texture() || !mutterWindow.get_texture().get_size()[0]) {
+            let id = Mainloop.idle_add(Lang.bind(this,
+                                            function () {
+                                                // Check if there's still a point in getting the texture,
+                                                // otherwise this could go on indefinitely
+                                                if (this.actor && metaWin.get_workspace())
+                                                    this._cloneTexture(metaWin);
+                                                return GLib.SOURCE_REMOVE;
+                                            }));
+            GLib.Source.set_name_by_id(id, '[dash-to-dock] this._cloneTexture');
+            return;
+        }
+
+        let windowTexture = mutterWindow.get_texture();
+        let [width, height] = windowTexture.get_size();
+
+        let scale = Math.min(1.0, PREVIEW_MAX_WIDTH/width, PREVIEW_MAX_HEIGHT/height);
+
+        let clone = new Clutter.Clone ({ source: windowTexture,
+                                         reactive: true,
+                                         width: width * scale,
+                                         height: height * scale });
+
+        // when the source actor is destroyed, i.e. the window closed, first destroy the clone
+        // and then destroy the menu item (do this animating out)
+        this._destroyId = mutterWindow.connect('destroy', Lang.bind(this, function() {
+            clone.destroy();
+            this._destroyId = 0; // avoid to try to disconnect this signal from mutterWindow in _onDestroy(),
+                                 // as the object was just destroyed
+            this._animateOutAndDestroy();
+        }));
+
+        this._clone = clone;
+        this._mutterWindow = mutterWindow;
+        this._cloneBin.set_child(this._clone);
+    },
+
+    _windowCanClose: function() {
+        return this._window.can_close() &&
+               !this._hasAttachedDialogs();
+    },
+
+    _closeWindow: function(actor) {
+        this._workspace = this._window.get_workspace();
+
+        // This mechanism is copied from the workspace.js upstream code
+        // It forces window activation if the windows don't get closed,
+        // for instance because asking user confirmation, by monitoring the opening of
+        // such additional confirmation window
+        this._windowAddedId = this._workspace.connect('window-added',
+                                                      Lang.bind(this,
+                                                                this._onWindowAdded));
+
+        this.deleteAllWindows();
+    },
+
+    deleteAllWindows: function() {
+        // Delete all windows, starting from the bottom-most (most-modal) one
+        //let windows = this._window.get_compositor_private().get_children();
+        let windows = this._clone.get_children();
+        for (let i = windows.length - 1; i >= 1; i--) {
+            let realWindow = windows[i].source;
+            let metaWindow = realWindow.meta_window;
+
+            metaWindow.delete(global.get_current_time());
+        }
+
+        this._window.delete(global.get_current_time());
+    },
+
+    _onWindowAdded: function(workspace, win) {
+        let metaWindow = this._window;
+
+        if (win.get_transient_for() == metaWindow) {
+            workspace.disconnect(this._windowAddedId);
+            this._windowAddedId = 0;
+
+            // use an idle handler to avoid mapping problems -
+            // see comment in Workspace._windowAdded
+            let id = Mainloop.idle_add(Lang.bind(this,
+                                            function() {
+                                                this.emit('activate');
+                                                return GLib.SOURCE_REMOVE;
+                                            }));
+            GLib.Source.set_name_by_id(id, '[dash-to-dock] this.emit');
+        }
+    },
+
+    _hasAttachedDialogs: function() {
+        // count trasient windows
+        let n=0;
+        this._window.foreach_transient(function(){n++;});
+        return n>0;
+    },
+
+    _onEnter: function() {
+        this._showCloseButton();
+        return Clutter.EVENT_PROPAGATE;
+    },
+
+    _onLeave: function() {
+        if (!this._cloneBin.has_pointer &&
+            !this.closeButton.has_pointer)
+            this._hideCloseButton();
+
+        return Clutter.EVENT_PROPAGATE;
+    },
+
+    _idleToggleCloseButton: function() {
+        this._idleToggleCloseId = 0;
+
+        if (!this._cloneBin.has_pointer &&
+            !this.closeButton.has_pointer)
+            this._hideCloseButton();
+
+        return GLib.SOURCE_REMOVE;
+    },
+
+    _showCloseButton: function() {
+
+        if (this._windowCanClose()) {
+            this.closeButton.show();
+            Tweener.addTween(this.closeButton,
+                             { opacity: 255,
+                               time: Workspace.CLOSE_BUTTON_FADE_TIME,
+                               transition: 'easeOutQuad' });
+        }
+    },
+
+    _hideCloseButton: function() {
+        Tweener.addTween(this.closeButton,
+                         { opacity: 0,
+                           time: Workspace.CLOSE_BUTTON_FADE_TIME,
+                           transition: 'easeInQuad' });
+    },
+
+    show: function(animate) {
+        let fullWidth = this.actor.get_width();
+
+        this.actor.opacity = 0;
+        this.actor.set_width(0);
+
+        let time = animate ? 0.25 : 0;
+        Tweener.addTween(this.actor,
+                         { opacity: 255,
+                           width: fullWidth,
+                           time: time,
+                           transition: 'easeInOutQuad'
+                         });
+    },
+
+    _animateOutAndDestroy: function() {
+        Tweener.addTween(this.actor,
+                         { opacity: 0,
+                           time: 0.25,
+                         });
+
+        Tweener.addTween(this.actor,
+                         { height: 0,
+                           width: 0,
+                           time: 0.25,
+                           delay: 0.25,
+                           onCompleteScope: this,
+                           onComplete: function() {
+                              this.actor.destroy();
+                           }
+                         });
+    },
+
+    activate: function() {
+        this._getTopMenu().close();
+        Main.activateWindow(this._window);
+    },
+
+    _onDestroy: function() {
+
+        this.parent();
+
+        if (this._windowAddedId > 0) {
+            this._workspace.disconnect(this._windowAddedId);
+            this._windowAddedId = 0;
+        }
+
+        if (this._destroyId > 0) {
+            this._mutterWindow.disconnect(this._destroyId);
+            this._destroyId = 0;
+        }
+
+        if (this._windowTitleId > 0) {
+            this._window.disconnect(this._windowTitleId);
+            this._windowTitleId = 0;
+        }
+    }
+
+});
+
-- 
GitLab