RU Linux

Etch-backports: cоздание бекпортов новых версий программ в Debian и Ubuntu на примере Etch и rtorrent 0.8.5

Порой в стабильной версии пакетного дистрибутива Linux нет новой версии какой-нибудь нужной программы. Что такое бекпорты и где их искать, думаю, понятно. Но что делать когда их там нет? Не менять же дистрибутив из за одного пакета. Очевидно — сделать бекпорт самому. Чем и займёмся на примере rtorrent 0.8.5 и Debian 4 Etch.

Deb-пакет представляет собой целую кучу файлов специального вида, поэтому подготовить их с нуля и собрать пакет имея только оригинальные исходники rtorrent — задача нетривиальная. Этим пусть майнтейнеры пакетов занимаются. Убедившись что пакет для rtorrent 0.8.5 есть в Debian Testing, упрощаем задачу до сборки под Debian 4 Etch пакета rtorrent от Debian Testing.

Пакеты в Debian и Ubuntu собираются из специальных пакетов-исходников, которые хранятся в репозитариях исходников. Добавляем нужные нам репозитарии исходников в /etc/apt/sources.list:

deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main
deb http://www.backports.org/debian/ etch-backports main contrib non-free
deb-src http://www.backports.org/debian/ etch-backports main
deb http://ftp.us.debian.org/debian etch main contrib non-free
deb-src http://ftp.us.debian.org/debian etch main
deb-src http://ftp.us.debian.org/debian testing main

Т.е. одновременно подключены репозитарии стабильных пакетов и исходников нестабильных пакетов, из которых будем бекпортировать. Скачиваем списки пакетов как обычно:

aptitude update

Далее скачиваем в текущий каталог свеженький исходный пакет rtorrent:

mkdir src
cd src
apt-get source rtorrent

Глядим в файл rtorrent-0.8.5/debian/control и видим такое:

Build-Depends: debhelper (>= 5), cdbs, libtorrent-dev (>= 0.12.5),
               libsigc++-2.0-dev, libcurl4-openssl-dev, libncursesw5-dev,
               bc, libxmlrpc-c3-dev

Это список пакетов, которые надо поставить, чтобы собрать пакет rtorrent. Дальше, в общем случае, алгоритм действий не детерминирован. Надо исходя из соображений совместимости библиотек, их наличия в репозитариях и бекпортах, минимальных требований rtorrent и, наконец, проб и ошибок, удовлетворить все зависимости. С каждым пакетом варианта всего три: поставить из стабильного репозитария, возможно понизив требуемую версию, поставить из бекпортов, либо сделать бекпорт самому :) Пробив версии пакетов через packages.debian.org, в данном случае верным решением кажется сделать бекпорт libtorrent-dev, поставить libcurl3-openssl-dev вместо libcurl4-openssl-dev, а остальное поставить из стабильных репозитариев. Забегая вперед скажу, что если так сделать, rtorrent не соберется потому что в Debian 4 Etch слишком старая библиотека libxmlrpc-c3 и ее тоже придётся бекпортить, а уже при работе с rtorrent выяснится наличие бага в официальной сборке curl в Debian 4, из за которого некоторые торренты просто не качаются, решается бекпортом новой версии curl (см. ниже) Итого, ставим что есть:

aptitude install debhelper cdbs libsigc++-2.0-dev libncursesw5-dev bc

Дальше бекпортим libtorrent. Скачиваем исходный пакет:

apt-get source libtorrent11

Дальше дополняем лог изменений пакета, для чего есть специальная команда:

cd libtorrent-0.12.5
dch -i

В лог добавится фрагмент по шаблону и откроется редактор nano. К номеру версии пакета из Testing приписываем суффикс бекпорта ~bpo+1., гордо пишем свое имя и почту, сохраняем лог, запускаем сборку пакета:

debuild -us -uc

Ждем пока все скомпилируется. Если все ок, то в каталоге уровнем выше должны появиться deb-пакеты, ставим их:

cd ..
dpkg -i libtorrent11_0.12.5-2~bpo+1_i386.deb libtorrent-dev_0.12.5-2~bpo+1_i386.deb

Аналогично, бекпортим libxmlrpc-c3 и ставим полученные пакеты:

dpkg -i libxmlrpc-c3_1.06.27-1~bpo+1_i386.deb libxmlrpc-c3-dev_1.06.27-1~bpo+1_i386.deb

Теперь можно бекпортить и ставить rtorrent:

