Программа-помощник для освоения слепой печати на клавиатуре в Linux
Хочу показать и рассказать о небольшой программке, которая принесла пользу.
Однажды на работе мне написал друг. Диалог у нас состоялся примерно следующий:
— Привет, я тут обучаюсь технике слепой печати. Дело в том, что на линуксе нет программки, которая могла бы мне помочь. В общем, может ты сможешь быстренько написать такую?
Так как помочь другу — святое дело, да и задача выглядела интересной, помочь я согласился.
В итоге получилось вот что:
Кому интересно, подробности ниже
Вместе с другом сделали постановку задачи:
Принцип её работы программы следующий — после запуска на рабочем столе появляется окно со схематическим изображением клавиатуры. При нажатии кнопок на реальной клавиатуре, на схематическом изображении нажатые кнопки вдавливаются.
Это помогает выработать рефлекс смотреть на монитор во время печати на клавиатуре.
Общее описание внутренностей программы:
Для чтения клавиш используется найденная в google строчка на bash, позволяющая читать клавиши, нажимаемые на клавиатуре через утилиту xinput. Данный способ выбран в угоду пункту 1 требований. Процесс чтения символов запускается в отдельном потоке. Так же реализовано и чтение языка раскладки (опять таки пункт 1). Выдача информации о нажатых кнопках производится в очередь. Работа с очередью в главном окне программы производится путем периодического вызова функции periodicCall. Таким образом два потока пишут в очередь, один поток читает.
Завершение работы программы производится своеобразно — через статусные переменные в потоках.
Работа с настройками программы
/.key_trainer/program.conf». Если его нет, программа читает файл program.conf, расположенный в текущей папке с программой.
ConfigParser — замечательный модуль. Можно считать названия всех секций, а также считать ключи с их значениями внутри секций как кортежи (tuple). Так, например, реализовано считывание названий секций, и ключей в секции «KEYBOARD SETTINGS».
В файле содержатся записи в виде:
[код кнопки]:»[строчной символ в английской раскладке],[заглавный символ в английской раскладке],[строчной символ в русской раскладке],[заглавный символ в русской раскладке]»:[номер строки кнопки],[номер столбца кнопки]
Вот несколько записей для примера:
Чтение символов с клавиатуры
Для чтения символов написан класс KeyboardStatus, который принимает входным параметром класс конфигурации (см. выше). Внутрь этого класса инкапсулирована потокобезопасная очередь Queue.
Чтение символов с клавиатуры производится в два потока. Почему два — потому что на практике так оказалось проще. Один поток читает раскладку клавиатуры, второй нажатые кнопки. Оба потока порождаются через Thread, в каждом потоке затем через subprocess Popen будет запущен соответствующий процесс чтения клавиш или раскладки. Для чтения выходного потока процесса используется subprocess.PIPE. Как только текст пришел в поток выхода процесса, он читается, обрабатывается, и, если нужно, ставится в очередь Queue:
Чтобы завершить поток используется переменная класса proc_started. При закрытии главного окна программы она устанавливается в значение False, производится выход из цикла чтения, выполняется завершения процесса чтения клавиш через terminate, а затем wait — для того чтобы дождаться пока процесс завершился.
Графический интерфейс
Для того чтобы быстро сделать графический интерфейс использовался Tkinter. Данный модуль позволяет легко работать с простыми графическими интерфейсами (окна, кнопки, галочки и т.п.). Класс окна GuiManager на вход, помимо других параметров, принимает класс конфигурации. Из неё берутся настройки кнопок, затем эти кнопки создаются и добавляются на главное окно программы.
При добавлении кнопок на форму попутно создаются словари с ключами номера строки и значениями — объектом Frame в каждый из которых помещаются кнопки. Как видно из кода, кнопки формируются построчно, по завершении формирования строки виджет кладется в окно методом pack().
Помимо прочего, в класс добавлена функция processQueue, которая со стороны потока графического интерфейса достает из очереди кортежи (tuple) с событиями нажатых кнопок и изменяет внешний вид кнопок — «нажимает» их, «переключает раскладки» и «нажимает» кнопку shift:
Класс GuiManager инкапсулирован внутрь класса ThreadedClient, который принимает на вход главный поток Tkinter и выставляет вызов функции разбора очереди каждые 20 миллисекунд:
Несколько картинок
Общий вид окна программы:
Нажата левая клавиша Alt:
Окно программы после перенастройки:
При наведении курсора мыши окно программы «уезжает» под заголовок (цвета, которые остаются на белом фоне — артефакты сжатия ролика):
Нажатие клавиши shift и переключение языка:
Заключение
Запуск программы выполняется скриптом Start.sh из директории с программой.
Спасибо за внимание!
P.S. Поступил вопрос: сколько времени заняло написание программы? Времени было потрачено в общей сумме часов 6-8, после первых трех было активное тестирование и допиливались всякие детали.
UPD: убрал try/except из обработки очереди со стороны GUI
Лучшие тренажеры слепой печати в Linux
Набор текста на компьютере или ноутбуке — не сложная задача, и каждый выполняет ее довольно легко. Но лишь немногие из них обладают навыками слепого набора текста, т.е. Быстрого набора текста, не глядя на клавиатуру. Скорость приобрела огромное значение в этом технически подкованном мире.
Если вы участвуете в работе, требующей такого количества набора текста, вы должны уметь печатать быстро и без мелких ошибок, единственный способ добиться этого — непрерывная практика. Для этого в мире было представлено различное программное обеспечение для обучения набору текста; В настоящее время у нас есть несколько веб-сайтов, которые предоставляют вам интерфейс, где вы можете улучшить свои навыки набора текста.
Итак, в этой статье сегодня мы кратко рассмотрим некоторые из лучших приложений для наставников по набору текста и веб-приложений, которые вы можете использовать в Linux и его различных дистрибутивах, таких как Ubuntu.
1. Klavoro
Klavoro — это бесплатный и очень простой в использовании преподаватель набора текста, доступный в Windows, Linux и их дистрибутивах. Это простой, но мощный и надежный репетитор по набору текста, который поможет вам добиться хорошей скорости набора текста без ошибок.
У него чистый и простой пользовательский интерфейс, который очень легко понять даже для начинающих пользователей. Говоря о функциях, он предлагает базовый курс набора текста с голосовыми инструкциями; он также делает упор на точность и скорость. Чтобы улучшить ваши навыки, он предлагает дополнительные уроки набора текста.
Как установить Klavaro Typing Tutor в Linux
$ sudo apt-get update
$ sudo apt-get install klavaro
2. KTouch
KTouch — это программное обеспечение для наставников, разработанное и внедренное в рамках образовательного проекта KDE. Это отличное программное обеспечение для улучшения ваших навыков набора текста. Это идеальное приложение для преподавателя набора текста как для детей, так и для взрослых.
Это кроссплатформенное программное обеспечение для набора текста, которое легко работает в Linux и его дистрибутивах, таких как Ubuntu. Говоря о функциях, он предлагает поддержку нескольких языков, уделяя особое внимание скорости и точности набора текста, а также повышая уровень уроков набора текста с каждым пройденным уроком, чтобы улучшить ваши навыки набора текста.
3. Tux Typing
Tux Typing — это бесплатное программное обеспечение для набора текста с открытым исходным кодом, специально разработанное для детей. Он улучшает навыки набора текста у детей с помощью игровых программ, основанных на задачах. Геймплеи имеют множество уровней сложности, и это приложение предназначено для увлекательного обучения.
Как установить Tux Typing Tutor в Linux
4. Typing.com
Typing.com — это бесплатное онлайн-программное обеспечение, позволяющее научиться печатать. А также улучшить навыки набора текста и скорость с точностью. Это один из лучших преподавателей набора текста; Он предлагает одноминутные, трехминутные и пятиминутные тесты набора текста.
Говоря о функциях, он предлагает клавиатуру, цифровую грамотность и кодирование. Кроме того, он предлагает увлекательную учебную программу, игровое обучение и многоязычный контент.
5. Typing.io
Typing.io — это специальный инструмент для набора текста, специально разработанный для программистов, которые практикуют кодирование. Он помогает быстро и точно набирать неудобные символы, используемые при кодировании.
Вы можете попрактиковаться в типизации кода с открытым исходным кодом на JavaScript, Ruby, C, C ++, Java, PHP, Perl, Haskell, Scala и многих других языках программирования.
6. TIPP10
TIPP10 — это программа для обучения 10-пальцевому набору текста с открытым исходным кодом для таких платформ, как Windows и Linux. Вы можете использовать этот репетитор двумя способами: либо установив его на свой рабочий стол, либо напрямую перейдя на его веб-сайт через веб-браузер.
Он имеет чистый и простой в использовании интерфейс, интеллектуальный выбор текста, тикер, виртуальную клавиатуру помощника, подробные результаты и настраиваемые функции.
7. Keybr
Keybr — одно из самых надежных веб-приложений для улучшения ваших навыков набора текста и повышения точности. Интерфейс современный, с использованием новейших веб-технологий, которые обеспечивают удобство работы пользователей.
Что касается функций, в нем есть такие предложения, как скорость и точность расчета, поддержка нескольких раскладок клавиатуры и разных языков, советы по набору текста и сложные упражнения.
Итак, это лучшие приложения и веб-сайты для преподавателей набора текста для Linux и его дистрибутивов.
Клавиатурные тренажеры для Linux (Ubuntu)
Многие пользователи Linux хотят научится быстро печатать. Сегодня есть много онлайн тренажеров клавиатуры, в силу событий иногда нужен обычный клавиатурный тренажер. В репозитории Убунту есть много клавиатурных тренажеров. В этой статье я сделаю короткий обзор этих тренажеров и расскажу, как их установить и настроить.
Начнём с того, как устанавливать программы в Linux Ubuntu. Если вы уже давно пользуетесь Linux, то этот раздел можно пропустить. Информация для тех, кто только начал пользоваться Linux Убунту.
Чтобы установить приложение нужно запустить терминал и выполнить в нём команду (набрать нужный текст и нажать enter). Команды для установки клавиатурных тренажеров в Линукс вы увидите под описанием каждого клавиатурного тренажера.
Klavaro
Klavaro — пожалуй самый популярный и совершенный клавиатурный тренажер для Linux (так же есть версия klavaro для Windows). В программе есть курс теории и четыре практикума. Главное меню программы очень простое, разработчики клавиатурного тренажера в справке говорят, что нужно не боятся нажимать кнопки в главном меню, и что ничего плохого в результате не произойдёт. В клавиатурном тренажере есть множество языков и раскладок. А также есть возможность включать виртуальную клавиатуру.
Для установки клавиатурного тренажера набираем в терминале:
Для удаления клавиатурного тренажера набираем:
Возможно придётся ввести пароль к вашей учётной записи Ubuntu (если вы его не знаете, то возможно 12345678, если не подходит — обратитесь к администратору).
Обратите внимание, что при вводе пароля в терминале — символы не отображаются, просто вводите и нажимайте ↵ Enter
Если вы всё сделали правильно — klavaro появится в главном меню:
Вот и всё, можно приступать к занятиям, запускаем тренажер и выбираем нужные упражнения. В тренажере присутствует статистика, есть различные языки и раскладки, возможность обучаться с нуля. Так выглядит упражнение по слепой печати в klavaro для Ubuntu:
Клавиатурный тренажер Ktouch
KTouch — клавиатурный тренажер для увеличения скорости печати и развитие безошибочности печати. Тренажер предоставляет специальный текст и указывает зоны пальцев для каждой клавиши. Присутствуют уроки для многих раскладок и языков. В программе есть статистика которая поможет настроить уровень сложности при обучении.
Для установки клавиатурного тренажера в Ubuntu в терминале набираем:
Если нужно — вводим пароль к учётной записи и жмём ↵ Enter. У меня установка длилась долго, около 3 минут. После установки — программа появится в главном меню.
Возможно вы столкнётесь с проблемой переключения уровня. Для этого нужно запустить тренажер от имени администратора.
Клавиатурный тренажер Gnu Typist или GTypist
Клавиатурный тренажер работает в терминале, в основном ориентирован на обучение на английской раскладке, но имеются и русские уроки. Запускать нужно также с терминала.
Для установки GTypist — набираем в терминале:
Для запуска тренажера набираем в терминале:
gtypist (возможны проблемы с клавишами управления)
Для запуска русской версии тренажера набираем в терминале:
Если возникла ошибка:
gtypist: строка 42: строка слишком длинна для экрана:
:In the Q series of lessons, we will be learning to touch-type on the standard
Нужно просто растянуть окно терминала, оно слишком маленькое для правильной работы тренажера клавиатуры.
Управление клавиатурным тренажером:
Клавиатурные тренажеры для linux
Попросили меня найти для Linux клавиатурный тренажер. Просмотрел кучу различных. Большинство из них ужасны или заброшены.
Из них выделил две программы — это Gnu Typist и Klavaro, о которых пойдет речь в данной статье.
1. Gnu Typist или GTypist.
Это консольный клавиатурный тренажер есть в Центре приложений Ubuntu.
Чтобы установить, откройте терминал и выполните команду: sudo apt-get install gtypist Так как это консольное приложение, то запускать его нужно в терминале, просто наберите: gtypist
Если будет выведено такое сообщение: gtypist: строка 42: строка слишком длинна для экрана:
:In the Q series of lessons, we will be learning to touch-type on the standard
Это значит, что терминальное окно слишком маленькое, просто «растяните его».
Итак, сейчас объясню как запускать уроки для русской и английской раскладки.
Английская раскладка.
Если запустить программу, как я писал выше, в Ubuntu, то у вас будут уроки для английской раскладки.
Но вот, чтобы перейти на другой урок, вам придется переключать раскладку на русскую, чтобы работали клавиши управления.
Итак, нам нужно запустить это консольное приложение в терминале с английской локалью, для этого нужно выполнить следующую команду: LANG=en_US.UTF-8 gtypist
Вот и всё.
Клавиши управления простые.
Стрелками выбираем серию уроков. Используем Enter для прощелкивания текста.
Когда начался урок, можно нажать 2 раза ESC, и
чтобы начать с начала: клавиша «R»,
чтобы выйти в главное меню: клавиша «E»
чтобы перейти на следующий урок: «N»
В принципе внизу есть подсказки клавиш. Программа шикарная и простая именно для тренировки печати на английской раскладки.
Русская раскладка.
Туториалы для печати на русском — скудны, но имеются.
Чтобы их запустить, введите в терминале следующую команду:
gtypist ru.typ
Повторюсь, что это лучший тренажер для Linux именно для тренировки печати на английской раскладке.
2. Klavaro
Klavaro — клавиатурный тренажёр для Linux (GTK+). Имеет поддержку нескольких языков. Схож с VerseQ по функциональности.
Хорош как для тренировки печати на русском и английском.
Для новичков, которые только начинают печатать — Начальный курс:
В курсе «Скорость» используются реальные слова. Так как, слова эти вам знакомы, набираются они быстрее. Поэтому, в этом курсе главное — скорость набора:
В повседневной жизни в текстах встречаются «сложные словосочетания», которые мы медленнее набираем. Благодаря тому что символы в ходе упражнения генерируются случайным образом, в этом аспекте у вас не должно быть проблем после курса «Адаптивность»:
Установка Klavaro в Ubuntu
Заключение.
Большинству пользователей подойдет программа Klavaro, удобная и хорошая функциональность. Но Gtypist тоже довольно таки хороший и удобный клавиатурный тренажер.
Клавиатурные тренажеры для linux
Попросили меня найти для Linux клавиатурный тренажер. Просмотрел кучу различных. Большинство из них ужасны или заброшены.
Из них выделил две программы — это Gnu Typist и Klavaro, о которых пойдет речь в данной статье.
1. Gnu Typist или GTypist.
Это консольный клавиатурный тренажер есть в Центре приложений Ubuntu.
Чтобы установить, откройте терминал и выполните команду: sudo apt-get install gtypist Так как это консольное приложение, то запускать его нужно в терминале, просто наберите: gtypist
Если будет выведено такое сообщение: gtypist: строка 42: строка слишком длинна для экрана:
:In the Q series of lessons, we will be learning to touch-type on the standard
Это значит, что терминальное окно слишком маленькое, просто «растяните его».
Итак, сейчас объясню как запускать уроки для русской и английской раскладки.
Английская раскладка.
Если запустить программу, как я писал выше, в Ubuntu, то у вас будут уроки для английской раскладки.
Но вот, чтобы перейти на другой урок, вам придется переключать раскладку на русскую, чтобы работали клавиши управления.
Итак, нам нужно запустить это консольное приложение в терминале с английской локалью, для этого нужно выполнить следующую команду: LANG=en_US.UTF-8 gtypist
Вот и всё.
Клавиши управления простые.
Стрелками выбираем серию уроков. Используем Enter для прощелкивания текста.
Когда начался урок, можно нажать 2 раза ESC, и
чтобы начать с начала: клавиша «R»,
чтобы выйти в главное меню: клавиша «E»
чтобы перейти на следующий урок: «N»
В принципе внизу есть подсказки клавиш. Программа шикарная и простая именно для тренировки печати на английской раскладки.
Русская раскладка.
Туториалы для печати на русском — скудны, но имеются.
Чтобы их запустить, введите в терминале следующую команду:
gtypist ru.typ
Повторюсь, что это лучший тренажер для Linux именно для тренировки печати на английской раскладке.
2. Klavaro
Klavaro — клавиатурный тренажёр для Linux (GTK+). Имеет поддержку нескольких языков. Схож с VerseQ по функциональности.
Хорош как для тренировки печати на русском и английском.
Для новичков, которые только начинают печатать — Начальный курс:
В курсе «Скорость» используются реальные слова. Так как, слова эти вам знакомы, набираются они быстрее. Поэтому, в этом курсе главное — скорость набора:
В повседневной жизни в текстах встречаются «сложные словосочетания», которые мы медленнее набираем. Благодаря тому что символы в ходе упражнения генерируются случайным образом, в этом аспекте у вас не должно быть проблем после курса «Адаптивность»:
Установка Klavaro в Ubuntu
Заключение.
Большинству пользователей подойдет программа Klavaro, удобная и хорошая функциональность. Но Gtypist тоже довольно таки хороший и удобный клавиатурный тренажер.