Pull to refresh

Comments 79

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

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

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

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

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

ваша же любимая винда запилит сеё действо на корню
UFO landed and left these words here
Синдром учителя — это фразы вроде:
— Где тетрадь? Дома забыл? А голову ты дома не забыл?
Вы своим ученикам тоже такое говорили?
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
потомучто, кроме прочего, хочется чтобы в этом топике и в этом блоге не писали всякую оффтопичную хню, например.
UFO landed and left these words here
Простите, не удержался.
> Прояви снисходительность.
> Карма –5,0 7 голосов
UFO landed and left these words here
Это был сарказм :) И никакие ни клянчинья.
UFO landed and left these words here
в него, говорят, яндекс кучу всякого непонятного напихал.
наверно, поэтому и не планируется под линукс (там не любят 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)
Спасибо, прикрутил.
Чаще всего белиберда замечается не сразу, можно вначале ещё прикрутить 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»
=))
Sign up to leave a comment.

Articles