суббота, 26 декабря 2009 г.

Еще немного про dock

Не так давно я жаловался на то что нормального дока под Linux, которым можно было бы пользоваться я так и не нашел. То что сейчас на слуху, во всяком случае было на слуху когда я этим всем интересовался: тот же Cairo Dock, или AWN какое-то корявое и неуклюжее, и пользоваться этим всем как-то не очень приятно. Совершенно неожиданно для себя наткнулся на целых две вариации на тему дока которые в принципе меня устраивают.

Итак, напомню, dock-like штуки интересны вовсе не потому что они красиво дергаются когда на них наводишь мышкой. Кому-то конечно гламурные подергивания и 3D-вид маковского дока может нравится сам по себе , потому что красиво - мне не очень нравится. Скриншоты с OS X я показывал, у меня это примерно вот так:

Просто панелька слева, с иконками приложений, белые точки возле приложения символизируют то что оно в данный момент запущено. Иконка приложения одновременно является и кнопкой быстрого запуска. Нижняя часть панельки - быстрый доступ к некоторым папкам: Applications, Downloads, Documents. При клике на папку появляется список файлов в ней, отсортированный по дате, полезно например для Downloads. Интерфейс мышекликательный, для любителей запускать приложения хоткеями или чем-то типа dmenu в OS X конечно есть свои инструменты, но об этом не здесь.

То есть, если по-простому, dock можно рассматривать как панельку на которой кнопка быстрого запуска и собственно кнопка окна запущенного приложения - это единая сущность. Если приложение запущено при клике на эту кнопку вы перемещаетесь на окно запущенного приложения, если нет - приложение запускается, если приложения в доке нет - при запуске его иконка там все-равно появляется. Никогда не мог понять почему это нельзя было реализовать это для той же gnome-panel, апплетов слежения за окнами дофига и больше, и совместить "слежение за окнами" и быстрый запуск не должно быть такой уж сложной задачей. Оказывается для gnome-panel такую штуку все-таки сделали. Называется она DockBarX, найти в гугле ее легче если искать windows7-like taskbar :).

Насколько я понимаю DockBar - это просто такая вариация на тему taskbar, где вместо текста иконки приложений, DockBarX - это экспериментальная ветка DockBar, в которую добавили возможность добавлять иконки для быстрого запуска. Пользователи Ubuntu могут поставить DockBarX из ppa:

deb http://ppa.launchpad.net/dockbar-main/ppa/ubuntu karmic main
Для Debian я просто собирал из исходников. После этого просто добавляем DockBarX Applet на gnome-panel. Кнопки быстрого запуска добавляются простым перетаскиванием. После перетаскивания у вас попросят WM_CLASS окна, для которого данная кнопка, если приложение запущено соответствующий WM_CLASS можно будет выбрать из списка. Если нет, или вы не видите нужного WM_CLASS, запустите терминал, наберите в нем:

xprop | grep WM_CLASS
курсор мыши скорее всего поменяет форму, кликните им по нужному окну, и в треминал должно выплюнуться что-то типа:

diesel@indie:/etc/apt$ xprop | grep WM_CLASS
WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"

gnome-terminal нужно будет вписать в соответствующий диалог. После добавлений апплет может работать немного не стабильно, если что-то не так - достаточно просто перелогиниться в Gnome. Пользуюсь им наверное недели три - особой нестабильности в повседневной работе не заметил, кроме добавления кнопок быстрого запуска, все остальное работает нормально, в том числе и в связке с xmonad. Выглядит примерно вот так:

Текущее активное окно - иконка "нормального" цвета, иконки запущенных приложений, которые там-где-то-на-других-рабочих-столах - цвета слегка приглушенные, и совсем серые, слитые с цветом основного бэкграунда - это кнопки быстрого запуска для незапущенных приложений. Если окон несколько при наведении на иконку появляется список окон, и можно выбрать нужное.

"Буквы под лямбдой" - это другой нестандартный applet для Gnome Panel, называется File Browser Applet по ссылке можно найти скриншот и исходники. Служит для быстрого доступа к выбранным папкам. Возможно не так гламурно как в OS X, но в принципе неплохо, жаль нельзя вместо названия папки которое будет отображаться на панельке использовать иконки.

Решение с DockBarX и File Browser Applet мне нравится, нравится еще и потому что это практически обычный Gnome, обычная gnome-panel, просто другой набор апплетов, и все становится немного по другому. Можно создать отдельную панель, сбоку, как на скриншоте, можно бросить это все на уже существующую верхнюю панель, никаких эффектов, не нужен никакой композит, и наконец-то совсем не нужен этот дурацкий список открытых окон :)

У другого dock'а который мне понравился корни растут не откуда-нибудь, а из самой OS X, правда родственные узы здесь скорее в стиле "троюродный дедушка" :). В OS X есть замечательная запускалка приложений под названием QuickSilver, ориентирована на использование клавиатуры, позволяет не просто запустить приложение, а сразу чего-то в нем выполнить. Как ни странно штука еще и опенсорсная. Вдохновленные QuickSilver Линуксоиды написали не менее замечательную штуку под названием Gnome-Do, некоторым портит жизнь зависимости Gnome-Do от mono, но who cares. Gnome-Do развивался своей дорогой, и если был включен композит пользователи могли наслаждаться некоторым подобием дока - один из режимов отображения Gnome-Do. Кстати, кто смотрел новый российский фильм "про компьютеры" "На игре" мог заметить как раз таки Gnome-Do в режиме дока, на компьютере в который вставили диск со злополучной игрой, и который пришлось потом нести в ремонт :).

Фронтенд Gnome-Do похожий на док называется docky, docky-2 - это уже вполне самостоятельный док, со своим блэкджеком и шлюхами:


docky-1 был несколько тормозным, и каким-то корявым, docky-2 вполне нормальный, можно пользоваться. Обычный док, без излишеств, поддерживает темы, поддерживает плагины. Некоторое количество плагинов есть из-коробки, так же есть некоторое подобие интеграции с некоторыми популярными приложениями. В отличии от Gnome-Do может быть не только внизу, когда вы вызываете диалог настройки - сам dock можно перетаскивать в разные концы экрана. Дурацкий "зум" можно выключить, но композит ему все-равно нужен, можно просто запустить xcompmgr в бэкграунде. C xmonad работает нормально, воспринимается как панель. Приложения добавляются перетаскиванием иконки на панель, или для уже запущенного приложения, если кликнуть правкой кнопкой по иконке приложения на панельке можно выбрать "Pin to dock". Работает вполне стабильно, пока без нареканий, правда пользовался им только один день: вчера на работе.

Так что: не маком единым :)

воскресенье, 20 декабря 2009 г.

Ubuntu, Gnome, Xsession, Xmonad

Я пару раз уже писал про .xsession и .xinitrc, в том числе и о том как например используя .xsession можно стартовать XFCE с xmonad в качестве менеджера окон. Поигравшись некоторое время с обычным убунтовским Gnome, все же захотелось старой доброй связки Gnome + Xmonad. Оказалось, что из убунтовского gdm традиционный пункт "Run XClient script", или что-то типа, пропал. Я так понимаю это какая-то новая версия gdm, потому что что-то подобное было(вернее не было) и в Fedora 11. На кой черт и кому понадобилось убирать то что работало годами, мне не понятно. В Федоре, кстати, Гном еще отказывался воспринимать переменную WINDOW_MANAGER, как указатель на дефолтный Гномовский window manager, но это другая история.

Как вернуть нужный пункт описано на launchpad. Нужно:
1. Создать, если не создана директорию /etc/X11/sessions
2. Создать в ней файл /etc/X11/sessions/Xsessions.desktop примерно вот такого содержания:

[Desktop Entry]
Name=Xsession
Comment=This runs ~/.xsession
Exec=/etc/X11/Xsession
После этого в меню выбора сессии gdm появится пункт "Xession", выбрав который вы вновь получите работоспособный $HOME/.xsession. Убунтовская сборка Gnome переменную WINDOW_MANAGER воспринимает нормально, xmonad запускается как и прежде.

Тоже самое на английском можно прочитать в xmonad'овской wiki.

Кстати, не знаю что в Ubuntu происходит при запуске /etc/X11/Xsession, но даже если просто запускать простой xterm, это занимает некоторое продолжительное время, и пользователь успевает полюбоваться на красивую убунтовскую заставку. sleep'ы они там что ли поставили :)

yet another Gnome :)

В последних новостях про Ubuntu пролетело два интересных факта. Во-первых, Марк Шаттлворт собирается покинуть пост CEO компании Canonical, для того чтобы уделять больше времени собственно работе над системой, а не административным вопросам. Этого можно было ожидать. Во-вторых, пользователей Ubuntu ждет новая порция изменений интерфейса в следующем релизе:




В компании Canonical уже не первый год работают над различными улучшениями для пользовательского интерфейса графической рабочей среды GNOME в рамках проекта Ayatana. В ближайшей новой версии Ubuntu Linux, 10.04, появится новое меню в панели, получившее название Me Menu, и замена традиционной области уведомлений в трее.

Новая область уведомлений для GNOME от Canonical основана на спецификации Status Notifier, опубликованной на FreeDesktop.org авторами другой популярной рабочей среды — KDE. В ней используется протокол межпроцессного взаимодействия D-Bus. Каждое приложение представлено верхним элементом меню, что позволяет рассматривать всю область как единую панель меню. В Canonical позаботились и о разработчиках сторонних приложений — для них создана библиотека libappindicator, являющаяся оболочкой к D-Bus API и позволяющая превращать обычные виджеты меню GTK+ в меню для области уведомлений.

Me Menu в свою очередь позволяет управлять статусами в IM- и социальных сетях прямо из панели. Оно будет проинтегрировано с Empathy (как и в нынешнем «меню присутствия» Ubuntu), а также с клиентом Gwibber для взаимодействия с такими социальными онлайн-сервисами, как Twitter, Identi.ca и Facebook. Кроме того, Me Menu призвано стать единой точкой доступа к управлению аккаунтами. С помощью этого меню можно будет управлять настройками учетных записей для Empathy, Gwibber и Ubuntu One.

** http://linuxforum.ru/index.php?showtopic=106103
** http://www.nixp.ru/news/10047



MeMenu о котором идет речь, как раз таки Designed by MarkShuttleworth, specified in detail by Ivanka Majic and MatthewPaulThomas. Идея некоторой интеграции с микроблогинговыми сервисами и социальными сетями мне кажется интересной, хотя на сегодняшний день я не являюсь активным пользователем ни того, ни другого.



Кроме того, на лето следующего года запланирован выход Gnome3. gnome-shell и mutter обещают быть главными нововведениями. Вся это радость уже доступна, и при желании в той же Ubuntu, ее достаточно просто установить и попробовать. Правда, судя по всему еще не все готово, да и надеяться на стабильную работу не стоит. Я все же попробовал:







На прежний Gnome сейчас это похоже слабо. Панель - это уже не gnome-panel, добавлять на нее апплеты, перетаскивать значки приложений, привычным каждому Гномеру способом сейчас нельзя. Не знаю, возможно в будущем будет можно, или же можно будет в придачу к этому при необходимости просто запустить gnome-panel. Очень бы не хотелось потерять ее совсем. Традиционного списка приложений на панели нет, показывается только текущее, впрочем, это не очень страшно. Оболочка которая на скриншотах, появляется если дернуть мышей в левый верхний угол - это оказалось интуитивно привычным - в OS X на движение мышей в левый верхний угол у меня было повешено превью всех окон. Эта оболочка - одновременно и превью всех окон, и превью всех рабочих столов, и еще панелька слева для быстрого доступа к документам и запуска программ. Кроме всего прочего можно динамически увеличивать количество рабочих столов, и перетаскивать окна с одного рабочего стола на другой, как в OS X в превьшке рабочих столов. Совсем не похоже на прежний Гном, но ловлю себя на мысли что все очень и очень неплохо.



Если не изменяет память активное привинчивание эффектов к оконному менеджеру на линукс-десктопах началось года три-четыре назад. Я впервые увидел это работающим в презентации SLED10. Из интересных вещей, которые это все могло дать, значилось: превью всех окон на рабочем столе, слизанное с OS X, которое до сих пор в compiz'е работает совсем не так как хотелось бы, и превью окон(а не значков приложений), при пролистывании окон с помощью Alt+Tab. Из бесполезных, но безумно захватывающих эффектов: конечно же всем знакомый кубик. Как тогда, так и сейчас, сама идея использования подобных эффектов на рабочем столе интересна по своей сути, но реализация от компиза, да и от КДЕ4 просто убивает. gnome-shell + mutter - это как раз тот вариант реализации который мне очень даже понравился, если будет работать - наконец то появится окружение которое не просто не стыдно показать, но такое которое не захочется вырубить после того как покажешь :) И да: это все(наконец то!) без конфигуратора а-ля "система управления полетами" - я вообще здесь никаких конфигураторов пока не вижу, и это радует.



Немного настораживает то что, во-первых, связка выглядит удивительно цельной, во-вторых, возможность использовать композит есть далеко не везде(на HP Mini 2133, например, все еще нельзя). Боюсь как бы Gnome сам по себе не перестал быть конструктуром. Сейчас, все еще, в качестве Window Manager'а легко можно подставить что-нибудь другое(ладно, в некоторых модных дистрибъютивах не очень легко, но можно), что будет когда gnome-shell плотно войдет в нашу жизнь? Не потеряем ли мы возможность делать подобные подстановки, а если не потеряем, то сможем ли все еще пользоваться всеми прелестями самого gnome-shell?



По личным ощущениям прослеживается очень интересная тенденция. Да простят меня КДЕ-шники, но релиз КДЕ4, и все развитие, что последовало за ним, вплоть до текущего времени, не привнес ничего принципиально нового в наше понимание работы за компьютером. То что мы увидели, и продолжаем видеть: это все та же панелька со списком окон, все та же кнопка "Пуск", с той же, правда доработанной, менюшкой вызова приложений. Есть, потенциально сильная, концепция плазмоидов, но пока что единственное что из этой концепции удается выжать - это либо стандартное окружение а-ля windows xp или vista, или, слегка улучшенное окружение, но опять же а-ля windows 7. Пока что все тот же workflow. Остальное - только в планах, и врядли остальное станет в обозримом будущем окружением по-умолчанию, в котором без дополнительного допиливания можно будет нормально работать.



gnome-shell - это несколько другая точка зрения на привычный нам десктоп. Нам не то чтобы сильно необходимо видеть список всех открытых окон, всех приложений всегда, но полезно иметь быстрый способ, а возможно и не один, переключиться сразу на нужное окно. Нам не нужно всегда видеть файл-менеджер, или даже ссылки на определенные файлы и директории, но так же полезно иметь быстрый способ их увидеть. И кнопка "Пуск" в принципе нужна не всегда, а только тогда когда хочется запустить еще одно приложение. Десктоп перенасыщен информацией, и часть из этой информации очень полезно убрать куда-то куда легко дотянуться. От запущенных неактивных приложений нам часто просто нужна информация о статусе: новая почта, новое сообщение, аккумулятор скоро сядет, и так далее.



В общем, ждем Gnome 3, будет интересно :)