I don't think this is a configurable option in Unity, but you can edit the source code to change the duration. If you've not downloaded source and compiled your own packages before, you can do so as follows. From your home directory in a terminal window:
mkdir src
cd src
apt-get source unity
cd unity-<version number>
gedit ./plugins/unityshell/src/Launcher.cpp
Look for the line which says:
Launcher.cpp:const int Launcher::Launcher::ANIM_DURATION_SHORT = 125;
and maybe double the duration. If you've never built a package from source before you're going to need a few tools. So do:
sudo apt-get install build-essential devscripts
Then to get the dependencies neccessary for unity to build properly:
sudo apt-get build-dep unity
Finally create the package and install:
debuild -us -uc
cd ..
sudo dpkg -i unity*.deb
If you're having problems with dependencies let me know, and I'll try to help you figure out what you're missing.
This seems to be hard coded into the Unity source. See here on line 32:
const unsigned int HIDE_DELAY_TIMEOUT_LENGTH = 400;
The actual hide function is further down at line 63:
void LauncherHideMachine::SetShouldHide(bool value, bool skip_delay)
{
if (_should_hide == value)
return;
if (value && !skip_delay)
{
_hide_delay_timeout.reset(new glib::Timeout(HIDE_DELAY_TIMEOUT_LENGTH));
_hide_delay_timeout->Run([&] () {
EnsureHideState(true);
return false;
});
}
else
{
_should_hide = value;
_hide_changed_emit_idle.reset(new glib::Idle(glib::Source::Priority::DEFAULT));
_hide_changed_emit_idle->Run(sigc::mem_fun(this, &LauncherHideMachine::EmitShouldHideChanged));
}
}
I'm not sure if there's a way to flag the skip_delay
argument either. You may want to file a bug report with the Unity team to see if you can get them to allow this variable to be customized. Otherwise you may have to patch and compile Unity yourself.
Best Answer
For 11.04 (Natty):
The Unity delay is intentional (Ayatana-Design bug 754583) but can be changed.
First
You can change the edge delay of Compiz:
“General Options” → “General” → “Edge Trigger Delay”: set to 0.
Second
You can change this delay and other settings.
At the end of the answer by Octavian Damiean you will find this:
Third
This is a workaround for “absolute zero” delay.
We will need XDoTool and Compiz.
You can install these from the Ubuntu Software Center or by clicking xdotool
and Compiz
.
Open Compiz (Alt + F2, type
ccsm
and hit Enter).Go to Commands and add
xdotool key super
to one command.Then go to Edge Bindings and choose “Left” for that command.