Google Analytics

четверг, 16 июня 2011 г.

Ищем замену GDM для входа в систему

Я последнее время частенько метаюсь между 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

Комментариев нет: