Konfigurieren Sie Unity Dash so, dass der letzte Befehl vergessen wird

7

Das Problem

Wenn ich den Unity Dash aktiviere, werden die letzten Anwendungen, Dateien oder Ordner gespeichert, auf die ich mit dem Dash zugegriffen habe. Wenn das vorherige Element ein Ordner war und ich diesmal nach einer Anwendung suche, kann der Dash die Anwendung nicht finden.

Wie zu reproduzieren

  1. Starten Sie den Dash, indem Sie die 'Super'-Taste drücken
  2. Geben Sie Ihren Benutzernamen ein, um Ihren Home-Ordner zu finden (andere Ordnernamen reichen aus).
  3. Drücken Sie die Eingabetaste, um Dateien zu starten
  4. Starten Sie den Dash erneut
  5. Geben Sie 'Firefox' oder eine andere Anwendung ein (ohne vorher 'Escape' zu drücken).

Die Problemumgehung

Drücken Sie sofort nach dem Starten des Dash die Esc-Taste, um den vorherigen Suchbegriff zu löschen.

Die Frage

Kann ich Dash so konfigurieren, dass der vorherige Suchbegriff vergessen wird, und weiß jemand, ob dies das erwartete Verhalten ist?

Anthony Hepple
quelle
Interessant. Ich bin nie darauf gestoßen. Eine andere Problemumgehung wäre das Drücken von Super + A.
pLumo
Es ist nicht zu erwarten, meine macht das nicht.
George Udosen
Danke @RoVo. Wenn es eine Tastaturkombination für "Alle suchen" gäbe, könnte ich Super neu zuordnen.
Anthony Hepple
Hallo George. Ich habe Unity Version 7.4.0 unter Ubuntu 16.04. Darf ich fragen, welche Versionen Sie haben?
Anthony Hepple
Ubuntu 16.04.1 LTS & Unity 7.4.0das selbe wie deins.
George Udosen

Antworten:

3

Eine einfache Lösung wäre, einfach mit der rechten Maustaste auf den Bindestrich selbst zu klicken und die spezifische Kategorie auszuwählen, nach der Sie suchen möchten. Der Bindestrich wird dafür automatisch gelöscht.

Geben Sie hier die Bildbeschreibung ein

Ich habe festgestellt, dass der neu geöffnete Dash den vorherigen Text hervorgehoben hat. Durch Drücken der Rücktaste können Sie neue Suchvorgänge ohne Probleme löschen und ausführen. Wenn wir das nur automatisieren könnten. . . Nun, wir können mit Anwendung aufgerufen xdotoolund ein bisschen Scripting Magie.

Installieren Sie xdotoolüber apt-get install xdotoolund speichern Sie das folgende Skript. Die Hauptaufgabe besteht darin, festzustellen, ob das aktive Fenster Dash ist oder nicht, und das Drücken der BackSpace-Taste zu automatisieren, um Dash zu löschen. Dies soll ausgeführt werden python script_name.pyund gestartet werden, wenn sich der Benutzer anmeldet, indem dieses Skript zu Startanwendungen hinzugefügt wird.

#!/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
Sergiy Kolodyazhnyy
quelle
Vielen Dank für die Vorschläge und den Aufwand. Während Ihr Skript die Arbeit erledigen würde, halte ich es für eine ziemlich hartnäckige Lösung. Wenn ich mit der rechten Maustaste klicke, würde das Greifen nach der Maus mich weniger produktiv machen, aber ich bin sicher, dass es für andere gut sein wird.
Anthony Hepple
Gern geschehen, und leider kann ich keine bessere Lösung anbieten. Ich weiß, dass es eine großartige Funktion wäre, wenn Dash automatisch bereinigt würde, aber meines Wissens sind solche Optionen nicht verfügbar, zumindest nicht in der aktuellen Unity-Version. Vielleicht wird es in Zukunft kommen
Sergiy Kolodyazhnyy
0

Ich habe festgestellt, dass das Löschen meiner Nutzungsdaten über

Einstellungen> Sicherheit & Datenschutz> Dateien & Anwendungen

Die Leistung und das Verhalten des Dash wurden erheblich verbessert. Es löste das Problem, das ich hatte, nicht vollständig, aber es reduzierte die Häufigkeit, mit der es auftrat. Wenn ich beispielsweise in Schritt 5 'fire' eingebe und dann eine Sekunde pausiere (damit der Dash eine Suche abschließen kann), bevor ich 'fox' eingebe, wird die Anwendung gefunden.

Ich habe auch einen scheinbar verwandten Fehlerbericht gefunden .

Anthony Hepple
quelle