Improved Application Switcher for Elementary OS
I’ve recently switched to Elementary OS after many years of MacOS. Elementary by and large has been fantastic, and I like the low-configuration approach to OS design. The default alt-tab handler is my biggest gripe. It uses a combination of animated zoom, and brightness changes that I find visually tiring. I hoped that others had shared my pain and built an alternate solution.
A partial solution
After a bit of googling, I found a partial solution in this GitHub project From this project, I learned that Elementary is primarily written in Vala. Vala is an interesting language that provides object-oriented syntax on top of C using the GObject system from Gnome.
I hoped that the project I found would work with minimal fuss. However, getting Vala projects to build takes a bit of work. Once I had gotten past those hurdles and got a binary built, it crashed my gala (the Elementary window manager). The code had a lot of settings that could be changed with dconf
to change how the application switcher renders, but they also added a lot of complexity to the code. I couldn’t be certain but was fairly confident that all the settings added more complexity which was the source of the crashes.
Elementary Alt Tab Plus
I forked the project , because. I didn’t think the maintainers would appreciate a pull request that replaced huge parts of the existing behavior, so a fork seemed more appropriate. In my fork, I aimed to greatly simplify the behavior. I removed:
- Window previews.
- All the zooming animations and opacity changing.
- All the settings to change the appearance. Instead of dconf settings, I used constants, as I didn’t see a need to reconfigure the plugin at runtime.
I also improved the window title handling so that it was centered and didn’t overflow. The end result looks like this:
I’m pretty happy with how it turned out, and it has been working well on my machine with multiple monitors.
Getting it yourself
First, Install all the dependencies
- sudo apt install elementary-sdk libclutter-1.0-dev libwnck-3-dev
Then clone the repository:
- git clone git@github.com:markstory/gala-alt-tab-plus
Then you can build the gala plugin:
- mkdir build
- cd build
- cmake ..
- make
- sudo make install
- # Restart gala
- sudo gala --replace &
This should restart gala, with the new alt-tab plugin in place. If it doesn’t end up working for you, it can be uninstalled with:
- rm /usr/lib/x86_64-linux-gnu/gala/plugins/libgala-alt-tab-plus.so
Hopefully if the default Elementary application switcher bothers you, this plugin will make your experience a bit smoother.
BRO THIS IS SO SMOOOTH AND NICEEE!
had to all caps this
Dev on 11/17/20
Thank you :)
Aral Balkan on 12/13/20
Thank you very much! Otherwise I would have gone completely crazy. Alt-Tab is OOTB in elementaryOS completely unusable.
Now I’m looking for something that displays the red notification icons in the dock.
Hessi on 1/12/21
Thank you!
thank you on 4/27/21
it’s cool .
notes :
-it’s bit sluggish especially at the first alt-tab
-the notifications theme got altered for some reason .
hopefully you can provide any fixes especially for the notifications part .
s on 5/8/21
This is fantastic. You have improved this functionality several fold. I think it belongs in the core install of Elementary for sure!
Have you considered showing this to any of the community devs who contribute to EOS?
Happy Linux User on 6/5/21
This is fantastic. You have improved this functionality several fold. I think it belongs in the core install of Elementary for sure!
Have you considered showing this to any of the community devs who contribute to EOS?
Happy Linux User on 6/6/21
Hi… It gives the following error when I try to clone your git repo:
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Can you pls help?
Rajesh on 1/17/22