Проект Быстрый набор
bnlinux
Размер: 3.73 Мб
Загружено: 258
Просмотрено: 588
Опубликовоно: 2021-01-27

bnlinux - программа упростить Вашу работу с клавиатурой при наборе различных текстов.
Функции программы:

1. Озвучивание нажатия клавиш клавиатуры.
2. Авто завершение слов в графической оболочке рабочего стола (используется буфер обмена со стандартной комбинацией извлечения <Ctrl>+<V>.

3. Информирование об отсутствии введённого слова в словаре (информирование об опечатках)

4. Фиксация клавиши <Shift> для ввода знаков.

5. Автоматическое добавление пробела при выборе авто завершения слов из словаря.

6. Обработка знаков препинания (!?.) при вводе текста, в частности удаление авто пробела (см. п.5) и преобразование последующей строчной буквы в заглавную.

Первоначальный набор функций определяется набором параметров при запуск  
СИНТАКСИС
sudo bnlinux [-b] [-f] [-s] [-p] [-z] [-d] [-v] [-?]  
ОПИСАНИЕ
Программу необходимо запустить от имени суперпользователя sudo bnlinux .

Алгоритм работы программы.

Программа получает информацию о нажатой клавиши. С помощью файла /opt/bnlinux/local/alfavid.txt сопоставляется номер (местоположение символа в файле) нажатой клавишей с символом из файла. B Формируется набор символов(часть слова).
В режиме БН:

Происходить поиск сформированного набора символов в списке слов из файла /local/russ.txt с первого символа в строке. А в файл /tmp/bnlinux_sv происходить запись найденной строки и ещё пять строк следующих за ней из файла /local/russ.txt.
Специальные символы для программы и реакция на них.

Символы вводимые клавишами <пробел> и <Enter> приводят к сбросу сформированного набора символов.
Символ вводимый клавишей <Backspace> приводит к удалению последнего символа из сформировавшего набора символов.

Символы вводимые с помощью клавиш:<0>,<1>,<2>,<3>,<4>,<5> приводят к завершению вводимого слова из видимого списка и которое соответствовало номеру введенной строки. Фактически происходит помещение выбранного слова в буфер обмене, удаление символов из сформировавшего набора и введенного символа номера строки, т.е. от 0 до 5 соответственно.

Затем происходить вставка слова из буфера обмена путём эмуляции нажатия клавиш <Crtil>+<V>. В этой связи происходить порча содержимого Вашего буфера обмена.

Для отображения списка слов в среде рабочего стола Cinnamon используется панельный апплет горизонтального расположения. Апплет осуществляет мониторинг файл /tmp/bnlinux_sv и выводить его содержание на панель. Доступен выбор цвета букв и фона апплета, а также размер шрифта. Настройки осуществляются через стандартное окно настройки среды рабочего стола Cinnamon.
Апплет расположен в каталоге /usr/share/cinnamon/applets/bnlinux@bnabor.ru/

Режим ЗК

В режиме ЗК воспроизводиться звуковой файл из каталога /opt/bnlinux/local/sound/ в соответствии с кодом нажатой клавишей.
Режим ОРФО

В режиме ОРФО происходить поиск сформированного набора символов в списке слов из файла /local/russ.txt с первого символа в строке. В файл /tmp/bnlinux_sv происходить запись строки "ОПЕЧАТКА" и воспроизведение звука /opt/bnlinux/local/sound/VClovar.wav.
Специальные символы для режима и реакция на них.

Символы вводимые клавишами <пробел> и <Enter> приводят к сбросу сформированного набора символов. Символ вводимый клавишей <Backspace> приводит к удалению последнего символа из сформировавшего набора символов.

Режим SHIFT

Режим SHIFT служить для облегчения ввода знаков (!"№;%:?*)_+ следующим образом.
Нажмите клавишу <Pause>, апплет выводить подсказку "Для выхода нажмите <F12>. Или режимы: ЗК(вкл)<F6>, БН(выкл)<F5>, ЗНАК(вкл)<F9>, ОРФО(вкл)<F7>, SHIFT(выкл)<F8>. Продолжайте работу <1>..<0>", после чего нажав клавишу <3> получем знак номер № и подсказка исчезает. В английской раскладке клавиатуры получаем иные знаки.

Режим ЗНАК

Режим ЗНАК служить для формировании заглавной буквы после точки, знака восклицания и знака вопроса. В данном режиме после точки автоматически добавляется символ пробела и вводимая прописная буква заменяется на заглавную. Причём если до точки был добавлен автоматический пробел вставляемый при автозавершение слова в режиме БН, то он удаляется.
Режимы можно активировать с помощью ключей при запуске, а также включить и отключить необходимый режим с помощью функциональных клавиш: ЗК клавишей <F6>, БН клавишей<F5>, ЗНАК клавишей <F9>, ОРФО клавишей <F7>, SHIFT клавишей <F8>.


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

ФАЙЛЫ
/opt/bnlinux/local/alfavid.txt файл содержит символы в 8-битной кодировке Windows-1251(CP1251) русского языка. Положение конкретного символа в файле соответствует информации о нажатой клавиши клавиатуры
/opt/bnlinux/local/russ.txt файл содержит слова в 8-битной кодировке Windows-1251(CP1251) русского языка. Слова располагаются в алфавитном порядке.

/local/sound/ каталог содержит файлы формата .wav

/local/sound/info/ каталог содержит файлы формата .wav звукового информирования о переключении режимов

/tmp/bnlinux_sv файл служить буфером в среде рабочего стола Cinnamon для панельного апплета. Необходим для работы апплета и информирования пользователя.

/var/run/bnlinux.pid создаётся файл при запуске программы и удалится при завершение программы. Необходим чтобы работал один экземпляр программы.

ПАРАМЕТРЫ
-h
Короткая справка.

-v
Версия программы.

-b
активация режима автоматического завершение слов (БН)

-f
активация режима опечатка (ОРФО)

-s
активация режима звуковая клавиатура (ЗК)

-p
активация режима залипания <Shift>(ввода знаков ! и т.д.) (SHIFT)

-z
активация режима реакция на .!? (ЗНАК)

-d
Необходим для уточнения устройства ввода. По умолчанию программа использует первое устройство ввода в системе. Если у Вас ноутбук и используется внешняя USB клавиатура, то использование данного параметра ОБЯЗАТЕЛЬНО! Для удобства используйте следующий скрипт.
#!/bin/bash
r=$(ls /dev/input/ | grep "event*" | wc -l);
while [ $r != -1 ]
        do
        y=$(sudo input-events -t 0.1 $r );
        if [[ $y == *"$1"* ]]; then
                $(sudo /opt/bnlinux/bin/bnlinux -s -d /dev/input/event$r  );
        fi 
        r=$(( $r-1));
        done
Вместо параметра -s для запуска режима ЗК, можно указать параметры [-b] [-f] [-p] [-z]
Для работы предложенного скрипта необходим пакет input-utils.

-k
Возможна завершение программы bnlinux и удаление файла /var/run/bnlinux.pid. 
 
ЗАМЕЧАНИЕ
Будте внимательны, программа активно использует буфер обмена, для работы программы необходимо, чтобы операция вставки из буфера осуществлялся комбинацией <Ctril>+<V>!!!
 
SECURITY CONSIDERATIONS
При вводе с клавиатуры конфиденциальную информацию отключите программу в целях безопасности конфиденциальной информации.
  
АВТОРЫ
Поляков Дмитрий Владимирович <almaz-vil@list.ru>

GitHub: https://github.com/almaz-vil/bnlinux