HelpPopup/ru

Введение
Некоторое время назад, после того как плотно перешел на Awesome на ноутбуке, все чаще стал ловить себя на мысли, что не помню те или иные клавиши для нужной мне программы. Когда помнишь основные, это еще куда не шло, но в том же vim их более 100, что согласитесь, запомнить почти нереально.

Поэтому подумав, решил, что не помешала бы какая нибудь помощь по горячим клавишам приложений. И вот результат перед вами. Данный модуль позволяет набрав комбинацию клавиш вызывать подсказку именно для открытой сейчас программы, не важно консольная она или графическая.

Правда есть ограничение, если в консоли одна из программ остановлена (Ctrl+Z), то скрипт иногда сбивается, решить пока не удалось ((.

Но в то же время удалось добиться того, что если например в mc открыть файл на редактирование в vim или nano и есть соответствующий файл подсказок, то он будет отображен именно он. Файл с подсказкой должен существовать. Выглядит это примерно следующим образом:

Установка
Модуль работает в 3.4 и 3.5

Клонируйте репозиторий: git clone https://github.com/FaiverBES/Awesome-help.git ~/.config/awesome/help

Затем в вашем rc.lua добавьте в начале файла: require ("help/help")

Если используемый вами терминал отличается от Xterm, UXTerm, Rxvt, URxvt, Konsole, то добавьте его класс в список терминалов в файле help.lua в переменную termClass. Для получения класса терминала выполните команду: xprop | grep CLASS Класс это второе значение в кавычках.

После этого модуль сможет искать какая именно программа запущена в терминале, и если для нее существует файл подсказки, выводить ее.

Поменяйте переменную lang в файле help.lua на 'ru', чтобы данные брались из соответствующего каталога.

Для того чтобы можно было скрывать уведомление добавьте в rc.lua следующий код: local help_nofify = nil function notifyHide(mynotification)   --функция удаляет уведомление по переданному идентификатору if mynotification ~= nil then naughty.destroy(mynotification) return nil else return true end end

Теперь осталось только добавить вызов модуля. Для этого в вашем rc.lua в секцию clientkey добавьте следующий код: awful.key({ modkey,}, "z", function (c)                              if notifyHide(help_notify) then                                help_notify = help.getClientName(c)                              else                                help_notify = nil                               end                              end) , awful.key({ modkey, "Shift"}, "z", function                                     if notifyHide(help_notify) then                                       help_notify = help.displayHelp("Awesome")                                     else                                       help_notify = nil                                     end                                    end) Теперь при нажатии клавиш Mod4+z будет производиться определение приложения, и отображение подсказки для него(если существует). А при нажатии Mod4+Shift+z будет выводится подсказка для Awesome. При повторном нажатии этих же клавиш уведомление будет скрыто, или можете щелкнуть по нему мышкой.

Также можно на панель добавить виджет, который будет автоматически сканировать папку (в зависимости от выбранного языка) с файлами подсказок и выводить его в виде меню: helpLauncher = awful.widget.launcher({ image=beautiful.help_icon, --не забудьте добавить путь до иконки в theme.lua                                     menu = help.helpMenuGenerate }) А затем в секцию ваших виджетов добавьте helpLauncher.

Файлы подсказок
Файлы с подсказками находятся в каталоге data и имеют то же название что и приложение. Если файл не найден, то будет выведено сообщение об этом, и вы сможете его создать(обращайте внимание на написание, название регистрозависимо).

Синтаксис очень простой: == - название разделов '' - выделяемые позиции После названий разделов следуют клавиши и их описания через тире ( - ). Обратите внимание, чтобы в клавишах не использовалось тире. Также следует избегать символов : < > & - эти символы используются в разметке и поэтому их использование может привести к ошибкам, заменяйте их комбинациями клавиш, например Shift+7.

Старайтесь также избегать использования русских символов в левой части (где клавиши), так как они имеют размер 2Байта, и происходит некорректный центровка.

Все приведенные файлы помощи, являются демонстрационными, редактируйте их по своему усмотрению.

Планы

 * Сделать подсказки на весь экран (пока не удалось добиться хорошего результата, из за того, что сбивается разметка).
 * Добавить возможность установки максимальной ширины колонки
 * Вынести настройки цветов и шрифтов отдельно

Обратная связь
Если у вас что то не работает, не стесняйтесь [mailto:evg.bichan@yandex.ru пишите мне] с темой "Awesome module help". Также буду рад, если пришлете ваши файлы подсказок, для наполнения базы. ))