Настраивая свой GNOME Display Manager, я заметил такую штуку, выводя графическую заставку на экран gdm предполагает, что соотношение сторон заставки 4:3. Затем gdm растягивает заставку на ширину моего монитора, в результате чего картинка получается, мягко говоря, искаженной. То есть, если в центре заставки был правильный круг, то при выводе картинки на широкоформатном мониторе этот круг получается овалом в ширину, что не есть красиво... Я так думаю...
Можно избежать этого казуса, заранее подогнав картинку под формат своего монитора.
Для примера возьмем тему для gdm "Slackware-GDM" с сайта gnome-look.org.
В Slackware установленные темы для gdm находятся по адресу /usr/share/gdm/themes. Интересующая нас картинка находится соответственно по адресу - /usr/share/gdm/themes/Slackware/bg/background.jpg, формат - 4:3, разрешение 1024х768 пикселей и выглядит в оригинале так:
Мой монитор имеет разрешение 1680х1050 и соответственно соотношение сторон 16:10 и растянутая до его размеров оригинальная картинка выглядит вот так:
Немного не то, не правда ли? Первая картинка поудачнее будет...
Для преобразования картинки будем использовать не gimp, хотя можно и его использовать, а консольную утилиту convert.
Итак, приступим...
Для начала выпрамляем руки, включаем мозги и вспоминаем остатки знаний математики со школьной скамьи.
Чтобы привести оригинальную картинку к формату 16:10 нужно ее ширину поделить на 16 и умножить на 10. Пока все просто.
(1024:16)*10=640
У нас получается прямоугольник размером 1024х640 пикселей, а наш оригинал имеет размер 1024х768. Значит высоту картинки придется подрезать ровно на 128 пикселей (по 64 пикселя сверху и снизу), для того чтобы растянутая картинка выглядела как в оригинале.
Это делаем с помощью утилиты convert и ее команды -shave.
convert -shave x64 background.jpg background_0.jpg
Можем полюбоваться на результаты нашего труда:
То что доктор прописал!
В принципе, этого достаточно, gdm правильно отобразит картинку:
Можно еще подогнать разрешение картинки под резолюцию монитора, дабы избавить систему от лишних перерасчетов при выводе картинки на экран, с помощью той же утилиты convert и ее команды -resize.
convert -resize 1680x1050 background_0.jpg background_1.jpg
Литература: