Как стать автором
Обновить

Комментарии 79

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

Была одна проблема, при занесении в автозагрузку gxneur, программа запускалась до каких-то других служб и горячие клавиши не работали.
Лечится записью в автостарте такой команды: bash -c «sleep 15 && gxneur».
Речь идёт об Ubuntu 10.04.
Извините.
Кавычки должны быть просто двойными. Типографские парсер поставил.
в фаерфоксе он себя так ведет, скорее это проблема самого фокса. А недавно совсем веселуха началась — может одну букву писать латиницей а вторую кbриkbцеq — до перезагрузки gdm
Он довольно глючный. Периодически вылетает, в гтк-виджетах из-за него перестают работать гиперссылки.
xneur скорее для автокоррекции, а смена раскладки там до кучи.
ну и навороченное оно до ужаса:
ldd `which xneur` | wc -l
57
включая библиотеки для воспроизведения аудио.

А можно сделать какой-нибудь DE-независимый вариант, который бы по хоткею заменял бы выделенный текст? Было бы удобно для браузера, например (не везде ж есть Яндекс.Бар)
ну так это вполне DE-независимый вариант.
нужен перл и две утилитки.
Не совсем. Я так понимаю, что: а) это требует куда-то копировать текст б)это привязано к какому-то приложению (хотя бы эмулятор терминала). Я имею ввиду, что-то, что работало бы в фоне и срабатывало на любом выделеном тексте на любом месте экрана в любом приложении
доступа к «любому выделенному тексту» в иксах я не нашёл.
выделение текста обрабатывается приложением (и ещё драйвером мыши).
такчто универсального способа не получится.
а решение с мышью я привёл.
сейчас напишу ещё одно.
Почти все приложения X11 при выделении текста автоматически копируют его в первичный буфер обмена.
qt-шные не копируют.
требует копировать в иксовый буфер.
xdotool работает с любым иксовым приложением(аля эмулирует нажатие на клаву мышь) — в данном случае зависит от того работает ли ^C ^V в приложении (а это в том же xterm не работает), т.е. надо заточить для сочетаний шифт-инсерт шифт-дел (как работают они — во всех или нет не знаю, но думаю определять приложение и в некоторых юзать сочитаня с шифтом не составит особого струда)

автору спасибо — как всегда самое простое решение лежит на поверхности, но его очень трудно увидеть =)
Вообще мне нравится Punto — в нем есть раскладкоисправлятель. Жаль, конечно, что для линукса его не планируют выпускать, но… для Мака и Винды уже есть.
Почему если не хочется плюсовать надо обязательно минусануть и плюнуть в карму?
ps. потом не жалуйтесь, если я буду приходить с просьбой написать пост или вопрос :)
НЛО прилетело и опубликовало эту надпись здесь
Ну во-первых, я не линуксоид ;)
Во-вторых, я боюсь это сказать, но «я просто сказал» (с) и просто поделился тем чем обладаю
внезапно, это блог для линуксоидов.
Внезапно, это блог про линукс для всех желающих его почитать.
это блог про линукс

Ну, а зачем было оставлять комментарий, полный сожаления? Тем более, что в первом уже приводился пример функционально схожей утилиты.
НЛО прилетело и опубликовало эту надпись здесь
на самом деле punto и xneur реализуют и другой функционал:
смена раскладки на лету/автоопределение языка.
а вот это так просто скриптами уже не сделать.
> который «у вас» реализуется мегабайтами кода ;)
А вот не надо ;) «у нас» есть самая фантастическая, короткая и замечательная строка кода, про которую написано так много сказаний — format c: :)
НЛО прилетело и опубликовало эту надпись здесь
Это не настолько красиво и брутально :) Виндовая больше знаменита
Нашли чем мериться, горячие эстонские парни =)
Ааа, так вот кто минусует! =)
НЛО прилетело и опубликовало эту надпись здесь
На самом деле очень красиво, проверено, наблюдать как система гордо втыкает себе нож в брюхо и усиленно начинает его там крутить. Полный суицид не получился, полностью сама себя не захотела добить, но под конец напоминала прикованного к постели больного, которого оставалось только из жалости добить.
А вот не надо ;) «у нас» есть самая фантастическая, короткая и замечательная строка кода, про которую написано так много сказаний — format c: :)

