Идея возникла из
этой темы, и заключается в том, чтобы при наборе имени в неправильной раскладке (cybvjr 'rhfyf) поиск выдавал бы результат (снимок экрана).
Демо-картинка:
Поиск по теме дал результаты:
1) у Dash нет конфигов, поэтому сделать как в vim (set langmap...) не получится;
2) в последних версиях Unity поиск в Dash так же работает и по параметру Keywords в .desktop- файлах.
3) русские названия программ, по которым происходит поиск в dash хранятся в бинарных .mo файлах;
4) бинарные .mo файлы компилируются из текстовых .po-файлов, которые создают переводчики;
5) текстовые .po файлы доступны всем желающим в исходниках в репозиториях, которые можно скачать командой:
apt-get source <имя_пакета>
Моё видение решения вопроса:
Можно написать скрипт, который будет:
1) просматривать все .desktop -файлы на компе;
2) для пакетов из репозитория (для которых есть исходники):
2.1) качать для каждого пакета исходники, извлекать из файла
<имя_пакета>/po/ru.po
локализованные имена пакетов;
Тут будет большой траффик, но достаточно сделать один раз, а потом только искать для новых пакетов, все равно новые пакеты там появляются крайне редко.
2.2) складывать их в файле по принципу:
<имя_пакета> слово;слово2;слово3;словоN
<имя_пакета2> слово;слово2;слово3;словоN
3) для сторонних пакетов:
3.1) искать в .desktop файле указанное локализованное имя;
3.2) спрашивать у пользователя дополнительные ключевые слова;
3.3)складывать их в файле по принципу:
<имя_пакета> слово;слово2;слово3;словоN
<имя_пакета2> слово;слово2;слово3;словоN
4) производить запись ключевых слов в соответствующие .desktop-файлы в строку Keywords в неправильно набранной раскладке (ytghfdbkmyj yf,hfyyjq hfcrkflrt)
5) радовать пользователя!
Режимы работы скрипта:
<имя_скрипта> write- записать ключевые слова из файла.
<имя_скрипта> download-скачать и прочитать исходники для всех актуальных программ;
<имя_скрипта> update- найти и прочитать исходники для новых пакетов, если исходников нет то указать ключевые слова вручную.
<имя_скрипта> manage <имя пакета>- вручную указать ключевые слова для пакета <имя_пакета>
Режим работы демона (это не знаю как реализовать):
отслеживать появление новых .desktop файлов и запускать для него
<имя_скрипта> update (просмотреть исходники или указать вручную)
Скрипт будет "поставляться" вместе со стандартным файлом ключевых слов, так что для рядового пользователя необходимо будет только сделать
<имя_скрипта> write
, что бы получить поиск по стандартным программам в неправильной раскладке.
Так как мой уровень в bash не очень хорош. То от сообщества жду комментариев по алгоритму и поправки моего быдлокода, которого я будут тут выкладывать.
Рабочий скрипт не готов!