cd rtorrent-0.8.5
dch -i
debuild -us -uc
cd ..
dpkg -i rtorrent_0.8.5-2*.deb

Готово.

Отмечу возникшие при создании бекпорта проблемы. При неудачной сборке rtorrent в первый раз ошибку пришлось искать в логах configure и гуглить, чтобы додуматься libxmlrpc-c3 бекпортить тоже. Ещё после первой неудачной сборки rtorrent уже нельзя пересобрать так как остаются какие-то мешающие повторной сборке файлы. Приходится каталог rtorrent-0.8.5 удалять и делать заново apt-get source rtorrent. Отсутствие таких ошибок имеют ввиду, когда говорят о повышении качества пакетов и поддержке двойной компиляции, заявленной в целях релиза Debian 6.

UPD: Узнал как правильно именовать backport-пакеты. К имени оригинального пакета добавляется суффикс вида ~bpo<версия_debian>+<версия_бекпорта>, например ~bpo40+1. Указываем это в ченджлоге, а _i386 конце добавляется автоматически при сборке.


UPD: Сделал Etch backport для libxmlrpc-c3 1.16 из Debian Experimental и пересобрал с новой версией rtorrent так как с libxmlrpc-c3 1.06 некорректно работает веб-морда rutorrent. Новые файлы во вложении.


UPD: Столкнулся с проблемой в работе rtorrent под Debian, решаемой сборкой новой версии curl с поддержкой асинхронного разрешения DNS через ares.

Пакет для c-ares и dev можно взять тут: http://apt.byteme.org.uk/pool/main/c/c-ares/

Чтобы собрать пакет curl необходимо обновить debhelper и quilt из бекпортов, сделать и поставить бекпорт libssh2-1 и libssh2-1-dev, дальше так:

cd ~/src
apt-get source libcurl3
nano curl-7.19.5/debian/rules
# деалем --disable-ipv6 --enable-ares
dch -i
# пишем ченджлог
aptitude install autoconf libtool automake1.9 libgnutls-dev stunnel libldap2-dev libgcrypt11-dev
debuild -us -uc

Далее ставим полученные пакеты libcurl, libcurl-dev и пересобираем пакеты xmlrpc/libtorrent/rtorrent.

Ниже ссылки на deb-пакеты, необходимые для установки rtorrent 0.8.5 под Debian 4 Etch.

UPD: Кто-то закинул ссылку на этот пост на ЛОР. В комментариях говорят checkinstall надо использовать, а не бекпортить, так как это проще. Про checkinstall я не знал, надо будет попробовать, но думаю его лучше использовать когда нет нужного пакета в Testing, Unstable или Experimental для бекпорта. Во-первых, все сложные моменты с необходимостью обновления заранее неизвестно каких пакетов остаются, в данном случае xmlrpc и curl все равно нужно обновлять, иначе rtorrent соберется, но просто не будет работать как надо. Во-вторых, половину собранных пакетов в процессе накладывали на исходники какие-то дебиановские патчи, думаю они не просто так. В-третьих, непонятно как у пакета checkinstall с зависимостями, не выйдет ли это боком при обновлении системы если надо пересобрать пакет типа curl, от которого зависят другие пакеты Debian. В-четвертых, не создадутся dev-пакеты и сопутствующие пакеты, например при сборке единственного source-пакета libcurl3 создаются deb-пакеты libcurl3-gnutl, libcurl4-gnutls-dev, libcurl4-openssl-dev, curl, libcurl3 и libcurl3-dbg, я эти подробности опустил, но от этих пакетов зависят другие пакеты, checkinstall все эти имена знать не может заранее, как тут быть?

Блог: RU Linux

Tor: анонимность в Сети, установка в Debian и Ubuntu Linux

Tor: Анонимность в Сети, установка в Debian Lenny

Tor — это сеть виртуальных туннелей и специальный софт, который используют для улучшения безопасности и приватности в Сети домашние и корпоративные пользователи, журналисты, правозащитники и работники общественных организаций, военные. Cтавится в Debian Lenny очень легко:

apt-get install tor tor-geoipdb

В других версиях Debian и Ubuntu устанавливать Tor по инструкции.

Локальный прокси Privoxy установится по зависимостям, в первой строке его файла конфигурации /etc/privoxy/config вставляем настройку для соединения с Tor:

forward-socks4a / 127.0.0.1:9050 .

и комментируем логирование #logfile logfile

Запускаем Privoxy:

/etc/init.d/privoxy start

