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»