Расскажу я вам история про то, как веб камера с ТВ тюнером подружились.
Жил да был ТВ тюнер. Из видео устройств в системе он был один и гордо занимал место в /dev/video0. Но в один прекрасный день в системе поселилась веб камера, которая тоже стала претендовать на место в каталоге /dev. И началась борьба за место под солнцем. При каждой загрузки системы, то камера займет /dev/video0, то ТВ тюнер. От этого начали страдать программы. То tvtime подключается к /dev/video0, а там веб камера, то skype к /dev/video1, а там тюнер.
Знакомая ситуация? Решение в общем-то известно. Нужно раздать имена файлов в каталоге /dev при помощи udev. Здесь я расскажу о своем опыте и о нюансах, с которыми мне пришлось столкнуться.

Как проблема была решена в итоге.


Для начала я узнал все о своих устройствах.
udevadm info -a -p $(udevadm info -q path -n /dev/video0)
udevadm info -a -p $(udevadm info -q path -n /dev/video1)


Данные команды выдадут много всего, но интересны нам будут следующие пункты:
для веб камеры это ATTRS{idVendor} и ATTRS{idProduct},
для ТВ тюнера это ATTRS{vendor} и ATTRS{device}.

После сбора информации идем в /etc/udev/rules.d и создаем там файл с именем 25-name-video-device.rules (название может быть абсолютно любым) следующего содержания:
ATTRS{idVendor}=="046d", ATTRS{idProduct}=="09a5", ATTR{name}=="UVC Camera (046d:09a5)", NAME="video2"
KERNEL=="video*", ATTRS{vendor}=="0x1131", ATTRS{device}=="0x7133", NAME="tuner"


Данное правило говорит udev, что устройства с определенными идентификаторами (vendor, idProduct и пр.) будут иметь в каталоге /dev имена video2 (камера) и tuner (ТВ тюнер).
Осталось только перезагрузиться (или перезапустить udev) и получим желаемый результат.

Почему я распределил устройства именно так.


Изначально идея была дать устройствам имена video0 и video1, но как показала практика, ни фига из этого не вышло. Конфликт при загрузке все равно имел место быть, и в итоге я получал только устройство video1 (железка могла быть любая).
Рассудил я так. Раз устройства 2, то при загрузке, где-то в самом начале, они раскидываются на video0 и video1, а когда udev начинает назначать имена, получается чехарда. А раз устройства два, то video2 всегда свободно. Пусть это и будет вэб камера. Имя video веб камере тоже дано не спроста. Дело в том, что skype видит только устройства video в каталоге /dev. Что-то типа /dev/webcam skype просто не увидит, и сказать ему о том, где камера нельзя.
А вот с ТВ тюнером проще. Его использует только tvtime, а ему можно шепнуть на ушко где искать тюнер. Так я и сделал. Открыл ~/.tvtime/tvtime.xml и поменял
<option name="V4LDevice" value="/dev/video0"/> на
<option name="V4LDevice" value="/dev/tuner"/>

Есть еще вариант. Вместо назначения имени устройству, сделать симлинки. То есть в файле 25-name-video-device.rules вместо NAME="video2" прописать SYMLINK+="video2". При этом устройства video0 и video1 будут существовать и так же рандомно назначаться, только симлинки будут делаться на конкретные железки с вышеуказанными идентификаторами.  
Я так делать не стал потому, что не хотел делать лишний клик в программе  Komoso для выбора устройства.  В моем решении устройство video только одно и Komoso только его (веб камеру) и видит. В общем, кому что больше нравится.

Читать далее...

О чем собственно речь. Дело в том, что kopete до сегодняшнего дня упорно отказывался слать файлы по xmpp. Ошибка эта была мной замечена еще во времена kde 4.2.x и до сих пор в стабильной ветке не исправлена. Подробней можно почитать на KDE Bug Tracking System. Там же можно найти патч для kopete, который эту ошибку исправляет. За патч спасибо Антону Ревунову.

Теперь собственно давайте этот патч поставим.

1. Для начала скачаем сам патч и исходники пакета kdenetwork, в состав которого входит kopete. Предположим, что все скаченный файлы лежат в домашнем каталоге.

2. Распакуем архив

tar -xvf kdenetwork-4.3.4.tar.bz2

3. Скопируем и применим патч.

cp jabberbasecontact.cpp.patch ~/kdenetwork/kopete
cd ~/kdenetwork/kopete
patch -p1 < jabberbasecontact.cpp.patch


4. Сконфигурирум, скомпилируем и установим пропатченный kopete.

cd ~/kdenetwork
cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
cd ~/kdenetwork/kopete
make
sudo make install


Вот собственно и все. Удачи

Читать далее...

Не знаю как вам, а мне Caps Lock изрядно надоел. Расположен он как-то не по человечески, постоянно на него попадаешь. Практической пользы от него я не вижу абсолютно ни какой. Думаю, что мало кому необходимо постоянно что-то писать большими буквами. У меня такая необходимость возникает раз в год, и ради этого я могу обойтись клавишей Shift. В общем было решено эту не нужную клавишу отключить.

Открываем файл /usr/share/X11/xkb/keycodes/xfree86 и находим там строку <CAPS> = 66;. Данная строка означает, что клавиша с кодом 66 есть Caps Lock. Для того, чтобы xserver забыл про Caps Lock, нужно задать код не существующей клавиши, например 250. Вот и все, перезапускаем иксы и радуемся.

UPD: Как показала практика, назначение кода не существующей клавиши приводит к странным последствиям. У меня, например, перестали работать ctrl+alt+F1, F2 и т.д. Поэтому вышеуказанную строку я просто закомментировал, вот так
// <CAPS> = 66;

Читать далее...

Хочу представить вашему вниманию расширение для OpenOffice OooFBTools. Данное расширение предназначено для конвертации документов из форматов, поддерживаемых OpenOffice.org Writer в формат FictionBook2. Но это не просто конвертор, это еще и инструмент для форматирования и разметки. После обработки и конвертации документа при помощи OooFBTools практически не требуется его дополнительная правка в редакторе fb2 формата. То есть быстро и достаточно удобно можно получить вашу любимую книгу в формате fb2.

Фактически в расширении реализованы почти все основные возможности формата fb2. Вот лишь небольшой список возможностей:

  1. Экспорт основных элементов структуры документа (структуры текста, сносок и гиперссылок, стилей абзацев, аннотаций, цитат, поэм, эпиграфов, картинок, простых и сложных таблиц и пр.).
  2. История документа.
  3. Аннотации к документу.
  4. Реализовано 10 уровней вложения заголовков.
  5. Возможность удаления пустых строк.
  6. Экспорт ссылок внутри документа.
  7. Автоматическое заполнение полей формы конвертора (автор, название, аннотация и пр.).
  8. Корректор текста - замена кавычек "елочкой", удаление лишних пробелов и многое другое.

Скачать расширение OooFBTools можно по этой ссылке. В пакете с расширением имеется очень подробная инструкция по установке и использованию OooFBTools в формате pdf. С первого взгляда данная инструкция может показаться немного сложной, по этому я хотел бы привести пример быстрого создания fb2 книги из простого текстового документа. В моем описании будет показан лишь минимальный набор функций, необходимый для создания fb2 книги, но в дальнейшем, на основе моей инструкции, будет намного проще разобраться со всеми остальными функциями.


В качестве исходного файла возьмем книгу Линуса Торвальдса "Just for fun" в формате txt. Открываем в OpenOffice Writer и видим не очень приятную картину.

Книга в таком виде нам не нужна. Для начала воспользуемся инструментом "Загрузка шаблона стилей в документ" в меню OOoFBTools и затем нажмем клавишу F11. В итоге получим окно со списком стилей как показано на рисунке.



Здесь вы видите список предустановленных стилей, необходимых для форматирования документа. Назначение многих этих стилей можно понять из названия. Например стиль абзаца "Book Title" необходим для выделения в тексте названия книги. К ним мы еще вернемся.

Как мы говорили выше, форматирование исходного текста ни куда не годиться. Форматировать его ручками? Конечно нет. Для этого существует инструмент "Корректор текста". Выберем его в меню OOoFBTools. В появившемся окне отметим необходимые пункты и нажмем "Принять".


После этого средствами OOo Writer установим выравнивание текста по ширине. Теперь стало более красиво. Не пугайтесь, если не видите абзацев, точней красной строки. Так и должно быть. После конвертирования в полученном fb2 файле все абзацы будут там где должны быть. Скажу сразу, инструмент "Корректор текста" работает очень качественно. Мной было скорректировано и прочитано 5 книг (то есть я должен был видеть все недочеты), и ни в одной я не разу не встретил результатов ошибок Корректора текста. Хотя тут многое зависит и от исходного файла.

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



Я намеренно не стал вносить в тест книги ее автора и название. Делал я ее для себя и мне достаточно видеть все эти моменты в списке книг в моей читалке. Но вы без труда сможете это сделать по аналогии с эпиграфом.

Теперь разметим главы. Главы размечаются при помощи стилей "Level" 1, 2, 3 и т.д. до десяти. В чем суть? Допустим есть книга, состоящая из 3 частей по 5 глав в каждой. Соответственно части помечаем как Level1, а главы как Level2, то есть получаем иерархию.



Здесь "Введение" размечено как Level1, а "По следам одной революции" как Level2. Собственно после разметки глав книга готова к комфортному чтению и можно приступать к конвертации. В меню OOoFBTools выбираем "Экспорт в fb2 формат" и в появившемся окне заполняем всю необходимую информацию (жанр, автор, название и пр.). Жмем "Создать fb2-файл" и все. Полученный файл можно загружать в любимую читалку и наслаждаться чтением.

А вот так книга выглядит в FBReader.



Удачи
PS. Ну и собственно сама книга Just for fun в формате fb2

Читать далее...

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


CMake Error at /usr/share/cmake/Modules/ FindPackageHandleStandardArgs.cmake:57 (MESSAGE):  
   Could NOT find KdepimLibs (missing: KdepimLibs_CONFIG)


Понятно, что необходимо установить так называемые пакеты разработки (kdepim-devel и пр.), и естественно я их все, которые нашел в репозитории, поставил. Только вот толку было мало, точней вообще не было. По началу грешил на версию моего kdepim, все таки приложения я брал из SVN, а kde был из стабильной ветки. Как оказалось все это враки.

Немного погуглив, я нашел причину и способ решения. Начнем с причины. А причина банальна. Скрипт конфигурации не там ищет информацию об установленных пакетах, либо информация лежит не там.

Теперь способ решения. Как вы уже догадались, нужно сделать соответствующие симлинки. Так мы и поступим.

Создаем необходимые каталоги:


mkdir /usr/lib/KdepimLibs
mkdir /usr/lib/KdepimLibs/cmake
cd /usr/lib/KdepimLibs/cmake

Далее делаем симлинки в каталоге /usr/lib/KdepimLibs/cmake на содержимое каталога /usr/lib/cmake/KdepimLibs

ln -s /usr/lib/cmake/KdepimLibs/KDEPimLibsLibraryTargetsWithPrefix-release.cmake KDEPimLibsLibraryTargetsWithPrefix-release.cmake

ln -s /usr/lib/cmake/KdepimLibs/KDEPimLibsLibraryTargetsWithPrefix.cmake KDEPimLibsLibraryTargetsWithPrefix.cmake

ln -s /usr/lib/cmake/KdepimLibs/KdepimLibsConfig.cmake KdepimLibsConfig.cmake

ln -s /usr/lib/cmake/KdepimLibs/KdepimLibsConfigVersion.cmake KdepimLibsConfigVersion.cmake

Вот собственно и все. Удачи!

Читать далее...

Предлагаю вашему вниманию маленький tips'n'tricks по использованию клавиши "tab" в bash. Далее по тексту "2tab" - двойное нажатие клавиши "tab".

1. Забыли как пишется команда... ну скажем checkinstall? Нет ни чего проще вспомнить. Набираем первые несколько букв команды, жмем "2tab" и получаем список возможных команд.

2. "/ 2tab" покажет структуру каталога "/". Выводит список всех каталогов, включая скрытые.

3. "* 2tab" покажет все подкаталоги в текущем каталоге. Вывод аналогичен ls.

4. "~ 2tab" выведет весь список пользователей из /etc/passwd.

5. "$ 2tab" покажет все переменные окружения.

6. "@ 2tab" покажет содержимое /etc/hosts.

Читать далее...

Вот люблю я Оперу, пользуюсь ей лет наверно 8. Естественно пробовал и другие браузеры, но не то, вот нету чего-то, чего не пойму. Хотя суть не в этом.

Столкнулся я с одной странной проблемой, оперная качалка не хочет мне показывать размер загружаемого файла и соответственно время, а файлы .tar.bz2 вообще скачивает битые. В прямом смысле битые, tar говорит: "Битый архив и все тут". А если качаю тот же файл с того же места, но kget или wget, все хорошо. Где-то в интернетах говорят, что это из-за всяких прокси и натов провайдера, но почему только Opera?

Ну да ладно. Скачав очередной битый .tar.bz2, я решил, хватит. Ведь умеют же виндовые качалки "внедряться" во всякие браузеры, а почему бы kget не внедрить в Opera? Не вижу причин чтобы этого не сделать. И сделать это очень просто.
Открываем Opera, идем в "Инструменты -> настройки -> загрузки" и убираем галочку с "Скрыть типы, открываемые Opera". Теперь в списке находим, ну например злосчастный bz2 и жмем "изменить". Дальше делаем как на скриншоте.



Повторяем эти действия для других расширений. Вот собственно и все. Таким же образом можно вместо kget указать другую качалку.
Удачи.

Читать далее...

JS-Kit Comments