В Firefox (Iceweasel) устанавливаем плагин Torbutton, включаем работу браузера через Tor кнопкой внизу справа и заходим на страницу для проверки Tor. Если видим зеленую луковицу, как на картинке, то все ок. Если нет, то можно рестартнуть Privoxy и Firefox и попробовать снова. Если опять лук не зеленеет, то читаем инструкцию.

Torbutton изолирует Cookies и опасные скрипты, отключает историю, отключает плагины для эффективного использования Tor в браузере:
Torbutton

Блог: RU Linux

Установка новых программ и обновлений через интернет из бекпортов в Debian и Ubuntu Linux

С чем едят пакеты в Debian/Ubuntu Linux вкратце написано в моем старом посте. С тех давних пор стали доступны инкрементальные обновления, криптоподпись пакетов, а вместо apt-get теперь модно использовать aptitude. Бывает на некоторых компьютерах прочно приживаются версии дистрибутивов Linux, которые вроде бы и устарели, а вроде и работают хорошо и в обновлении не нуждаются. Если в такой ситуации требуется обновить пару-тройку программ малой кровью, то можно использовать "бекпорты". Бекпорт в контексте установки программ в Linux -- это сборка новой версии программы под старый дистрибутив. Для Debian бекпорты живут на backports.org, а бекпорты Ubuntu обитают на archive.ubuntu.com.

Репозитарии с бекпортами позволяют удобно устанавливать через интернет новые версии некоторых программ не обновляя весь дистрибутив. Для подключения официальных бекпортов Debian нужно в файл /etc/apt/sources.list вписать для Debian Lenny такую строку:

deb http://www.backports.org/debian/ lenny-backports main contrib non-free

А для Debian Etch -- такую:

deb http://www.backports.org/debian/ etch-backports main contrib non-free

Далее скачиваем список пакетов:

aptitude update

После этого в Debian все-равно будут отображаться в менеджерах пакетов и ставиться по умолчанию пакеты с дисков или основного репозитария, а чтобы поставить или обновить пакет до версии из бекпорта, нужно указать явно:

 aptitude -t etch-backports install package

Где package -- имя устанавливаемого или обновляемого пакета в бекпортах. Вместо -t etch-backports нужно использовать -t lenny-backports у кого Debian Lenny.

Еще можно установить ключ для подтверждения подлинности пакетов бекпортов:

 aptitude install debian-backports-keyring

Для Ubuntu аналогично, только в sources.list вписываем примерно так:

 deb http://archive.ubuntu.com/ubuntu hardy-backports main universe multiverse restricted
Блог: RU Linux

Ускорение работы Firefox (Iceweasel)

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

Обновления пакетов

Обновил следующие пакеты в Linux: libmozjs1d xulrunner-1.9 libpango1.0-0 libpango1.0-common libssl0.9.8 openssl

Еще бы обязательно обновил все что связано с GTK и аккуратно обновил бы libc6. В моем случае уже стояли последние для Debian Lenny версии.

Тюнинг Firefox

Прознал что полезно отключить ipv6 и попутно нашел еще массу твиков. Нужно создать файл ~/.mozilla/firefox/xxxxxxxx.default/user.js и в него вписать такое:

user_pref("network.http.pipelining", true); 
user_pref("network.http.proxy.pipelining", true); 
user_pref("network.http.pipelining.maxrequests", 8); 
user_pref("content.notify.backoffcount", 5); 
user_pref("plugin.expose_full_path", true); 
user_pref("ui.submenuDelay", 0); 
user_pref("content.interrupt.parsing", true); 
user_pref("content.max.tokenizing.time", 2250000); 
user_pref("content.notify.interval", 750000); 
user_pref("content.notify.ontimer", true); 
user_pref("content.switch.threshold", 750000); 
user_pref("nglayout.initialpaint.delay", 0); 
user_pref("network.http.max-connections", 48); 
user_pref("network.http.max-connections-per-server", 16); 
user_pref("network.http.max-persistent-connections-per-proxy", 16); 
user_pref("network.http.max-persistent-connections-per-server", 8); 
user_pref("browser.cache.memory.capacity", 65536); 
user_pref("network.dns.disableIPv6", true); 

Перезапустить Firefox и проверить зайдя в нем на about:config применились ли параметры.

Очень помогло. Теперь в Firefox можно нормально работать, хотя панелька запоминания пароля так и выезжает с тормозами и табы переключаются позорно.

Установка официальной сборки

