20080821

позиционирование окна rdesktop в xmonad.

недавно поставил «на попробовать»
патч на rdesktop:
--- rdesktop-1.6.0/xwin.c       2008-05-11 10:14:38.000000000 +0400
+++ rdesktop-1.6.0.xmonad/xwin.c 2008-08-20 17:03:43.000000000 +0400
@@ -2052,11 +2052,11 @@
sizehints = XAllocSizeHints();
if (sizehints)
{
- sizehints->flags = PMinSize | PMaxSize;
+ sizehints->flags = PMinSize;
if (g_pos)
sizehints->flags |= PPosition;
- sizehints->min_width = sizehints->max_width = g_width;
- sizehints->min_height = sizehints->max_height = g_height;
+ sizehints->min_width = g_width;
+ sizehints->min_height = g_height;
XSetWMNormalHints(g_display, g_wnd, sizehints);
XFree(sizehints);
}
@@ -2118,9 +2118,9 @@
sizehints = XAllocSizeHints();
if (sizehints)
{
- sizehints->flags = PMinSize | PMaxSize;
- sizehints->min_width = sizehints->max_width = g_width;
- sizehints->min_height = sizehints->max_height = g_height;
+ sizehints->flags = PMinSize;
+ sizehints->min_width = g_width;
+ sizehints->min_height = g_height;
XSetWMNormalHints(g_display, g_wnd, sizehints);
XFree(sizehints);
}

смысл — не указывать в свойствах окна максимальные размеры, из-за наличия которых xmonad не решается по-нормальному окно спозиционировать.

20080820

virtualbox, не привязанный к X-сессии

понадобилось мне, чтобы vm, запущенная в virtualbox-е, не была привязана к x-сессии.
т.е., чтоб я спокойно мог иксы вырубать, а vm работала бы как ни в чем не бывало.
есть такая возможность.
VBoxHeadless -s <имя vm> >&/dev/null &
потом к ней можно коннектиться по протоколу rdp(например, rdesktop-ом). хоть с локальной машины, хоть удаленно.
вот только то ли чего-то там ребята не додумали (разработчики или майнтайнеры пакета), то ли это специфично для гостевой vm с windows(других в данный момент нет, не проверял), но...
вырубается, собака, когда завершаю X-сессию.
быстренько созрел план эксперимента. эксперимент проведен. результат его оказался успешным. вот так надо запускать машину:
DISPLAY= VBoxHeadless -s <имя vm> >&/dev/null &
смысл — передача пустой переменной окружения DISPLAY. и будет вам счастье.
а какие мелкие/крупные грабли вам удалось победить/обойти при общении с virtualbox-ом?

20080809

меняется все…

и даже дизайн на http://sourceforge.net
ничего так, освежились немножко.

20080808

less в длинном конфигурационном файле

в /etc порою встречаются просто безразмерные файлы конфигурации.
большая часть строк — это просто комментарии.
чтобы сделать виднее незакомментированные строки, пришла в голову такая вот простенькая поисковая строка:
^[^#].*

подсвечивается все содержимое незакомментированных строк. естественно, работают и
n
и
shift+n

20080806

mysql command-line tool в mandriva

вот почему completion в mysql в mandriva не работает:
$ grep -B 1 rehash /etc/my.cnf
[mysql]
no-auto-rehash

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

20080730

shell from here

вот уж не думал, что придется еще когда-нибудь запускать windows. однако, пришлось...
чтобы не разыскивать каждый раз это решение, запишу-ка его здесь:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\Command Prompt]
@="shell"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\Command Prompt\command]
@="cmd.exe /k pushd %1"

это содержимое <файл с произвольным именем>.reg.
добавляет в контекстное меню каталога пункт "shell" (shell from here).

20080706

delphi form (dfm) со строками на русском

портирую сейчас в lazarus под linux приложение, написанное в delphi под windows.
в дельфийских формах (файлы с суффиксом dfm) надписи на русском представлены в таком примерно виде:
Caption = #1055#1086#1080#1089#1082
что не очень-то удобочитаемо.
для чего набросал скриптик на perl-е:
#!/usr/bin/perl -w
use Text::Iconv;
$conv=Text::Iconv->new("ucs-2be","utf-8");
sub aaa{
$a=$_[0];
$b=$a%256;
$c=($a-$b)/256;
return $conv->convert(chr($c).chr($b));
};
while (<>) {
s/((?:#\d{4})+)/"$1"/g;
s/#(\d{4})/aaa($1)/eg;
print
}
использовать его можно и просто как фильтр, и как самостоятельный обработчик файла:
cat файл.dfm | скрипт.pl | less
скрипт.pl файл.dfm | less
если Вам нужен результат не в utf-8 - подправьте соответствующую строчку. подходит все, что понимает iconv.