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

понедельник, 16 марта 2009 г.

Compiz в xfce4. Debian GNU/Linux 5.0 Lenny

После обновления с Etch сменилось ядро. Соответственно, отпали дрова на видеокарту(если они были установлены не из стандартного репозитария). И как следствие отпал compiz.
Лечение.
1. Ставим драйвера:
apt-get install nvidia-glx nvidia-kernel-2.6.26-1-686
Учитывайте, что ядро у вас может быть другое.
2. Обновляем компиз(на всякий случай ;):
apt-get --reinstall install compiz compiz-core
3. Прописываем автостарт:

$ cat ~/.config/autostart/compiz.desktop
[Desktop Entry]
Name=No Name
Encoding=UTF-8
Version=1.0
Exec=/usr/bin/compiz --replace --fast-filter
X-GNOME-Autostart-enabled=true
$ cat ~/.config/autostart/compiz_start.desktop
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=compiz_start
Comment=Запуск декораций окон
Exec=/usr/bin/gtk-window-decorator --replace
StartupNotify=false
Terminal=false

Заметьте, что без второго файла работать толком не получится.
Вот, собственно и всё. Старая схема, работавшая в Etch теперь не поможет. Многие описания в гугле говорят, что всё делается проще с использованием файла /etc/xdg/xfce4-session/xfce4-session.rc, но у меня почему-то ни один wm стартовать оттуда не захотел.

четверг, 12 марта 2009 г.

Смена локали. Debian.

До недавнего времени использовал везде исключительно koi8-r. Но, всё течёт, всё изменяется. Решил перейти на utf-8.
Сама смена локали порблем не вызывает - dpkg-reconfigure locales и всё. С этим просто. Но дело в том, что имена всех файлов остаются в koi8-r. Тут пришлось немного поковыряться.
Первое, за что взялся - за колекцию музыки. Есть такая замечательная утилита EasyTag. Давно пользуюсь ей(все теги у меня уже давно в UTF). Она же умеет менять имена файлов в соответствии с тегами.
А вот для всех остальных файлов пришлось наваять маленький скриптик.
Для начала, копирую все файлы, которые надо переименовать в отдельную директорию. Далее, создаю временный файл с листингом этой директории:
ls -1 tmpdir/ > tmpfile
Этот файл надо слегка обработать. ls добавляет туда неотображаемые символы, которые в скрипте обрабатывать мне показалось сложновато. Я их просто убрал с помощью vim. В командном режиме:
%s/\e\[0m//g
Теперь собственно скрипт:

#!/bin/bash
#
STRN=$2

for((i=1;i<=$STRN;i++)) do
# Получаем каждое определённое имя файла в UTF по очереди.
UTFNAME=`cat tmpfile | iconv -f koi8-r -t utf-8 | tail -n ${i} | head -n 1`
# Получаем каждое отдельное текущее имя файла
KOI8NAME=`ls -1 ${1} | tail -n ${i} | head -n 1`
rename ${1}"${KOI8NAME}" new/"$UTFNAME"
done

Число STRN - количество файлов из листинга. Это число можно получить с помощью cat -n tmpfile. Директорию new создал руками. Всё. После отработки скрипта(в качестве первого аргумента даём ему tmpdir, а второго -количество файлов), в new будут лежать все наши файлики с именами в utf-8.

P.S. Перемещать файлы, предназначенные для переименования во временную директорию надо только с помощью cp! Никаких mc.

Update: В обсуждении этого способа на welinux.ru подсказали, что есть утилита convmv. Вердикт - гуглите, перед тем, как браться за что-то! :)

Update2: Оказывается всё ещё проще. В Debian есть пакет, специально предназначенный для смены локали на utf-8: utf8-migration-tool