UPD: Firefox 3.5 c официального сайта работает значительно быстрее (загрузка, скролл, переключение табов, рендер, словом все!), чем Iceweasel 3.х в Debian Lenny и тем более Iceweasel 2.х в Debian Etch. Для последнего пришлось компилировать GTK 2.10 так как иначе новый Firefox не запускается.

Блог: RU Linux

Лог загрузки Debian и Ubuntu

Команда dmesg и содержимое файла /var/log/dmesg позволяют посмотреть сообщения ядра Linux при последней загрузке. При этом строки, которые видно на экране при загрузке Debian, заметно отличаются от этих самых сообщений ядра так как содержат вывод скриптов инициализации. Иногда получается что какое-нибудь сообщение об ошибке мелькает при загрузке, но потом в dmesg его невидно. Что делать? А варианты такие...

  1. Кнопками Shift+PgUp/Shift+PgDn можно листать не влезающие в экран сообщения.
  2. При загрузке нажатием Ctrl+S можно остановить вывод сообщений на экран, Ctrl+Q -- продолжить.
  3. В файле /etc/default/bootlogd поправить BOOTLOGD_ENABLE=No на BOOTLOGD_ENABLE=Yes и с комфортом смотреть лог загрузки в файле /var/log/boot

UPD. Последнее я пробовал только в Debian, очень полезная штука, а в Ubuntu, говорят, нормально не работает с тех пор как появилась прогрессивная система загрузки Upstart. Сейчас может и починили, может кто проверить?

Блог: RU Linux

Беспроводная USB RF клавиатура и мышь A4Tech G6 Saver GKS-670MD под Linux

Беспроводная USB RF клавиатура и мышь A4Tech G6 Saver GKS-670MD Домашний компьютер у меня используется прямо с дивана, в основном, для просмотра фильмов и телевидения, лазания по интернету да слушания музыки. Недавно клавиатура попила кофе и была заменена на совершенно аналогичную. После вскрытия упаковки, уже дома, оказалось что провод у детища китайской промышленности в новой партии укоротился и клава не достает до дивана. Ну и мышиный хвост под ногами к тому времени порядочно поднадоел.

Беспроводную клавиатуру я попробовал в действии лет 5 назад. Инфракрасная BTC жрала батарейки, работала только в прямой видимости ресивера, зато вставлялась в разъем DIN5 и вопроса о драйверах и совместимости с ОС не возникало. Потом мне долго было хорошо с проводами. И вот, когда отважился наконец на беспроводность, оказалось техника шагнула далеко вперед и нынче в моде две технологии: RF и Bluetooth. Последняя не рассматривалась по причине скудного выбора, дороговизны подобных экспонатов в местном медиамаркете и отсутствия синего зуба на домашнем десктопе.

Плата расширения с USB-портами на чипсете VIA

RF-наборов разных оказалось пруд пруди в пределах 2000 руб. Повертев в руках несколько моделей я понял, что все эти наборы подключаются к компьютеру через USB RF-ресивер. На всех написана совместимость с ОС семейства Windows. Консультант в магазине сказал что драйвера не нужны, но про Linux, само собой, ничего не знал. И тот факт, что и мышь и клавиатура работают через один RF-ресивер, породил сомнения. Я отправился поискать истории успеха использования USB RF-наборов под Linux. Нагуглил пару невнятных отзывов и несколько багрепортов с глюками в Ubuntu и Solaris: то вставлять ресивер после загрузки надо, то мышка не работает одновременно с клавиатурой.

Я все ж таки решил рискнуть и, приготовившись к худшему, купил за 1200 руб. беспроводной комплект из клавиатуры и мыши A4Tech G6 Saver GKS-670MD. Я выбрал его за рекордно малое энергопотребление, а жена -- за малый размер: клавиатура ноутбучного типа, без нампада.

Еще взял плату с 5-ю USB-портами на чипе VIA. Давно хотел, но сомневался будет ли в линуксе работать. Решил сразу разрешить все сомнения.

Вкрутил плату с USB, вставил по 2 батарейки АА в клавиатуру и мышь, загрузил десктоп с Debian 4 Etch GNU/Linux, воткнул во внутренний разъем платы c USB-портами ресивер напрямую без удлинителя, провел синхронизацию девайсов с ресивером как написано в паспорте и узрел вывод команды dmesg:

usb 1-2: new low speed USB device using uhci_hcd and address 3
usb 1-2: configuration #1 chosen from 1 choice
input: A4Tech RF USB Receiver as /class/input/input5
input: USB HID v1.11 Keyboard [A4Tech RF USB Receiver] on usb-0000:00:04.2-2
input: A4Tech RF USB Receiver as /class/input/input6
input: USB HID v1.11 Mouse [A4Tech RF USB Receiver] on usb-0000:00:04.2-2

USB RF-ресивер
Заработало! Все свежекупленные девайсы оказались совместимы с древним ядром Linux 2.6.18.

В процессе пользования выяснилось, что мышь не очень плавно двигается и клавиатура глотает буквы. После выноса ресивера из недр десктопа на него сверху с использованием прилагаемого в комплекте удлинителя все недомогания исчезли. У меня сам компьютер и ресивер находятся под столом, клавиатура и мышь без проблем работают со стола, с пола, с дивана в радиусе 4 метра. Дальше не пробовал. Пользуем с удовольствием уже 3 дня. Полет нормальный!

P.S. В компьютерном магазине ОК напротив мы встретили тот же набор уже за 999 руб. Вариант с полноразмерной клавиатурой стоил 1080 против 1700 руб. в магазине где я отоварился (Polaris в Медиаплазе на Стасова, Краснодар). А в интернет-магазине я нашел потом купленный мной за 1200 рублей комплект A4Tech GKS-670MD в серебристом исполнении и OEM-варианте вообще за 947 рублей.

Блог: RU Linux

Приемы работы в Konqueror, контекстные сервисные меню

Накопилась очередная порция заметок об этом замечательном файловом менеджере и браузере в дополнение к предыдущему посту о хитростях Konqueror. Часть упомянутых функций вынесена в плагины из пакета konq-plugins.

Некоторые полезные функции Konqueror можно активировать только правкой конфигов.

Закладки

Ну, что что Ctrl+T их открывает, а Ctrl-W -- закрывает, это понятно. Но не многие знают, что менять закладки в Konqueror местами можно перетягивая их средней кнопкой мыши, тобишь зажав колесо.

В меню Window находятся функции разбиения текущей закладки на две по вертикали или горизонтали, причем разбить можно несколько раз.

Браузер

Чтобы сохранить страницу в конке в файл с картинками и стилями, нужно использовать плагин Archive Web Page в меню Tools. Архив war на поверку оказывается архивом tar.gz, который Konqueror умеет предпросматривать и открывать без распаковки.

Gmail можно использовать в стандартном режиме а также просматривать навороченные Интернет-сайты если в меню Tools/Change Browser Identification выбрать Firefox.

Файл-менеджер

Чтобы работать с файлами на удаленной машине по SSH достаточно зайти по адресу fish://логин@хост/ либо fish://логин@хост:порт/ Через fish умеют прозрачно работать с файлами Kate, Kwrite и другие приложения KDE.

Для общих ресурсов в рабочей группе Windows используем smb://

Ну и напоследок, контекстные меню для пользовательских действий с файлами и каталогами настраиваются в каталоге ~/.kde/share/apps/konqueror/servicemenus. Например у меня настроены такие действия...

Массовое переименование файлов с русскими именами в транслит

~/.kde/share/apps/konqueror/servicemenus/renameTranslit.desktop:

[Desktop Entry]
ServiceTypes=all/all
Actions=renameTranslit
X-KDE-Submenu=Rename

[Desktop Action renameTranslit]
Name=Transliterate Cyrillic
Icon=background
Exec=sh /home/sin/renameTranslit.sh %u

где renameTranslit.sh это скрипт переименования:

