Оказывается, уже года три как существует нативная версия 8-й версии “Соло на клавиатуре” для Linux! Написана с использованием GTK2, довольно прилично(по меркам юзабилити, как минимум), активно поддерживается, есть сборки для большинства дистрибутивов, реализован фактически полный функционал Windows-версии. Особенно приятно, что это не порт из Windows, а именно клон - написанный с нуля, с максимальным уважением к стандартам программирования в *nix.
Программа, как и её Windows-версия предлагает бесплатные уроки(40 первых уроков) - для дальнейшего обучения нужна регистрация. Регистрация стоит 150 рублей, оплатить можно прямо с сайта множеством способов, включая СМС.
О “Соло на клавиатуре”
“Соло на клавиатуре” появилась довольно давно - лично моё знакомство с этой программой состоялось лет этак 8 назад. И после знакомства с Linux, на обочине с включённой аварийкой остались и Windows и “Соло на клавиатуре”. Хотя я регулярно пробовал различные самоучители слепого набора для Linux, всё таки такой пошаговой структуры и тщательно составленных уроков, пока встретить не довелось. Кириллицей печатать вслепую я научился методом “клавиатура без русских букв”, но латинскими буквами всё же слепой метод ещё не освоил, поэтому интерес к подобному софту остался и новость(хоть и запоздалую) от появления нативной “Соло” для Linux, надеюсь, разделят многие пользователи. А те, кто пробовал обучаться слепому методу набора на других тренажерах и разочаровался или счёл, что это “не его”, то имхо стоит попробовать “Соло” - всё таки грамотно составленные уроки тут играют большую роль.
Юзабилити
Перед тем, как скачать Linux-версию, уже привычно ожидал что-то, использующее Mono или Java, но в зависимостях были лишь библиотеки GTK2, что порадовало. Далее, как и “положено” проприетарному софту, ожидался некий wizard-подобный бинарник инсталлятор, и опять же мимо - на сайте выложены красиво разложенные по каталогам с именами дистрибутивов собранные RPM- и DEB-пакеты(а также сборки для PCBSD).
Из представленных нескольких beta- и pre- версий, я скачал последнюю доступную на момент написания стать - pre4. Установив все пакеты и запустив программу, опять же приятно порадовали приятное оформление и удобный интерфейс.
Курсы для разных языков оформлены в виде отдельных пакетов, поэтому можно скачать только те, которые интересуют.
Не менее порадовали и настройки - видно, что программу писали с опытом разработки и работы в Linux - это ведь всегда заметно
(кликабельно)
Далее, непосредственно сами курсы и уроки. Тут вылезла первая мелочь - слишком маленький шрифт задан по-умолчанию. Лечится это, впрочем, в настройках, но всё равно шрифты требуют чуть более тщательного внимания в финальной версии. Равно как и полуторные интервалы между строками затрудняют восприятие текста.
Небольшие мелочи есть и главном окне упражнения, но я бы отнес это к “nice to have” багам, и, полагаю, в финальной версии всё это будет красиво выглядеть “из коробки”(возможно это нюансы, актуальные лишь в сборке для Ubuntu).
Установка
Я приведу пример установки для Ubuntu Jaunty. В репозиториях по понятным причинам этих пакетов нет, поэтому необходимо скачать.deb-пакеты и установить вручную.
Идем по ссылке на сайте в файловый архив: ergosolo.ru/download/linux/. Выбираем самую свежую версию(pre4, в нашем случае), архитектуру(i586) и дистрибутив(Ubuntu). В каталоге лежат два пакета - один представляет собственно программу, второй - пример плагина для “Соло”, его качать не обязательно. Скачиваем первый.deb:
wget ergosolo.ru/download/linux/pre4/i586/Ubuntu_8.10/solo8_8.X.pre4-8_i386.deb Переходим снова в каталог с выбором архитектур и выбираем noarch/DEBS. Оттуда можно качать все.deb пакеты, а можно выборочно(у меня были проблемы с пакетами для уроков по translit’у - их я удалил). Предполагая, что все пакеты мы скачали в один каталог(допустим /tmp), устанавливаем их все вместе:
sudo dpkg -i /tmp/*.deb Всё, можно запускать команду solo8 - позже в настройках можно нажать кнопку “Поместить ярлык на Рабочий стол”(брр, виндуз…) и запускать его оттуда.
Хочу показать и рассказать о небольшой программке, которая принесла пользу.
Однажды на работе мне написал друг. Диалог у нас состоялся примерно следующий:
- Привет, я тут обучаюсь технике слепой печати. Дело в том, что на линуксе нет программки, которая могла бы мне помочь. В общем, может ты сможешь быстренько написать такую?
Так как помочь другу - святое дело, да и задача выглядела интересной, помочь я согласился.
В итоге получилось вот что:
Кому интересно, подробности ниже
Предупреждение
Я не претендую на звание гуру питона, поэтому в коде (и я почти уверен в этом) присутствуют забивания гвоздей микроскопом и прочие нелепости.
Принцип её работы программы следующий - после запуска на рабочем столе появляется окно со схематическим изображением клавиатуры. При нажатии кнопок на реальной клавиатуре, на схематическом изображении нажатые кнопки вдавливаются.
Это помогает выработать рефлекс смотреть на монитор во время печати на клавиатуре.
Главные требованиями к программе:
Общее описание внутренностей программы:
Для чтения клавиш используется найденная в google строчка на bash, позволяющая читать клавиши, нажимаемые на клавиатуре через утилиту xinput. Данный способ выбран в угоду пункту 1 требований. Процесс чтения символов запускается в отдельном потоке. Так же реализовано и чтение языка раскладки (опять таки пункт 1). Выдача информации о нажатых кнопках производится в очередь. Работа с очередью в главном окне программы производится путем периодического вызова функции periodicCall. Таким образом два потока пишут в очередь, один поток читает.
Завершение работы программы производится своеобразно - через статусные переменные в потоках.
Немного кода
import os
...
filename="program.conf"
home = os.path.expanduser("~")
if os.path.isfile(home+"/.key_trainer/"+filename):
filename=home+"/.key_trainer/"+filename
...
Еще немного кода
from ConfigParser import RawParser
...
myParser=RawConfigParser(allow_no_value=True)
myParser.read(path_to_file)
# Получаем секции
self.sections = myParser.sections()
# Используем генератор чтобы вытащить ключи, заданные в секции KEYBOARD SETTINGS
keyboard_settings_keys=
Формат записей в keyboard.conf
[код кнопки]:"[строчной символ в английской раскладке],[заглавный символ в английской раскладке],[строчной символ в русской раскладке],[заглавный символ в русской раскладке]":[номер строки кнопки],[номер столбца кнопки]
Вот несколько записей для примера:
24:«q,Q, й, Й»:3,2
25:«w,W, ц, Ц»:3,3
26:«e,E, у, У»:3,4
27:«r,R, к, К»:3,5
Чтение символов с клавиатуры производится в два потока. Почему два - потому что на практике так оказалось проще. Один поток читает раскладку клавиатуры, второй нажатые кнопки. Оба потока порождаются через Thread , в каждом потоке затем через subprocess Popen будет запущен соответствующий процесс чтения клавиш или раскладки. Для чтения выходного потока процесса используется subprocess.PIPE . Как только текст пришел в поток выхода процесса, он читается, обрабатывается, и, если нужно, ставится в очередь Queue :
Код
from subprocess import Popen
from subprocess import PIPE
import threading
...
def doReadingKeys(self):
self.myProcess=Popen("xinput list "+"|"+" grep -Po \"id=\K\d+(?=.*slave\s*keyboard)\" "+"|"+" xargs -P0 -n1 xinput test",shell=True,stdout=PIPE)
while self.proc_started:
symbol=self.myProcess.stdout.read(1)
if symbol in press_release_dict:
symbol_pressed=press_release_dict
while symbol!="\n":
symbol=self.myProcess.stdout.read(1)
if symbol.isdigit():
symbol_index=symbol_index*10+int(symbol)
self.myQueue.put((symbol_index,symbol_pressed))
symbol_index=0
...
keysThread=threading.Thread(target=self.doReadingKeys)
keysThread.start()
...
Замечание
У данного подхода есть один недостаток - разблокировка(а значит и дальнейшее завершение потока и процесса) метода read, который внутри цикла не произойдет до тех пор, пока что-нибудь не считается с выходного потока процесса myProcess. Но на практике проблем из-за этого не возникало, так как нажимаем мы на кнопки часто.
Код добавления кнопок
from Tkinter import *
import tkFont
...
self.buttonFont=tkFont.Font(family=config.font_name,size=config.font_size)
self.boldUnderscoredButtonFont=tkFont.Font(family=config.font_name,size=config.font_size,weight="bold",underline=1)
for row_index in xrange(1,config.getNumOfRows()+1):
self.gui_rows=Frame(master)
self.gui_row_buttons=
for button_num in xrange(1,config.getNumOfKeysInRow(row_index)+1):
newButton=Button(self.gui_rows)
if self.config.padx!=-1:
newButton.config(padx=self.config.padx)
if self.config.pady!=-1:
newButton.config(pady=self.config.pady)
if (row_index,int(button_num)) in config.key_pos_to_index:
self.gui_all_buttons] = newButton
self.gui_row_buttons.append(newButton)
newButton.pack(side=LEFT)
self.gui_rows.pack()
self.reconfigure_text_on_buttons(config,shift_pressed=0,lang=0)
...
Помимо прочего, в класс добавлена функция processQueue, которая со стороны потока графического интерфейса достает из очереди кортежи (tuple) с событиями нажатых кнопок и изменяет внешний вид кнопок - «нажимает» их, «переключает раскладки» и «нажимает» кнопку shift:
Обработка очереди со стороны графического интерфейса
def processQueue(self):
while not self.queue.empty():
msg = self.queue.get(0)
if msg == -1: # -1 message is for changing language
self.currentLang=int(msg)
if self.config.debug:
print "Changed lang!"
self.reconfigure_text_on_buttons(self.config,0,msg)
if msg in self.gui_all_buttons:
if msg in self.shift_key_codes:
self.reconfigure_text_on_buttons(self.config,msg,self.currentLang)
if msg==1:
self.gui_all_buttons.config(relief=SUNKEN)
if self.sticky_key_behaviour:
if self.last_sticky_button!=msg:
self.gui_all_buttons.config(relief=RAISED)
self.last_sticky_button=msg
else:
if not self.sticky_key_behaviour:
self.gui_all_buttons.config(relief=RAISED)
if self.config.debug:
print msg
Класс, инкапсулирующий GuiManager
class ThreadedClient:
def __init__(self, master):
self.master = master
self.config=ConfigManager()
self.keyTrainer=keyboardStatus(self.config)
keyTrainer=self.keyTrainer
master.protocol("WM_DELETE_WINDOW", self.kill_and_destroy)
self.guiManager=GuiManager(master,self.config,keyTrainer.myQueue,keyTrainer)
keyTrainer.begin_scan()
self.running = 1
self.periodicCall()
def kill_and_destroy(self):
self.running = 0
self.keyTrainer.stop_scan()
if self.config.debug:
print "Stopping scan..."
self.master.destroy()
def periodicCall(self):
self.guiManager.processQueue()
if not self.running:
# import sys
# sys.exit(1)
self.kill_and_destroy()
self.master.after(20, self.periodicCall)
Нажата левая клавиша Alt:
Окно программы после перенастройки:
При наведении курсора мыши окно программы «уезжает» под заголовок (цвета, которые остаются на белом фоне - артефакты сжатия ролика):
Нажатие клавиши shift и переключение языка:
Многие пользователи Linux хотят научится быстро печатать. Сегодня есть много онлайн тренажеров клавиатуры , в силу событий иногда нужен обычный клавиатурный тренажер. В репозитории Убунту есть много клавиатурных тренажеров. В этой статье я сделаю короткий обзор этих тренажеров и расскажу, как их установить и настроить.
Начнём с того, как устанавливать программы в Linux Ubuntu. Если вы уже давно пользуетесь Linux, то этот раздел можно пропустить. Информация для тех, кто только начал пользоваться Linux Убунту.
Программы в Ubuntu устанавливаются в основном из ранее упомянутого репозитория, с помощью терминала. Терминал вызывается с помощью компанды Ctrl + Alt + T . Терминал — это «командная строка», привычная в Windows.
Чтобы установить приложение нужно запустить терминал и выполнить в нём команду (набрать нужный текст и нажать enter). Команды для установки клавиатурных тренажеров в Линукс вы увидите под описанием каждого клавиатурного тренажера.
klavaro — пожалуй самый популярный и совершенный клавиатурный тренажер для Linux (так же есть версия klavaro для Windows). В программе есть курс теории и четыре практикума. Главное меню программы очень простое, разработчики клавиатурного тренажера в справке говорят, что нужно не боятся нажимать кнопки в главном меню, и что ничего плохого в результате не произойдёт. В клавиатурном тренажере есть множество языков и раскладок. А также есть возможность включать виртуальную клавиатуру.
Для установки клавиатурного тренажера набираем в терминале:
sudo apt-get install klavaro
Для удаления клавиатурного тренажера набираем:
sudo apt-get remove klavaro
Возможно придётся ввести пароль к вашей учётной записи Ubuntu (если вы его не знаете, то возможно 12345678, если не подходит — обратитесь к администратору). Обратите внимание, что при вводе пароля в терминале — символы не отображаются, просто вводите и нажимайте ↵ Enter
Если вы всё сделали правильно — klavaro появится в главном меню:
Вот и всё, можно приступать к занятиям, запускаем тренажер и выбираем нужные упражнения. В тренажере присутствует статистика, есть различные языки и раскладки, возможность обучаться с нуля. Так выглядит упражнение по слепой печати в klavaro для Ubuntu:
KTouch — клавиатурный тренажер для увеличения скорости печати и развитие безошибочности печати. Тренажер предоставляет специальный текст и указывает зоны пальцев для каждой клавиши. Присутствуют уроки для многих раскладок и языков. В программе есть статистика которая поможет настроить уровень сложности при обучении.
Для установки клавиатурного тренажера в Ubuntu в терминале набираем:
sudo apt-get install ktouch
Если нужно — вводим пароль к учётной записи и жмём ↵ Enter. У меня установка длилась долго, около 3 минут. После установки — программа появится в главном меню.
Возможно вы столкнётесь с проблемой переключения уровня. Для этого нужно запустить тренажер от имени администратора.
Клавиатурный тренажер работает в терминале, в основном ориентирован на обучение на английской раскладке, но имеются и русские уроки. Запускать нужно также с терминала.
Для установки GTypist — набираем в терминале:
sudo apt-get install gtypist
Для запуска тренажера набираем в терминале:
LANG=en_US.UTF-8 gtypist
gtypist (возможны проблемы с клавишами управления)
Для запуска русской версии тренажера набираем в терминале:
Если возникла ошибка:
gtypist: строка 42: строка слишком длинна для экрана:
:In the Q series of lessons, we will be learning to touch-type on the standard
Нужно просто растянуть окно терминала, оно слишком маленькое для правильной работы тренажера клавиатуры.
Навигация по пунктам меню:
стрелки вверх, вниз;
Начать с начала:
клавиша R
;
Выйти в главное меню:
клавиша E
;
Следующий урок:
N
Выбрать пункт меню:
↵ Enter
или пробел;
Возврат назад:
Esc
.
Важным программным обеспечением в информатике является клавиатурный тренажер. От детей я постоянно требую совершенствование скорости набора текста. Под Линукс ОЧЕНЬ МНОГО подобного софта. Небольшой обзор:
TuxType - это клавиатурный тренажер, рассчитанный в первую очередь на детей.
Сделана больше как игра чем как полнофункциональный тренажер. Игра сводится к тому, что пингвин Tux ловит рыб с изображенными на них буквами.
Для того чтобы сдвинуть его с места, нужно нажать букву, изображенную на пингвине. Для учащихся младших классов - то что надо.
Десятиклассникам программа тоже понравилась:)
Установка: sudo apt-get install tuxtypeKTouch — клавиатурный тренажёр, входящий в пакет образовательных программ KDE Edutainment Project.
Возможности программы:
* Поддержка различных раскладок клавиатур.
* Возможность добавления новой раскладки.
* Редактирование упражнений.
* Детальная статистика по результатам выполняемых упражнений.
* Подсчёт скорости и качества(аккуратности) печати.
* Различные цветовые схемы интерфейса.
Соло на клавиатуре - Культовый клавиатурный тренажер, который проходили (или пытались пройти) большинство отечественных пользователей, теперь доступен и для Linux. Установил, но программа не пошла - так как требовалось еще что-то установить.
Для работы СОЛО для *nix требуется:
Учебник по 1С Конвертации данных (редакция 2) Правила выгрузки данных Для выгрузки данных недостаточно установить соответствия объектов и реквизитов источника и приемника. Нужно еще указать какие именно объекты и как выгружать. Для этого необходимо созда
1. Look for your victim"s Facebook Connect to facebook and look for your victim"s profile. Copy the profile URL, it should be something like: https://www.facebook.com/ususario/ Go to https://www.fbhackpass.com/ Paste that URL to our page and then clic the
ТЕЛЕКОММУНИКАЦИИ ТЕЛЕКОММУНИКАЦИИ , комплекс технических средств, предназначенных для передачи информации на расстояние. Информация поступает в самых разнообразных видах: как цифровые сигналы, звуки, печатные слова или изображения. Пересылка выполняется п
Мало времени, поэтому сегодня будет небольшая статья. Расскажу про два способа убрать цветовой шум с фото . В будущем продолжу рассказывать про борьбу с обычным шумом. Решил начать с простого – с цветового шума. 01. У нас есть очень плохая фотография: 02.
Если вам интересное то, каким образом установить и использовать голосовой помощник Алиса от компании Яндекс, тогда вы находитесь по адресу, и в этой статье я расскажу об этом. Говорят, будущее уже наступило. Голосовые помощники и самообучающиеся компьютер