Configure o Unity Dash para esquecer o último comando

7

O problema

Quando eu ativo o Unity Dash, ele se lembra do último aplicativo, arquivo ou pasta que eu acessei usando o Dash. Se o item anterior era uma pasta e desta vez estou procurando por um aplicativo, o Dash não consegue encontrar o aplicativo.

Como reproduzir

  1. inicie o Dash pressionando a tecla 'super'
  2. digite seu nome de usuário para encontrar sua pasta pessoal (outros nomes de pastas serão usados)
  3. pressione "enter" para iniciar os arquivos
  4. inicie o Dash novamente
  5. digite 'firefox' ou qualquer outro aplicativo (sem primeiro pressionar 'escape')

A solução alternativa

Pressionando a fuga imediatamente após o lançamento do Dash, eliminando assim o termo de pesquisa anterior.

A questão

Posso configurar o Dash para esquecer o termo de pesquisa anterior e alguém sabe se esse é o comportamento esperado?

    
por Anthony Hepple 05.01.2017 / 16:33

2 respostas

3

A solução simples seria apenas clicar com o botão direito do mouse no próprio painel e selecionar a categoria específica que você deseja pesquisar - o Dash será limpo automaticamente para isso.

EunoteiqueonovoDash,reaberto,temotextoanterioremdestaque.Pressionarateclabackspacepermitelimparerealizarnovaspesquisassemproblemas.Seaomenospudéssemosautomatizarisso...Bem,nóspodemoscomoaplicativochamadoxdotooleumpoucodemágicadescript.

Instalexdotoolviaapt-getinstallxdotoolesalveoseguintescript.SuatarefabásicaédeterminarseajanelaativaéDashounãoeautomatizarateclaBackSpaceparalimparDash.Issodeveserexecutadocomopythonscript_name.pyeseriniciadoquandoousuáriofizerloginadicionandoessescriptaStartupApplications.

#!/usr/bin/env python import dbus,time,subprocess,os def run_cmd(cmdlist): """ utility: reusable function for running external commands """ new_env = dict(os.environ) new_env['LC_ALL'] = 'C' try: stdout = subprocess.check_output(cmdlist, env=new_env) except subprocess.CalledProcessError: pass else: if stdout: return stdout def get_dbus(bus_type, obj, path, interface, method, arg): """ utility: executes dbus method on specific interface""" if bus_type == "session": bus = dbus.SessionBus() if bus_type == "system": bus = dbus.SystemBus() proxy = bus.get_object(obj, path) method = proxy.get_dbus_method(method, interface) try: if arg: return method(arg) else: return method() except dbus.exceptions.DBusException: return None def active_is_dash(): base = ['session','org.ayatana.bamf'] dbus_call = base + ['/org/ayatana/bamf/matcher', 'org.ayatana.bamf.matcher','ActiveWindow',None] active_window = str(get_dbus(*dbus_call)) dbus_call = base + [active_window,'org.ayatana.bamf.view','Name',None] active_name = str(get_dbus(*dbus_call)) if active_name == 'unity-dash': return True command = 'xdotool key BackSpace'.split() flag = None while True: time.sleep(0.25) if active_is_dash(): time.sleep(0.25) if not flag: run_cmd(command) flag = True else: flag = False     
por Sergiy Kolodyazhnyy 07.01.2017 / 14:41
0

Eu descobri que limpar meus dados de uso via

Configurações > Segurança & amp; Privacidade > Arquivos & amp; Aplicações

melhorou muito o desempenho e o comportamento do Dash. Isso não resolveu totalmente o problema que eu estava passando, mas reduziu o número de vezes que ocorreu. Por exemplo, na etapa 5., se eu digitar 'fire' e depois pausar por um segundo (permitindo que o Dash complete uma pesquisa) antes de digitar 'fox', o aplicativo será encontrado.

Também encontrei um relatório de erros aparentemente relacionado.

    
por Anthony Hepple 07.01.2017 / 14:06