Блокировка экрана

Блокировка экрана – вещь, в принципе, архиполезная. Иногда. Для некоторых

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

Читать далее «Блокировка экрана»

К вопросу о шрифтах

чудаки на букву м выпилили поддержку битмап шрифтов из pango, начиная с версии 1.44

меня это в принципе, не особо и жарило, любимый terminus используется преимущественно в urxvt и emacs, которые от pango не зависят, да еще и в консоли.
но вот конфигурялка urxvt, которая использует yad, и, как следствие, зависит то всего gtk стека, таки начала сбоить.

ну ладно. как там у высоцкого – зачем мне считаться шпаной и бандитом луддитом и ретроградом? решил сделать все стильно, модно, молодежно. но вот все эти ваши inconsolata-ы и прочие droid mono не вперли аж ни разу. голая консоль еще куда ни шло, Cyr_a8x16 решает. но в иксах заменой terminus-у может быть только terminus, для прочего хипстерства я уже слишком стар

готовые ttf варианты не канают, потому что не используют нужный/привычный мне набор патчей (dv1 ij1 ll2 td1). но шустрый гуглеж привел к mkttf, что позволило сгенерировать нужный мне шрифт без особых проблем.

результат можно взять здесь

ну и все любят картинки

Читать далее «К вопросу о шрифтах»

Очередные странности gtk3

Понадобилось вызывать всплывающее меню. По “горячей клавише”. Из любого места. Есть для этого такая маленькая приятная либа – keybinder. И как отдельная либа хороша, и в свой код интегрируется легко, т.к. в либе всего один файл с кодом. В общем – прелесть. Вот только меню из обработчиков хоткеев всплывать не желает, хоть ты тресни. Любое другое действие – пожалуйста. Меню – хрен тебе на воротник, а не меню. Причем, тот же самый код для вызова меню прекрасно работает, если его дергать через механизмы GApplication. Такая вот омерзительность.

Читать далее «Очередные странности gtk3»

Run dialog для FVWM

захотелось странного – нормальную запускалку в fvwm. но возникли трудности. то, что дается самим fvwm-ом – убого до безобразия. виджеты для ввода текста что в FvwmScripts, что в FvwmForm тупые до ужаса, не позволяют редактирование от слова вообще, да и ограничения по длине у них идиотские. зато есть Swallow и urxvt. первое позволяет встроить что угодно, благодаря XEmbed, второе – то, что надо для ввода. но, хочу свою историю и поменьше всякого лишнего. сначала подумывал об отдельном конфиге для zsh (bash собран без каких-либо интерактивностей, только для скриптов), но уж очень громоздкие решения. в результате нарыл rlwrap – очень годная тулза, использующая readline и history для организации ввода с историей и прочими плюшками. в результате родилось следующее

urxvt -name YRun +sb -bg "$[infostore.pr_bg]" -fg "$[infostore.pr_fg]" -fn "$[infostore.pr_fn]" -g 35x1-1500-1500 -e rlwrap -o -S "> " -pRed $[FVWM_LIBDIR]/prun.sh

Читать далее «Run dialog для FVWM»

Fullscreen в fvwm

Раскрытие окна на весь экран – приятная штука. Иногда. Особенно, когда экран невелик. Вот только есть эта фича не везде, где нужно. Но, “мы не можем ждать милостей от природы, взять их у нее — наша прямая задача”, так, кажись, дедушка мичурин говорил. Посему, вместо того, чтобы надеяться на разработчиков того или иного софта на предмет полноэкранного режима, такое вот решение для fvwm

Читать далее «Fullscreen в fvwm»

Numpad и xmodmap

лично меня редкостно выбешивает отвратная работа numpad-а, как средства навигации. т.к. начинал с xt-клавиатур, то эти ваши at-стрелочки считаю новомодным хипстерством. после каких-то очередных обновлений эта гадость в связке urxvt+tmux отказалась работать вообще. только цифровой ввод, и пох на состояние numlock. игрища с разными типами терминалов и баловства с настройками не особо и помогли. причем без tmux/screen, в голом urxvt все работало as expected

в результате этих головняков я задался простым вопросом – а нахер мне в системе вообще два типа стрелок, хомендов и прочих пейджапов? ответ был однозначный – нахер мне это не упало, и одного достаточно. в результате родился такой вот конфиг для xmodmap, мапящий numpad-овские кнопки на соответствующую навигацию. заодно и caps на shift+caps перевесил, а то частенько ложные срабатывания были

Читать далее «Numpad и xmodmap»

Ошибка в GraphicsMagick

обнаружилась тут давеча омерзительная вещь, при создании скриншотов gm import начисто игнорирует опцию -frame, и вообще не желает включать обрамление окон в скриншот. причем гадость эта проявляется только при выборе окна мышью. если явно указывать id, к примеру предварительно узнав его через xwininfo -frame, все делается корректно.

пришлось лезть в исходники. сначала я грешил на некорректную работу XQueryTree, но потом все оказалось значительно тривиальнее. классический use after free при разборе данной опции.

Читать далее «Ошибка в GraphicsMagick»

FVWM и переводы gettext

в fvwm есть хорошая штука – встроенная поддержка gettext. все сроки описанные как $[gt.String] являются переводимыми. одна проблема, как это все извлечь и запихать в .po файл. руками – неспортивно, писать отдельную тузлинку – как-то чрезмерно. наиболее оптимальный вариант – внедрить поддержку этого дела в какой-нибудь из существующих инструментов.

я выбрал пакет intltool. везде его использую, реализован он на perl-е, что весьма лепо, и для подобных задач самое оно. патчик получился на удивление простеньким

Читать далее «FVWM и переводы gettext»

Read в конфиге FVWM

в man fvwm по поводу команды Read написано следующее – This looks for file config in $FVWM_USERDIR and $FVWM_DATADIR directories, as described in Read.

но вот чтобы работала таки $FVWM_DATADIR, т.е. переменная окружения, а не FVWM_DATADIR, т.е. макрос m4, определяемый и используемый на момент compile-time, не неизменяемый в runtime, приходится таки напильничать.

надфиль следующий

--- fvwm-2.6.7/fvwm/read.c.orig   2016-12-07 14:12:09.000000000 +0200
+++ fvwm-2.6.7/fvwm/read.c  2016-12-07 14:19:43.728814143 +0200
@@ -239,8 +239,14 @@
 
                if((f = fopen(full_filename, "r")) == NULL)
                {
-                   full_filename = CatString3(
-                                   FVWM_DATADIR, "/", filename);
+                   char *datadir = getenv ("FVWM_DATADIR");
+                   
+                   if (datadir)
+                           full_filename = CatString3(
+                                           datadir, "/", filename);
+                   else
+                           full_filename = CatString3(
+                                           FVWM_DATADIR, "/", filename);
                        f = fopen(full_filename, "r");
                }
        }

Провал перехода на gtk3

очередная попытка перейти в системе на gtk3 – очередной провал, и очередной откат на gtk2

первая причина проста – нет софта.

  • firefox без наличия в системе gtk2 не собирается, какие рашпили не применяй. а последние версии, требующие обязательного присутствия в системе антикварного autoconf-2.13 – вообще лютейший пиздец.
  • нормального почтового клиента – нет. любимый sylpheed – только gtk2. claws – хоть и собирается под gtk3, но его собственные виджеты для списков – полный пэ, кладущий стопицот болтов на текущие темы в частности и css-движок вообще. balsa – эта дура не умеет локальные ветки, только с сервера. поле references (rcf 4021) – то ли не осилили, то ли для лохов. громоптиц – та же беда, что и с огнелисом
  • gimp – пока что только gtk2. что там у них в git-е творится, даже и смотреть не хочу.
  • pidgin – аналогично. а учитывая то, что они весь интерфейс 3-й ветки переводят на webkit, но при этом почему-то используют webkit, а не webkit2 – вообще вызывает изрядное недоумение

вторая причина – собственно либа и вектор ее развития

тут подходит старая поговорка “садился – бодрился, стал срать – и упал”. нелогичность развития просто поражает. есть куча положительных моментов, типа выкидывания всяких [vh] классов, вроде GtkVSeparator/GtkHSeparator и т.д. унификация сложных виджетов (selector->chooser). выбрасывание deprecated барахла, и как следствие – чистка кодовой базы. но блядь!!! с барахлом они переборщили. от релиза к релизу куча полезных штук объявляется устаревшими, взамен ничего не предлагается.

  • стоковые элементы – устарели. замены нет. объяснение – дергайте иконки из темы. ДОЛБОЕБЫ, БЛЯ, СТОКОВЫЕ ЭЛЕМЕНТЫ – ЭТО НЕ ТОЛЬКО ИКОНКИ! а еще и перевод меток и простота api для пользователей.
  • иконки в меню – устарели. пояснение – хотите иконки, пихайте свой контейнер. схуяли? на кой хрен эту рутину переносить из библиотеки в приложения?
  • csd – вообще боль и печаль. особенно их неотключаемость без хаков с LD_PRELOAD
  • отсутствие color picker-а в диалоге выбора цвета – тоже изрядно напрягает
  • popover – отдельная тема для ненависти. изначально идея неплохая, но ее реализация – бля, узнаю, какая тварь это выдумала – буду топтать пожизненное на американской киче

вот такие пироги. жаль, что поторопился свой yad покострячить. теперь придется задвигать trunk в отдельную ветку и мержить legacy обратно в trunk

upd: и да, отдельную ненависть вызывает стремление использовать GSettings для хранения настроек и прочих текущих состояний диалогов выбора файла и цвета, и как следствие – косвенное требование наличия dconf в системе

FVWM и буфер обмена

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

В результате родилось следующее. Небольшой скриптик, использующий xclip для управления буферами и fvwm для его периодического дергания и организации меню выбора нужного куска.

Читать далее «FVWM и буфер обмена»

десктопное

похоже, что переход на gtk3 в пределах одного, отдельно взятого нетбука, таки удался

что остается? остаются охуенные мелочи. нормального почтового клиента нет, только balsa. придется допиливать. pidgin, падла, требует webkit, а не webkit2. и глядя на код, я малость приохуел. тоже на допил. epiphany вроде заточил

тему еще допилить надо, но в первом приближении вроде рабочая уже.

единственный плюс всего этого – давно собирался запилить свой десктопчик на базе fwvm + скриптовые плюшки, и это наконец свершается.

такие вот пирожки (на более крупное не тянет пока)

Десктопные уведомления на perl

Нормальный человек проводит отпуск нормально. Я – человек не очень нормальный, потому и отпуск провожу не очень нормально. Одна из ненормальностей нынешнего отпуска – реализация уведомлений на perl-е.

Читать далее «Десктопные уведомления на perl»