Решения тех проблем, с которым мне приходилось сталкиваться.

четверг, 31 мая 2007 г.

русский в текстовой консоли

Когда я пользовался debian я ставил пакет console-cyrillic. Он загружал нужные шрифты и настраивал сочетания клавиш для переключения между раскладками.

Теперь (по крайней мере в 7.04) эти же функции возложены на console-setup. Т.е. выполняем


sudo dpkg-reconfigure console-setup

и выбираем нужные параметры.

Кстати говоря, console-cyrillic, которым я таки до сего дня пользовался не нравился мне тем, что при старте во время загрузки портил splash-screen какими-то своими артефактами. Теперь я его удалил и все исчезло. Я доволен.

суббота, 26 мая 2007 г.

русскоязычные тэги в mp3

MP3 появился значительно раньше его свободного аналога OGG Vorbis, поэтому о unicode и национальных символах в момент его создания особенно не заметились.
Первая версия MP3-тэгов ID3v1 вообще не было ориентирована на многобайтные кодировки и на кодировки отличные от ISO8859-1. Но, надо было как-то хранить русские названия и их стали хранить, подразумевая, что они представлены в кодировке windows-1251. В системах, отличных от оффтопика это стало вызывать проблемы. Появились плагины, конвертирующие on-line кодировку в понятную системе, и это частично решало проблему.

С появлением ID3v2 стала доступна возможность использовать многобайтные кодировки. Но и тут было не всего гладко, подверсии ID3v2 поддерживали кодирование метаинформации по-разному, а некоторые плееры не считали нужным отличать, скажем, ID3v2.3 и ID3v2.4.

И тем не менее, на данные момент самым правильным способом хранения русских тэгов является использование Unicode внутри ID3v2 тэгов. Большинство современных программных плееров, а в последнее время и аппаратные плееры ориентируются именно 2-ую версию.

Если у вас есть коллекция песен в старом формате можно неспеша сконвертить ее в новый, использую замечательную программку EasyTag. Она умеет читать тэги из ID3v1 (в любой кодировке, это настраивается) и соотвественно записывать в "правильном" современном формате. Какая разновидность unicode (UTF-8, UTF-16) будет использована также настраивается.

пятница, 25 мая 2007 г.

swap и hibernate

Недавно случайно обнаружил, что при переходе в режим hibernate линукс сохраняет состояние памяти на swap-раздел. Т.е. если swap меньше размера памяти (или свободного места), то хибернация не удасться. А я-то думал, зачем, например, своп на гиг и тем более 2, если скорость общения с винчестером не позволяет за доли секунды перекидывать такие объемы, а следовательно если своп использован на несколько сот мегабайт, то получаем сильные тормоза.

К счастью, размер свопа, чтобы hibernate срабатывал всегда, можно увеличить, ну хотя бы добавив еще один раздел, ведь всего swap'ов может быть несколько :)

понедельник, 21 мая 2007 г.

Внешние субтитры в totem

Наверное, немногие из опытных linux-гуру пользуются такой достаточной простой программкой для воспроизведения видео, но по умолчанию в ubuntu применяется именно она.
На самом деле totem не так уж и прост, он максимально облегчен для пользователя и в этом его особенность. Так вот, речь о субтитрах. Если они находятся внутри самого файла, то проблем нет, включение-отключение производится через меню. Если же субтитры находятся в отдельном srt или sub файле, то есть два способа:


  • totem автоматически подгружает субтитры из файла с одноименным именем, но другим расширением, расположенным рядом с видео-файлов. Т.е. если у вас есть film.avi и film.srt в одном каталоге, то при открытии фильма будут загружены субтитры и управлением ими будет также доступно через меню, как если бы они были встроены в файл;

  • указать файл субтитров в командной строке. Формат таков:

    totem file:///path/to/video.avi#subtitle=video.srt


пятница, 11 мая 2007 г.

программа для работы с CD-audio

Сграбить диск, скопировать, посмотреть содержимое, установить название через CDDB - cdrdao

Список установленных пакетов

Вопрос: как посмотреть список пакетов установленных в системе?
Ответ:


dpkg --list

или

dpkg --list 'foobar*'

понедельник, 7 мая 2007 г.

язык интерфейса и локализация

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


  • LANG. Определяет собственно локаль (национальные особенности в представлении определенного вида данных). Пользуется наименьшим приоритетом, может быть переопределена другими переменными (см. далле);

  • LANGUAGE. Предпочитаемые языки интерфейса программ в порядке убывания. Не входит в POSIX стандарт, поддерживается программами, использующими GNU gettext;

  • Группа переменных LC_*. Позволяет установить раздельные языковые предпочтения для каждого типа локализуемой информации. Отдельно стоит обратить внимание на переменную LC_ALL. Если она определена, то она перекрывает все остальные настройки, т.е. имеет наивысший приоритет. Обычно, эту переменную используют в целях отладки, когда нужно быстро (временно) переключить все настройки локали на другой язык.


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

LANG=ru_RU.UTF-8
LANGUAGE=en_GB:en

Но не все программы "реагируют" на LANGUAGE. В частности firefox и thunderbird в таком случае продолжают использовать LC_MESSAGES или LANG (в указанном приоритете).
Т.е. более правильно будет сделать даже так:

LANG=ru_RU.UTF-8
LC_MESSAGES=en_GB

Мне пока неизвестны программы, которые "не понимают" LC_MESSAGES, но понимают LANGUAGE.

медиа-плеер

Только недавно узнал о хорошей программке аудио-плеере - audacious, сделанной по мотивам винамповского интерфейса. Не, ну сама она является форком другого плеера, beep-media-player, но мне она прежде всего напоминает xmms и винамп. От xmms прежде всего отличается работой под современной версией gtk.
Понимает winamp'овские скины - поставил классическую от 2-ой версии :)

суббота, 5 мая 2007 г.

Иконки на рабочем столе

Пользователи Windows привыкли видеть значки "Мой компьютер", "Корзина" на рабочем столе. Но в ubuntu среда GNOME настроена по умолчанию их не показывать. Исправить ситуацию можно с помощью gconf-editor.

/apps/nautilus/desktop/computer_icon_visible - отображать значок "Компьютер"
/apps/nautilus/desktop/home_icon_visible - отображать значок домашнего каталога
/apps/nautilus/desktop/trash_icon_visible - отображать значок корзины.
/apps/nautilus/desktop/network_icon_visible - отображать значок "Сеть".

четверг, 3 мая 2007 г.

gnome-help

В KDE konqueror понимает множество псевдо-протоколов в URL, например, man, с помощью которого порой удобно просматривать страницы документации. В GNOME это тоже работает, но браузеру придется вызывать внешнее приложение, которое называется yelp. Это - справочная система, способная в числе прочего форматировать и man-страницы.

вторник, 1 мая 2007 г.

переменные окружения

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

Существует несколько мест, в зависимости от того, является ли переменная общей для всех пользователей и используется ли на машине GUI вход в систему (xdm, gdm, kdm).


  1. Файл /etc/environment - общие переменные среды для всех пользователей. Читается системой стартовых скриптов, поэтому переменные видны всегда и для всех. Однако, важно отметить, что данный файл не является куском bash-скрипта, поэтому определить переменную через значения других не получится;


  2. "Профиль" интерпретатора команда. Для linux это обычно bash и соответственно ~/.bash_profile. Тут можно определить переменные специфичные для пользователя, но выполнен этот файл будет при запуске интерпретатора с ключом -l, а это обычно происходит, когда bash запускается процессом login. Другими словами, при локальном входе в систему через X данный файл прочитан не будет. Равно как не будет прочитан и при последующем запуске bash уже из "иксов";


  3. Стартовые скрипты среды окружения пользователя. Пока остановимся на GNOME, являющейся "родной" средой в ubuntu. Тут все просто: есть файлик ~/.gnomerc, исполняемый при входе в систему;


  4. Общие переменные можно также прописать в общем профиле интерпретатора команд. Для bourne-шеллов это etc/profile. Опять же, файл будет обработан только при входе в систему через процесс login.