Про мышь — у меня был спидометр для мыши ещё в 98 винде, так что идея не нова. Название, правда, уже не вспомню, но умела она считать расстояние, среднюю/текущую скорость, количество кликов и ещё что-то в том же духе.
А в жизни, как и в науке, часто так случается — когда актуальная задача является рутинной, а вот что-то красивое и интересное может не иметь хорошего практического применения :)
Fn действительно сама по себе не генерирует сообщений, а Win генерирует только «key down» (как ни странно).
Возможный выход — попытаться в момент нажатия стрелки проверить, нажата ли Win через GetKeyboardState(). Нужно посмотреть, доступна ли эта функция в pywin32.
Amarao! Для более приличной ОС я бы не отказался услышать рецепт. Дело в том, что для линукса я просто сваял свою раскладку с Level3Shift'ом на CapsLock'е и стрелками на hjkl. Но при таком решении отпадает возможность использовать капс для переключения раскладки, а это удобно и привычно. Если вы с этим справились, здорово было бы узнать как.
Именно с этой задачей я не сталкивался, благо, thinkpad'овские клавиатуры имеют на борту все нужные кнопки. В своё время вешал нужные команды на кнопки с помощью acpi.
Нужные кнопки на месте. Просто удобнее не бегать правой рукой между курсором и буквами, а оставаться на месте.
ACPI… Не знаю. А оно до xkb работает, или после? Просто после xkb кнопка — либо модификатор, либо кнопка и никак не обе вместе. Оттуда и проблемы.
Для xserver давно уже существуют xbindkeys и xmodmap, с помощью них можно переназначить любые клавиши (из тех, которые сама система может видеть) на что угодно да еще и запуск нужных программ сделать. Статей полно.
Благодарю! Обязательно посмотрю их поподробнее. Это как минимум должно быть удобней, чем раскладку для xkb писать.
Хотя я пока всё же сомневаюсь, что оно сможет сделать то, что хотелось бы поиметь в идеале:
CapsLock + j = «вниз» (по нажатию j)
один CapsLock = переключение раскладок (по отпусканию)
Не уверен, что такое возможно сделать с помощью Xmodmap. Советую заглянуть на LOR Wiki ( www.linux.org.ru/wiki ), там может быть совет, как сделать подобное. Либо спросить на форуме того-же сайта.
>(приняв, например, 1 пиксель ~ 1 мм)
Не получится так. Перемещение курсора на экране зависит от скорости перемещения мышки. Абсолютное изменение координат устройства в Windows, скорее всего, можно получить, только напрямую работая с драйвером. Или даже только написав свой драйвер. Ну, мне так кажется.
Можно сделать раскладку, в которой с нажатым правым Alt (AltGr) некоторые клавиши становятся клавишами управления курсором. Тогда даже не нужно снимать правую руки со стартовой позиции печати ([a][s][d][f][ ][ ][j][k][l][;]), чтобы передвинуть курсор.
Собственно я так и работаю уже давно в Linux, не знаю правда, насколько это будет работать в Windows, скорее всего проблем не будет. Использую «Miniguru» схему: [i][j][k][l] — стрелки, [u][o] — Home/End, [p][;] — PgUp/PgDn, [m] — Delete, [,] — Insert. При желании можно сделать как в VIM — [h][j][k][l].
Я правил файлы нужных мне раскладок xkb в /usr/share/X11/xkb/symbols/
Видимо правильно будет создать отдельный файл и подключать его как-то, я не знаю как это реализовать.
Спасибо. Коммент писал ещё не проснувшись, извините, ссылку не заметил :)
Тогда этот как раз тот, который применил я, жаль.
Напишу уж тогда кстати, как свои файлы подключал, может пригодится:
файл /usr/share/X11/symbols/capsext
А это надо добавить в .xinitrc:
setxkbmap -compat «complete+ledscroll(group_lock)» -symbols «pc+capsext(us_capsext)+capsext(ru_capsext):2+inet(evdev)»
При помощи py2exe билдится приложение, которому для запуска питон не нужен. Делается это достаточно просто — на сайте (ссылка в статье) есть подробное описание.
Приложение собирал так, чтобы консоль сразу пряталась при запуске, и все это — в Run раздел реестра. При запуске системы оно запускается и тут же прячется — отключить (в крайнем случае) можно через процессы.
Симуляция нажатий Home, End, PgUp, PgDown