суббота, 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, будет интересно :)

понедельник, 30 ноября 2009 г.

Macbook + Linux....

Как-то летом, когда на Линуксфорум наползло троллей яростно выбирающих Windows, стало складываться ощущение что все разумное, доброе и вечное из мира ушло. Поэтому, для того чтобы восстановить потерянное равновесие, я создал тему с вопросом "А за что вы любите Линукс?". Ответов было много разных, и практически без образчиков предсказуемого идиотизма в духе: "Как можно любить операционную систему? Любить надо женщин". Ничего не имею против второй части утверждения, но мои жалкие знания русского языка подсказывают что любить можно еще и Родину, пиво, и много-много чего другого. Почему не может быть любимой операционной системы, если есть, скажем, любимый свитер, или любимый сорт сыра непонятно.

Можно относится к компьютерной программе как к некоторой абстракции, имеющей вполне определенный функционал. И это в принципе будет правильно. Можно даже пойти дальше, и утверждать что программы нужно выбирать исходя из поставленных задач, основываясь на законах логики, и никаким "любимым программам" в серьезном мире не место, да и вообще эмоции в отношении программного обеспечения - это бред. Но, допустим, у нас есть несколько программ обладающих примерно одинаковым функционалом: vim vs. emacs, Opera vs. Firefox, etc. Обе программы неплохи, сами по себе, но если мы возьмем двух живых пользователей, с примерно одинаковыми требованиями, которые обоими программами покрываются с головой, они могут сделать разный выбор, и потом ночами на пролет доказывать друг другу на очередном форуме, что собеседник неправ. Логика отходит в сторону уступая место тем самым эмоциям, ассоциациям и беспокойному дедушке Фрейду.

Я, наверное как и многие линуксоиды, ради интереса, чтобы поиграться, устанавливал себе практически все дистрибутивы к которым мог дотянуться. Ответить на вопрос о любимом дистрибутиве мне будет несколько сложно, хотя это, безусловно Debian. С нелюбимыми все гораздо проще: Mandriva и Ubuntu, причем какой-то разумной аргументации привести я не смогу, поскольку ни тем, ни другим никогда сколько-нибудь долго не пользовался... до последнего времени не пользовался:

diesel@indie:~$ cat /etc/issue
Ubuntu 9.10 \n \l

diesel@indie:~$ uptime
02:31:56 up 3 days, 6 min, 5 users, load average: 0.38, 0.56, 0.55
diesel@indie:~$

Возможно, свою роль сыграло здесь то, что я последние полторы недели болел: не на столько сильно, чтобы вообще не подходить к компьютеру, но все же никакого устойчивого желания думать, копаться, разбираться не возникало. В тоже самое время, желание перевести в конце-то концов и MacBook на Linux возникло давно, и крепло. На всякий случай, здесь и далее речь идет о:

diesel@indie:~$ sudo dmidecode -s system-product-name
MacBook4,1

diesel@indie:~$ lspci
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03)
00:1f.2 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
02:00.0 Network controller: Broadcom Corporation BCM4328 802.11a/b/g/n (rev 03)
03:00.0 Ethernet controller: Marvell Technology Group Ltd. Marvell Yukon 88E8058 PCI-E Gigabit Ethernet Controller (rev 13)
04:03.0 FireWire (IEEE 1394): Agere Systems FW322/323 (rev 61)


Начинка вполне стандартная, ничего особенного там нет, установка практически ничем не отличается от установки на любой другой ноутбук. Есть нюансы с разбивкой диска и установкой загрузщика(потому что http://en.wikipedia.org/wiki/GUID_Partition_Table). Нюансы хорошо документированы в Debian-wiki( http://wiki.debian.org/MacBook ), даже если вы не собираетесь устанавливать именно Debian, советую прочитать, это наиболее полное и наиболее доходчивое описание особенностей установки.

Пробовал устанавливать:
* openSuSE 11.2, x64: устанавливается, загружается. Во время установки нужно или придумать как сделать gptsync после разбивки дисков, или же дождаться окончания установки, сделать gptsync средствами refit и переустановить загрузщик(не уверен что не рассказываю ужасы, но кажется, gptsync оно таки не делает).
* Debian Lenny, х32: устанавливается, загружается, собственно история таже самая: или gptsync, после разбивки диска(этот момент освещен в wiki), или просто потом нужно будет переустановить загрузщик.
* Ubuntu 9.10, х64: устанавливается, загружается, ничего дополнительно делать не надо(кроме собственно установки refit).

openSuSE только установил, посмотрел что работает, дальше разбираться желание не появилось.

Две целиком стандартные проблемы Linux на ноутбуках: засыпание и wifi.И в Debian(обновленном до unstable) и в Ubuntu практически все одинаково. Засыпание при закрытии крышки - работает из коробки, ничего специально не устанавливал. Какой "подвид" засыпания срабатывает когда закрываем крышку - не знаю, не разбирался, я про это с одной стороны практически ничего не знаю, с другой - мне это совершенно неинтересно. Процесс засыпания и пробуждения несколько дольше чем в OS X, но в принципе терпимо.

Wifi. В debian'е собирал драйвера отсюда: http://www.broadcom.com/support/802.11/linux_sta.php, после этого все заработало. В ubuntu: установил судя по всему тоже самое через их менеджер драйверов. С ubuntu'вским менеджером драйверов было забавное приключение - нормально он заработал только после обновления системы, до этого ничего сканировать не хотел, и соответственно карточку не находил (не знаю, возможно его как-то можно принудительно заставить посмотреть на железо), после обновления - все вроде заработало нормально.

Для того чтобы закончить железную тему окончательно: у Macbook несколько необычная, по сравнению с обычными ноутбуками клавиатура, и неплохой тачпад.

Клавиатура:
* следует обратить внимание на пакет pommed

root@indie:/home/diesel# aptitude search pommed
i pommed - Apple laptops hotkeys event handler

По-умолчанию, и в OS X, и в Linux F1-F12 клавиши ориентированы на специальные функции, такие как изменение яркости дисплея и далее по списку. Если вы, хотите использовать эти клавиши в приложениях, нужно нажимать Fn+F[1-12], это может быть несколько неудобно, и это поведение можно изменить с помощью pommed.

* клавиатура MacBook'а несколько специфична в плане расположения control-клавиш: Fn - Ctrl - Alt -Cmd. В OS X активно используются клавиатурные комбинации с Cmd, например Cmd+C/Cmd+V, вместо милых любому виндузятнику Ctrl+C/Ctrl+V. Окончательного мнения по поводу того как с этим быть в Linux пока не имею.

Тачпад(synaptics toucpad). Есть некоторые особенности(перечисляю те которыми я пользовался в OS X):
* у тачпада одна кнопка, соответствует левой кнопке мыши
* так же левая кнопка - это "Tap" по тачпаду одним пальцем
* правая кнопка - это "Tap" по тачпаду двумя пальцами
* Горизонтальная/Вертикальная прокрутка - двумя пальцами по тачпаду, в любом месте.
В принципе, это все работает, кое-что правда требует включения: через xorg.conf, hal'овы настройки X-ов, GUI-конфигуратор мыши, консольный synclient - на выбор. "Feel" сильно отличается от такового в OS X, дело скорее всего в мелочах, очень много разных временных параметров можно выставить для тачпада:

root@indie:/home/diesel# synclient -l | wc -l
70

Apple'овцы с этой задачей справились лучше. В Ubuntu без дополнительных настроек тачпад ведет себя гораздо приятнее, в Debian - ужасно. Собственно это главная причина почему сейчас выбор пал на Ubuntu. Переносить настройки в Debian с LiveCD Ubuntu не пробовал, man synaptics, хотя и содержит описание всех возможных опций настройки, ответа на главный вопрос: как сделать так чтобы этим можно было пользоваться, не дает. Тем не менее, не смотря на то что тому как работает тачпад в Ubuntu далеко до того как он работает в OS X, пользоваться тачпадом,вместо мыши, и не чувствовать себя обделенным получается: за обычным нетбуком/ноутбуком это гораздо сложнее, там уж или полноценную мышь подключай, или хоткеи настраивай на все случаи жизни во всех приложениях.

Возвращаясь к тому с чего начинал. Ubuntu на Macbook'е уже четыре дня, и я этой системой активно пользуюсь, хотя, многое еще не настроено и очень далеко до идеала. Для меня это точно персональный рекорд - раньше убунту редко выживала после первой перезагрузки - становилось неинтересно и я ее сносил. Я не собирался писать даже краткого обзора установки Linux на Macbook, но поскольку так уже получилось, то на этом разрешите откланяться. Продолжение будет.

воскресенье, 8 ноября 2009 г.

немного о рабочем окружении

Я опять замолчал надолго, хотя темы о которых можно было бы рассказать в блоге рождаются, и угасают так и не оформившись во что-то законченное. Слишком много работы, и слова как-то не очень хорошо складываются в предложения.

Где-то около года я использовал свой Macbook и дома и на работе и за это время достаточно сильно к нему привязался. Хотя еще где-то весной лавочка закрылась, и пользоваться лэптопами на работе уже не разрешают, до сих пор смотрю на Mac главным образом как на рабочий инструмент, хотя это может показаться немного странным, есть какое-то количество линуксоидов воспринимающих продукцию Apple исключительно как набор свистелок и перделок, активно сдобренную маркетнингом. Как бы там ни было, я снова переехал на Debian на работе, и не так давно купил второй лэптоп, для того чтобы играться с Линуксом дома, потому как постоянная смена рабочего окружения раздражает.

Достаточно значительным отличием различных дистрибутивов Linux от OS X, является количество разнообразных выборов, которые может сделать, и которые обязан делать пользователь при настройке своего рабочего окружения. OS X дает вам, в терминах Linux, один DE: хороший, продуманный, качественный, но с очень урезанными возможностями для настройки ( да там есть Х-сервер, и на нем можно пускать все что угодно, включая любимые WM'ы, но это извращение). В Linux-системе вас скорее всего заставят выбрать как минимум DE, в котором, в свою очередь можно пилить очень очень много, более того, чтобы этим можно было пользоваться - пилить, так или иначе придется.

Когда стало понятно что придется опять переползать на Linux, первым желанием было сделать в Linux примерно тоже самое к чему я привык в OS X. Сходу, можно вспомнить: хоткеи(я уже писал об этом), эффекты: превью всех окон и превью всех рабочих столов, общее "меню" для всех приложений в верхней строчке, док, внешний вид. Если кратко: хоткеи можно, но не везде и не все, например как нормальный человек может поменять хоткеи в firefox для меня осталось загадкой, равно как осталось загадкой какой светлой голове пришло в голову для открытия нового таба в некоторых приложениях требовать от пользователя нажать Ctrl+Shift+t. Alt+Shift+t - нажимается с трудом, Ctrl+Shift+t - это акробатика смешанная с йогой. Эффекты - чисто теоретически, компиз это может, причем может почти как в OS X, к сожалению "почти", если "look" смущает своей топорностью, но с этим еще можно жить, то "feel" убивает насмерть, Control Center компиза явно нацелен на глубокую внутреннюю работу того кто будет им пользоваться, я к такой работе в отношении этого WM не готов. Наиболее вменяемым dock'ом из увиденных оказался cairo dock, хотя бы отдаленно напоминает Mac'овский, но его Панель Управления ничуть не легче, если не сложнее, компизовской, особенно, если учесть что искал я не как включать все возможные навороты, а как отключать те что были :) Общее меню: gnome-globalmenu2 - работает далеко не для всех приложений, даже тогда когда оно работает, на OS X это не очень похоже. Настройки внешнего вида: mac4lin - действительно неплохая штука, но к сожалению, есть вещи которые и ей неподвластны.

Короче говоря поигравшись вдоволь с тем что хорошо смотрится на скриншотах, пришел к неутешительному для себя выводу - сделать как в Mac'е, при наличии настоящего Mac'а с OS X рядом не получится, да и пытаться не стоит. Пусть лучше будет все еще до конца не настроенный, но по своему рабочий xmonad. Вот тут мы и подходим к главному вопросу передачи :)