#! /bin/bash
TRS=`echo "$1" | sed "y/абвгдезийклмнопрстуфхцы/abvgdezijklmnoprstufxcy/"`
TRS=`echo $TRS  | sed "y/АБВГДЕЗИЙКЛМНОПРСТУФХЦЫ/ABVGDEZIJKLMNOPRSTUFXCY/"`
TRS=${TRS//ч/ch};
TRS=${TRS//Ч/CH} TRS=${TRS//ш/sh};
TRS=${TRS//Ш/SH} TRS=${TRS//ё/jo};
TRS=${TRS//Ё/JO} TRS=${TRS//ж/zh};
TRS=${TRS//Ж/ZH} TRS=${TRS//щ/sh};
TRS=${TRS//Щ/SH} TRS=${TRS//э/je};
TRS=${TRS//Э/JE} TRS=${TRS//ю/ju};
TRS=${TRS//Ю/JU} TRS=${TRS//я/ja};
TRS=${TRS//Я/JA} TRS=${TRS//ъ/_};
TRS=${TRS//ъ/_} TRS=${TRS//ь/_};
TRS=${TRS//Ь/_} TRS=${TRS// /_};
TRS=${TRS//+/_}
#echo "$TRS"
mv -v "$1" "$TRS"

Изменение размера изображения выбранных в Konqueror файлов

~/.kde/share/apps/konqueror/servicemenus/resizeImages.desktop:

[Desktop Entry]
ServiceTypes=image/*
Actions=rImg100x150;rImg150x200;rImg200x300;rImg225x300;rImg250x336;rImg300x400;rImg300x450;
rImg480x640;rImg600x800;rImg768x1024;rImg150x100;rImg200x150;rImg300x200;rImg300x225;rImg336x250;
rImg400x300;rImg450x300;rImg640x480;rImg800x600;rImg1024x768
X-KDE-Submenu=Resize Image

[Desktop Action rImg100x150]
Name=100x150
Icon=background
Exec=mogrify -resize 100x150^ -gravity center -extent 100x150 -quality 85  +profile "*" %U

[Desktop Action rImg150x200]
Name=150x200
Icon=background
Exec=mogrify -resize 150x200^ -gravity center -extent 150x200 -quality 85  +profile "*" %U

[Desktop Action rImg200x300]
Name=200x300
Icon=background
Exec=mogrify -resize 200x300^ -gravity center -extent 200x300 -quality 85  +profile "*" %U

[Desktop Action rImg225x300]
Name=225x300
Icon=background
Exec=mogrify -resize 225x300^ -gravity center -extent 225x300 -quality 85  +profile "*" %U

[Desktop Action rImg250x336]
Name=250x336
Icon=background
Exec=mogrify -resize 250x336^ -gravity center -extent 250x336 -quality 85  +profile "*" %U

[Desktop Action rImg300x400]
Name=300x400
Icon=background
Exec=mogrify -resize 300x400^ -gravity center -extent 300x400 -quality 85  +profile "*" %U

[Desktop Action rImg300x450]
Name=300x450
Icon=background
Exec=mogrify -resize 300x450^ -gravity center -extent 300x450 -quality 85  +profile "*" %U

[Desktop Action rImg480x640]
Name=480x640
Icon=background
Exec=mogrify -resize 480x640^ -gravity center -extent 480x640 -quality 85  +profile "*" %U

[Desktop Action rImg600x800]
Name=600x800
Icon=background
Exec=mogrify -resize 600x800^ -gravity center -extent 600x800 -quality 85  +profile "*" %U

[Desktop Action rImg768x1024]
Name=768x1024
Icon=background
Exec=mogrify -resize 768x1024^ -gravity center -extent 768x1024 -quality 85  +profile "*" %U

[Desktop Action rImg150x100]
Name=150x100
Icon=background
Exec=mogrify -resize 150x100^ -gravity center -extent 150x100 -quality 85  +profile "*" %U

[Desktop Action rImg200x150]
Name=200x150
Icon=background
Exec=mogrify -resize 200x150^ -gravity center -extent 200x150 -quality 85  +profile "*" %U

[Desktop Action rImg336x250]
Name=336x250
Icon=background
Exec=mogrify -resize 336x250^ -gravity center -extent 336x250 -quality 85  +profile "*" %U

[Desktop Action rImg300x200]
Name=300x200
Icon=background
Exec=mogrify -resize 300x200^ -gravity center -extent 300x200 -quality 85  +profile "*" %U

[Desktop Action rImg300x225]
Name=300x225
Icon=background
Exec=mogrify -resize 300x225^ -gravity center -extent 300x225 -quality 85  +profile "*" %U

[Desktop Action rImg400x300]
Name=400x300
Icon=background
Exec=mogrify -resize 400x300^ -gravity center -extent 400x300 -quality 85  +profile "*" %U

[Desktop Action rImg450x300]
Name=450x300
Icon=background
Exec=mogrify -resize 450x300^ -gravity center -extent 450x300 -quality 85  +profile "*" %U

[Desktop Action rImg640x480]
Name=640x480
Icon=background
Exec=mogrify -resize 640x480^ -gravity center -extent 640x480 -quality 85  +profile "*" %U

[Desktop Action rImg800x600]
Name=800x600
Icon=background
Exec=mogrify -resize 800x600^ -gravity center -extent 800x600 -quality 85  +profile "*" %U

[Desktop Action rImg1024x768]
Name=1024x768
Icon=background
Exec=mogrify -resize 1024x768^ -gravity center -extent 1024x768 -quality 85  +profile "*" %U

Выглядит это так:

Блог: RU Linux
RSS-материал