jmatsuzawa / dash-to-dock

A gnome shell extension that trasforms the dash into an intellihide dock.

Home Page:https://extensions.gnome.org/extension/307/dash-to-dock/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dash to Dock

A Gnome Shell extension that transforms the dash into an intellihide dock.

The Gnome Shell Dash indicates currently running applications and acts as an optional quick launch and favourites facility. By default the Dash is shown only in the Overview. This extension moves the dash out of the overview transforming it in a dock that allows an easier launching of applications and a faster switching between windows without having to leave the desktop view.

screenshot

The dock supports intellihide/dodge and autohide modes. In addition the following customization options and features have been added to the default dash:

  1. Customization of the maximum icon size.
  2. Customization of the vertical position and alignment.
  3. Option to show only favourites or running applications.
  4. Possibility to switch workspace by scrolling over the dock.
  5. Optional custom actions when clicking on a running application icon: minimize window, cycle through application windows, or launch new window. Optional *minimize windows on Shift+click (Shift+double click to close all the windows of the application.
  6. Support for showing indicators of the number of windows for each application. This function has to be supported by the theme used. In the screenshot above an extended Adwaita theme is uses (see section below).

Many options can be tweaked and tuned (see section below). The extension supports multi-monitor configurations, rtl languages, accessibility via Ctrl-Alt-Tab shortcut, localization and it is theme-friendly.

Installation

Gnome Shell 3.4 and above

The easiest and suggested way to install and keep the extension updated is through the official Gnome Shell Extension site. The installation process is straightfoward. The extension can then be enabled and disabled through the same site or with gnome-tweak-tool.

Gnome Shell 3.2

Due to incompatibilities between different Gnome Shell versions, the Gnome Shell 3.2 version uploaded on the extension site is outdated. An more updated version with almost the feautures of the master version can be downloaded from the download section in the form of a zip archive. The extension can be installed by means of gnome-tweak-tool.

You can alos manually install the extension by direcly extractig the zip archive. Create a directory named dashtodock@micxgx.gmail.com inside /home/user/.local/share/gnome-shell/extensions/ and extract the archive content there. Shell reload can be required Alt+F2 r Enter. The extension can be enabled with gnome-tweak-tool or with dconf by adding 'dashtodock@micxgx.gmail.com' to the /org/gnome/shell/enabled-extensions key.

Installation from source

The extension can be installed directly from source. Use the master branch for Gnome Shell 3.4 or the gnome-3.2 branch for Gnome Shell 3.2. A simple Makefile is included. Run

make
make install

to install the extension in your home directory. A Shell reload is required Alt+F2 r Enter and the extension has to be enabled with gnome-tweak-tool or with dconf.

As an alternative the zip archive can be generated with

make
make zip-file

Then follow the above instructions for Gnome Shell 3.2.

Settings

Gnome Shell 3.4 and above

The extension can be extensively configured by means of gnome-shell-extension-prefs. clicking the configure button on the extension page next to the enable/disable button or running gnome-shell-extension-prefs in a console. To open the Dash to Dock settings directly run

gnome-shell-extension-prefs dash-to-dock@micxgx.gmail.com

Settings window 1 Settings window 2

Gnome Shell 3.2

In Gnome Shell 3.2 the extension configuration although not difficult requires to modify the source code. Settings are both in intellihide.js and indockedDash.js inside the installation directory /home/user/.local/share/gnome-shell/extensions/. At the top of these files there is a settings section with uppercase variables that can be easily set as preferred. They are mostly true/false variables and there are brief descriptions of the effect of each setting. Shell reload is required Alt+F2 r Enter after settings change.

Multi-monitor configuration

The extension support multi-monitor configurations. By default the dock is shown on the primary monitor that is the monitor where the overview an panel are shown, but the extension can be configured to show the dock on another monitor. If the dock is set to be shown on an external monitor, the dock position is automaticaly updated whenever the monitor is attached or removed: when the selected monitor is not attached the dock is shown on the primary monitor.

Theming

The extension aims to be as theme-friendly as possible. The dock appearence is inherited from the default dash so basic theme support is always granted. However, some features has to be direclty supported by the theme.

The following themes are known to support Dash to Dock extension:

Adding support for the Dash to Dock extension to a theme is easy: the dash is put inside a container actor named #dashtodockContainer so the extended dash can be targeted without conflicting with the default dash. There is some additional css classes that theme writers can exploit in order to support the extension better:

  • .running1, .running2, .running3, .running4: like the default .running style but based on the number of windows of the application. The .running4 class targets 4 and more windows. All classes are applied to the app-well-app actors.
  • .focused: applied to the .app-well-app actor of the currently focused application.
  • .extended: applied to the #dashtodockContainer actor when the dock height is extended to the whole vertical space.

Below is a css code snippet showing how the dock can be customized

/* Add Dash to Dock Support */

/* Shrink the dash by reducing padding and border radius */
#dashtodockContainer #dash {
    padding: 1px 0px;
    border-radius: 0px 6px 6px 0px;
}

/* rtl support*/
#dashtodock #dash:rtl {
    border-radius: 6px 0px 0px 6px;
}

#dashtodockContainer .app-well-app {
   background-size: contain;
   padding: 1px 2px;
}

#dashtodockContainer.extended #dash {
    border:0;
    border-radius: 0;
}

/* Running and focused application style */

/* Remove default running style */
#dashtodockContainer .app-well-app.running > .overview-icon {
	background-image: none;
}

