Меня давно занимает идея «шпаргалок на виду», пока что я обхожусь развешенными вокруг монитора листами А4, исписанными маркером, но они бывает, падают, маркер пишет толсто и вообще у меня в конце концов есть монитор, чтобы показывать мне шпаргалки быстро и удобно.
Для этого я хочу выделить отдельный раб. стол, на котором бы жили одни шпаргалки. Сначала я думал рендерить их через imagemagick, который поддерживает pango markup, на который я возлагал надежды выводить текст колонками и ожидал XML-подобную разметку. Надеждам было суждено рухнуть – язык оказался гораздо тупее, чем я думал, и колонками, как и CSS, там и не пахло. Тогда я подумал, а что если писать шпаргалки в обычном HTML+CSS и подключать рендер? Но какой?
Требования к рендеру:
Мгновенно рендерить HTML 4.01/XHTML 1.0 и CSS 2 объёмом ну… полагаю килобайт 8-10 для начала. Никакого видимого интерфейса или возможность прятать оный, чтобы предоставить всё место окна самой шпаргалке. Рендерить по-человечески, а не ШГ. Поддерживать Xft или сглаживать иным образом, но так, чтоб не хуже, чем в любом другом популярном браузере. Может, что-то забыл.
Как я это вижу (можно не читать): при переключении на специальный рабочий стол там уже раскиданы плиткой все возможные окна по одной открытой шпаргалке в каждой. Шпаргалка представляет собой два HTML файла и глобальный подключаемый CSS. Первый файл содержит только название шпаргалки крупным шрифтом – на рабочем столе плиткой окна первоначально показывают именно эти страницы с названиями. По команде переключения окна в полноэкранный режим срабатывает хук, который проверяет WM_CLASS окна и сравнивает его с тем, что имеет рендерер, и, если это он, то раскрывает окно и шлёт ему команду через Xautomate, которая проходит по ссылке на файл со шпаргалкой. При возвращении окна обратно в плитку выполняется соответствующая операция по переходу на предыдущую страницу с названием шпаргалки крупными буквами.