Я последнее время частенько метаюсь между Gnome3, KDE 4 и Awesome. При этом выбор нужной WM/DE осуществлялся через GDM. Но при работе в Awesome/KDE использование гномовского GDM как минимум не оправдан. Смотрим зависимости GDM:
libcanberra
libxklavier
tcp_wrappers
gnome-session
upower
accountsservice
consolekit
xorg-xrdb
Как минимум, gnome-session вызывает подозрение. Он тянет за собой ещё некоторые специфичные для Gnome зависимости. Значит, нужен Display Manager способный использовать GTK или Qt на выбор, и не имеющий специфичных для одной среды зависимостей. Нам нужен лёгкий и гибкий дисплейный менеджер. Что для этого надо?
Среди нескольких подходящих проектов выделяется один -это LightDM. Он довольно лёгкий(меньше 10 000 строчек кода на C, а у GDM их почти в пять раз больше), среди написанных для него интерфейсов для логина(greeter's) есть как GTK интерфейс, так и Qt. Кроме того, есть ещё и greeter на базе WebKit.
Устанавливаем это чудо(Внимание! проект в активной разработке, и будет зарелизен только к выпуску Ubuntu 11.10, для которого и разрабатывается). Но разве арчевода чем-то таким испугаешь? Да и юзера бубунты тоже:)
Ставим в Ubuntu:
$ sudo add-apt-repository ppa:robert-ancell/lightdm
$ sudo apt-get update
$ sudo apt-get install lightdm lightdm-theme-webkit
В Arch:
$ yaourt -Sy lightdm lightdm-webkit-greeter
Теперь в /etc/lightdm.conf мы можем настроить всё под себя. Помним, что "#" в начале строки комментирует её, поэтому для указания опции убираем в начале строки этот символ, и правим значение идущее после символа "=":
В [UserManager] полезные опции:
#load-users = true #Указывать список имён пользователей в greeter или нет.
#minimum-uid= #Указать минимальнй UID пользователя, начиная с которого будут отобранны пользователи для отображения в листе пользователей.
#hidden-users = #Указать список пользователей, которые не будут отображены в листе выбора имени пользователя.
#hidden-shells = #Shells that indicate a user cannot login
В [default-display] полезные опции:
vt=7 #строка для указания виртуального терминала, на котором будет запущен менеджер, по умолчанию 7.
#session=gnome #Устанавливает сессию принудительно в Gnome, KDE или любую другую указанную в этой переменной.
#default-user=bob #Пользователь, который будет выбран по дефолту. Укажите своё имя пользователя, или оставьте закоментированным.
#default-user-timeout=5 #Тайм-аут, после которого автоматически будет выполнена попытка входа под именем дефолтного юзера.
#default-user-session= #Определяем дефолтную сессию для дефолтного юзера.
#greeter-theme=example-gtk-gnome # указываем тему, которую будет использовать greeter.
Варианты значения для greeter-theme:
- example-gtk-gnome -простая тема gtk, простая и удобная.
- example-vala-gtk-gnome -Очень простой пример, написан на языке vala.
- example-python-gtk-gnome -Не получилось потестить, подозреваю что дело всё в необычном для других дистибутивов наименовании интерпретатора python версии 2.x в archlinux.
- example-qt-kde - Для фанов Qt, неплохой пример темы с использованием популярного тулкита.
- webkit - А это пример темы, использующий HTML+Java Script в WebKit. Самая многообещающая технология для построения тем, и от тулкита не зависит. Подойдёт для фанов любой DE/WM, и не вызовет приступ тулкитофилии у суровых адептов различных сред. Но пока тема очень нуждается в доработке, потому что в ней не реализован выбор DE/WM, выбор языка и опции управления питанием.
Отсутсвие webkit в Arch Linux(уже устарело, я добавил lightdm-webkit-greeter в AUR)
Информация из этого пункта устарела из-за того что я вспомнил что являюсь членом сообщества AUR, и опубликовал на нём скрипт сборки недостающего пакета, поэтому дружно его пропускаем:)
Теперь о печальном. Темы webkit просто нет в AUR(не верите, см. в каталоге "/usr/share/lightdm/themes", поэтому пользователи archlinux должны ручками собирать её отдельно.
PKGBUILD для сборки темы webkit:
pkgname=lightdm-webkit-greeter
pkgver=0.1.0
pkgrel=1
pkgdesc="A lightweight display manager"
arch=('i686' 'x86_64')
url="https://launchpad.net/lightdm"
license=('GPL3' 'LGPL3')
source=("http://people.ubuntu.com/~robert-ancell/lightdm/releases/$pkgname-$pkgver.tar.gz"
)
depends=('libwebkit' 'lightdm')
options=(!libtool)
makedepends=('gnome-doc-utils' 'gobject-introspection' 'pkg-config')
build() {
cd $srcdir/$pkgname-$pkgver
./configure --prefix=/usr \
--sysconfdir=/etc --libexecdir=/usr/lib/lightdm
make || return 1
}
package() {
cd $srcdir/$pkgname-$pkgver
make DESTDIR=$pkgdir install
}
md5sums=('116061688e85e375096306a4bd38269b')
Сохраняем скрипт сборки в файл PKGBUILD, и натравливаем на него makepkg:
cd <путь к каталогу, в котором лежит сохранённый файл>
makepkg -s PKGBUILD
sudo pacman -U lightdm-webkit-greeter-0.1.0-1-x86_64.pkg.tar.xz
Теперь и в arch можно юзать тему webkit, её сильная сторона - изменение дизайна под силу любому человеку, знакомому с HTML/CSS и JavaScript:)
Подборка скриншотов:
example-gtk-gnome(мой выбор)
example-qt-kde
example-vala-gtk-gnome
webkit