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");
                }
        }

Emacs и tearoff меню

у всех меню в gtk-шной сборке emacs-а включен tearoff – мерзкая дурость, позволяющая меню закрепить в отдельном окне. удобство довольно сомнительное, по крайней мере для редактора, который обычно развернут на весь экран. и лично меня жутко раздражала эта мерзкая полоска из дефисов, которая еще и подсвечивается, в каждой менюхе. хорошо, хоть не очень часто меню пользуюсь

в конце-концов решил это недоразумение выпилить. поначалу кромсал код, но потом нашел более элегантное решение. просто перед сборкой сделать export CFLAGS="$CFLAGS -UHAVE_GTK_TEAROFF_MENU_ITEM_NEW"

все, задача решена