-

сайт небольшого сообщества специалистов в сфере IT;
здесь мы делимся экспертизой и наработками

Cinnamenu транслитерация русских символов

Cinnamenu - удобный applet (плагин) для cinnamon (оболочка для linux mint), который расширяет меню в панели задач. У linux mint есть неприятная особенность: настройка запоминать язык на приложение не работает для меню и при нажатии кнопки Win и вводе текста для поиска язык ввода выставляется от приложения, которое было в фокусе до открытия меню. Таким образом, если это был русский язык, а в поиске ищем firefox, то на быструю руку получится "ашрефоч" вместо "firefox" и соответственно ничего не будет найдено.

Решить это можно маленьким патчем, который русские символы транслитерирует в их английские аналоги на клавиатуре. Весь патч проще показать вот таким скриншотом из IDE:

Сам код:

let pattern = Util.latinise(pattern_raw.toUpperCase());
const keys = {
    'Й': "Q", 'Ц': "W", 'У': "E", 'К': "R", 'Е': "T", 'Н': "Y", 'Г': "U", 'Ш': "I", 'Щ': "O",
    'З': "P", 'Ф': "A", 'Ы': "S", 'В': "D", 'А': "F", 'П': "G", 'Р': "H", 'О': "J", 'Л': "K",
    'Д': "L", 'Я': "Z", 'Ч': "X", 'С': "C", 'М': "V", 'И': "B", 'Т': "N", 'Ь': "M",
}
pattern = pattern.split('').map(c => c in keys ? keys[c] : c).join('');

И путь к файлу: ~/.local/share/cinnamon/applets/Cinnamenu@json/4.0/applet.js