LINUX.ORG.RU

Perl


102

7

Всего сообщений: 7

Минимализм на FVWM прошедший через года.

Привет, Лор!

Мой этап ковыряний FVWM давно позади, уже выкладывал скрин процесса в галерею с описанием вот здесь: FVWM для на ноуте

Начинал с экспериментов с fvwm-crystal, написал некоторое количество модулей на perl, но постепенно отказался от различных элементов окружения из-за ощущения их ненужности.

Позже сформировал для себя концепцию десктопа и живу с ней уже больше 10 лет. И вот стало интересно — что в её рамках можно ещё улучшить?

Из обыденного десктопного, но как по мне - ненужного:

  • Значки на рабочем столе — не нужны, так как для запуска/деиконификации/иконификации основных используемых программ есть хоткеи. А для неосновных есть менюшка и rofi. Ну и когда всё свёрнуто, приятнее на чистую-красивую обоину втыкать.
  • Несколько десктопов — не нужно, так как монитор всё равно один. И каждый раз на фуллскрин запущена какая-то конкретная прога. Нет смысл по хоткею идти на другой деск, когда по хоткею же можно развернуть другую прогу в текущей рабочей области.
  • Тайлинг - не нужен, так как проще переключаться между полноэкранными приложениями - в моём воркфлоу не встречается ситуаций, когда мне нужно видеть сразу два окна разных приложений.
  • Заголовки окон — не нужны, так как все действия с окнами удобнее совершать хоткеями.
  • Бары со значками для запуска приложений — не нужны как и значки на рабочем столе.
  • Бары с инфой о системе или вывод её поверх обоины (конки) — не нужно, так как можно открыть окно с такой инфой по хоткею (тот же конки) — пусть обоина остаётся чиста, а стороны дисплея — не заняты.
  • файловый менеджер — не нужен, так как для большинства задач достаточно консоли с ls, cd и вот этим вот всем, а когда недостаточно (файлопомойка, где желательно видеть превьюхи картинок), использую xnview

Итого в остатке:

  • Для часто используемых приложений есть хоткеи. По хоткею приложение если не запущено — запускается и максимизируется, если запущено и активно — сворачивается, если свёрнуто — разворачивается.
  • Приложения разбиты на «группы исключений». Если разворачивется приложение из группы А, то если есть другое развёрнутое из этой же группы, то оно сворачивается. Но разворачивание аппы из А никак не сказывается на приложении группы Б. Удобно, допустим, все терминалы загнать в группу А, а браузер, в группу Б. Тогда упрощается совместное использование браузера и терминалов. Браузер может быть открыт всё время, а разными хоткеями открываю различные терминалы. После открытия нового терминала остальные сворачиваются, а окно браузера остаётся на месте. Для реализации таких групп написан модуль FvwmUpWindow.
  • Приложения на хоткеях: conky, rofi (drun,run), skype, libreoffice, evince, xnview, chrome, calcoo, smplayer, audacious, urxvt. На 4 хоткея забито восемь отдельных сессий терминалов (win+U, win+I, win+O, win+P, win+shift+U …). Восьми терминалов «хватит всем», так что screen/tmux посчитал лишней сущностью. Бэкграунд терминалов подсвечен разными цветами, чтобы не путаться какой сейчас апнут.
  • Так же на хоткеях изменение громкости, гаммы, движение, ресайз и прочее с окнами (завязано на hjkl) на тот случай, если не устраивает maximazed вариант.
  • По хоткею — WindowList — увидеть, что уже запущено, что-то развернуть, закрыть.
  • По хоткею — менюха с основными приложениями. Там и те, что заслужили хоткей и те, что нет, но тоже быстрый доступ удобен. Можно в принципе всё через rofi организовать и десктоп файлы, но пока влом.
  • Compton — для спецэффектов: постепенное сворачивание окон, небольшая прозрачность на терминалы.

В ленивом туду:

  • Сделать автомонтирование через udiskie
  • Прикрутить dunst для оповещений - того же автомонтирования, может чего ещё.
  • Ииии… всё. Фантазия закончилась. Вроде всё работает и всё устраивает. Возможности FVWM задействованы по-минимуму (~250 строк конфиг и ~100 — модуль на перле), и можно бы от FVWM отказаться, но не вижу смысла, да и иметь эти возможности про запас кажется разумным. Но вот стало интересно — куда в описанной парадигме можно двинуться дальше и чего такого удобного-прикольного замутить?

PS. Конфиг fvwm, compton, модуль, обоина и скрипт для старта, а также конфиг conky и .Xdefaults с конфигом urxvt - в архиве: https://drive.google.com/file/d/1IGeNjQGs3_oSPqZj8DW0FXOypYb72kwA/view?usp=sharing

>>> Просмотр (1920x2160, 1792 Kb)

 , ,

lv
()

Perl прямиком из 1987 года

Прочитав новость «Код интерпретатора Perl официально перенесён на GitHub» я решил взглянуть на репозиторий Perl 5, который теперь уже находится на GitHub’е.

Удивительно, как трепетно и качественно его перенесли, сохранив не только абсолютно всю 32-летнюю историю проекта, но и багрепорты (Issues), патчи (PRs), релизы и ветки. Надпись «32 years ago» рядом с файлами вызывает улыбку.

Что ещё делать в этот унылейший пятничный вечер, когда на улице неприятно моросит дождь со снегом, а все дорожки погрязли в осенней слякоти? Правильно, красноглазить! Так что я ради эксперимента и интереса решил взять и собрать древний Perl на современной x86_64-машинке с gcc (GCC) 9.2.0 в качестве компилятора. Сможет ли такой старый код пройти проверку временем?

Чтобы было совсем уж аутентичненько и некрофильненько, я развернул виртуальную машину с голыми иксами и twm, который тоже родом из 1987 года. Кто знает, может быть Larry Wall писал свой Perl используя именно twm, так сказать bleeding edge technology того времени. Используемый дистрибутив – Arch Linux. Просто потому что в его репозитории есть некоторые полезные вещи, которые впоследствии мне пригодились.

( читать дальше... )

>>> Просмотр (1605x600, 55 Kb)

 , , , ,

EXL
()

Красные глаза, CRUX и gmusicbrowser

Уже две недели на CRUX, полет нормальный.

Весь софт собирается в оперативке, /tmp в оперативке, кэш firefox'а тоже. Никакого пульсаудио, системд и прочего: минимальные зависимости. Никакой документации и мусора. Только маны.

Когда не слушаю музыку — слушаю винт, чтоб не шуршал не дай бог. Иначе паника, хватаюсь за iotop и бешено ищу виноватых.

Короче, хочу рассказать не об этом: в терминале виден код, это плагин к gmusicbrowser. Кто не знает об этом плеере, предлагаю оценить. Наифичайший: плагины, бэкенды, кастомизация внешнего вида. В pull реквестах проекта, на гитхабе, валяется плагин к musixmatch. Русско/украино/молдо/казахскоязычной аудитории может понадобиться, чтоб плеер находил тексты песен на этих языках. В целом исправлений немножко накопилось... как-нибудь оформлю патчи.

О коде: наконец-то дошли руки. Давно хотел. Теперь в gmuscibrowser можно включать эквалайзер для каждой песни отдельно, создавать свои предустановки разным песням, включать по умолчанию какую-то предустановку или полностью вырубить эквалайзер. Чтоб включался только указанным песням.

Вот скриншот: https://transfer.sh/UA2kE/07-03-17-10-51-29.png

Иииха! Глаза красные, уши прекрасные.

Меломанам посвящается.

>>> Просмотр (1917x1080, 513 Kb)

 , ,

Deleted
()

Вечер рабочей пятницы

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

Основной рабочий инструмент - Komodo Edit 8. Тема редактора - немного переделанная Dark-wombatsosia

Бэкенд пишу на Перле (Catalyst)

Для фронтенда решил попробовать что-нибудь новое и фреймворковое - Ember.js. Пока нравится, довольно толковый фреймворк.

По другим открытым окошкам:

  • Браузер Chrome
  • Файловый менеджер Krusader
  • Проектирую/редактирую базу данных проекта в MySQL Workbench
  • Скайп для обсуждения "важных" и "очень важных" вопросов с коллегами
  • Sublime text 2 - юзаю как обычный текстовый редактор для «быстро поправить и чтоб окошки»
  • HeidiSQL запущенный в wine, более удобного для меня клиента MySQL не знаю
  • По F12 сверху вылезает yakuake

