The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от opennews (??) on 14-Сен-11, 22:45 
Выпущен (http://webhamster.ru/site/page/index/articles/projectcode/180) стабильный релиз низкоуровневого локального переключателя клавиатуры LoLo Switcher v.0.20 для X11. LoLo Switcher работает как процесс на низком системном уровне, и получает данные от клавиатуры напрямую из устройства ввода. Обнаружив нужную последовательность кодов, LLS вызывает функции X11, отвечающие за переключение раскладки.


Особенности программы:

-  Функционирует в любых окружениях рабочего стола (KDE3, KDE4, GNOME2, LXDE);
-  Поддерживает любые модели клавиатур и джойстиков;
-  Работает напрямую с устройством ввода;
-  Предельная компактность, скорость работы, близкая к нулю нагрузка на систему;
-  Прозрачная работа параллельно с другими переключателями клавиатуры;
-  Феноменально гибкие возможности настройки;
-  Встроенные средства диагностики устройства ввода.


Фильтрация и отслеживание событий клавиатуры настраивается с помощью регулярных выражений. Благодаря этому, переключатель можн...

URL: http://webhamster.ru/site/page/index/articles/projectcode/180
Новость: https://www.opennet.ru/opennews/art.shtml?num=31755

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


2. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Zenitur (ok) on 14-Сен-11, 22:47 
Спасибо вам. А вы умеете так, что набирается слово не в той раскладке, сочетание клавиш - и уже набранное слово переводится! И ещё, вам донейты нужны?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +2 +/
Сообщение от umbr (ok) on 14-Сен-11, 22:54 
Донейты никому не помешают, особенно тем, кто выкладвает свои проекты под GPL/BSD лицензиями.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

7. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 14-Сен-11, 23:31 
xneur/gxneur
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

37. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от rshadow (ok) on 15-Сен-11, 11:32 
> xneur/gxneur

С половиной софта не работает. Плюс глюки с переводом текста. Но это не вина автора, просто зоопарк большой GNOME, KDE, Mozilla, Java... каждый со своими окнами по своему работают, на Х забили все давно...

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

137. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Frank email(ok) on 20-Сен-11, 08:28 
punto switcher работает с одним DM, но тоже глючит.
Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

24. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от СуперАноним on 15-Сен-11, 07:58 
>набирается слово не в той раскладке, сочетание клавиш - и уже набранное слово переводится!

А теперь представьте, мы в гуевом терминале, например, запустили SSH сессию... И тут такая подлянка с этим переводом.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

50. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +2 +/
Сообщение от redwolf (ok) on 15-Сен-11, 13:22 
"При работе в автоматическом режиме, xneur автоматически определяет раскладку вводимого текста и изменяет язык за вас. В этом режиме предусмотрена возможность задания приложений исключений, в которых автоматический режим будет заменён на ручной.

При работе в ручном режиме xneur не отслеживает набор, но позволяет автоматически изменять раскладку последнего набранного слова (кнопка Pause/Break), последней набранной строки (сочетание клавиш Ctrl + Break), выделенного текста (сочетание клавиш Shift + Break) и другие полезные функции."

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

4. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 14-Сен-11, 22:54 
Этот демон от рута запущен?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от umbr (ok) on 14-Сен-11, 23:00 
нет, от юзера
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от Аноним (??) on 14-Сен-11, 23:48 
Ага, с суидным битом.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

9. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от umbr (ok) on 14-Сен-11, 23:56 
Зачем ему суидный бит?
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

12. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от AHAHAC (ok) on 15-Сен-11, 01:30 
> напрямую из устройства ввода.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

10. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от Аноним (??) on 15-Сен-11, 00:12 
Я правильно понял - это такой костыль, чтобы можно было переключать раскладку, допустим, через Alt+Shift и при этом юзать хоткеи Alt+Shif+some_key (штатными возможностями иксов так не сделать)?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Etch on 15-Сен-11, 03:17 
присоединяюсь к вопросу
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

20. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Etch on 15-Сен-11, 07:24 
Наконец-то под линухом появилась нормальная переключалка раскладки.

Кому надо переключать по Ctrl+Shift - вот нужная строка конфига:
Sequence0=(?<!1;|2;)(((1,29,1;1,42,1;|1,42,1;1,29,1;)(1,29,0;1,42,0;|1,42,0;1,29,0;))|((1,54,1;1,97,1;|1,97,1;1,54,1;)(1,54,0;1,97,0;|1,97,0;1,54,0;)))$
и не забудьте поставить SwitchMethod=0

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

23. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от Аноним (??) on 15-Сен-11, 07:51 
Судя по формату конфигов, сабж написан на перле
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

64. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonimous on 15-Сен-11, 15:41 
судя по сорцам C++ :)
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

65. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от anonymous (??) on 15-Сен-11, 15:51 
> судя по сорцам C++ :)

от цпп там только расширение и пара ключевых слов, остальное написано фиг знает на чём. %-)

Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

135. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от AHAHAC (ok) on 20-Сен-11, 05:28 
libpcre - переводицца как lib - понятно, pcre - Perl Compatible Regular Expressions
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

82. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Alatar (ok) on 15-Сен-11, 21:48 
>>> Sequence0=(?<!1;|2;)(((1,29,1;1,42,1;|1,42,1;1,29,1;)(1,29,0;1,42,0;|1,42,0;1,29,0;))|((1,54,1;1,97,1;|1,97,1;1,54,1;)(1,54,0;1,97,0;|1,97,0;1,54,0;)))$

Эээ.. а, это... Ммм... А можно ЭТО перевести на русский, а?

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

84. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 15-Сен-11, 23:09 
Статья "Конфигурирование LoLo Switcher. Полное руководство."

http://webhamster.ru/site/page/index/articles/projectcode/181

Там про это написано. Тот кто минимально знаком с регулярками, поймет.

Ответить | Правка | ^ к родителю #82 | Наверх | Cообщить модератору

94. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от anonymous (??) on 16-Сен-11, 12:59 
> Эээ.. а, это... Ммм... А можно ЭТО перевести на русский, а?

это Интуитивно Понятно и Очень Просто.

Ответить | Правка | ^ к родителю #82 | Наверх | Cообщить модератору

109. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от анони on 17-Сен-11, 21:34 
Всё проще. Это Опенсорс. Здесь мужики суровые, и не такое видали.
Ответить | Правка | ^ к родителю #94 | Наверх | Cообщить модератору

15. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 15-Сен-11, 04:54 
> Я правильно понял - это такой костыль, чтобы можно было переключать раскладку,
> допустим, через Alt+Shift и при этом юзать хоткеи Alt+Shif+some_key (штатными возможностями
> иксов так не сделать)?

да.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

19. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от sabitov (ok) on 15-Сен-11, 07:18 
Ммм, на всех клавах, которые я видел, всегда есть одна абсолютно ненужная кнопка, расположенная между левым шифтом и табом. Соответственно, grp:caps_toggle и никаких коллизий не будет никогда.

Т.е. я не против проекта, но, честное слово, его ценность от меня ускользает.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

44. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от gegMOPO4 (ok) on 15-Сен-11, 12:43 
Кнопка одна, а раскладок больше одной.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

57. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от sashkan (ok) on 15-Сен-11, 15:19 
> Кнопка одна, а раскладок больше одной.

есть ещё модификиторы·
как минимум: shift, ctrl, alt (включая их комбинации, а при желании — ещё и различая правые и левые клавиши)·
учитывая, что по умолчанию в x-сервере лишь четыре группы, этих клавиш более чем достаточно·

Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

87. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Викрам on 16-Сен-11, 10:41 
kkbswitch - по капсу переключаемся между двумя последними, и для каждой раскладки своя горячая клавиша, например, альт+1, альт+2, альт+3 etc. очень удобно
Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

47. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Sas (ok) on 15-Сен-11, 13:11 
ага, мега удобно!
а капс если уж так нужен врубать по капс_шифт и отключать по шифту
единственный минус такого решения - очень трудно потом за другими компами:)
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

88. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от Ainari on 16-Сен-11, 10:45 
Есть такое. Кто-нибудь знает как настроить переключение раскладок по Caps Lock в Windows?
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

89. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Викрам on 16-Сен-11, 10:57 
> Есть такое. Кто-нибудь знает как настроить переключение раскладок по Caps Lock в
> Windows?

гугл знает, я когда-то настраивал под виндой, но уже не помню название программки

Ответить | Правка | ^ к родителю #88 | Наверх | Cообщить модератору

92. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от Sas (ok) on 16-Сен-11, 12:53 
как всегда через Ж
http://haali.su/winutils/
с икспей работала, а с новыми версиями я не проверял
Ответить | Правка | ^ к родителю #88 | Наверх | Cообщить модератору

93. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от anonymous (??) on 16-Сен-11, 12:59 
> в Windows?

уходи.

Ответить | Правка | ^ к родителю #88 | Наверх | Cообщить модератору

121. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Kirill.Zabarniuk on 18-Сен-11, 15:46 
с Autohotkey можно так сделать
http://www.autohotkey.com/
Ответить | Правка | ^ к родителю #88 | Наверх | Cообщить модератору

38. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Михаил (??) on 15-Сен-11, 11:43 
В natty например включен патч на xorg от Ильи Муравьева и там можно alt+shift+somekey хоткеи и alt+shift перключалку клавиатуры.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

51. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 15-Сен-11, 13:34 
Что такое natty?
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

53. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Михаил (??) on 15-Сен-11, 14:15 
Ubuntu 11.04 Natty Narwhal.
Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

54. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 15-Сен-11, 14:30 
>В natty например включен патч на xorg от Ильи Муравьева

Кстати, а почему этот патч не принят в мейнстрим Xorg?

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

86. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Михаил (??) on 16-Сен-11, 08:49 
Потомучто они там угорели по своим стандартам и хрен чего поменяют до наступления xkb2 (т.е. никогда)
Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

55. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Smb. on 15-Сен-11, 14:34 
Ага, зато нажатие Win key жестко перехватывает Unity
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

58. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 15-Сен-11, 15:20 
> Ага, зато нажатие Win key жестко перехватывает Unity

ССЗБ.

Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

99. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 16-Сен-11, 15:23 
Иэх, налетай, подешевело! с этой х@$новиной в блендере заработали Ctrl+Shift+<key>. Чо раньше не придумали >_< !
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

167. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от Аноним (??) on 21-Сен-11, 06:56 
> Иэх, налетай, подешевело! с этой х@$новиной в блендере заработали Ctrl+Shift+<key>. Чо
> раньше не придумали >_< !

В убунтах оно и так работало, лол :)))

Ответить | Правка | ^ к родителю #99 | Наверх | Cообщить модератору

11. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +2 +/
Сообщение от registered email on 15-Сен-11, 00:22 
Желаю искренне проекту удачи и успехов в развитии.
Сам переключаю раскладку правым Win, но заметил что не всегда так получается пользоваться, например на нетбуках, где этой клавиши нет, или на КПК(планшетнике).
setxkbmap -layout 'us,ru(winkeys)',ua -option grp:rwin_toggle
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

81. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от Ано онА on 15-Сен-11, 21:25 
+100500
Самая ненужная клавиша на клавиатуре пригодилась и мне. Жаль, что производители ноутов тоже её сочли ненужной.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

112. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 18-Сен-11, 03:30 
> тоже её сочли ненужной.

А как же капслок? Это и ненужная клавиша и ненужная лампочка. Отлично подходит для раскладки!

Ответить | Правка | ^ к родителю #81 | Наверх | Cообщить модератору

14. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 15-Сен-11, 04:53 
мда. программа хорошая, но код… автор, ну хотя бы man strcpy, а? и если уж c++ — чем не понравились std::string и прочие приятные ништяки?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

45. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от xintrea email(ok) on 15-Сен-11, 12:45 
> программа хорошая, но код… автор, ну хотя бы man strcpy

Это психологическая проблема. Я часто путаю strcpy() и strcmp(), могу подумать об одном а написать другое. Поэтому, чтоб не допускать ошибок, пишу sprintf().

> и если уж c++ — чем не понравились std::string и прочие приятные ништяки?

Когда в c++ исчезнет std::wstring и останется один std::string, поддерживающий любые символы в любой кодировке, вот тогда std::string понравится. Мне, например, нравится QString и я его использую в Qt. После него std::string - это какой-то огрызок, а не класс строки.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

48. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от gegMOPO4 (ok) on 15-Сен-11, 13:14 
Когда в char будет влезать «символ в любой кодировке».
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

68. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 15-Сен-11, 15:57 
> одном а написать другое. Поэтому, чтоб не допускать ошибок, пишу sprintf().

ага. sprintf(dest, src). подсказать, какой кайф будет, если в src встретятся символы форматирования?

> Когда в c++ исчезнет std::wstring и останется один std::string, поддерживающий любые символы
> в любой кодировке, вот тогда std::string понравится.

вообще-то, std::string ничем не хуже сишного char, который используется сейчас. кроме того, что нет проблемы с размером буфера и есть куча ништяковых методов. если ты уже решил на c++ писать -- то пользуйся тем, что там дают, зачем городить свои велосипеды, у которых, к тому же, колёса восьмёрками?

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

16. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от abzu on 15-Сен-11, 06:33 
Чем отличается от XNeur?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 15-Сен-11, 06:44 
> Чем отличается от XNeur?

по ссылкам ходить немодно, да?

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Anonymous789 on 15-Сен-11, 07:07 
Вот бы разработчики xNeur и LoLo скооперировались и сделали нормальный аналог Punto. А то xNeur работает адекватно далеко не во всех приложениях.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +2 +/
Сообщение от pavlinux (ok) on 15-Сен-11, 07:25 
Main.cpp: В функции «bool checkEventFilter(char*)»:
Main.cpp:437:110: предупреждение: passing NULL to non-pointer argument 6 of «int pcre_exec(const pcre*, const pcre_extra*, const char*, int, int, int, int*, int)» [-Wconversion-null]

Main.cpp: В функции «void executeCommand(int)»:
Main.cpp:585:75: предупреждение: приведение к типу указателя от целого другого размера [-Wint-to-pointer-cast]

Main.cpp: В функции «void* threadFunc(void*)»:
Main.cpp:597:34: ошибка: cast from «void*» to «int» loses precision [-fpermissive]
gmake[2]: *** [CMakeFiles/loloswitcher.dir/Main.cpp.o] Ошибка 1

---

Мне вот интересно, нах...я народ скупает новое железо, что б туда впиндюрить 32-битную ОСь

---

Ах да, у меня клава и мышь PS/2, как жить?  Драйвер input не вапаян в ядро.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

26. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от pavlinux (ok) on 15-Сен-11, 08:32 
> Ах да, у меня клава и мышь PS/2, как жить?  Драйвер
> input не вапаян в ядро.

И ещё, в последних дистрибах xorg.conf нет, и CoreKeyboard не используется.
И при зпгрузке X_ов у меня 5 штук /dev/input/inputX.
Более того вынимая клаву, и втыкая другую она может стать как /dev/input/input6,
а может и 7.
Ах да, а ещё я использую по две или три клавы, на одной китайская и японская раскладки,
на второй хидни и монголская, на третьей русcкая и англайская. Как жить-то? :)    
Владельцы Тыкпадов ваще в панике...  


Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

32. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 15-Сен-11, 10:18 
> Ах да, а ещё я использую по две или три клавы, на одной китайская и японская раскладки,

на второй хидни и монголская, на третьей русcкая и англайская. Как жить-то? :)    

Это ты так эффективно троллишь или на самом деле так?

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

43. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от zazik (ok) on 15-Сен-11, 12:42 
>> Ах да, а ещё я использую по две или три клавы, на одной китайская и японская раскладки,
> на второй хидни и монголская, на третьей русcкая и англайская. Как жить-то?
> :)
> Это ты так эффективно троллишь или на самом деле так?

А почему нет, если надо общаться с этой братией? Отдельная клава с раскладкой удобнее запоминания на какой клавише какой символ.

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

98. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 16-Сен-11, 15:21 
надо добавлять поддержку udev
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

60. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –2 +/
Сообщение от anonymous (??) on 15-Сен-11, 15:23 
> Мне вот интересно, нах…я народ скупает новое железо, что б туда впиндюрить
> 32-битную ОСь

может, потому, что ваши хвалёные 64 бита всё равно надо обвешивать костылями, чтобы пускать 32-битные софтины? так нафига мне вот такой вот геморой с 64-мя битами, которые нафиг не нужны дома ни для чего, кроме кидания понтов?

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

168. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 21-Сен-11, 06:59 
> может, потому, что ваши хвалёные 64 бита всё равно надо обвешивать костылями,
> чтобы пускать 32-битные софтины?

Выбросить нахрен такие софтины, которые требуют костылей. Обычно это кривая и проблемная проприетарщина, писаная жопорукими обезьянами, настолько похабно и непортабельно что легче застрелиться чем собрать под 64 бита. Остальные в состоянии собрать софт под 64 бита без проблем, что и наблюдается. Внезапно, все дебиановские 20000+ пакетов - влегкую есть под 64 бита.

Ответить | Правка | ^ к родителю #60 | Наверх | Cообщить модератору

176. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 21-Сен-11, 14:03 
> Выбросить нахрен такие софтины, которые требуют костылей.

я так понимаю, ты согласен бесплатно их все переписать? приезжай, координаты дам. прикуём к пулемёту и будешь вкалывать. исходники тоже дадим. а вот денег, еды и прочего — не дадим.

ты, видимо, не знаешь, что такое «большая контора» и «legacy code». где-то я тебе даже завидую.

ах, да, забыл добавить: далеко не весь софт на си, и далеко не весь под линукс. раз уж ты будешь легаси чинить, то и такой починишь, чо.

зыж а я лично вообще don't give a shit to x64. некоторый мой софт, правда, под x64 собирается, но это я нечаянно, я работаю над устранением таких недостатков.

Ответить | Правка | ^ к родителю #168 | Наверх | Cообщить модератору

177. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 21-Сен-11, 14:06 
кстати, интересно: сколько из этого софта так же безпроблемно соберётся на 128-битной архитектуре?

хинт, хинт: не так много, как ты себе фантазируешь. потому что в куче софта стоят ифдефные костыли вида «32? приседай! 64? прыгай!» а на 128 костыля нет. это — не «переносимый софт», это «обкостыленый софт».

если сделать эмуль такой архитектуры и собрать под него юзерлэнд… нет, я даже издалека это видеть не желаю.

Ответить | Правка | ^ к родителю #168 | Наверх | Cообщить модератору

178. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 21-Сен-11, 14:06 
вот блин. спросонок в грамотности глюканул…
Ответить | Правка | ^ к родителю #177 | Наверх | Cообщить модератору

193. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Dejavu_Dmitry on 08-Окт-11, 01:08 
> Main.cpp: В функции «void* threadFunc(void*)»:
> Main.cpp:597:34: ошибка: cast from «void*» to «int» loses precision
> [-fpermissive]
> gmake[2]: *** [CMakeFiles/loloswitcher.dir/Main.cpp.o] Ошибка 1
> ---
> Мне вот интересно, нах...я народ скупает новое железо, что б туда впиндюрить
> 32-битную ОСь
> ---
> Ах да, у меня клава и мышь PS/2, как жить?  Драйвер
> input не вапаян в ядро.

Понравилась идея автора. Скачал, попытался скомпилировать. Наткнулся на такую же проблему, те же ошибки.

>/home/dejavu/downloads/loloswitcher_0_20/Main.cpp: In function ‘bool >checkEventFilter(char*)’:
>/home/dejavu/downloads/loloswitcher_0_20/Main.cpp:453:105: warning: passing NULL to >non-pointer argument 6 of ‘int pcre_exec(const pcre*, const pcre_extra*, const char*, >int, int, int, int*, int)’ [-Wconversion-null]
>/home/dejavu/downloads/loloswitcher_0_20/Main.cpp: In function ‘void >executeCommand(int)’:
>/home/dejavu/downloads/loloswitcher_0_20/Main.cpp:614:71: warning: cast to pointer from >integer of different size [-Wint-to-pointer-cast]
>/home/dejavu/downloads/loloswitcher_0_20/Main.cpp: In function ‘void* threadFunc(void*)’:
>
>/home/dejavu/downloads/loloswitcher_0_20/Main.cpp:628:31: error: cast from ‘void*’ to >‘int’ loses precision [-fpermissive]
>make[2]: *** [CMakeFiles/loloswitcher.dir/Main.cpp.o] Ошибка 1
>make[1]: *** [CMakeFiles/loloswitcher.dir/all] Ошибка 2
>make: *** [all] Ошибка 2

Я использую 64-битную систему и соответственной битности компилятор.
Открыл исходники, посмотрел. Заметил, что автор оставил кое-какие строки закомментированными. Имея невообразимо малый опыт программирования и такой же величины знание английского (сообщения компилятора выдавались на английском) попытался исправить код так, чтобы наконец использовать во благо это воплощение хорошей авторской идеи.
Понемногу убивал предупреждения. Убил ошибку. Запустил бинарник. Работает, но после переключения на нужную раскладку вылетало с ошибкой сегментирования.
В итоге, чтобы избавиться от всех предупреждениях и ошибок, и чтобы работало без вылетов мне пришлось сделать следующие манипуляции с сырком.

1. Строку 453 файла Main.cpp ИЗМЕНИТЬ следующим образом:
Было:
/*453*/        count=pcre_exec( (pcre *)config.getEventFilterCompile(), NULL, text, strlen(text), 0, NULL, ovector, 30);

Стало:
/*453*/        count=pcre_exec( (pcre *)config.getEventFilterCompile(), NULL, text, strlen(text), 0, 0, ovector, 30);

2. Строку 614 файла Main.cpp ЗАкомментировать, а в свою очередь РАСкомментировать предыдущую строку - 613. В итоге стало так:
/*613*/        int result = pthread_create(&thread, NULL, threadFunc, &keyboardLayerNum);
/*614*/        //int result = pthread_create(&thread, &threadAttr, threadFunc, (void*)keyboardLayerNum);

3. Строку 628 файла Main.cpp ЗАкомментировать, а в свою очередь РАСкомментировать предыдущую строку - 627. В итоге стало так:
/*627*/        int keyboardLayerNum = * (int *) arg;
/*628*/        //int keyboardLayerNum = (int) arg;

4. Строку 82 файла EventQueue.cpp ИЗМЕНИТЬ следующим образом:
Было:
/*82*/        count=pcre_exec( (pcre *)regexpCompile, NULL, queueSequence, strlen(queueSequence), 0, NULL, ovector, 30);

Стало:
/*82*/        count=pcre_exec( (pcre *)regexpCompile, NULL, queueSequence, strlen(queueSequence), 0, 0, ovector, 30);


Сохранил изменения в файлах исходников. Выполняю команду 'make' и наблюдаю вывод:
[ 20%] Building CXX object CMakeFiles/loloswitcher.dir/Main.cpp.o
[ 40%] Building CXX object CMakeFiles/loloswitcher.dir/KeyLayout.cpp.o
[ 60%] Building CXX object CMakeFiles/loloswitcher.dir/Config.cpp.o
[ 80%] Building CXX object CMakeFiles/loloswitcher.dir/ParseHelper.cpp.o
[100%] Building CXX object CMakeFiles/loloswitcher.dir/EventQueue.cpp.o
Linking CXX executable loloswitcher
[100%] Built target loloswitcher

Бинарник готов. Запускается, пока не вылетает. После установки продвинутой пищалки для встроенного в компьютер динамика 'beep' я даже услышал (при переключении раскладки) невообразимо точной частоты и длительности писки встроенных динамиков моего скромного ThinkPad`a...
Автору большое спасибо. Желаю удачи и улучшения/исправления кода.
А всем страждущим посмотреть этот ролик и не ныть по каждому поводу.
Try this --> http://www.youtube.com/watch?v=TzWc7VBmTPI

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

194. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от pavlinux (ok) on 08-Окт-11, 03:50 
> В итоге, чтобы избавиться от всех предупреждениях и ошибок, и чтобы работало
> без вылетов мне пришлось сделать следующие манипуляции с сырком.

Баян, велосипед,... и всё такое ... :)

https://www.opennet.ru/openforum/vsluhforumID3/80302.html#105

Ответить | Правка | ^ к родителю #193 | Наверх | Cообщить модератору

195. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 08-Окт-11, 20:22 
>[оверквотинг удален]
>>/home/dejavu/downloads/loloswitcher_0_20/Main.cpp:453:105: warning: passing NULL to >non-pointer argument 6 of ‘int pcre_exec(const pcre*, const pcre_extra*, const char*, >int, int, int, int*, int)’ [-Wconversion-null]
>>/home/dejavu/downloads/loloswitcher_0_20/Main.cpp: In function ‘void >executeCommand(int)’:
>>/home/dejavu/downloads/loloswitcher_0_20/Main.cpp:614:71: warning: cast to pointer from >integer of different size [-Wint-to-pointer-cast]
>>/home/dejavu/downloads/loloswitcher_0_20/Main.cpp: In function ‘void* threadFunc(void*)’:
>>
>>/home/dejavu/downloads/loloswitcher_0_20/Main.cpp:628:31: error: cast from ‘void*’ to >‘int’ loses precision [-fpermissive]
>>make[2]: *** [CMakeFiles/loloswitcher.dir/Main.cpp.o] Ошибка 1
>>make[1]: *** [CMakeFiles/loloswitcher.dir/all] Ошибка 2
>>make: *** [all] Ошибка 2
> Я использую 64-битную систему и соответственной битности компилятор.

Вот тут написали как исправить:

https://www.opennet.ru/openforum/vsluhforumID3/80302.html#105

Кратко - строку с минусиком заменяем на строку с плюсиком.

Скоро исправлю и выложу на официальный сайт.

Ответить | Правка | ^ к родителю #193 | Наверх | Cообщить модератору

196. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 09-Окт-11, 21:17 
Сделано.

Забирай релиз для x86_64 с официальной странички: http://webhamster.ru/site/page/index/articles/projectcode/180

Новость: http://webhamster.ru/site/page/index/main/news/191

Ответить | Правка | ^ к родителю #193 | Наверх | Cообщить модератору

22. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Dmitriy.trt email(ok) on 15-Сен-11, 07:34 
Как же давно мечтал об этой штуке! Автору СПАСИБО!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним email(??) on 15-Сен-11, 08:28 
А в консоли работает или иксы нужны?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от pavlinux (ok) on 15-Сен-11, 08:32 
> А в консоли работает или иксы нужны?

pcre - X_ы

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

28. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 15-Сен-11, 09:10 
Вот Вы же всё знаете... Подскажите, пжлст, существует ли такой индикатор раскладки для Гнома, который бы мог показывать текущую раскладку поверх окна приложения, развёрнутого на весь экран? Допустим, набираю я текст в geany. Экранчик у моего бука маленький. Я нажимаю F11 и перестаю видеть гномовский индикатор раскладки. Теперь я вижу больше текста, что хорошо, но не вижу раскладки, что очень неудобно. Решаемо?
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

31. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 15-Сен-11, 10:17 
можно на ЛЕДы клавиатуры вывести индикатор, вместо ScrLk, NumLock и т.д.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

35. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 15-Сен-11, 10:26 
> можно на ЛЕДы клавиатуры вывести индикатор, вместо ScrLk, NumLock и т.д.

Когда у меня была клавиатура со всеми тремя LED'ами, так и делал: назначал индикатором ScrLock. Сейчас у меня его нет. А с двумя другими не получилось, глюки какие-то наблюдались. Хотело бы всё-таки что-то типа плавающего окошка поверх всех остальных окон.

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

36. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 15-Сен-11, 11:01 
> Когда у меня была клавиатура со всеми тремя LED'ами, так и делал:
> назначал индикатором ScrLock. Сейчас у меня его нет. А с двумя
> другими не получилось, глюки какие-то наблюдались. Хотело бы всё-таки что-то типа
> плавающего окошка поверх всех остальных окон.

Вспомнил, какие глюки были. Когда назначал NumLock в качестве индикатора раскладки, то когда переходил в русскую раскладку и при этом загорался NumLock, то и функция NumLock включалась. Т.е. клавиши mjkl;uiop7890 становились цифровыми (0123-456*789/ соответственно). CapsLock назначать не пробовал, поскольку оно бывает нужно по прямому назначению.

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

40. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –4 +/
Сообщение от anonymous (??) on 15-Сен-11, 11:59 
> CapsLock назначать не пробовал, поскольку оно бывает нужно по прямому
> назначению.

давно так не смеялся :)


Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

77. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от sabitov (ok) on 15-Сен-11, 20:08 
Нет, ну тут Вы не правы, если надо много на SQL набрать, то часто выгодней переключиться на заглавные, а маленькие через шифт получать.

Другое дело, что можно раскладку на капс повесить, а на шифт-капс, так сказать,- капс_ориджинал.

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

34. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от whip on 15-Сен-11, 10:26 
capslock, scrolllock индикаторы на нетбуке есть?
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

113. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 18-Сен-11, 03:32 
> capslock, scrolllock индикаторы на нетбуке есть?

На моем ноуте есть и капс и индикатор для него. Очень удобно раскладку переключать :)

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

39. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от anonymous (??) on 15-Сен-11, 11:57 
вот нахера тебе всё время видеть этот индикатор раскладки?
плохо с памятью и сложно запомнить набирал ты до этого русский текст или английский?
или после набора пары символов ты не можешь въехать какой это язык?
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

41. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от Аноним (??) on 15-Сен-11, 12:07 
> вот нахера тебе всё время видеть этот индикатор раскладки?
> плохо с памятью и сложно запомнить набирал ты до этого русский текст
> или английский?

Когда набираешь/правишь в ТеХ'е текст с формулами и при этом думаешь, что будешь дальше писать, сложно.

> или после набора пары символов ты не можешь въехать какой это язык?

Беда в том, что в русской раскладке Ctrl+C ИНОГДА не копирует выделенное. Не знаю, это глюк geany или где. В любом случае, перед копированием приходится переключаться в английскую раскладку. И для этого ОЧЕНЬ хочется видеть индикатор.

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

61. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 15-Сен-11, 15:24 
выкинь гном, поставь нормальный WM, к нему прицепи xxkb — будет тебе счастья ведёрко.
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

63. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 15-Сен-11, 15:33 
Не знал. Спасибо. Вот это флажок -- он поверх всех окон будет? А с Гномом оно работать не может?
Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

66. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 15-Сен-11, 15:52 
> Не знал. Спасибо. Вот это флажок — он поверх всех окон будет?
> А с Гномом оно работать не может?

я не знаю, у меня гнома нет. теоретически — ему без разницы. позицию флажка можно подпилить, он его поверх декораций запиливает. с флюксом у меня работает. скорее всего, и с гномом будет.

Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

67. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 15-Сен-11, 15:54 
> Не знал. Спасибо. Вот это флажок -- он поверх всех окон будет?
> А с Гномом оно работать не может?

ах, да. на фулскрине, если декораций нет -- всё равно запиливает с указаными отступами. в общем, у меня даже на полноэкранных SDL-приложениях умудрялся выводить. %-)

Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

69. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 15-Сен-11, 15:57 
> ах, да. на фулскрине, если декораций нет -- всё равно запиливает с
> указаными отступами. в общем, у меня даже на полноэкранных SDL-приложениях умудрялся
> выводить. %-)

Как раз собирался спросить про фуллскрин :) Спасибо, буду пробовать.

Ответить | Правка | ^ к родителю #67 | Наверх | Cообщить модератору

78. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от sabitov (ok) on 15-Сен-11, 20:10 
> вот нахера тебе всё время видеть этот индикатор раскладки?
> плохо с памятью и сложно запомнить набирал ты до этого русский текст
> или английский?
> или после набора пары символов ты не можешь въехать какой это язык?

Ммм, это если у вас переключение раскладок "глобально" работает, а ежели для каждого окна отдельно, то таки да, сложно.

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

29. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –2 +/
Сообщение от Аноним (??) on 15-Сен-11, 09:12 
С винды всё больше и больше бесполезного bloatware тянут...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

169. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 21-Сен-11, 07:01 
> С винды всё больше и больше бесполезного bloatware тянут...

1) При чем тут винда?
2) Почему это - bloatware?
3) Почему оно бесполезное?

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

30. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 15-Сен-11, 10:15 
> Прозрачная работа параллельно с другими переключателями клавиатуры;

это типа если в системе стоит чётное кол-во таких переключателей, то результата от переключения пользователь так и не заметит? Старый же гемор с КДЕшным переключателем вместе с стандартным иксовым.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

42. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от ызусефещк on 15-Сен-11, 12:19 
А с многопользовательской системой как работает? Правила разные для каждого можно делать?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

46. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 15-Сен-11, 13:05 
> А с многопользовательской системой как работает? Правила разные для каждого можно делать?

Для каждого пользователя можно делать разные правила. Конфиг конкретного пользователя лежит в рабочем каталоге пользователя: ~/.config/loloswitcher/config.ini

При одновременной работе с несколькими сеансами X переключатель одного пользователя не влияет на переключатель другого пользователя.

Единственное, чего не может LoLo Switcher, так это работать при сетевом подключении. Поэтому он и называется локальным (см. текст новости). При работе по сети пользуйтесь нативными переключателями или xneur. При работе по сети скорость реакции системы ниже, так что выгоды от LoLo Switcher в таком режиме нет. Я писал программу под себя, а за многие годы работы под Linux мне не разу не понадобилось организовывать постоянную работу по сети с X-сервером.

Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

49. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от gegMOPO4 (ok) on 15-Сен-11, 13:15 
Начинание хорошее, но автору ещё предстоит многому научиться.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

52. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от anonimous on 15-Сен-11, 13:52 
Отличная софтина. Хороший образец для изготовления клавиатурных шпионов!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

56. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 15-Сен-11, 15:01 
Запусти xev или xneur с дебагом и тоже любуйся на кейлоггинг.
Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

62. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от anonymous (??) on 15-Сен-11, 15:30 
сказать хочется только одно: люди, если хотите этим пользоваться — возьмите идею и перепишите поделку с нуля. а то…

фиксированые буфера размером по 250 байт на строки… копирование сишных строк при помощи sprintf(dest, source) (все уже умилились детской наивности автора?), копирование тех же строк циклом for с завершающей ручной допиской нуляя абсолютное забивание на const char * и прочие радости первокурсника. чтобы получить представление о коде, посмотрите на функции из модуля parsehelper. и поверьте: там *весь* код такой же.

а чего стоят циклы типа:
for (i = 0; i < strlen(str); ++i) { … }

или проверка на пустую сишную строку — при помощи того же strlen()?

эх…

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

70. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от xintrea email(ok) on 15-Сен-11, 16:41 
А что тебя, дорогой неизвестный анон, так код напрягает? Ты боишься, что программа работать не будет? Так она работает. Боишься, что память течет? Так она не течет.

[оскорбление вырезано модератором]

Когда программист программирует, и ему нужно пробежать символы в строке, он напишет for(i = 0; i < strlen(str); ++i) и поедет дальше. Если ему нужно узнать размер строки, он напишет strlen() а не что-то другое. Если программист мыслит категорией "вписать в строку текст", он напишет sprintf() а не strcmp(), тьфу ты, strcpy(), и будет абсолютно прав. Тупые кодеры этого обычно не понимают.

Кстати, ты правильно угадал, что модуль parsehelper - это поделие студента. Так и есть, раньше это была c-шная наколенная библиотека для char-строк. Тут она засунута без изменений, просто в c++ нутой обёртке. Она выполняет свою функцию, а большего от нее и не требуется.

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

90. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Викрам on 16-Сен-11, 11:09 
ну хоть бы так )
int size = strlen(str);
for(i = 0; i < size; ++i)

Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

91. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Andrey Mitrofanov on 16-Сен-11, 11:41 
> int size = strlen(str);
> for(i = 0; i < size; ++i)

Реквестую в тред павлинукса с показательным дизассемблером оптимизации этой ерунды "обычным" gcc! Маэстро??

Ответить | Правка | ^ к родителю #90 | Наверх | Cообщить модератору

95. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от anonymous (??) on 16-Сен-11, 13:01 
> Реквестую в тред павлинукса

и изена с жабой — чтобы всю труппу уже собрать.

Ответить | Правка | ^ к родителю #91 | Наверх | Cообщить модератору

100. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 16-Сен-11, 15:28 
gcc соптимизирует если аргумент strlen - const char *. Если нет, то будет вызывать strlen() на каждую итерацию.
Ответить | Правка | ^ к родителю #91 | Наверх | Cообщить модератору

101. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 16-Сен-11, 15:42 
> gcc соптимизирует если аргумент strlen - const char *. Если нет, то
> будет вызывать strlen() на каждую итерацию.

аффтырь обсуждаемого софта const'ам не обучен вообще.

Ответить | Правка | ^ к родителю #100 | Наверх | Cообщить модератору

114. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 18-Сен-11, 03:36 
> аффтырь обсуждаемого софта const'ам не обучен вообще.

Ну ты, такой умный, почему-то лучше не написал, так? У тебя есть выбор:
1) Переписать лучше и гордиться собой. Можно даже потом об этом сообщить и отослать автору патч.
2) Если лень, тогда STFU. Потому что вашего переключатора раскладки я не вижу что-то. Ни плохого, ни хорошего. Плохой - лучше чем никакой, не так ли? :)

Ответить | Правка | ^ к родителю #101 | Наверх | Cообщить модератору

119. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от anonymous (??) on 18-Сен-11, 03:48 
> Ну ты, такой умный, почему-то лучше не написал, так?

потому что мне такой софт не.нужен. сюрпрайз?

> 1) Переписать лучше и гордиться собой. Можно даже потом об этом сообщить
> и отослать автору патч.

там надо не софтину, а всего автора переписывать. с нуля, желательно.

> 2) Если лень, тогда STFU.

с чего бы?

> Потому что вашего переключатора раскладки я не вижу что-то.

меня устраивает xxkb, немного мной подпиленый под мои нужды.

> Плохой — лучше чем никакой, не так ли?

ты что, до сих пор без переключателя сидишь? O_O иначе я «никакой» понять не могу.

Ответить | Правка | ^ к родителю #114 | Наверх | Cообщить модератору

170. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 21-Сен-11, 07:08 
>> Ну ты, такой умный, почему-то лучше не написал, так?
> потому что мне такой софт не.нужен. сюрпрайз?

Это не значит что он не нужен всем.

>> 1) Переписать лучше и гордиться собой. Можно даже потом об этом сообщить
>> и отослать автору патч.
> там надо не софтину, а всего автора переписывать. с нуля, желательно.

Себя перепишите для начала. А то только вонять по форумам умеете да всякое кривое барахло типа lua восхвалять. Мне так например такая программа в два раза полезнее чем эти ваши lua и что там у вас еще :P.

>> 2) Если лень, тогда STFU.
> с чего бы?

С того что дежурное "вы все пи...сы а я Д`Артаньян" - уныло и уже приелось.

