Ubuntu – How to set the launcher hide delay time

launcherunity

The question is, how can I set the launcher auto-hide delay time to 0 ? What I want is for the launcher to instantly disappear when I move the mouse away from it. Please note this is nothing to do with the hide-animation duration, as the animation only begins after a delay. It is this delay setting I need to find. It's very easy to set the reveal delay to zero, but I can't find the hide delay setting.

Best Answer

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.

Related Question