По системе:

  • Kubuntu 13.04
  • Ноутбук Toshiba Satellite L850, у которого с проприетарными драйверами (AMD) работает 3D ускорение и он почти холодный, но не работает регулировка яркости экрана, а без них - горячий как утюг, но зато регулируется яркость экрана. Глаза дороже, потому грею руки. Как оставить управление подсветкой ядру при установленных дровах пока не разобрался. Параметр ядра acpi_backlight уже ставил в различных вариациях...

Еще скрины:

http://keep4u.ru/full/6db267ff3033f8bd07d37202f9cb227d.html

Слева выезжает панелька для быстрого запуска приложений.

Обоину взял у кого-то тут, с форума.

Вот так вот.

>>> Просмотр (1366x768, 166 Kb)

 , ,

Alex_Crack
()

Предпраздничная рассылка

Вчера задавал вопрос в Development, как раз по этому поводу. Выдёргивал адреса для рассылки.

Использовал этот же скрипт для рассылки в прошлом году.

Если кому-то будет нужно - могу выложить.

На скриншоте:

  • Дефолт ubuntu 12.04 amd64
  • sublime text 2 beta (я видимо совсем упорот, раз собрался брать этот редактор, но уж больно понравился он)
  • Сам скрипт, накиданный в perl на основе нескольких найденных в интернете

    А вот как выглядит это сообщение в gmail.

    Поздравляю всех с наступающим!

>>> Просмотр (1366x768, 170 Kb)

 

ekzotech
()

Немного некрофилии, немного понтов, удобный модуль для fvwm и панелька

Я недавно опять пытался освоиться в тайловых wm, и опять у меня не получилось. Видимо, мне не хватает усидчивости и квадратно-гнездовой дисциплины.

Посидел недельку на wmfs, попытался написать простейшее правило для него и полез смотреть, чего ещё на свете есть. Почитал про awesome, почитал про xmonad, грустно вздохнул и уполз обратно на fvwm.

А между тем у меня на винте уже почти год как валяется модуль, реализующий тайлинг для fvwm, написанный на православном Perl - это значит, если я буду кушать кашу и слушаться маму, то когда-нибудь даже смогу его немножко допилить! Ну а пока решил просто попользоваться.

Если кому интересно, это Fvwmpiazza. Нужно установить его с помощью cpan или руками распаковать в .fvwm по инструкции, доставить Class::Base, дописать путь до модуля в ModulePath и добавить функции в свой конфиг по вкусу.

Заодно решил потыкать FvwmButtons и сделать панель только из них (+stalonetray), естественно, все иконки нажимаются. На скрине можно видеть mutt и ncmpcpp, вызванные таким образом.

С ними вот какая история: ncmpcpp - морда к mpd, а mpd постоянно запущен, а mutt у меня - только для чтения/писания почты, доставкой и отправкой занимаются другие утилиты. Соответственно морды можно вызвать, поглядеть письма/добавить песни и просто закрыть. Не знаю, как объяснить, но очень удобно получается.

Все столы, кроме Paint и Spare настроены на одно окно слева и много справа, Paint предназначен для Gimp и соответственно поделен столбцами, Spare не контролируется тайловым модулем, так что старый добрый бардак из окон всегда есть где устроить.

Количество писем и разруливание иконок - быдлокод на Perl.

GTK2 - немного подпиленный DoYouLikeIt
Иконки - Ubo

png

UPD: Я страдаю редкой формой шрифтовой слепоты. Симптомы такие: те шрифты, что на скрине, меня совершенно устраивают. Прошу отнестись с пониманием.

>>> Просмотр (1366x2304, 899 Kb)

 , ,

Hoodoo
()

Первый фишбот для Lineage2/Wine

ArchLinux
Дефолтный dwm
Шрифты в терминалах -rfx-serenetypewriter-*
Сам бот - корявое поделие на perl с использованием Imager::Screenshot и xse (X11::SendEvent не доставляет). Но дело свое хорошо знает и редко ошибается...

Принцип работы бота очевиден - скриншотим части окна Л2 (ГФШ, админы-инкогнито, кажется выходцы с Мелка, что характеризует) в нужных местах и симулируем нажатие F1..F12 по ситуации. Бот написан под Интерлюдию, но под более свежие хроники поправить не сложно будет - лишь изменить шаблоны, по которым идет поиск нужны градусников и окон. Комп старенький (одноядерный атлон на пару ГГц), тянет 3 окна фулскрин. Можно больше, но начинает подлагивать.

upd по вопросам в комментах.

>>> Просмотр (1024x768, 208 Kb)

 , , ,

ErrorAnonymousUser
()