ваша же любимая винда запилит сеё действо на корню
зачем вы так с детьми
НЛО прилетело и опубликовало эту надпись здесь
Синдром учителя — это фразы вроде:
— Где тетрадь? Дома забыл? А голову ты дома не забыл?
Вы своим ученикам тоже такое говорили?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
что, и у вас тоже этот loshvitalik клянчил карму в личке?
НЛО прилетело и опубликовало эту надпись здесь
потомучто, кроме прочего, хочется чтобы в этом топике и в этом блоге не писали всякую оффтопичную хню, например.
НЛО прилетело и опубликовало эту надпись здесь
Простите, не удержался.
> Прояви снисходительность.
> Карма –5,0 7 голосов
НЛО прилетело и опубликовало эту надпись здесь
Это был сарказм :) И никакие ни клянчинья.
НЛО прилетело и опубликовало эту надпись здесь
в него, говорят, яндекс кучу всякого непонятного напихал.
наверно, поэтому и не планируется под линукс (там не любят closed-source)
Я один не вижу там ничего непонятного? Ну хотя даа, эти постоянные коннекты с Яндексом, разве они это утаивают?
Советовал бы еще описать как последние два варианта можно прикрутить к xbindkeys
из-за испоьлзования в команде xdotool key ctrl-c
при назначении на control + что-нибудь получается залипание состояния клавиши control.
(команда выполняется при нажатой клавише control)
как от этого избавиться непонятно.
Аналогичное залипание Ctrl и Shift у меня. И не пойму как гуглить проблему. Может кто подскажет английский аналог слова «залипание» в данном контексте?
а разве xclip не умеет доставать выделенный текст?
только выделенный мышью (primary selection)
> Полезные мелочи: перекодировка неправильной раскладки

В заголовке вообще какая-то путаница в терминологии.
1) Перекодировка — это изменение кодировки текста (utf-8, cp1251, KOI8-R, cp866 и др.), и этим занимаются утилиты вроде iconv.
2) Раскладка клавиатуры — это схема расположения клавиш на клавиатуре, например, раскладка QWERTY (ЙЦУКЕН/QWERTY), AZERTY, Dvorak и др.

А то, о чём вы говорите, называется преобразованием языка ввода (input language). В данном случае это преобразование делается уже после ввода текста.
перекодировка это преобразование входного потока в выходной согласно заданного алгоритма кодирования
остальное всё частности
согласен. название некорректное. зато понятное и не громоздкое.
давно написал себе скрипт и повесил на хоткей:

#!/bin/bash

xclip -o | sed "y/\`~!@#$%^&qwertyuiop[]asdfghjkl;'zxcvbnm,.\/QWERTYUIOP{}ASDFGHJKL:\"|ZXCVBNM<>?/ёЁ!\"№;%:?йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭ\/ЯЧСМИТЬБЮ,/" | xclip -selection primary


Без всяких перлов работает…
хм. раньше оно вроде не работало с utf8 локалью (также как и tr из coreutils)
Зачем целый perl, когда есть tr?
целый tr не умеет utf8.
Спасибо, прикрутил.
Чаще всего белиберда замечается не сразу, можно вначале ещё прикрутить shift+home для выделения, чтобы ручками не делать, да и в конце не мешал бы какой-нибудь echo "" | xclip для того чтобы сконверченная белиберда при случайном нажатии хоткея не вставилась куда не надо.
А меня прет по новой набирать.
Половину из-того что уже было набрано — выбрасываешь и пишешь дальше )
>Особенно обидно, если текст довольно большой и перенабирать лень.

Быть может вы хотели сказать: особенно обидно, если текст в пять тысяч символов и перебирать лень? :)
Стёр те пару слов и набрал, ничего сложного)

