Tweaking Ubuntu Unity To Show All Of An Apps Windows

In OS X, clicking on a dock icon shows all open windows for the app. In Ubuntu, clicking on a launcher icon only shows the most recently used open window. This is annoying if you want to copy files between two folders or view all Xpad note windows.

Ubuntu 18.04

In Terminal
sudo apt install dconf-tools
dconf-editor
org / gnome / shell / extensions / dash-to-dock
Change click-action custom value to minimize
Another change to match 16.04 functionality when scrolling over app icon:
Change scroll-action custom value to cycle-windows

For Ubuntu 16.04 read on.

Ubuntu 16.04

This has been reported as a bug here
A previous suggestion for how to change this is here
The above suggestion does not work for Ubuntu 14.04 Unity 7.2.
Using these instructions, I was able to figure out how to tweak and recompile Unity.

Warning: This is for advanced users only. Software updates can render the desktop unusable. To recover, Ctrl-Alt-F1, login, rm ~/.compiz-1/

1. Install the build dependancies.
sudo apt-get build-dep unity
sudo apt-get build-dep nux

2. Create a directory called /SourceCache/staging/ or /home/”username”/staging

3. In that directory create a script called unity.sh containing the following to set environment variables.

#!/bin/bash

PREFIX=/SourceCache/staging

export XDG_DATA_DIRS="$PREFIX/share:$XDG_DATA_DIRS"
export LD_LIBRARY_PATH="$PREFIX/lib/"
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig/"

4. Change the file permissions

chmod +x unity.sh

Execute the script once before doing builds.

5. In the staging directory:

apt-get source unity

6. There will now be a unity… directory in the staging directory where … is version information.

7a. Ubuntu 14.04 Open the file unity…/launcher/ApplicationLauncherIcon.cpp

or

7b. Ubuntu 16.04 Open the file unity…/launcher/WindowedLauncherIcon.cpp

8. Near the end of the ActivateLauncherIcon(ActionArg arg) method you will find the following lines:

else // #3 above
{
Focus(arg);
}

9. Change the code to the following and save:

else // #3 above
{
for (auto const& win : GetWindows(WindowFilter::USER_VISIBLE))
wm.Raise(win->window_id());
Focus(arg);
}

10. In the unity... directory

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/SourceCache/staging/ -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=local -DGSETTINGS_LOCALINSTALL=ON
make -j4
make install

This builds Unity and installs it in ~/.compiz-1

11. Logout and login to use the custom version.

To go back to the standard Unity, remove the ~/.compiz-1 directory.

Updated June 7, 2016: Updated for Ubuntu 16.04
Updated October 24, 2018: Updated for Ubuntu 18.04

1,403 thoughts on “Tweaking Ubuntu Unity To Show All Of An Apps Windows”

  1. Heya just wanted to give you a brief heads up and let you know a few of the images aren’t loading properly. I’m not sure why but I think its a linking issue. I’ve tried it in two different browsers and both show the same outcome.

  2. Please let me know if you’re looking for a author for your weblog. You have some really great articles and I believe I would be a good asset. If you ever want to take some of the load off, I’d really like to write some material for your blog in exchange for a link back to mine. Please blast me an e-mail if interested. Regards!

  3. Howdy! I know this is kind of off topic but I was wondering which blog platform are you using for this site? I’m getting tired of WordPress because I’ve had issues with hackers and I’m looking at options for another platform. I would be awesome if you could point me in the direction of a good platform.

  4. When I initially commented I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added I get four e-mails with the same comment. Is there any way you can remove people from that service? Thanks!

  5. I like what you guys are up too. Such intelligent work and reporting! Carry on the excellent works guys I have incorporated you guys to my blogroll. I think it will improve the value of my web site 🙂

  6. This is the right site for everyone who wishes to understand this topic.

    You understand so much its almost tough to argue with you (not that
    I personally will need to…HaHa). You certainly put
    a brand new spin on a topic which has been written about for years.
    Great stuff, just excellent!

  7. I do agree with all of the ideas you have offered on your post. They are very convincing and will definitely work. Nonetheless, the posts are too quick for newbies. Could you please extend them a little from next time? Thanks for the post.

  8. Hi there! This post couldn’t be written any better! Reading through this post reminds me of my previous room mate! He always kept talking about this. I will forward this article to him. Pretty sure he will have a good read. Thank you for sharing!

  9. Hi I am so happy I found your blog page, I really found you by mistake, while I was searching on Aol for something else, Anyways I am here now and would just like to say thank you for a fantastic post and a all round enjoyable blog (I also love the theme/design), I don’t have time to read it all at the moment but I have bookmarked it and also added in your RSS feeds, so when I have time I will be back to read more, Please do keep up the fantastic job.

  10. Thanx for the effort, keep up the good work Great work, I am going to start a small Blog Engine course work using your site I hope you enjoy blogging with the popular BlogEngine.net.Thethoughts you express are really awesome. Hope you will right some more posts.

  11. Please let me know if you’re looking for a article author for your blog. You have some really great posts and I think I would be a good asset. If you ever want to take some of the load off, I’d love to write some content for your blog in exchange for a link back to mine. Please send me an email if interested. Thank you!