автозаполнение на уровне рабочего стола

Я часто набираю одни и те же слова в нескольких приложениях:

  • Editor (emacs, vi)
  • Webbrowser
  • Оболочки

Было бы здорово иметь автозаполнение слов, которые я набрал за последнюю неделю, во всех вышеперечисленных приложениях.

У каждого из них есть способ улучшить скорость набора текста. Но что-то на уровне рабочего стола будет лучшим.

Пример: «Непрерывная интеграция». Я хочу быстрый способ набрать это слово без изменения программы, которая получает ввод.

Уже есть что-то подобное?

11
задан 6 June 2016 в 14:17

3 ответа

Решением для вашего запроса является метод ввода.

То, что вы описали, знакомо большинству пользователей языка CJK. Давайте рассмотрим, как работает метод ввода в современных системах Linux.

Система методов ввода

Вот простая архитектура для системы общих методов ввода:

ПРИМЕЧАНИЕ. Я делаю снимок этого изображения из Протокол метода ввода X . Некоторые из стрелок не имеют отношения к последующему обсуждению.

Исторически XIM (протокол X Input Method) был единственным протоколом. Это слишком сложно и не хватает некоторых желаемых функций. Так что в основном он заброшен, хотя совместимость по-прежнему обеспечивается популярными инструментами, такими как GTK, Qt.

Современная система методов ввода состоит из нескольких частей:

  1. Поддержка библиотек на стороне клиента

    • обычно реализуется как модуль, загружаемый наборами инструментов (например, для GTK, см. /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/)
  2. Сервер метода ввода
  3. X-сервер

Как эти части сочетаются друг с другом?

Пользователь вводит ключ. X-сервер получает аппаратное событие от интерфейса evdev, создает XEvent и отправляет приложение под фокус клавиатуры. Модуль метода ввода инструментария приложения (GTK, Qt) перехватывает событие и передает информацию на сервер метода ввода. Сервер метода ввода вычисляет, что может пожелать пользователь, и передает некоторый текст обратно в модуль IM.

Теперь поговорим об архитектуре IM-сервера.
IM-сервер, как правило, состоит из двух частей:

  1. IM-структура, которая обрабатывает специфические для платформы сложности и обеспечивает хороший интерфейс для IM-модуля и IM-инструментария. Он предоставляет механизмы IPC, используемые модулем IM, сервером и механизмом.
  2. Различные механизмы обмена мгновенными сообщениями выполняют фактическую работу по преобразованию пользовательских клавиш в желаемый текст. Механизмы IM могут быть общими библиотеками, загруженными сервером IM или независимыми процессами, связывающимися с сервером IM.
  3. Программы настройки вспомогательного метода ввода обеспечивают дружественный пользовательский интерфейс для настройки поведения IM-сервера и механизма.

В общем, что IM делает, чтобы преобразовать то, что вы печатаете, во что-то другое и, необязательно, предоставляете прогнозы.

Пример

Мы используем ibus-pinyin здесь, чтобы напечатать некоторые китайские иероглифы.

Романизация 汉语拼音 - han yu pin yin. Сначала вам нужно набрать все эти буквы, чтобы получить четыре китайских иероглифа. Но через несколько раз вам просто нужно ввести четыре начальных символа h y p y, чтобы получить китайский символ.

В случае ibus-pinyin han yu pin yin сокращается до h y p y.
Более продвинутые механизмы обмена мгновенными сообщениями используют статистические методы обучения для обеспечения лучшего прогнозирования. Ничто не может помешать вам написать движок метода ввода на английском языке, чтобы повысить скорость набора текста.

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


Благодарю Андерса Ф. У. Кира. Особенности / Typing-Booster | Проект Fedora Wiki должен быть ответом

0
ответ дан 6 June 2016 в 14:17
  • 1
    I' ve попробовал все, что Вы сказали.. sudo ls /tmp/ecryptfs... только показывает Access-Your-Private-Data.desktop & README.txt я предполагаю, что единственный путь состоит в том, чтобы открыть .desktop файл... однако, когда я sudo nautilus в папку, нажимающую его ничего не делаю. – NuWin 3 July 2015 в 07:49

Взгляните на мой скрипт, TextSuggest .

В действии:

Imgur

Установка:

Установите следующие пакеты:

  • xdotool
  • xclip
  • suckless-tools (для dmenu)

Затем назначьте 2 сочетания клавиш:

  • один для `python3 /path/to/TextSuggest.py --noselect
  • другой для python3 /path/to/TextSuggest.py

Первый просто предоставить список для поиска всех слов. Используйте вторую, когда у вас выделен какой-то текст, и вы хотите получить предложения / дополнения к нему.

Принятые предложения сохраняются в виде истории (а затем сначала предлагаются) в файле ~/.textsuggest_history.txt.

Вы можете определить пользовательские слова и расширения / псевдонимы в ~/.Custom_Words.txt.

0
ответ дан 6 June 2016 в 14:17

Посмотрите на Autokey . Это может соответствовать вашим потребностям. C / P с их сайта:

AutoKey - это утилита автоматизации рабочего стола для Linux и X11. Он позволяет вам управлять коллекцией сценариев и фраз и назначать им аббревиатуры и горячие клавиши. Это позволяет вам выполнить скрипт или вставить текст по запросу в любую программу, которую вы используете.

0
ответ дан 6 June 2016 в 14:17
  • 1
    Результаты Вашего ecryptfs-recover-private команда являются странными, it' s, как будто всегда видимый " fake" домашнее содержание папки было зашифровано eCryptFS..., возможно, это было настроено странно. Но, возможно, there' s другие зашифрованные домашние папки, можно сказать ecryptfs-recover-private пытаться дешифровать определенную папку, возможно, it' s, не получая правильный. Я don' t знают, что еще попробовать..., возможно, Использование диска попытки Анализатор (баобаб) и видеть, где-то в другом месте ли фактическая домашняя папка (предполагающий от it' s размер)? – Xen2050 7 July 2015 в 10:45

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

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