#dashtodockContainer .app-well-app.focused > .overview-icon {
    transition-duration: 250;
    background-gradient-start: rgba(255, 255, 255, .05);
    background-gradient-end: rgba(255, 255, 255, .15);
    background-gradient-direction: vertical;
    border-radius: 4px;
    box-shadow: inset 0px 1px 2px 0px rgba(0, 0, 0, 1);
}

#dashtodockContainer:ltr .running1 {
    background-image: url('one.svg');
}

#dashtodockContainer:rtl .running1 {
    background-image: url('one_rtl.svg');
}

#dashtodockContainer:ltr .running2 {
    background-image: url('two.svg');
}

#dashtodockContainer:rtl .running2 {
    background-image: url('two_rtl.svg');
}

#dashtodockContainer:ltr .running3 {
   background-image: url('three.svg');
}

#dashtodockContainer:rtl .running3 {
    background-image: url('three_rtl.svg');
}

#dashtodockContainer:ltr .running4 {
    background-image: url('four.svg');
}

#dashtodockContainer:rtl .running4 {
    background-image: url('four_rtl.svg');
}

Localization

Localization is supported via gettext. The translatable strings are contained in the file ./po/dashtodock.pot that is generated by the command:

make potfile

This file can be used to generate the po translation file for a specific language either with msginit or with a GUI tool such as poedit or Gtranslator.

Po files for already translated languages are found in the po directory. When the translatable strings change the command

make mergepo

can be used to update all po files before updating translations.

If you want to contribute, just send me the updated or new po file for your language. You can get in touch with me with a bug report either on github or on the extension site or even directly by mail (micxgx@gmail.com).

Known Issues

  • Missing padding for dekstop icons with Nautilus show desktop enabled. See [Issue 17] (micheleg#17).
  • In multimonitor configuration when the dock is hidden it slides in the adjacent monitor if any is present. Although the dock is not visible it still steals mouse clicks from other windows.

Bug Reporting

If you experienced a bug please report it by opening an isssue on github or with a bug report message in the extension website. Your help is very appreciated.

Please provide as many details as possible and all the steps to reproduce the bug. Include the following information:

  • Extension version
  • Gnome Shell version
  • Linux distribution and version
  • Whether you have a multi-monitor configuration
  • Your settings: include the output of the command dconf dump /org/gnome/shell/extensions/dash-to-dock/.

Before reporting a bug:

  • Check if the bug persists disabling all other extensions. If not, try to find the conflicting extension by enabling each extension one at a time.
  • Check if there are any relevant errors in Looking Glass (ALt-F2 lg, error panel).
  • Reload the shell by typing in a terminal (as normal user) gnome-shell --replace and look for relevant output in that terminal when the bug appears.
  • Try to reset the extension settings to their default values with the command dconf reset /org/gnome/shell/extensions/dash-to-dock/

Change log

Version numbering follows the uploads to the extension website.

Version 18 (13-11-2012)

  • Rebase the dash code adding the application button

Version 17 (23-10-2012)

  • First Gnome Shell 3.6 only release
  • Update to 3.6 API fixing a couple of bugs

Version 16 (19-10-2012)

  • Correct syntax error in the previous version

Version 15 (19-10-2012)

  • Initial Gnome Shell 3.6 support: just make the extension load

Version 14 (04-09-2012)

  • Extend app icons with running and focused indicators (require supporting theme)
  • Add customization of click action
  • Rework vertical positioning: drop uncentered alignment and add an experimental extended mode
  • Bug fixing

Version 13 (14-08-2012)

  • bug fixing for multimonitor support

Version 12 (12-08-2012)

  • RTL languages support.
  • Add Application based intellihide.
  • Minor improvements to the switch workspace on scroll feature.
  • Bug fixing.

Version 11 (22-07-2012)

  • Allow to choose the monitor where the dock is shown.
  • Enable dash accessibility via ctrlAltTab.
  • Directly customize the dash background opacity.

Version 10 (09-07-2012)

  • Option to center the dock vertically.
  • Option to increase the maximum dock height.
  • Settings GUI overhaul.

Version 9 (24-06-2012)

  • Basic Bolt extensions support.
  • Bug fixing.

Version 8 (23-06-2012)

  • Gnome Shell 3.4 only release.
  • Greatly improve multimonitor support.
  • Improve intellihide efficiency.
  • Improve autohide.
  • Improve settings GUI.
  • Add swith workspace on scroll feature.
  • Option to control the maximum icon size.
  • Option to show favorites and/or running application icons.
  • Bug fixing.

Version 7 (12-06-2012)

  • Gnome Shell 3.2 only release, last version supporting 3.2.
  • Greatly improve multimonitor support.
  • Bug fixing.

Version 6 (03-06-2012)

  • Bug fixing.

Version 5 (02-06-2012)

  • Move settings to a gschema for Gnome Shell 3.4.
  • Add settings GUI form Gnome Shell 3.4.
  • Minor improvements.

Version 4 (29-05-2012)

  • Minor improvements.
  • Bug fixing.

Version 3 (23-05-2012)

  • Basic theme indipendece.
  • Intellihide/autohide settings.
  • Minor improvements.
  • Bug fixing .

Version 2 (20-05-2012)

  • Inline timing settings.
  • Bug fixing.

Version 1 (12-05-2012)

  • Initial release.
  • Basic intellihide functionality.

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

Flattr this

or

PayPal — The safer, easier way to pay online.

About

A gnome shell extension that trasforms the dash into an intellihide dock.

https://extensions.gnome.org/extension/307/dash-to-dock/

License:GNU General Public License v2.0


Languages

Language:JavaScript 100.0%