All articles, tagged with “haskell”

Bluetile.deb

В прошлый раз я посетовал, на то что у Bluetile нету .deb пакета, что несколько усложняет его установку. После некоторых раздумий было принято решение сделать такой пакет самому, ведь это должно быть совсем не сложно. На удивление, пакет собрался довольно быстро.

Если быть откровенным, то у меня есть подозрения, что пакет получился не совсем «кошерным». Т.к. он вроде и бинарный, но попутно скачивает и собирает софт из исходников. Но как сделать лучше я пока что не знаю, так что с радостью выслушаю дельные советы :)

Пакет чрезвычайно прост:

  • control — файл, с описанием зависимостей (компилятор Хаскеля и библиотеки).
  • postinst — скрипт, который скачивает, собирает и установливает cabal и bluetile в $HOME/.cabal/
  • prerm — удаляет симлинки при удалении пакета.
  • Для удобства добавил так же bluetile.desktop — ярлык в главном меню(Applications → Accessories → Bluetile) с иконкой от Xmonad.

Скачать пакет можно тут → bluetile_0.3.deb. Пакет проверялся на Ubuntu 9.10.

Исходники — http://hg.zayats.org.ua/bluetile-deb/

P.S.Кстати, для организации тестовой площадки очень помог проект «VirtualBox® Images». Проект предоставляет готовые к употреблению виртуальные машины с различными предустановлеными ОС.

Bluetile — Xmonad для простых смертных

Image Идея организации окон мозаичным способом мне приглянулась сразу, как только я узнал о Xmonad. Слишком уж часто я замечал, что много энергии и внимания расходуется на манипуляцию окнами: сворачивание/разворачивание, частые переключения между двумя-тремя окнами для синхронизации информации между ними, долгая «мышиная возня» для того, чтоб разместить несколько окон рядом, и т. п. Мозаичный же подход предлагает автоматическое и более оптимальное размещение окон.

К сожалению у Xmonad слишком высокий порог вхождения для новичков.

  • Во-первых, смена парадигмы окружения рабочего стола сама по себе сложна и требует времени на адаптацию. Запустив Xmonad я себя чувствовал одновременно потеряным и беспомощным — все мои навыки не работали в новой среде. Почти так же я себя почувствовал как при первом знакомстве с Enlightment 8 лет назад, но там хоть были клёвые выдвигающиеся панельки.

  • Во-вторых, сложный процесс конфигурации. Конфиг нужно писать на Хаскеле. Конечно, это даёт широчайшие возможности по затачиванию среды под свои нужды. Да, хорошему программисту рекомендуется в год изучать хотя бы один новый язык. А Haskell — это, возможно, наше светлое функциональное будущее. Но когда нужно решать сугубо «бытовые» проблемы вроде подстройки клавиатурных сочетаний, неизвестный язык становится серьёзной преградой для внедрения новых инструментов. К тому же, после правки конфига, Xmonad нужно было по-новой компилировать.

Bluetile

bluetile screenshot

К счастью, нашёлся добрый человек, — Jan Vornberger, — который захотел исправить ситуацию и сделать Xmonad более доступным для простых смертных. Итогом его работы стал Bluetile 1.

Главная задача, которую ставил перед собой Jan — создать мозаичный оконный менеджер, которым можно эффективно пользоваться с нулевой предварительной подготовкой. Добился он этого оставив привычные элементы управления вроде titlebar с кнопками, панелей задач и быстрого запуска и предоставив полный доступ ко всем функциям не только с клавиатуры, но и при помощи мыши. Менеджером можно пользоваться «из коробки», не ковыряясь в настройках и не читая длинных мануалов. Кроме того, он прозрачно интегрируется с GNOME.

Небольшой недостаток Bluetile заключается в нетривиальности установки. Проект молод и ещё не успел обзавестись ни PPA, ни даже .deb пакетом. Но, хотя Bluetile и нужно собирать из исходников самому, всё не так сложно, как можно подумать. Для Ubuntu 9.10 процесс выглядит так.

Haskell

Конечно же, нам понадобится Хаскель и биндинги для библиотек GTK+ и Glade.

$ sudo apt-get install ghc6
$ sudo apt-get install libghc6-gtk-dev libghc6-glade-dev

Cabal

Cabal для Haskell — тоже самое, что и easy_install для Python, gem для Ruby, apt для Debian/Ubuntu. В общем, вы поняли, о чём я :)

Кроме того, что кабал умеет разруливать зависимости между пакетами, он хорош ещё тем, что ставит всё в ~/.cabal. Т.е. можно не переживать, что система будет захламляться файлами, которые потом нужно будет искать как иголку в стоге сена.

# ставим необходимые библиотеки
$ sudo apt-get install libghc6-network-dev libghc6-parsec-dev libghc6-mtl-dev libghc6-zlib-dev
# качаем исходники кабала...
$ wget http://haskell.org/cabal/release/cabal-install-0.6.2/cabal-install-0.6.2.tar.gz
# ...распаковываем...
$ tar -xvvf cabal-install-0.6.2.tar.gz
#...и устанавливаем
$ cd cabal-install-0.6.2 && ./bootstrap.sh
# для удобства, сделаем ссылку в /usr/local/bin/
$ sudo ln -s $HOME/.cabal/bin/cabal /usr/local/bin/cabal

Собственно, сабж

$ cabal update
$ cabal install bluetile
~/.cabal/bin/bluetile

В общем, если вы тоже периодически ловите себя на мысли, что «борьба» с окнами отнимает слишком много сил — вам, определенно, следует посмотреть в сторону мозаичных оконным менеджеров и попробовать Bluetile. В качестве бонуса: список хоткеев и для любителей cheetsheets — шпаргалка по Xmonad.


  1. Проект анонсирован в сентябре, а 6 декабря его код был включен в Xmonad.