Первым Window Manager'ом из разряда tiled WM которым я пользовался был ion3. Немного о "паттерне" своего использования tiled WM я уже писал и даже показывал скриншот. Не смотря на то что рабочих столов я таки держу обычно четыре, активно используется только первый, на котором скапливаются все нужные на данный момент приложения: обычно это браузер(ы), пиджин, и некоторое количество терминалов. Получается такой себе "рабочий стол", где все под рукой, хотя маленькое окошко браузера - это если честно не очень приятно, особенно если шрифты не очень маленькие. Похожую схему я повторил и в xmonad'е, правда повторив "look" не совсем повторил "feel"(в данном случае в силу ограниченных знаний haskell немного сложно повторить переключение между окнами в табах с помощью чего-то типа Alt+k n внутри кажого конкретного tabbed layout'а).

Вчера в очередной раз задумался вот над какой штукой: в OS X я пользуюсь четырьмя рабочими столами, у каждого из которых свое отдельное, устоявшееся назначение. В Linux же неизменно все стягивается на один рабочий стол, хотя это не сильно то и удобно когда все окна не очень большого размера, и на 15.4" и на 19" мониторах. Попасть на нужный рабочий стол в OS X можно несколькими способами: кликнув на нужный рабочий стол в превьюшках, или же так или иначе добраться туда с помощью хоткеев. Превьюшки имеют хорошее преимущество - ты физически видишь все рабочие столы, и выбираешь нужный, тыцая туда мышкой. Если помнишь в какой части экрана находится нужный квадрат - сделать это легко, быстро и приятно, вот он набор открытых приложений для нужной задачи, вот я его выбрал. В Linux для прямого попадания на рабочий стол часто используют хоткеи, причем хоткеи из серии Alt+F{1..9}. Связывать конкретную задачу, или даже конкретное приложение и безликую цифру - на совести пользователя, у меня это получается не очень хорошо.

В очередной попытке разделить рабочие столы по задачам/приложениям пришел к тому что:
- нужно дать рабочим столам вменяемое название, 1-2-3-4 - это фигня.
- нужен отдельный, запоминаемый, и нормально нажимаемый хоткей для попадания на каждый конкретный рабочий стол
- если есть штука которая показывает доступные рабочие столы - она должна показывать и хоткей тоже, так легче привыкнуть

В итоге получились:


myWorkspaces = [ "a:chat", "e:term", "l:mail", "w:webs", "m:mix" ]

первая буква соответственно обозначает комбинацию alt+<что> ведет на этот рабочий стол. Пока привыкаю, мне кажется есть шансы что таки привыкну.

Каждый рабочий стол имеет свой набор layout'ов: "a:chat" - вариация на тему IM-layout'а, просто показывает ростер справа, в маленькой колонке, и чат в большом центральном окне. "l:mail" - пользуюсь thunderbird'ом, простого tabbed достаточно. "e:term" - возможность переключения между Tabbed, Grid, TwoPain, и интересной штукой под названием CenteredMater, которая показывает "Master"-окно по центру, а остальные на бэкграунде в любом другом заданом layout'е, в сочетании с "мастер окном становится окно которое сейчас в фокусе" от MagicFocus - прикольно :). "webs" - основной layout все тот же tabbed, и еще несколько, на случай если захочется странного. "mix" - сохраненная старая схема, если все захочется заново собрать все до кучи. Еще один интересный Layout(из "mix"): MouseResizableTile - простенький tiled layout, с возможностью легко менять размеры "прямоугольников, в которых заточены окна" мышкой. MouseResizableTile и MagicFocus + Tabbed на скриншотах ниже:






Мой текущий конфиг, можно найти здесь, конфиг xmobar. Вот такая очередная странная история от меня получилась (:

воскресенье, 5 июля 2009 г.

hp mini, wifi

Возвращаясь к делам нетбучным. Прошлый раз, когда я говорил о том что с настройкой wifi на hpmini особых проблем не возникло, я таки видимо погорячился. Рецепт предложенный в Debian Wiki действительно оказался рабочим, но wifi в Debian работал как-то не очень стабильно - через какое-то время(всегда разное) сеть отваливалась, и после этого спасала только перезагрузка. Выгрузить/загрузить заново модуль wl не получалось. С другой стороны, Network Manager в Lenny, толи весьма старый, толи я чего-то не доглядел - но как выбирать нужную сеть через nm-applet я так и не понял. Пакет network-manager-gnome ставлю, но апплета типа того который я видел в Fedora или Ubuntu с выбором соединений, добавить на панель не получалось. Поскольку, наличие WiFi на нетбуке(как бы это не парадоксально звучало) для меня не особо критично - при необходимости не сложно воткнуть провод, а для того чтобы книжки читать вообще сеть нафиг не надо, то я как-то особо настройками этого всего дела не заморачивался.

Прошло некоторое время, входе экспериментов я успел поставить на нетбук Windows 7, и случайно снести предустановленную Vista в купе с разделом для восстановления(что с этим делать и насколько это страшно пока не знаю - в принципе мне Vista там не нужна), попробовать Ubuntu Remix(работает откровенно плохо: правда для этой модели убунтовчане ничего другого и не обещали, но это тема для отдельного разговора), снести к чертям стоявший там Debian, установить NetBSD(это тоже для отдельного большого разговора), и наконец заново установить Debian рядом с NetBSD(с этого Debian'а я сейчас и пишу). Поскольку у меня опять появился на нетбуке Линукс, таки решил вернуться к настройке wifi.

Напомню что речь идет о:


02:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)
Subsystem: Hewlett-Packard Company BCM4312 802.11b/g Wireless LAN Controller
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR-
Capabilities: [e8] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Address: 0000000000000000 Data: 0000
Capabilities: [d0] Express (v1) Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us,>


Раньше для установки модуля приходилось скачивать некий тарболл с сайта Broadcom, теперь этого делать не надо. Подключаем testing или unstable, как-то так:

enisey:~# grep -E '(testing|unstable)' /etc/apt/sources.list
deb http://ftp.ua.debian.org/debian/ testing main non-free contrib
deb-src http://ftp.ua.debian.org/debian/ testing main non-free contrib
deb http://ftp.ua.debian.org/debian/ unstable main non-free contrib
deb-src http://ftp.ua.debian.org/debian/ unstable main non-free contrib

Для того чтобы все же оставаться на lenny прописываем:

enisey:~# cat /etc/apt/apt.conf
APT::Default-Release "stable";
enisey:~#

далее aptitude update. Поскольку изначально Debian на Hp Mini, ставился с помощью образа флэшки для установки на eeepc, c i486-ядром, то между делом я обновил ядро из unstable до linux-image-2.6.30-1-686. После чего был установлен module-assistant, и сделано m-a prepare. Далее, поскольку в module assistant broadcom-sta я не заметил руками было установлено два пакета:

i broadcom-sta-common - Common files for the Broadcom STA Wireless driver
i broadcom-sta-source - Source for the Broadcom STA Wireless driver

После чего драйвер можно было собрать и установить с помощью m-a.

modrpobe wl, и /sbin/iwconfig показало что появился таки беспроводный интерфейс.

Текущая установка Debian у меня выполнена в духе минимализма - опять же кроме браузера, читалок, и пиджина из GUI мне ничего не надо, поэтому DE нет, соответственно даже если network manager вменяемо работает в Gnome - для меня сейчас это бесполезно. Тащить Gnome ради апплета, который непонятно как присобачивать к xmonad'у не сильно хочется. Более альтернативных способов управления network manager'ом не нагуглил, хотя не особо старался. Вспомнил что в былые времена пользовался wifi-radar - и в принципе он меня во всем устраивал, поставил его и на этот раз(вариант настраивать wifi через interfaces отметается). Программа простая, неприхотливая, и делает все что мне надо(в зависимостях, правда, python-gtk, но это не сильно страшно):

На этом этапе долго тупил, оказывается кнопка включения/выключения wifi таки работает и он был выключен, а я не заметил сразу :)

Если все работает, по советам надо сделать echo "wl" >> /etc/modules. Сделал и я, ушел в перезагрузку, и после перезагрузки увидел странное: модуль загружен, но... разрешение стало очень маленьким(наверное 640х480), убрал модуль из modules - перезагрузка - разрешение нормальное.

Решение "в лоб", которое почти работает: грузить модуль, и соответственно wifi-radar после загрузки Х-ов. Для этого, в /etc/rc2.d:

ls S99* | while read i; do echo mv $i ${i//S99/S98}; done | sh
mv S20wifi-radar S99wifi-radar

и в /etc/init.d/wifi-radar в start было дописано вот так:

("start")
vpnc-disconnect >/dev/null 2>&1
rmmod b43
modprobe lib80211_crypt_tkip
modprobe wl
log_begin_msg "Starting wifi-radar daemon..."
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec "${WR_BIN}" -- -d >/dev/null 2>&1 &
exit $?
;;

Скорее всего с точки зрения дебиановской идеологии коряво - но работает. Единственное что - когда перезапустишь xdm - разрешение портится, не очень страшно, но неприятно, надо будет все же поискать источник глюка. Во время написания этого поста wifi не вырубался(писал прямо в blogger), что радует.


UPDATE:
Дописал "PanelSize" "1024x600" в /etc/X11/xorg.conf:

Section "Device"
Identifier "Configured Video Device"
Driver "openchrome"
Option "PanelSize" "1024x600"
EndSection

Проблема с стартом Х-ов после загрузки модуля wifi пропала. Полтергейст какой-то.

воскресенье, 14 июня 2009 г.

Блоггинг. Твиттер. Разговоры :)

Видимо я должен извиниться перед читателями этого блога. Не только не выдержал взятый темп: четыре поста в месяц, что примерно один пост в неделю, но и просто совсем замолчал надолго. На то были свои объективные и субъективные причины, в основном, просто много работы, после которой не остается никакого желания что-то где-то писать.

Как раз где-то в марте-апреле, в твиттере набрел на несколько статей о том как правильно вести блог. Обычно я подобную макулатуру игнорирую, но тут как-то стало интересно, и какое-то количество советов о том чего же таки правильно делать осилил. Советов было много, автор видимо матерый бумагомаратель, но сводились они все к одному и достаточно простому: если хотите быть популярным блоггером и зарабатывать на этом деньги, писать надо много, писать надо постоянно, писать надо предсказуемо для читателя, и иметь план на несколько недель вперед. Во всем этом меня смущает несколько вещей: во-первых, так или иначе тебя подталкивают к тому чтобы нести всякую чушь по теме, только бы был пост, и только бы в этот день читатели не остались голодными(хотя тут еще вопрос "читатели или поисковые боты?"). То есть необходимость писать даже если рассказывать вобщем-то на данный момент нечего, или особого желания нет. То есть блоггинг - как средство высказывать свои мысли, тем, кому эти мысли могут показаться интересными, превращаясь в инструмент зарабатывания денег, собственно, уже может и не предполагать мыслей стоящих за буквами. Страшно то, что, день ото дня это все популярней и популярней.

Более того, из-за того что за всем этим в конечном счете стоят деньги: желание заработать напрямую, на рекламе, или же заработать себе авторитет - у подобного "постить-чтобы-было" подхода есть острая необходимость в самоутверждении. То есть "если ты делаешь по другому - тебя не будут, не должны читать. Эй, люди! Не читайте его!". Ну и для усиления эффекта можно немного поэксплуатировать понятия "популярный блогер", "уважаемый блогер" итп, какая разница что там везде должна быть приставка "в очень узком кругу".

Второй момент, на который я обратил внимание, в статьях про блоггинг - словосочетание "профессиональный блоггер". Читал статьи достаточно давно, но ощущение того что с этим миром явно что-то не так не проходит. Профессиональный блоггер, как я понимаю это - это человек для которого блоггинг является источником дохода, то есть человек пишущий статьи за деньги. Людей которые пишут статьи за деньги - называют журналистами. И, таки да, они должны уметь писать по теме, вне зависимости от своих желаний, и выражать свои личные мысли по теме для журналиста вполне не обязательно, а в некоторых областях даже вредно.

Другая связанная с блоггингом тема - микроблоггинг вообще и твиттер в частности. Как я уже писал, после некоторых размышлений, я таки зарегистрировался в этом популярном сервисе. Ощущения у меня оно до сих пор вызывает какие-то неоднозначные. На данный момент за своим твиттером я не слежу, ничего туда не пишу, и особо не тянет.

Там где я поднимал темы про твиттер, основные возражения в основном крутились вокруг того что это очередная никому ненужная ЖЖешечка, в которой будет "наступил на кота, с женой поругался", только благодаря легкости написания сообщений, в еще более извращенной форме. Как ни странно, вот как раз этого в русском твиттере я нашел не так уж много, и читать подобную клинику никто не заставляет, в основном ее таки не читают.

С другой стороны, достаточное количество рекламы имеет место быть. Постепенно до рунетовских бизнесменов(возможно до тех самых "профессиональных блоггеров") начинает доходить что твиттер - неплохой инструмент для раскрутки своих ресурсов. Иногда, впрочем, ресурсы достаточно интересные, и можно было бы и последить за новостями(хотя, я все-таки для этого предпочитаю RSS), часто - абсолютный бред, но этот абсолютный бред фолловит тебя с завидной частотой в надежде что ты сделаешь то же самое.

Подобную методику применяют и люди, видимо начитавшись всякого сеошного бреда про то как достичь популярности в твиттере. Зачем оно им, и что делать с популярностью среди случайно зафоловленной сотней-другой аналогичных бото-человек - они представляют достаточно слабо. В итоге даже при моем абсолютном молчании, меня периодически продолжают фолловить какие-то странные личности. В данный момент мне не жалко - всех фолловлю в ответ - просто никого не читаю. Если вдруг вернусь к чтению - проведу коренную ревизию.

Я не знаю что было изначальной задумкой для использования твиттера - сейчас чаще всего о микроблогинге говорят как об оффлайновом чате. Люди постят свои сообщения тогда когда им удобно, ты постишь/отвечаешь - тогда, когда удобно тебе, и всем как бы хорошо. На самом деле все несколько по-другому, многие сообщения рассчитаны на мгновенный ответ, и реплай даже через несколько часов, как и в полноценных чатах теряет всякий смысл. Методика чтения "в конце дня читаю все что накопилось за день", если хочется принимать активное участие в жизни твиттера подходит слабо(в отличии от форумов, или блогов через RSS, или даже жуйки), в единичных случаях. С другой стороны, постоянное подсознательное выискивание "про это можно было бы написать в твиттер", рискующее превратиться в своеобразную зависимость - тоже как-то не очень. Это примерно тоже самое что подбор тем для блога, только в 100 раз быстрее - то есть слишком быстро, если в этой каше не вариться, а вариться в обычной жизни.

Ну и фактической причиной того что я пока не пишу и не читаю в твиттер является то что пока что не нашел нормального клиента для Linux, который бы мне нравился. Хочется что-то типа Mac'овского Twitterific'а - красивое и простое, а оно все какое-то топорное и недоделанное.

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

понедельник, 16 марта 2009 г.

XFCE+Xmonad

Just a small tip. Starting xmonad in XFCE(~/.xinitrc):

wm=xfce4-session
#wm=/usr/bin/e16
#export WINDOW_MANAGER="/usr/bin/xmonad"

#/usr/bin/gnome-settings-daemon &
$wm &
wmpid=$!
{
/usr/bin/X11/xkbcomp -I$HOME/.xkb/ $HOME/.xkb/.xkb.my $DISPLAY
while ps aux | grep xfwm; do
sleep 2
done
pkill xfwm
xmonad &
# /usr/bin/syndaemon -i 10 -d &


}&
wait $wmpid



понедельник, 2 марта 2009 г.

HP Mini. Нетбук с человеческим лицом.

В одном из Линуксфорумовских обсуждений по поводу того какой ноутбук выбрать, кто-то, определённо опытный в делах железных заметил: "купи любой, поработай с ним какое-то время, а потом станет ясно что тебе от ноутбука надо, и как его выбирать". Примерно та же история произошла и у меня, только с ноутбуками поменьше, которые в народе именуют нетбуками.

Последние несколько постов этого блога, так или иначе были связаны с настройкой Линукс на недавно купленном EeePC. Как игрушка - штука безусловно интересная, но для чего бы практического это чудо приспособить - я пока так и не нашёл. Как "маленький лэптопчик, чтобы поиграться с Линуксом" он все же не годится, поскольку "поиграться" все же включает в себя много-много тыцаний по кнопкам - будь это терминал, браузер или текстовый редактор, а когда эти кнопки не очень большие, и шанс промазать примерно равен шансу попасть куда надо - то даже написание простого поста в блог может превратиться в пытку, даже если забыть о том что экранчик маленький, и к этому надо привыкнуть. Возможно превращу EeePC свой в такой себе маленький сервер, не знаю, пока что он лежит и пылится без дела. Лежит и пылится без дела, в том числе и потому что появилась новая игрушка.

Где-то недели полторы назад, во время похода за обедом, мну показали заодно в тамошнем супермаркете электроники HP Mini. По сравнению с рядом стоящими Asus EeePC, и Acer Aspire One в глаза сразу бросились:

- нормальный размер кнопок на клавиатуре;

- интересный тачпад - с кнопками не внизу, а по бокам, причём кнопками достаточно легко нажимающимися(в отличии от EeePC);

- дизайн, на фоне EeePC и Acer'а HP Mini выгляди достаточно колоритно, и почему-то многим напоминает MacBook Pro(корпус тоже алюминиевый :) ). Хотя, надо отдать должное и Asus'у c Acer'ом - мигающих лампочек, разноцветного пластика и прочих идиотских штук, которые любят цеплять на бюджетные ноуты, на нетбуки они пока не цепляли. Еще бы эти странные наклейки поубирали - вообще была бы красота :)

Вобщем, HP Mini понравился мне гораздо больше, чем лежавший дома Asus, поэтому, в скорости, я подарил его себе на день рожденья(о чем и отрапортовал в твиттере).

Итак, мну достался HP Mini 2133, c процессором "VIA C7-M Processor 1200MHz", 1Gb памяти, и жёстким диском на 120 Гб:

01:00.0 VGA compatible controller: VIA Technologies, Inc. CN896/VN896/P4M900 [Chrome 9 HC] (rev 01)

02:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)

07:03.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5788 Gigabit Ethernet (rev 03)

80:01.0 Audio device: VIA Technologies, Inc. VT1708/A [Azalia HDAC] (VIA High Definition Audio Controller) (rev 10)

В процессе - выдрал из EeePC прежде в него вставленную 2Гб планку памяти, и переставил ее в HP Mini. В HP Mini добраться до памяти несколько сложнее - нужно открутить три болтика под аккумулятором, осторожно выдрать клавиатуру, и уже под клавиатурой найти заветный слот памяти. Правда, при этом вроде как никаких наклеек не сдирается, процесс установки памяти расписан на сайте HP, так что вроде как даже с гарантией должно быть все хорошо.





Предустановленная ОС: MS Vista Home Basic. Это было мое первое "свидание" с вистой, надо сказать, что я ожидал худшего. Первое ощущение: я бы смог работать в этой ОС, правда на более мощном компьютере. Второе ощущение: в винде наконец-то приличное сглаживание - не знаю правда - это заслуга винды или особенности монитора, хочется верить что таки винды. Поразило, кстати, колличество служб запущенных по-умолчанию - даже по сравнению с Хр - многовато будет, повыключал то что показалось ненужным, правда, слегка переусердствовал и вырубил звук, впрочем, по этому поводу не особо страдаю, и назад включать пока что не стал. Тормозит оно не то чтобы очень, полазить по интернету сойдет, правда интересно поставить туда Visual Studio Express, посмотреть насколько это страшно будет выглядеть. Хотя, конечно, работать в Vista я не собирался.

Предустановленная виста, означает что где-то должен быть образ для восстановления системы. В HP не стали давать DVD, для восстановления системы на нетбуке на котором собственно DVD-привода нет, а создали бэкап раздел. Впрочем на 4Гб флэшке EeePC бэкап-раздел смотрелся бы смешно :). Бэкап раздел в конце диска, создан как primary parition, занимает около 9 Гб, доступ к восстановлению через хоткей при загрузке BIOSа. Через такие же хоткеи там можно еще загрузится по сети, или с флэшки, что удобно.

Ни висту, ни бэкап-раздел сносить я не собирался - вдруг прийдется нести ноут по гарантии, а там нема "родной ОС", да и винду под рукой иметь не помешает, иногда полезно. Поэтому раздел с вистой был урезан до 50 Гб(средствами самой висты это можно сделать, если что), а на освободившемся месте создано два раздела: ~10 ~40 Gb для корня, и /home соответственно. Флэшка, на которую я ставил Debian для EeePC сохранилась, и тот Debian нормально загрузился на HP Mini, поэтому я просто скопировал то что уже было на флэшке, и установил загрузщик.

Специально никогда не интересовался вопросом, но по откликам складывалось оущение что виста не очень дружит с грубом, или груб с вистой, и чтобы в дуалбуте был Linux и Vista придётся попотеть. Как ни странно, совсем ничего трудного там нет, и стандартного:

title "Microsoft Windows Vista"

root (hd0,0)

chainloader +1

в /boot/grub/menu.lst оказалось достаточно.

Значительно больше проблем было с тем чтобы заставить нормально работать Х-ы. Видео на HP Mini тоже на VIA-чипсете:

01:00.0 VGA compatible controller: VIA Technologies, Inc. CN896/VN896/P4M900 [Chrome 9 HC] (rev 01)

Х-овый драйвер для этого дела, в поставке debian lenny: xserver-xorg-video-openchrome никак не хотел ставить разрешение больше чем 640x480 - всякие странные пляски с modeline'ами делу не помогали. На работе собрали пакет для этого драйвера из svn, и, о чудо, все заработало.

Звук: работал из коробки, сетевуха - работала из коробки, wifi - мне помог рецепт на debian wiki, камера - у себя не пробовал, но видел работающей в дебиане на аналогичном девайсе. Вобщем кроме разрешения ни с чем особо мучится не пришлось.

В общем, если говорить об ощущениях - пока нравится, и можно не только как игрушку использовать, но и как просто маленький лэптопчик для того чтобы в сети полазить, в терминале что-то по быстрому сделать итп. Для экспериментов с Линуксом вполне подходит. :)

воскресенье, 15 февраля 2009 г.

EeePC, Debian,Xmonad с яблочным вкусом, заметки ламера :)

Итак, господа, кажется свершилось и "lenny" таки зарелизили. Не то чтобы на меня этот факт сильно уж повлиял: на рабочем десктопе у меня вялообновляемый unstable, на домашнем сервере "etch", который пока нет никакого желания и большой необходимости обновлять, "lenny" фактически только на EeePC, вот там его таки надо будет обновить до актуального состояния: 49 пакетов требующих обновления набежало. Но все-равно как-то приятно, что любимый дистрибъютив живет, и развивается в своем традиционном ключе.

Выходные выдались на удивление тихими, хотя оживленная рабочая неделя обещала совсем другое, и я продолжил играться с EeePC, в ключе "стянуть привычные вещи с Мака", на этот раз существенной корректировке подвергся конфиг Xmonad'а.

1. Фактически, активно пользоваться множеством рабочих столов я начал только в OS X - в Leopard'е они называются Spaces, и почему-то эти Spaces мне понравились и я нашел им достойное применение. По-умолчанию рабочих стола четыре, на каждом из которых я стараюсь запускать лишь определенные приложения: на первом - IM-клиент, на втором - терминал(ы), на третьем - почтовый клиент, на четвертом - различные браузеры. Такой расклад сложился исторически, и я к нему привык. Остальные приложения запускаются где прийдется, особой стратегии нет.

Что в этом плане прежде всего хотелось от Xmonad'а? - привязать запуск конкретного приложения к конкретному рабочему столу, для каждого рабочего стола установить свои специфические Layout'ы, которые подходят для запускаемых на нем приложений. Оказывается, сделать это достаточно просто. Допустим у нас четыре рабочих стола:

myWorkspaces = ["1","2","3","4"]

Для того чтобы firefox(iceweasel в дебиане) запускался на четвертом, в ManageHooks надо добавить что-то типа:

className =? "Iceweasel" --> doF(W.shift "4")

className можно подсмотреть в выводе утилиты xprop:

diesel@xenocefal:~$ xprop | grep WM_CLASS
WM_CLASS(STRING) = "xterm", "XTerm"

после запуска этой строчки курсор изменит форму и нужно будет щелкнуть им по окну WM_CLASS которого мы хотим узнать.

Вторая задача: каждому воркспейсу по своему Layout'у решается с помощью расширения XMonad.Layout.PerWorkspace, соответствующий import нужно добавить в начало конфига, а затем в layoutHook настройки будут выглядеть следующим образом:

myLayout = avoidStruts $
onWorkspace "1" (( windowNavigation $ (mytabs ****|* mytabs)) ||| mytabs) $
onWorkspaces ["2","3"] mytabs $
onWorkspace "4" (noBorders Full ||| mytabs)$
noBorders Full

я думаю комментировать тут особо нечего.

2. Apple'овцы для своих Spaces, кроме казалось бы логичной схемы переключения между рабочими столами а-ля Alt+F1, or smth like, когда нужно четко указать рабочий стол на который хочешь переключится, сделали еще одну, которой я активно пользуюсь. Основана эта схема переключения на, скажем так, задании относительного пути :) Допустим наша схема расположения рабочих столов выглядит вот так:




12
34

тогда, допустим если я нахожусь на рабочем столе за нумером два, и жму Ctrl + Down - я попадаю на рабочий стол за нумером четыре, Ctrl+Right - приведет на рабочий стол за нумером 3, а Ctrl+Up никуда не приведет, ну и так далее. При четырех рабочих столах, в принципе такими сочетаниями клавиш можно попасть с любого рабочего стола на любой. И хотя, вроде бы, такой способ переключения перечит заветам интерфейсостроителей в плане "хорошо, когда какое-нибудь действие приводит всегда к одному и тому же результату", что в нашем случае можно интерпретировать как "приводит на вполне определенный за каждым конкретным хоткеем рабочий стол", но тем не менее, как я уже сказал, подобную схему нахожу удобной.

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

switchSpace "1" 2 = "1"
switchSpace "1" 4 = "4"
switchSpace "1" 6 = "2"
switchSpace "1" 8 = "3"
switchSpace "2" 2 = "2"
switchSpace "2" 4 = "1"
switchSpace "2" 6 = "3"
switchSpace "2" 8 = "4"
switchSpace "3" 2 = "1"
switchSpace "3" 4 = "2"
switchSpace "3" 6 = "4"
switchSpace "3" 8 = "3"
switchSpace "4" 2 = "2"
switchSpace "4" 4 = "3"
switchSpace "4" 6 = "1"
switchSpace "4" 8 = "4"

не очень красиво, но жить можно, если не понадобится больше рабочих столов. 2,4,6,8 - здесь, это отфонарные коэфициенты для стрелочек, на основе того как они на NumPad'е есть.

Когда такая функция в конфиге появится, в хоткеи можно дописать строчки типа:

((modMask, xK_Right), withWindowSet $ \s -> do windows $ W.view (switchSpace ( W.tag . W.workspace . W.current $ s ) 6))

и если мы ничего не напутали с цифрами - все будет работать. Попробуем немного упростить эту строчку, и сделать так чтобы нам было меньше писать:

((modMask, xK_Right), switchFrom 6)

где switchFrom объявим отдельно как:

switchFrom x = withWindowSet $ \s -> do windows $ W.view (switchSpace (currentTag s) x)
currentTag s = W.tag . W.workspace . W.current $ s

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

Допустим, что рабочих столов будет больше, очевидно нужно немного изменить поведение функции switchSpace для того чтобы она более разумно выдавала следующий рабочий стол. Итак:

switchSpace w x = myWorkspaces!!((myNextIndex w x)-1)

в переводе на человеческий: вытащить из списка myWorkspaces элемент за нумером, который получится в результате выполнения функции myNextIndex, ну вернее (myNextIndex-1). w - имя текущего воркспейса, x - "номер ассоциированный со стрелочкой".

myNextIndex w x = myNextWorkspace ( (myElemIndex w myWorkspaces)+1 ) x

здесь myElemIndex находит под каким индексом в списке myWorkspaces спрятано имя текущего десктоп, прибавляет к нему единицу(мне не хочется считать десктопы с нуля), и отдает на съедение myNextWorkspace:

myNextWorkspace current turn | current + turn > 0 && current + turn <= rows * cols = current + turn
| current + turn == 0 && turn == -1 = rows*cols
| current + turn == rows+cols + 1 && turn == 1 = 1
| otherwise = current

myNextWorkspace самая главная функция. Логика работы следующая, мы немного меняем циферки которые передаются при нажатии каждой клавиши:

Up = (-колличество строк)
Down = колличество строк
Left = -1
Up = +1

и.... пробуем: если сумма номера текущего рабочего стола влазит в количество рабочих столов - возвращаем эту сумму, если не влазит - возвращаем другие странные значения. Все вместе это выглядит примерно так. Хоткеи:

[ ((modMask, xK_Right), switchFrom 1)
,((modMask, xK_Left), switchFrom (-1))
,((modMask, xK_Up), switchFrom (-rows))
,((modMask, xK_Down), switchFrom rows) ]



Прочая ерунда:

switchFrom x = withWindowSet $ \s -> do windows $ W.view (switchSpace (currentTag s) x)
currentTag s = W.tag . W.workspace . W.current $ s
rows = 2
cols = 2
myNextWorkspace :: Int->Int->Int
myNextWorkspace current turn | current + turn > 0 && current + turn <= rows * cols = current + turn
| current + turn == 0 && turn == -1 = rows*cols
| current + turn == rows+cols + 1 && turn ==1=1
| otherwise = current myElemIndex :: Eq a => a -> [a] -> Int
myElemIndex x a = head (elemIndices x a)
myNextIndex w x = myNextWorkspace ( (myElemIndex w myWorkspaces)+1 ) x
switchSpace w x = myWorkspaces!!((myNextIndex w x)-1)


Я не силен в haskell'е - много раз начинал разбираться, но кажется надо очень много свободного времени для таких разборок... и этот десяток строк занял у мну достаточно много времени на разбирательства, хотя не скажу что было скучно и неинтересно. Уверен, что можно это записать как-то более разумно, но я рад получить хоть и ugly, но работающий вариант. :)

суббота, 7 февраля 2009 г.

gnome-settings-daemon, good bye

Не отпускает тема скриншотов: одним из традиционных комментариев на ЛОРе по поводу шрифтов, как известно, является уже ставшее классикой: "шрифты гавно". Действительно с шрифтами в Линуксе не все так просто и хорошо как хотелось бы, и очень часто "из коробки" они выглядят страшновато. Правда, это как обычно дело вкуса и привычек - в данном случае у меня вкуса нет - а привычки сложились исторически, не помню уже как. Во всяком случае последние пару лет, пользуясь Гномом я предпочитал выставлять Smoothing в Grayscale, Hinting в Slight, и радоваться жизни. Для других WM'ов неизменной строчкой в .xinitrc служил запуск gnome-setting-daemon'а, для того чтобы иметь привычный вид в GTK-приложениях. Сколько ни пытался написать в ~/.fonsts.conf что-то, что сделает тоже самое - ничерта разумного не получалось.

Но на EeePC ставить и запускать кусок Гнома, ради того чтобы рулить шрифтами - как-то не сильно хочется. И вот буквально сегодня нагуглил решение проблемы.

------------------ начало цитаты ------------------------
Таким образом, если у вас в gnome-appearance-properties в настройках сглаживания шрифтов стоят опции
Resolution = 96
Smoothing = Grayscale
Hinting = Slight
то ~/.Xresources должен содержать следующие строки:

Xft.dpi: 96.0
Xft.hinting: true
Xft.hintstyle: hintslight
Xft.antialias: true
Xft.rgba: none

------------------ конец цитаты --------------------------

У меня предпочтения те же, и рецепт действительно работает! Если у Вас предпочтения другие, но желания те же :) - по ссылке найдете короткое описание соответствие Х-ресурсов Xft, и настроек Гнома, и еще небольшой бонус в виде описания того как через .gtkrc установить тему(я предпочитаю для этого gtk-theme-switch).

воскресенье, 1 февраля 2009 г.

Linux like Mac: keyboard ...

Как-то недавно заметил, что скриншоты Windows, хотя ОС и сторонний софт дает возможность кастомайзить интерфейс как тебе захочется, не просто похожи один на другой, но еще и какие-то совсем неинтересные, чтобы не сказать безвкусные. Стандартная тема, или классическая тема, на рабочем столе склад иконок, а вместо валлпейпера машина или голая девка. Я, конечно немного утрирую, но вобщем-то не далеко от истины - могу сказать точно, что на редкий виндовый рабочий стол приятно смотреть, если видел что-то другое. Возможно виндузятники чувствует что-то похожее по отношению к маководам и линуксоидам, не знаю. На Маке возможности настройки внешнего вида существенно ограничены(я про Leopard): можно сменить картинку на рабочем столе, повертеть доком, если сильно захотеть - немного настроить внешний вид дока, да и все... но поскольку изначальный внешний вид вполне пристойный - смотреть скриншоты с Мака одно удовольствие, сугубое IMHO конечно. Линуксовые десктопы на редкость разнообразны, впрочем, при обилии DE, и WM'ов на все случаи жизни ожидать чего-нибудь другого и не приходится.

Правда, к сожалению, или к счастью, линуксоиды не всегда оригинальны и любят копировать внешний вид с других систем. Сам грешен: моя любимая цветовая схема уже несколько лет - это вариации на тему того что в KDE3 называлось Solaris - я так понимаю эти цвета должны напоминать пользователям олдскульный CDE.

Но все же любимой забавой линуксоидов являются закосы под Мак. Не проходит и месяца, чтобы на сайтах где я смотрю скриншоты, кто-нить не запостил очередной закос под интерфейс OS X. Иногда, совсем похоже, но чаще - это просто вариация на тему "вот так мне кажется в Маке все и есть". Объяснять, что наличие эмулятора дока и круглых кнопок - это еще не все не очень интересно, да и не каждый поверит. Но в конце-концов есть же еще:
- строка меню приложения расположенная вверху экрана. Ее можно было относительно просто включить в КДЕ 3, но только для КДЕ-приложений, что не очень интересно. В GTK-софте, насколько я знаю, прямого способа нет, а патчить ГТК - перебор. Повторюсь наверное, - общее меню - это не просто прикольно, потому что не как у всех - это еще и очень удобно: всегда, в одном месте, ты видишь меню активного окна - для того чтобы выбрать какой-то пункт меню нужно всего лишь дернуть мышей вверх, и там уже выбирать, в отличии от виндо-линукс-приложений, когда надо еще точно выбрать нужную высоту :)
- док, не не тот док, который скорее похож на кнопки быстрого запуска. Док, тот который трей, совмещенный с кнопками быстрого запуска.
- горячие клавиши. это то что не покажешь на скриншоте:), но одновременно, это то, без чего никакая эмуляция ОС Х не будет полной. Большая часть приложений имеет одинаковые клавиатурные сокращения - это означает, что "настройки", - это всегда Cmd+, (их еще и всегда в одном и том же месте в меню можно найти), а создать таб - Cmd+t, ну и так далее. Выучив похожие по-смыслу действия в одном приложении, ты сможешь ими воспользоваться во всех остальных. Тем, кто пытается "сохранить и выйти" с помощью :wq, или удалить слово с помощью Ctrl+w(что срабатывает чаще чем :wq :-)) полезность такой однообразности просто таки очевидна.

Можно обойтись без общей на всех строки меню, некоторые приложения, которыми я пользуюсь, ее совсем не имеют, в других - не так часто приходится туда лезть. Без дока и expose, обойтись сложнее, - я например рефлекторно двигаю мышкой в левый верхний угол желая увидеть превьюшки рабочих столов :), но тоже можно. А вот с хоткеями совсем беда - с одной стороны, уж очень упрощают жизнь, с другой - работая чаще всего на Маке, но иногда таки на Линуксе, когда в Линуксе нажимаешь привычное Cmd+t (то есть в переводе на PC-шную клавиатуру - Alt+t), и не получаешь открытого таба - очень расстраиваешься :) Посему, особенно после покупки EeePC, стала посещать меня мысль привести хоткеи в своем линуксовом окружении к тому, к чему я (ну очень быстро) привык, и активно использую, в Маке. На самом деле, не так уж и много этих хоткеев, которые активно используются.

Одно из важнейших отличий Маковских хоткеев, кроется в особенностях маковской клавиатуры: в ней наличествует клавиша Command, расположенная там, где на PC-клавиатурах Alt, и именно она активно используется, вместо PC'шного Ctrl(хотя и он тоже имеется в наличии). То есть, например, копирование/вставка - это Cmd+C/Cmd+V, создание нового таба - Cmd+T и так далее. Сначала это достаточно необычно и непривычно, но через некоторое время оказывается что это чрезвычайно удобно, и возвращаться на традиционный Ctrl не очень то и хочется. Да и не особо нужно: в принципе, для большинства случаев, нужно переназначить Ctrl на "ту клавишу, которая рядом с пробелом", а Alt перенести в какой-нить другое место. Делается это достаточно просто: в файле /usr/share/X11/xkb/keycodes/xfree86 находим что-то типа:

<LALT> = 37;
<LCTL> = 64;
<SPCE> = 65;
<RCTL> = 109;
<RALT> = 113;
// Microsoft keyboard extra keys
<LWIN> = 115;
<RWIN> = 116;
<MENU> = 117;

устанавливаем циферки как нам хочется, и радуемся жизни. Правда, надо еще подумать на тему что делать с терминалом и vim'ом, в которых такая замена совсем не нужна.

Еще всплывает вопрос о настройке переключалки клавиатуры, чтобы было "везде одинаково". В Линуксе мне нравилось, когда английский язык включался тыцаньем на Caps Lock, а русский - на Shift+Caps Lock. К сожалению, как сделать такое в Маке я так и не узнал, и немного попривык к тамошнему странному Cmd+Space - для двух языков не так уж оно и не неудобно :) Памятуя замену: LALT - LCTL, задача стоит как "Cделать переключение языков по Ctrl+Space".

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


diesel@xenocefal:~$ /usr/bin/X11/xkbcomp $HOME/.xkb.my $DISPLAY
Error: Can't find file ".xkbgroup.my" for symbols include
Exiting
Abandoning symbols file "raq104"

Решение, фактически, нашел методом тыка, как-то ничего разумного гугл по сему странному поводу не выдал. Решение следующее: создаем директорию $HOME/.xkb/symbols/, в нее кладем модифицированный соответствующим образом /usr/share/X11/xkb/symbols/group, и xkbcomp стартуем как:
/usr/bin/X11/xkbcomp -I$HOME/.xkb/ $HOME/.xkb/.xkb.my $DISPLAY

Вот тогда все отрабатывает как надо. Собственно для того чтобы был Ctrl+Space, нужно дописать что-то типа:

partial modifier_keys
xkb_symbols "ctrl_space_keys" {
key <spce> {
type[Group1]="PC_CONTROL_LEVEL2",
symbols[Group1]= [ space, ISO_Next_Group ]
};
};

ну и соответствующим образом изменить .xkb.my, если считать что модифицированный group это .xkbgoup:


diesel@xenocefal:~$ cat .xkb/.xkb.my
xkb_keymap "raq104" {
xkb_keycodes { include "xfree86" };
xkb_types { include "complete" };
xkb_compatibility { include "complete" };
xkb_symbols {
include "pc(pc105)"
include "us"
include "ru(winkeys):2"
include ".xkbgroup.my(ctrl_space_keys)"

};
xkb_geometry { include "pc(pc105)"};
};



Ну и завершая на сегодня тему хоткеев, околохоткейный hint. Одной из "фишек", которая, обычно нравится вновь прибывающим на linux является наличие двух буферов обмена - "мышиного"(тот который "выделяем что-нибудь, и вставляем средней кнопкой"), и "клавиатурного"(тот который почти везде работает по Ctrl+C/Ctrl+V). Так уже сложилось, что моим любимым эмулятором терминала c давних времен является xterm. Хотя он не умеет табы, не становится прозрачным, и скорее всего еще много всяких странных вещей не умеет, мне его всегда хватало, и не очень сильно своим привычкам хочется изменять. Проблема в том, что в Xterm'е "буффер клавиатуры" никак не задействован, то есть по-умолчанию скопировать в него чего-нить из терминала нельзя. А жаль, поскольку за отсутствием средней кнопки мыши, да и вообще мыши, когда есть только странный EeePC'шный тачпад, нажать "среднюю кнопку" весьма сложно, а Shift+Insert вставляет из мышиного буфера не везде. Оказывается, есть выход - заставить xterm вместо буфера мыши, копировать в буфер клавиатуры, и тогда можно с легкостью использовать привычный нам Ctrl+V для вставки чего-нить в тот же firefox. Делается это вот такой вот строчкой в ~/.Xresources:

*xterm*VT100.selectToClipboard: true

В xterm'е, правда, вставлять все-равно через Shift+Insert надо. Если кто знает как побороть - расскажите :)

PS: хех, с привычным расположением клавиш писать на EeePC гораздо приятнее :-).

пятница, 30 января 2009 г.

нетбучное...



Новый нетбук от HP, который на Линуксе, но судя по всему лишен терминала, вызвал на Линуксфоруме живейший отклик. Пару раз пробовал вставить свои пять копеек в обсуждение, но за общим потоком мысли угнаться не получается, да и мысль как-то бросает из стороны в сторону. Хотя тема нетбуков и интерфейса для них сама по себе интересна. Тем более, что с недавнего времени я сам стал обладателем одного.

Где-то с лета цены на нетбуки у меня практически выпали из виду, поэтому, заглянув в прайс-лист после новогодних праздников, был очень удивлен, что цены на младшую линейку EeePC, не просто не поползли вверх, а даже уменьшились: что-то порядка 1800 гривен, супротив летних 2000, если переводить в доллары, то разница получается еще более разительной, и теперешняя цена в 1800, фактически делает EeePC ноутбуком за 200 долларов. Не смог отказаться от искушения приобрести ноутбук за 200 баксов, тем более, что поиграться с этой радостью хотелось давно.

Короче говоря появился у меня маленький черненький EeePC 701. Да, я знаю что нынче в моде более продвинутые девайсы, на Intel Atom, и с большим экраном... не знаю, возможно для кого-то это важно, для меня - не то чтобы очень. Размер экрана, кстати, меня абсолютно устраивает, от нескольких лишних дюймов было бы ни тепло, ни холодно, да и процессор, кажется, не совсем то, чего бы могло не хватать.

В придачу к EeePC шла Windows Xp(моя первая лицензионная винда!), и нечто странное под названием Microsoft Works. Windows я пока еще не снес, но наверное таки перенесу ее в виртуалку на Mac - возможно, это не совсем хорошо с точки зрения лицензии, но от винды на EeePC для меня толку совсем никакого нет, а в виртуалке может быть. Для меня, честно, большая загадка, зачем на подобное устройство пытаться впендюрить обычную Windows XP Home Edition, впрочем, если бы я вместо нее я увидел бы Linux с Gnome или KDE в качестве десктопа - загадка бы осталась.

Словом "десктоп" в отношении Windows/KDE/Gnome/OS X/etc. обычно пытаются покрыть "интерфейсы для всего", в самых разных значениях: от интеграции разных компонентов рабочего окружения друг с другом, до конкретных программ для простого выполнения самых разных задач, которые могут прийти абстрактному пользователю в голову. Нетбуки, в силу естественных ограничений, ориентированы на более узкую сферу применения, чем обычный настольный компьютер, и установка на них ПО "общего назначения" мне кажется несколько неправильной.

С одной стороны, привычная винда, возможно для кого-то станет решающим фактором при покупке, с другой же стороны - наличие интерфейса, изначально оптимизированного под маленький экран, небольшую клавиатуру, и кривой тачпад, сделал бы данное устройство действительно удобным для многих других. Почему-то мне кажется, что к построению интерфейса для нетбука лучше относится как к построению интерфейса для мобильного телефона. Скорее всего производительности современных смартфонов хватило бы для запуска какой-нибудь Windows 95, да вот только толку от этого особого бы ни было, поэтому на смартфонах пускают другой Windows. Мобильная винда судя по отзывам глючит не меньше, но хотя бы окошки передвигать несчастных пользователей не заставляет. Зачем заставлять двигать окошки пользователей на EeePC - непонятно.

Особо прелестями многооконного интерфейса на EeePC не попользуешься - приложение запускается, окно растягивается на весь экран, и так с ним уже можно хоть как-то работать. Исключением из правил тут могут быть разве то разные IM-клиенты, большинство которых изначально в два окна, и чтобы выстроить IM-клиент на экране так, как хочется надо немного усилий приложить. Вобщем, тут больше бы подошла концепция: каждому приложению по рабочему столу, плюс какая-нить вариации на тему скрывающейся переключалки рабочих столов, или дока. Поэтому, почему в HP решили вместо установки на нетбук "просто Линукса", еще и оболочку кастомизировать - вполне понятно.

Что пока делал со своим EeePC я? - Поигрался с виндой, поставил туда разных программ привычных: Far, Vim, Firefox, наконец-то таки немного позапускал Google Chrome, так и не увидев чего в нем хорошего нашли. Понял что со всем этим работать не очень то и удобно; купил флэшку, на которую водрузил Debian для EeePC. Из коробки заработал Wifi, что приятно - остальное, что могло не заработать, за отсутствием необходимости не пробовал. Поменял 512Мб памяти на 2 Гб(была без дела планка) - жить стало веселее.


В качестве WM пробовал "традиционный" fluxbox, и более привычный для меня - xmonad. Оставил пока что "более привычный". Немного подтвикал firefox: поставил тему, которая специально для маленьких экранов, и CompactMenu 2. Для чтения форумов, RSS, и прочего пойдет. Сильно много ощущений пока не накоплено, - все еще в процессе кастомизации, разве что кажется, что в самом устройстве, клавиатура - явно лишний элемент. Вполне хватило бы тачскрина с экранной клавиатурой - печатать все-рано сильно много не будешь, а держать было бы удобней :)

ЗЫ: Да, добрая половина этого поста написана на EeePC. :)

среда, 7 января 2009 г.

Because iTunes sucks ...

Возвращаясь к Маковской теме.

Как наверное многим известно, для мира Apple "правильным" плейером считается iTunes, - он идет в поставке Mac OS X, и в отличии от своего виндового брата-близнеца, работает вполне пристойно. Mac-пользователи любят его любовью неземной, недавно на Линуксфоруме даже встретил утверждение, что iTunes - лучший плейер в мире. Возможно для кого-то это на самом деле так и есть, для меня все немного по-другому.

Итак, iTunes - это не просто музыкальный плейер, и даже не просто медиаменеджер, такой, как, например Amarok. iTunes - это краеугольный камень музыкального(а с появлением iPhone и iPod Touch, не только музыкального) бизнеса Apple, который делался и делается с оглядкой в том числе и на то чтобы таки заставить пользователя чего-нибудь купить. Если покупать не хочется - большая часть функционала остается невостребованной, если же покупать(читай зарегистрироваться в iTunes Store) нет возможности - в сухом остатке будет не так уж и много. Зато:
  • iTunes не в состоянии играть музыку в свободных форматах ogg и flac. Если вы собирали свою музыкальную коллекцию годами, и перегнали в flac не один CD - это не приятно. XLD может помочь перекодировать flac'и в apple loseless, но это может оказаться проблемой, поскольку apple loseless не очень удобно играть в Linux.
  • iTunes не дает вам знать о существовании файловой системы. Сказать "проиграй ка мне вон ту папочку" - нельзя. Добавь в библиотеку - и из библиотеки играй. Если речь идет о локальной машине, или iPod'е - все логично и удобно. Что делать, если дома у меня музыка сложена на отдельной машине, а когда я иду в гости, то могу захотеть проиграть что-нить с машин друзей, а на работе хочу видеть только то что лежит в локальной коллекции. Amarok позволял видеть файлы, хотя есть там и библиотека.
  • в iTunes откровенно странные плейлисты. Только мне хочется видеть плейлист когда я его составляю, и в то же время не превращать плейер в многооконно приложение? Сохранение плейлистов на iPod - отдельная забава. Может я чего-то не понимаю в колбасных обрезках, но простая казалось бы задача: накидать в плейлист альбомов, перемешать, и сохранить мешанину на плейер, решается немного через зад: создаем плейлист, кидаем в него альбомов, жмем кнопку шаффл, создаем новый плейлист, копируем в него список треков из первого листа, и сохраняем его на iPod. Нажатый в iTunes shuffle, не сохраняет перемешивание на iPod'е.
Музыка, которую мне часто хочется слушать в основном собрана на iPod'е, пара альбомов лежит на макбуке(на случай когда нужен какой-то фон, а включать iPod облом), поэтому со всеми этими недостатками можно мириться. Сегодня захотелось послушать чего-нить со своей музыкальной шары, а добавлять в iTunes трэки как-то не сильно хотелось, и ... я пошел гуглить :)

Итак, разрешите представить cog - свободный музыкальный плейер для OS X. Умеет играть музыку в ogg, flac, mp3, ape и еще в куче разных форматов, хавает cue sheets, дружит с маковским last.fm-клиентом, и имеет файловый браузер. Выглядит все это вот так:

Справа как раз и есть браузер файлов, который смотрит в указанное место файловой системы. Простой, по-своему удобный плейер, который только то и умеет что играть музыку. Кажется, неплохая альтернатива этому странному монструозному iTunes :)

Кто празднует - с Рождеством! :)