Лично я приучил себя следить за раскладкой в фоновом режиме и всё прекрасно. Когда вы так делаете, — вы не плюётесь и не выкрикиваете «чорт!», нажимая Pause/Break. И настроение вцелом намного лучше :)
Это всё, конечно, замечательно, но тру-пацан-вэй — таки освоить слепой набор.
С таким девайсом можно никогда дома не лочить машину)
автоматическое переключение раскладки — для домработниц
Вам бы скрипт в deb-пакет и на Launchpad PPA :). Я бы тут же поставил.
зачем три строчки текста в пакет?
легче будет заново текст набрать, чем так заморачиваться
Вот мой вариант:

#!/bin/bash

# сохраняем выделение в файл
xclip -o -selection primary > /tmp/~sel.tmp

# сохраняем буфер обмена в файл
xclip -o -selection clipboard > /tmp/~clip.tmp

# чтобы не напечатать содержимое буфера обмена, если ничего не выделено, мы его очистим
xclip -i -selection clipboard

# очищаем выделение
xdotool key Delete

# записываем обработанный выделенный текст в буфер обмена
cat /tmp/~sel.tmp | sed "y/\`~\!@#$%^&qwertyuiop[]asdfghjkl;'zxcvbnm,.\/QWERTYUIOP{}ASDFGHJKL:\"|ZXCVBNM<>?ёЁ\!\"№;%:?йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛД
ЖЭ\/ЯЧСМИТЬБЮ,/ёЁ\!\"№;%:?йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭ\/ЯЧСМИТЬБЮ,\`~\!@#$%^&qwertyuiop[]asdfghjkl;'zxcvbnm,.\/QWERTYUIOP{}ASDFGHJKL:\"|ZXCVBNM<
>?/" | xclip -selection clipboard

# при проблемах установить задержку по вкусу:
sleep 0.1

# вставляем содержимое буфера обмена
xdotool key Shift+Insert

# восстанавливаем буфер обмена из файла
cat /tmp/~clip.tmp | xclip -in -selection clipboard

# удаляем временные файлы
rm /tmp/~clip.tmp /tmp/~sel.tmp

# опционально меняем раскладку
xdotool key alt+shift

# shift иногда может залипать, это решает проблему
xdotool key Shift


Этот скрипт вешается, например, на Shift+Break, и меняет раскладку выделенного текста и клавиатуры. Буфер обмена не изменяется, Ctrl+C не используется.

Иногда после его использования, а именно из-за xdotool key Shift+Insert программно залипает кнопка Shift. Чтобы решить проблему, нужно выполнить скрипт ещё раз.

Вот так.
таки этот скрипт будет перекодировать только то, что выделено мышью.
Ctrl-C я вставлял чтобы достать то, что выделено средствами приложения.

мышиное выделение, оно, конечно, универсальнее.
но вставление текста Shift-Ins тоже может где-нибудь не проехать.
Ну, тогда скрипт можно слегка поправить. Я сначала думал вместо primary selection нажимать Shift+Del, «вырезать», но в некоторых ситуациях это может быть опасно, как и Ctrl+C.

И да, почему только то, что выделено мышью? Ведь и с клавиатурным выделением работает. Если я вижу, что я набираю неправильно, я жму Shift+Ctrl+Left и Shift+Break. У тебя не так?
не так.
firefox и chrome, например, помещают выделение курсором в primary
а qt-шные приложения из всех попробованых — нет.

возможно даже, имеет смысл написать им.
Тогда вместо первых двух команд нужно написать такое:

xclip -o -selection clipboard > /tmp/~clip.tmp

xdotool key Ctrl+Insert

xclip -o -selection clipboard > /tmp/~sel.tmp

xclip -i -selection 
...


А если будут проблемы с Ctrl, добавить в конец

xdotool key Ctrl
Перекодировать неправильную кодировку и показывать текст в окошке можно так:

Msg=$(xclip -out | iconv -f cp1251 -c) && kdialog --msgbox "$Msg"
Да, супер! Пару месяцев пользуюсь именно таким способом (использую вариант с sed)
Это в 100500 раз лучше Punto и xneur
А всё потому, qbh hfx fy nd.sub j dujptunph' «DVORAK»
=))
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории