Настройте Тире Единицы для упущения последней команды

Проблема

Когда я активирую Тире Единицы, он помнит последнее приложение, файл или папку, что я получил доступ к использованию Тире. Если предыдущий объект был папкой, и на этот раз я ищу приложение, Тире не удается найти применение.

Как воспроизвести

  1. запустите Тире путем нажимания 'супер' клавиши
  2. введите свое имя пользователя для нахождения домашней папки (другие имена папок сделают),
  3. нажмите 'Enter' для запуска Файлов
  4. запустите Тире снова
  5. введите 'Firefox' или любое другое приложение (без первого нажимающего 'Escape')

Обходное решение

Нажатие Escape сразу после запуска Тире, таким образом очищая предыдущий критерий поиска.

Вопрос

Я могу настроить Тире для упущения предыдущего критерия поиска, и кто-либо знает, является ли это ожидаемым поведением?

7
задан 5 January 2017 в 08:33

2 ответа

Простое решение состояло бы в том, чтобы просто щелкнуть правой кнопкой по самому тире и выбрать определенную категорию, которую Вы хотите искать - Тире будет очищен автоматически для этого.

enter image description here

я заметил, что вновь открытый Тире, выделили предыдущий текст. Удар клавиши Backspace допускает очистку и выполнение новые поиски без проблем. Если только мы могли бы автоматизировать выполнение этого... Ну, мы можем с приложением, названным xdotool и немного волшебства сценариев.

Установка xdotool через apt-get install xdotool и сохраняют следующий сценарий. Его основная задача состоит в том, чтобы определить, является ли активное окно Тире, и автоматизируйте совершающую нападки клавишу Backspace для очистки Тире. Это предназначено, чтобы работать как python script_name.py и быть запущенным, когда пользователь входит в систему путем добавления этого сценария для Запущения Приложений.

#!/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
3
ответ дан 23 November 2019 в 06:51

Я обнаружил что очистка моих данных использования через

Настройки> безопасность & Конфиденциальность> Файлы & Приложения

значительно улучшенный и производительность и поведение Тире. Это не полностью решило проблему, которую я испытывал, но это действительно уменьшало количество раз, это произошло. Например, на шаге 5., если я ввожу 'огонь' затем пауза в течение секунды (разрешение Тире завершить поиск) прежде, чем ввести 'лису', применение найдено.

я также нашел на вид связанный отчет об ошибках .

0
ответ дан 23 November 2019 в 06:51

Другие вопросы по тегам:

Похожие вопросы: