Тихо и незаметно экспериментирую с созданием среды визуального программирования.
На скриншоте виден прототип самой среды с функцией, вычисляющей числа Фибоначчи. Среда уже умеет транслировать схему в код на ванильном Haskell-е и выполнять его через ghci (его вывод показан на вкладке REPL). Сгенерированный код показан в отдельном окне.
Сам прототип написан на PySide6, схемы хранятся в PostgreSql. Для разработки использую WingIDE (на заднем плане), PgModeler и DBeaver.
Вот такое вот окружение у меня получилось после двух-трёх месяцев использования XMonad. До этого перепробовал несколько различных DE(KDE(четвёртые и пятые), GNOME 3(второй не застал), MATE, LXDE, Xfce), из которых больше всего мне понравились кеды. После долго сидел на IceWM, пробовал(но не очень-то и осилил) FVWM2 и Openbox. Несколько месяцев назад начал изучать Haskell. Как-то знакомый посоветовал попробовать тайло-WM. Вот тогда я и решил попробовать XMonad.
Теперь немного о самом окружении. На скрине виден кусок моего конфига для XMonad, стыренного частично с Хабра, частично с гитхаба, и подогнанного под мои нужды. Для воркспейсов используется иконочный шрифт FontAwesome(подсказал kalterfive), на панели - Droid Sans Mono. В качестве плеера - mpd, клиент - ncmpcpp. Кроме того, хотя на скрине этого и не видно, но в панель выводится инфа о текущих плейлисте и песне. Терминал - urxvt, шрифт - terminus. Цветовая схема нагло стыбрена у intelfx.
Про ШГ в терминале - знаю, но не знаю, какой шрифт лучше туда поставить. Раскраска в виме тоже вырвиглазная, но опять же, не в курсе, на что поменять.
Обустраиваюсь в xmonad, потихоньку подпиливая его под себя. Переоткрыл для себя такую замечательную фишку, как GridSelect, и теперь экспериментирую над тем, что удобного с ее помощью можно сотворить.
Эксклюзивного и ранее не виданного уже сделано:
К xmonad прикручены KDEшные Activity. Получилось даже более быстрое их переключение, чем через родные средства плазмы и квина. Пока довольно ограничено (нет интерфейса dbus, то есть управление ими только из xmonad, но не из плазмы; после добавления активити из плазмы нужно перезапускать xmonad), но мне хватает.
Базируется это все дело на безызвестной либе из
этого репозитория.
Прикручено переключение с помощью все того-же GridSelect табов из Firefox. Требует становленного MozRepl. Вот тут репозиторий c начальным огрызком библиотеки, может, потом буду улучшать функционал.
Собственно vision — клиент для плеера xmms2, по просьбам. версия 0.0.5.0, разрабатывается одним лоровцем на хаскеле, за что ему «респект и уважуха». В этой версии появилась возможность формировать выборку из коллекции по тегам в наглядной форме, что и продемонстрировано. Амарок так не умеет :)
Сохранение плейлистов, добавление своих произвольных тегов (и поиск по ним, естественно) --- все это было уже черти когда и сейчас достаточно хорошо работает. Возможность проиграть трек из произвольного места --- как раз то, чего так не хватает mpd. возможности просмотра файлов со стороны демона вообще имхо нигде не реализована, равно как и возможность настроить (в виде небольшого языка шаблонов) отображение плейлиста.
Сначала ставится xmms2 из пакетов с dev библиотеками, потом вытягивается из гита и собирается xmms2hs, потом сам vision. До недавнего времени все хаскельные библиотеки, необходимые для сборки, были в пакетах дебиана, теперь же для сборки надо поставить cabal и вытянуть пару пакетов им. Какие именно пакеты тянуть будет написано при сборке :)
В процессе диплома пишется эмулятор ARM(на самом деле, не совсем эмулятор, но это не важно). Пишется на Haskell, с последующей генерацией в С. Главная цель работы - изучить возможности advanced type systems для программирования.
Конфигурация:
1. Emacs : haskell-mode + vimpulse(очень удобная штука) + org-mode(для literate описания). org-haskell-mode для интеграции всего в одном буфере - оказалось очень удобно для описания частей системы, проставления ссылок, хранения частей документации, и вобще всего что может понадобиться, в одном месте.
2. xmonad + xmobar - в качестве декстоп окружения. Очень удобно при наличии 2-х мониторов(сейчас он отключен). Обычно на втором открывается документация, и переводится в язык описания модели.
После черных тем перешел на менее контрастные, вроде даже для глаз стало приятней.
В общем : замечания, пожелания, вопросы приветствуются.