>> Потому что вашего переключатора раскладки я не вижу что-то.
> меня устраивает xxkb, немного мной подпиленый под мои нужды.

Еще скажите что эти кривульки прямее этой приблуды, ага.

>> Плохой — лучше чем никакой, не так ли?
> ты что, до сих пор без переключателя сидишь? O_O иначе я «никакой» понять не могу.

Нет, я с переключателем, но вот этот - выглядит как-то перспективнее и (на уровне логики работы) менее горбато, более универсально и перспективно. Качество кода конечно так себе, но остальным почему-то лень даже так. А идея так вообще epic win. В сумме вполне достойно уважения стало быть.

Ответить | Правка | ^ к родителю #119 | Наверх | Cообщить модератору

179. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 21-Сен-11, 14:25 
> Это не значит что он не нужен всем.

Кэп! не узнал тебя в маске анонимуса!

> Себя перепишите для начала. А то только вонять по форумам умеете да
> всякое кривое барахло типа lua восхвалять. Мне так например такая программа
> в два раза полезнее чем эти ваши lua и что там
> у вас еще :P.

очередной бедняга с поломаным китайским детектором. да ещё и приписывает мне восхваления какого-то непонятного «lua» (что это?)

> С того что дежурное «вы все пи…сы а я Д`Артаньян» — уныло и уже приелось.

бедняга. мне всегда было интересно: слепым людям очень тяжело на свете жить? а на форумах писать — вообще подвиг, наверное. ладно, поскольку ты слепой, я сделаю скидку: ты мог и не заметить цитат и гениального, качественного код автора софтины. где, например, buffer overflow чуть ли не в каждой третьей строке. и софтина не понижает свои привилегии, если запущена с SUID. вы ставьте, ставьте себе сие поделие: больше дырок в системе — веселее жить.

> Еще скажите что эти кривульки прямее этой приблуды, ага.

опять же делаю скидку на то, что ты слепой, и потому мог не заметить xxkb. попроси зрячего друга тебе её описать.

> Качество кода конечно так себе

и то правда: что нам переполнение буферов? слово «проверки» придумал трус. настояшие экстремалы запускают софтины с известными эксплойтами от рута, потому что хардкор и экстрим.

> А идея так вообще epic win. В сумме вполне достойно уважения стало быть.

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

Ответить | Правка | ^ к родителю #170 | Наверх | Cообщить модератору

96. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –3 +/
Сообщение от anonymous (??) on 16-Сен-11, 13:04 
[оскорбления удалены модератором]

sprintf(dest, src). всё, дальше с тобой даже говорить не о чем.

[оскорбления удалены модератором]

Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

105. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от pavlinux (ok) on 17-Сен-11, 03:33 
> и не льсти себе: ты не «программист».

Хорошь глумится, идея хорошая, реализация пока не на уровне CodingStyle ядра,
ну и чё, все ж когда-то чайниками были.

Шоб на 64-х не матюгался и 6-ой аргумент у pcre_exec() имеет тип int, а не указатель.
---


--- a/loloswitcher_0_20/EventQueue.cpp      2011-09-10 01:15:44.000000000 +0400
+++ b/loloswitcher_0_20/EventQueue.cpp      2011-09-17 03:31:08.372977501 +0400
@@ -79,7 +79,7 @@
  // Проверка регулярного выражения
  int count = 0;
  int ovector[30];
- count=pcre_exec( (pcre *)regexpCompile, NULL, queueSequence, strlen(queueSequence), 0, NULL, ovector, 30);
+ count=pcre_exec( (pcre *)regexpCompile, NULL, queueSequence, strlen(queueSequence), 0, 0, ovector, 30);

  // printf("Count=%d\n", count);

--- a/loloswitcher_0_20/Main.cpp    2011-09-13 02:01:31.000000000 +0400
+++ b/loloswitcher_0_20/Main.cpp    2011-09-17 03:30:59.239977501 +0400
@@ -450,7 +450,7 @@
  // Проверка регулярного выражения EventFilter
  int count = 0;
  int ovector[30];
- count=pcre_exec( (pcre *)config.getEventFilterCompile(), NULL, text, strlen(text), 0, NULL, ovector, 30);
+ count=pcre_exec( (pcre *)config.getEventFilterCompile(), NULL, text, strlen(text), 0, 0, ovector, 30);

  // printf("Count=%d\n", count);

@@ -600,7 +600,7 @@
  if(strlen(config.getCommand(n))==0)
   return;

- int keyboardLayerNum=n;
+ ssize_t keyboardLayerNum=n;

  // Выполнение команды будет происходит в отдельном потоке
  pthread_t thread;
@@ -625,7 +625,7 @@
static void *threadFunc(void *arg)
{
  // int keyboardLayerNum = * (int *) arg;
- int keyboardLayerNum = (int) arg;
+ ssize_t keyboardLayerNum = (ssize_t) arg;

  char cmd[250];

Ответить | Правка | ^ к родителю #96 | Наверх | Cообщить модератору

83. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от PnD (??) on 15-Сен-11, 22:45 
Отличный концепт! Наконец-то в X появился грамотный переключатель, вместо объяснений почему это не нужно.

Но: на SuSe нужен suid или встраивать в стартап иксов, а лучше комитить код прямо в иксы, сопроводив мощным напутственным пинком тамошним девелоперам.

P.S. Если пойти дальше, можно вообще сделать модель "событие ввода - запуск кода" под любые хоткеи.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

97. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 16-Сен-11, 13:08 
> Отличный концепт! Наконец-то в X появился грамотный переключатель, вместо объяснений почему
> это не нужно.

на клавиатуре есть как минимум две «лишние» кнопки, которые можно заюзать с пользой.

а владельцы недокомпов (типа ноуты) — ССЗБ, конечно.

Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

85. "СПАСИБО"  +/
Сообщение от Аноним (??) on 16-Сен-11, 00:43 
Кланяюсь в ноги автору. Как мен давно надо было так и накрутил. Огромное нечеловеческое СПАСИБО!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

102. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от yurkao on 16-Сен-11, 16:07 
Низкоуровневый переключатель клавиатуры - тумблер!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

172. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 21-Сен-11, 07:11 
> Низкоуровневый переключатель клавиатуры - тумблер!

А что, это идея :) тумблер и микроконтроллер в USB, прикинуться HIDом - и вот у вас аппаратный тумблер для раскладки, лол :))))

Ответить | Правка | ^ к родителю #102 | Наверх | Cообщить модератору

107. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от pavlinux (ok) on 17-Сен-11, 06:27 
По заявка слушателей:  

* Pavlinux LoLoSwitcher C99 Unixway GNU Remix Edition *<:-)

https://github.com/pavlinux/Pavlinux-LoLoSwitcher-C99-Unixwa...

# git clone git://github.com/pavlinux/Pavlinux-LoLoSwitcher-C99-Unixway-GNU-Remix-Edition.git;
# cd Pavlinux-LoLoSwitcher-C99-Unixway-GNU-Remix-Edition;
# make;
# ./plsw

Запускается, но не проверял,... как уже писал, у меня нет /dev/input/event*

Фсё, задолбался, ушёл спать...
:)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

108. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от pavlinux (ok) on 17-Сен-11, 20:47 
Пофиксил глюки, вроде даже работает :)
Ответить | Правка | ^ к родителю #107 | Наверх | Cообщить модератору

183. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от PnD (??) on 21-Сен-11, 17:51 
> Пофиксил глюки, вроде даже работает :)

  Спасибо, пашет. Остается интегрировать в иксы и забыть баги нативного свитчера как страшный сон.

Ответить | Правка | ^ к родителю #108 | Наверх | Cообщить модератору

184. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 21-Сен-11, 18:04 
> Остается интегрировать в иксы и забыть

…про ьезопасность как про страшный сон.

Ответить | Правка | ^ к родителю #183 | Наверх | Cообщить модератору

186. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от PnD (??) on 21-Сен-11, 18:18 
>> Остается интегрировать в иксы и забыть
> …про ьезопасность как про страшный сон.

1. Из под lynx пишете? Или где еще нет проверки орфографии? В ie 6.0? ;/
2. ps -el | wc -l
165
  О какой безопасности речь в такой помойке? Это всего лишь кеды на суси и 4 активных окна. Возможно, на бзде процессов на 10 поменьше будет. GUI и безопасность (в смысле контроля над происходящим) вряд ли совместимы.

Ответить | Правка | ^ к родителю #184 | Наверх | Cообщить модератору

188. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 21-Сен-11, 18:45 
> 1. Из под lynx пишете? Или где еще нет проверки орфографии?

опечатался, не посмотрел. бывает.

> О какой безопасности речь в такой помойке?

поясню. «помойка» тут не при чём. а вот «интеграция» поделки с кучей явных переполнений буферов в иксы, которые работают, на минуточку, под рутом — это хардкорный экстрим.

Ответить | Правка | ^ к родителю #186 | Наверх | Cообщить модератору

189. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от pavlinux (ok) on 21-Сен-11, 21:17 
> c кучей явных переполнений буферов

Строки можно

Ответить | Правка | ^ к родителю #188 | Наверх | Cообщить модератору

185. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от PnD (??) on 21-Сен-11, 18:08 
>> Пофиксил глюки, вроде даже работает :)
>   Спасибо, пашет. Остается интегрировать в иксы и забыть баги нативного
> свитчера как страшный сон.

  Хотя, нет. Набор багов налицо:
* Режим -t1 - не работает
* Параметр конфигурации SwitchMethod - игнорируется, по ходу.

Дальше лень проверять. Оригинал пока лучше пашет.

Ответить | Правка | ^ к родителю #183 | Наверх | Cообщить модератору

187. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от PnD (??) on 21-Сен-11, 18:34 
Так, пока смотрел InputDevice - осознал, что у тебя конфиг через раз не читается. Перезаписывается и вылетает. Короче, это 2.
Ответить | Правка | ^ к родителю #185 | Наверх | Cообщить модератору

190. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от pavlinux (ok) on 21-Сен-11, 21:19 
>   Хотя, нет. Набор багов налицо:

А я его и не собираюсь доделывать, мне впаяный с xorg нравится :)

Ответить | Правка | ^ к родителю #185 | Наверх | Cообщить модератору

191. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 22-Сен-11, 09:32 
> Хотя, нет. Набор багов налицо:
> * Режим -t1 - не работает
> * Параметр конфигурации SwitchMethod - игнорируется, по ходу.
> Дальше лень проверять. Оригинал пока лучше пашет.

Вот это наброс! кончайте позориться, давайте уже сделайте нармально. в оригинале все пашет как положено, но хочетса максимум безопасности! допилите но не разламывайте, как дети прям...

Ответить | Правка | ^ к родителю #185 | Наверх | Cообщить модератору

192. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 22-Сен-11, 13:05 
денег давай, бесплатно оно нафиг не нужно.
Ответить | Правка | ^ к родителю #191 | Наверх | Cообщить модератору

110. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от pavlinux (ok) on 17-Сен-11, 23:41 
> По заявка слушателей:

По просьбе автора переименовался.

Долго не думая стал xks - X Keyboard Switcher

http://github.com/pavlinux/xks

Ответить | Правка | ^ к родителю #107 | Наверх | Cообщить модератору

111. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от pavlinux (ok) on 18-Сен-11, 03:15 
>> По заявка слушателей:
> По просьбе автора переименовался.
> Долго не думая стал xks - X Keyboard Switcher
> http://github.com/pavlinux/xks

Два дня я его тут трахал, так них...я и не понял, нахрена оно нужно.

1. Для доступа к /dev/input/event* юзер должен быть root или
  создать отдельную группу и туда добавить всех юзеров кому можно,
  а устройству присваивать RW-RW-R

2. Эта шняга работает через расширение XKB, а все знают, что переключалки XKB
настраиваются в xorg.conf

3. Есть утиль xinput
  

Ответить | Правка | ^ к родителю #110 | Наверх | Cообщить модератору

116. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 18-Сен-11, 03:40 
на тебе, кстати, более вменяемый parse.c:


#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>

#include "parse.h"


// Функция удаляет пробелы в начале и конце принятой строки
void alltrim (char *parseline) {
  char *st = parseline;
  //
  if (st == NULL) return;
  while (*st && isspace(*st)) ++st;
  if (!st[0]) { parseline[0] = 0; return; }
  memmove(parseline, st, strlen(st)+1);
  st = parseline+strlen(parseline)-1;
  while (st >= parseline && isspace(*st)) --st;
  if (st < parseline) { st[0] = 0; return; }
  st[1] = 0;
}


// Функция взятия значения параметра из строки вида
// параметр=значение
// значение возвращается как строка
void getparamvalue (char *parseline) {
  const char *vpos = strchr(parseline, '=');
  if (vpos++) {
    memmove(parseline, vpos, strlen(vpos)+1);
  } else {
    parseline[0] = '\0';
  }
}


// Функция взятия имени параметра из строки вида
// параметр=значение
// значение возвращается как строка
void getparamname (char *parseline) {
  char *vpos = strchr(parseline, '=');
  if (vpos) {
    *vpos = 0;
  } else {
    parseline[0] = '\0';
  }
}


Ответить | Правка | ^ к родителю #111 | Наверх | Cообщить модератору

124. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от pavlinux (ok) on 19-Сен-11, 06:49 
> на тебе, кстати, более вменяемый parse.c:

Добавил.

Ответить | Правка | ^ к родителю #116 | Наверх | Cообщить модератору

129. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 19-Сен-11, 13:45 
> на тебе, кстати, более вменяемый parse.c:

 const char *vpos = strchr(parseline, '='); 
  if (vpos++) {
    memmove(parseline, vpos, strlen(vpos)+1);
  } else {
    parseline[0] = '\0';
  }

Вот скажи мне, горе-программист. Зачем ты так код шифруешь? Ведь можно же написать в явном виде:

 const char *vpos = strchr(parseline, '='); 
  if(vpos==NULL)
   parseline[0] = '\0';
  else
   memmove(parseline, vpos, strlen(vpos)+1);

и сразу видна логика действий.

Ответить | Правка | ^ к родителю #116 | Наверх | Cообщить модератору

130. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Andrey Mitrofanov on 19-Сен-11, 14:56 
>   if (vpos++) {
>     memmove(parseline, vpos, strlen(vpos)+1);
> Вот скажи мне, горе-программист. Зачем ты так код шифруешь? Ведь можно же
> написать в явном виде:

Вот скажи мне, горе-программист№2, зачем ты инкремент потерял? %)

>   if(vpos==NULL)
>    memmove(parseline, vpos, strlen(vpos)+1);

Ответить | Правка | ^ к родителю #129 | Наверх | Cообщить модератору

131. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 19-Сен-11, 15:10 
> Вот скажи мне, горе-программист№2, зачем ты инкремент потерял? %)
>>   if(vpos==NULL)
>>    memmove(parseline, vpos, strlen(vpos)+1);

Затем, что исходный код зашифрован. В одном месте происходит и инкремент, и срабатывание условия. Это нарушение всех гайдов, какие только существуют на свете. Вы же пишите программы для людей, а не для компьютеров. Вот и пишите по-человечески, чтоб человек не ошибался. Компьютеру всеравно как вы зашифруете код. Человеку - нет.

Ответить | Правка | ^ к родителю #130 | Наверх | Cообщить модератору

133. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от anonymous (??) on 19-Сен-11, 20:26 
> Затем, что исходный код зашифрован.

плачу. стенаю просто от плача. такие же, как ты, жалуются потом в интернетах:
"obfuscated c programming, где используются трюки навроде «while (*d++ = *s++);»"

конечно, для вас это — «трюки». а для любого *программиста* вполне нормальный код, который пишется на автомате и читается точно так же.

но для тебя операции инкремента — Магия, я понимаю.

Ответить | Правка | ^ к родителю #131 | Наверх | Cообщить модератору

140. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 20-Сен-11, 13:53 
>> Затем, что исходный код зашифрован.
> плачу. стенаю просто от плача. такие же, как ты, жалуются потом в
> интернетах:
> "obfuscated c programming, где используются трюки навроде «while (*d++ = *s++);»"
> конечно, для вас это — «трюки». а для любого *программиста* вполне нормальный
> код, который пишется на автомате и читается точно так же.
> но для тебя операции инкремента — Магия, я понимаю.

Я тоже понимаю, что использование трюков - это для тебя радость жизни.

Строго говоря, трюк *d++ = *s++ по науке называется "устойчивое выражение". Использование ограниченного числа общепринятных устойчивых выражаний даже приветсвуется. Почему? Потому что устойчивое выражение рассматривается как абстракция, которая делает что-то известное. И даже если программист не понимает как оно работает, или не хочет проверять действительно ли оно работает так как нужно при разных граничных условиях, он может положиться на опыт использования выражения другими и сказать: пусть будет так, оно работает.

Во всем остальном, советую тебе начать читать книги по проектированию. Ты к сожалению этого не умеешь делать. Начать можно с банальных постулатов:


Выражайтесь как можно понятнее
http://piccy.info/view3/2001061/afad5e7a875b71e23ea36189ac95.../

Разбивайте сложные выражения на части
http://piccy.info/view3/2001069/c54d22bd426646ae92e9e37db9de.../

И специально для любителей инкрементов:

Учитывайте возможные побочные эффекты
http://piccy.info/view3/2001072/256ee2c58d3852526a04764bd1e3.../


Распечатай себе, и повесь на стенку. Читать три раза в сутки перед едой.

Ответить | Правка | ^ к родителю #133 | Наверх | Cообщить модератору

163. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от AHAHAC (ok) on 21-Сен-11, 03:39 
> Ты к сожалению этого не умеешь делать. Начать можно с банальных постулатов
>Выражайтесь как можно понятнее
> Разбивайте сложные выражения на части
> Учитывайте возможные побочные эффекты

ты K&R читал? От тамошних примеров у тя моск наверно раком встанет.

вот так выглядит функция простейшая strcpy()


char *strcpy(char *dest, const char *src)
{
        char *tmp = dest;

          while ((*dest++ = *src++) != '\0')

        return tmp;
}

а вот так уже strncpy()


char *strncpy(char *dest, const char *src, size_t count)
{
        char *tmp = dest;

        while (count) {
                if ((*tmp = *src) != 0)
                        src++;
                tmp++;
                count--;
        }
        return dest;
}

и чтоб совсем раком встало - strncat() и memmove()


char *strncat(char *dest, const char *src, size_t count)
{
        char *tmp = dest;

        if (count) {
                while (*dest)
                        dest++;
                while ((*dest++ = *src++) != 0) {
                        if (--count == 0) {
                                *dest = '\0';
                                break;
                        }
                }
        }
        return tmp;
}

void *memmove(void *dest, const void *src, size_t count)
{
        char *tmp;
        const char *s;

        if (dest <= src) {
                tmp = dest;
                s = src;
                while (count--)
                        *tmp++ = *s++;
        } else {
                tmp = dest;
                tmp += count;
                s = src;
                s += count;
                while (count--)
                        *--tmp = *--s;
        }
        return dest;
}

Уже чую запах разлагающегося трупа... :)

Ответить | Правка | ^ к родителю #140 | Наверх | Cообщить модератору

164. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 21-Сен-11, 03:49 
во-первых, чукча не читатель.

а во-вторых, щаз тебе задвинут про «устойчивые выражения, которые не обязательно понимать, потому что все редакторы умеют копипасту».

Ответить | Правка | ^ к родителю #163 | Наверх | Cообщить модератору

175. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 21-Сен-11, 12:30 
>> Выражайтесь как можно понятнее
>> Разбивайте сложные выражения на части
>> Учитывайте возможные побочные эффекты
> ты K&R читал? От тамошних примеров у тя моск наверно раком встанет.
> вот так выглядит функция простейшая strcpy()

Хароший вопрос.

Идем на StackOverflow сюды: http://stackoverflow.com/questions/810129/how-does-whiles-t-... и видим, что не только читал, но и указал главу и параграф, как выводится это шаманство шаг за шагом. Сделал я это раньше, чем ты задал вопрос, как раз смотрел интернет, и решил человеку помочь.

И да, как меня просят, я еще раз задвину про устойчивые выражения. K&R в своей книге пишут последовательно, как появляется то или иное решение. Оно же не на пустом месте появилось. Но это у K&R. А у тебя - на пустом. Ты вываливаешь куски кода, и наяриваешь на них как мартышка, думая что немногим доступен дзен кода с побочными эффектами.

Ответить | Правка | ^ к родителю #163 | Наверх | Cообщить модератору

180. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 21-Сен-11, 14:34 
(ржот) ты думаешь, что твои комментарии в коде, по полезности равные «// прибавляем единицу к i» что-то поясняют?

подобный стиль комментирования, кстати, свойственен или совсем новичку, который ещё не способен читать код, и потому пересказывает его сам себе словами обычного языка, или склеротику, который также не способен читать код, как новичок, и потому…

слушай, ну ты же доиграешься до того, что я не поленюсь, возьму полный исходник и устрою разбор полётов. с цитатами из тебя же и последующим избиением младенцев. тебе так охота публичного позорища? и да, я возьму именно оригинал на C++. на котором удобно продемонстрировать, что С++ ты тоже не знаешь.

Ответить | Правка | ^ к родителю #175 | Наверх | Cообщить модератору

181. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 21-Сен-11, 15:11 
> слушай, ну ты же доиграешься до того, что я не поленюсь, возьму
> полный исходник и устрою разбор полётов. с цитатами из тебя же
> и последующим избиением младенцев. тебе так охота публичного позорища?

Ты и так уже неделю только этим и занимаешься. Можешь продолжать, разрешаю.

Единственная просьба - чтобы быть объективным, перед разбором полётов продемонстрируй, пожалуста, рабочий пример своего собственного кода. Желательно, какой-нибудь опенсорчный проект, ведь негоже, чтоб такой талантище пропадал втуне. Это необходимо для того, чтобы объективно оценить качество работы твоего кода. Выполняет ли он свои функции? Не вызывает ли проблем у пользователя? Решает ли код задачу, на него возложенную, и если да, то наколько хорошо?

Вот когда ты это сделаешь, мы посмотрим на тебя и на твой код, и скажем: этот парень действительно разбирается в том, что решил критиковать. После этого имеет смысл продолжать наш увлекательный разговор.

Ну а пока ты этого не сделал, все твои потуги - это просто банальная газификация в лужи.

Ответить | Правка | ^ к родителю #180 | Наверх | Cообщить модератору

182. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  –1 +/
Сообщение от anonymous (??) on 21-Сен-11, 16:03 
ты великолепен, да. до тебя даже не доходит, что разбор твоего гуано и будет такой «демонстрацией» — именно в силу публичности разбора и возможности выпороть меня, в свою очередь, если я в разборе накосячу. помедитируй над этим.

а код я тебе, натурально, показывать не стану: у тебя мозг взорвётся. ну много ты поймёшь в реализациях Scheme и Smalltalk, а? вряд ли. зато всенепременно будешь вопить, что «goto низя!», «реализация VM непонятна среднему идиоту» и прочую ерунду.

Ответить | Правка | ^ к родителю #181 | Наверх | Cообщить модератору

134. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 19-Сен-11, 20:28 
> Вот скажи мне, горе-программист№2, зачем ты инкремент потерял? %)

а он не понял, что там за загадочные плюсики, и на всякий случай решил их выкинуть. то ли дело его код, чистый, красивый, незашифрованый, понятный. я не удержусь, процитирую:


void getparamvalue(char *parseline)
{
  char returnline[255];
  char tmpline[255];
  int pos,startpos,i;

  sprintf(tmpline,"%s",parseline);

  startpos=0;
  for(i=0;i<=strlen(tmpline);i++)if(tmpline[i]=='=')startpos=i+1;

  if(startpos!=0)
   {
    pos=0;
    for(i=startpos;i<=strlen(tmpline);i++)
     {
      returnline[pos]=tmpline[i];
      pos=pos+1;
     }
    returnline[pos]='\0';

    // Копирование результата в принятый массив
    for(i=0;i<=strlen(returnline);i++)parseline[i]=returnline[i];
    parseline[i]='\0';

    return;
   }

  parseline[0]='\0';
  return;
}


образец стиля, понятности и безошибочности.
Ответить | Правка | ^ к родителю #130 | Наверх | Cообщить модератору

138. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 20-Сен-11, 11:55 
> а он не понял, что там за загадочные плюсики, и на всякий случай решил их выкинуть. то ли дело его код

Но в нем тоже есть плюсики! Как такое могло случиться???

Ответить | Правка | ^ к родителю #134 | Наверх | Cообщить модератору

139. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Okruzhor (ok) on 20-Сен-11, 13:24 
>> а он не понял, что там за загадочные плюсики, и на всякий случай решил их выкинуть. то ли дело его код
> Но в нем тоже есть плюсики! Как такое могло случиться???
> pos=pos+1;

То есть двойной плюсик считается синтаксисом завершения заголовка цикла со счётчиком ; и больше ничем . Понимания работы цикла нет , понимания инкремента нет . Интересно , где так учат Си

Ответить | Правка | ^ к родителю #138 | Наверх | Cообщить модератору

142. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 20-Сен-11, 14:33 
> Интересно , где так учат Си

глядя на код, хочется спросить более глобально: где так учат?!

Ответить | Правка | ^ к родителю #139 | Наверх | Cообщить модератору

145. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 20-Сен-11, 14:48 
> То есть двойной плюсик считается синтаксисом завершения заголовка цикла со счётчиком ;
> и больше ничем . Понимания работы цикла нет , понимания инкремента нет .
> Интересно , где так учат Си

Какие далеко идущие выводы. Вам следует почитать тему с начала, зайти на сайт автора и увидеть там раздел Demo Design. В нем вы с удивлением обнаружите шесть интро, сделанных на Ассемблере. Вы случайно не знаете, в ассемблере есть инкремент и циклы?

Ответить | Правка | ^ к родителю #139 | Наверх | Cообщить модератору

148. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 20-Сен-11, 15:06 
> сайт автора и увидеть там раздел Demo Design. В нем вы
> с удивлением обнаружите шесть интро, сделанных на Ассемблере.

что не значит совершенно ничего. «одарённых вьюношей», писавших на асме, я видел далеко не одного. потом они пытались использовать ЯВУ… и у них получались такие же портянки, как и на асме.

вопреки мнению людей, которые почёсывают ЧСВ, считая, что на ассемблере писать очень сложно, язык ассемблера — очень простой язык. особенно уровня 286/386. и писать на этом не сложно, а нудно. единственное, что может показать программа на асме — что у автора было много свободного времени и дурной молодецкой силы. гвозди бы делать из этих людей! я лет в 20 тоже таким баловался. потом прошло.

Ответить | Правка | ^ к родителю #145 | Наверх | Cообщить модератору

152. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 20-Сен-11, 15:31 
> вопреки мнению людей, которые почёсывают ЧСВ, считая, что на ассемблере писать очень
> сложно, язык ассемблера — очень простой язык

Хорошо что хоть это ты понимаешь. Но вопрос был в другом - являются ли циклы и инкремент чем-то экзотическим в ассемблере? Пишутся ли программы на ассемблере без циклов и без инкремента?

Ответить | Правка | ^ к родителю #148 | Наверх | Cообщить модератору

159. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Okruzhor (ok) on 20-Сен-11, 16:12 
>> Интересно , где так учат Си
> Какие далеко идущие выводы.

Это элементарно , Ватсон . Во-1-х из 'pos=pos+1' следует , что инкремент не усвоен . Во-2-х из п.1 и наличия инкремента в заголовке цикла (что как бы противоречит п.1) следует , что данный приём применения инкремента вызубрен без понимания цикла со счётчиком в Си

Упоминание языка ассемблера -- мимо темы : речь идёт о Си , а не о других языках

Серьёзно , разберитесь с инкрементом и декрементом в префиксной и постфиксной форме . Если сочтёте постфикс "обфусцирующим" , не используйте его даже в заголовках циклов . Если сочтёте обе формы обфусцирующими , применяйте 'pos=pos+1' даже в заголовке цикла или хотя бы разберитесь , которой из 2 форм соответствует паскальский стиль

Ну и конечно избегайте вычисления длины строки заново на каждом шаге сканирования строки

P.S: Я не упоминал про грузчиков и прочее . Просто жаль видеть новичковый стиль в полезной программе . И да , боязно её ставить из-за этого подозрительного стиля

Ответить | Правка | ^ к родителю #145 | Наверх | Cообщить модератору

161. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea email(ok) on 20-Сен-11, 17:22 
> Ну и конечно избегайте вычисления длины строки заново на каждом шаге сканирования
> строки

Я кстати подизассемблировал варианты с вычислением strlen() на каждом шаге цикла. Действительно, вызов strlen() исчезает (при опитмизации O0) только при описании строки как const char *, на обычных чарах он остается. Честноговоря считал, что уже давно как анализаторы умеют оптимизировать циклы так, что если в них не происходит запись в область памяти строки, то вызов strlen() соптимизируется. Ну хотя бы в случаях, когда нет вызова подпрограмм, в которых возможна модификация. А оказывается оптимизация ориентируется просто на тип данных. Если const -> модифицирование невоможно -> оптимизируем.

Ответить | Правка | ^ к родителю #159 | Наверх | Cообщить модератору

162. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 20-Сен-11, 17:30 
стандарт не читай @ удивляй!
Ответить | Правка | ^ к родителю #161 | Наверх | Cообщить модератору

173. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от Аноним (??) on 21-Сен-11, 07:19 
> с удивлением обнаружите шесть интро, сделанных на Ассемблере. Вы случайно не
> знаете, в ассемблере есть инкремент и циклы?

В ассемблере это есть, но в си это сделано немного иначе. У некоторых RISC процессоров кстати такие вещи как предекремент/постинкремент регистра в паре с некоей операцией и/или условием - реализовано аппаратно, как раз специально чтобы компилерам было удобно подобные конструкции в машинный код транслировать :)


Ответить | Правка | ^ к родителю #145 | Наверх | Cообщить модератору

136. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от pavlinux (ok) on 20-Сен-11, 06:05 
Выносим моск дальше, но с пользой - теперь в конфиге можно ставить пробелы и табы после '='

#define likely(x) __builtin_expect(!!(x), 1) // Вместо JNZ будет JE (асм.) :)
#define prefetch(x) __builtin_prefetch(x) // Нириальный разгон

void getparamvalue(char *parseline) {

    const char *vpos = rawmemchr(parseline, '=');
    
    if (likely(vpos++)) {
        while (*++vpos == ' ' || *vpos == '\t') {;}
        prefetch(parseline); // Чтоб в кэше валялось
        memmove(parseline, vpos, strlen(vpos) + 1);
    } else
        parseline[0] = '\0';
}

И нипёт :)


403b5d:       3c 09                   cmp    $0x9,%al
403b5f:       74 e5                   je     403b46 <getparamvalue+0x36>
403b61:       48 8b 45 e8             mov    -0x18(%rbp),%rax
403b65:       0f 18 08                prefetcht0 (%rax)
403b68:       48 8b 45 f8             mov    -0x8(%rbp),%rax
403b6c:       48 c7 45 e0 ff ff ff    movq   $0xffffffffffffffff,-0x20(%rbp)

YES!!! je и prefetch - есть!!! :)
Ответить | Правка | ^ к родителю #129 | Наверх | Cообщить модератору

143. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 20-Сен-11, 14:34 
будешь выпендриваться — мне придётся тогда выступить с универсальным парзером конфигов, а не тем страшилищем, что там сейчас. поимей совесть!
Ответить | Правка | ^ к родителю #136 | Наверх | Cообщить модератору

117. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 18-Сен-11, 03:41 
йопт.
 if (st < parseline) { st[0] = 0; return; }

можно убрать нафиг, конечно.
Ответить | Правка | ^ к родителю #111 | Наверх | Cообщить модератору

118. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 18-Сен-11, 03:44 
нужно таки затем, что xkb не умеет переключать по отжатию, например. или по простому tap-у того же шифта, при этом не теряя «нормальных» функций шифта.

другое дело, что хорошая идея сделана кривовато. но сама идея ничо так.

кстати: есть какой-нибудь простой способ определить, какой из event'ов — клава? вот у меня он вообще третий, нарыл методом перебора.

Ответить | Правка | ^ к родителю #111 | Наверх | Cообщить модератору

122. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 18-Сен-11, 19:07 
> кстати: есть какой-нибудь простой способ определить, какой из event'ов — клава? вот
> у меня он вообще третий, нарыл методом перебора.

есть. вот такой, тупой, но часто работает:


// don't forget to free() result!
// returns NULL or device file name
static char *findKeyboardDevice (void) {
  int f;
  //
  for (f = 0; f <= 31; ++f) { // the Elder says there canst be no other numbers
    char dev[32];
    int fd;
    //
    sprintf(dev, "/dev/input/event%d", f);
    fd = open(dev, O_RDONLY);
    if (fd >= 0) {
      char name[128];
      int len = ioctl(fd, EVIOCGNAME(sizeof(name)-1), name);
      close(fd);
      if (len > 0) {
        name[len] = 0;
        if (strcasestr(name, "keyboard")) return strdup(dev);
      }
    }
  }
  return NULL;
}

чо, сам спрашиваю, сам отвечаю. самоудовлетворение-с.

Ответить | Правка | ^ к родителю #118 | Наверх | Cообщить модератору

125. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от pavlinux (ok) on 19-Сен-11, 07:02 
>> кстати: есть какой-нибудь простой способ определить, какой из event'ов — клава? вот
>> у меня он вообще третий, нарыл методом перебора.
> есть. вот такой, тупой, но часто работает:

Добавил :)

Ответить | Правка | ^ к родителю #122 | Наверх | Cообщить модератору

126. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 19-Сен-11, 07:20 
> Добавил :)

интересно, а автор оригинала добавит? ну, то есть, понятно, что весь мой гениальный код — сплошное PD и его можно смело тащить в оригинал.

кстати, судя по main у меня закралось подозрение, что с системами контроля версий автор оригинала дружит примерно так же, как и с c/c++.

(умильно) эх… напоминает мне меня же лет в 18. я тогда тоже считал, что «придираются к частностям» (ну, типа strlen() в цикле, незнания про strcpy() — хотя в одном месте я её видел, — незнакомством с strchr() и ты пы) только унылые старпёры. которые способны лишь на цитирование зазубреных библиотек и никак не умеют into свободный полёт фантазии. а вместо системы контроля версий у меня была утилита, которая архивирует рабочий каталог и складывает архивы в специальное место.

(задумчиво) рудименты таки остались: до сих пор не доверяю реализации strtok() и пишу свои токенизаторы.

Ответить | Правка | ^ к родителю #125 | Наверх | Cообщить модератору

127. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от pavlinux (ok) on 19-Сен-11, 07:27 
> (задумчиво) рудименты таки остались: до сих пор не доверяю реализации strtok() и
> пишу свои токенизаторы.

А я вот думаю как от strdup избавиться, нихачу free сувать :/


Ответить | Правка | ^ к родителю #126 | Наверх | Cообщить модератору

128. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 19-Сен-11, 07:44 
> А я вот думаю как от strdup избавиться, нихачу free сувать :/

понаделай статиков да и выкидывай наверх. ну, или привинчивай полноценный сборщик мусора (хихикает).

Ответить | Правка | ^ к родителю #127 | Наверх | Cообщить модератору

123. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от anonymous (??) on 18-Сен-11, 19:11 
> Два дня я его тут трахал, так них...я и не понял, нахрена
> оно нужно.

после выкидывания 90% кода и забивания сочетаний молотковой хардкодовой магией получилась няшная переключалка по правому ctrl, не сжирающая этот самый ctrl и не реагирующая на ужержание оного более полусекунды. НЯ!

Ответить | Правка | ^ к родителю #111 | Наверх | Cообщить модератору

197. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +1 +/
Сообщение от Вадим email(??) on 16-Дек-12, 23:10 
А светодиод клавиатуры оно может включать?
И кстати, девчёнки тут есть? Кого отодрать?

В.В. Маяковский

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

198. "Низкоуровневый переключатель клавиатуры LoLo Switcher 0.20"  +/
Сообщение от xintrea (ok) on 16-Дек-12, 23:26 
> А светодиод клавиатуры оно может включать?

Посмотри видео http://www.youtube.com/watch?v=z0EA5wllB14

Ответить | Правка | ^ к родителю #197 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру