воскресенье, 13 ноября 2011 г.

Thunderbird/Lightning - фикс таймзоны

Оказалось, что Thunderbird, а именно его расширение для планирования Lightning (пакет xul-ext-lightning) использует свою базу таймзон (игнорируя системную), а именно базу SQLite в файле /usr/share/xul-ext/calendar-timezones/timezones.sqlite - эта база ставится в составе пакета xul-ext-calendar-timezones.

К сожалению эта база не отражает последних изменений, в связи с чем Thunderbird более не способен оповещать о планируемых мероприятиях в корректное время. Также непонятно когда будут обновления этого пакета и будут ли они вообще.

Однако ситуацию можно исправить самим. Для этого копируем этот файл туда, где его можно будет отредактировать (но можно и поменять владельца прямо на месте). После этого его нужно отредактировать редактором (пакет sqlitebrowser) - в строку соответствующую зоне Europe/Moscow скопировать следующее определение.

BEGIN:VTIMEZONE
TZID:Europe/Moscow
X-LIC-LOCATION:Europe/Moscow
BEGIN:STANDARD
TZOFFSETFROM:+0400
TZOFFSETTO:+0400
TZNAME:MSK
DTSTART:19700101T000000
END:STANDARD
END:VTIMEZONE

После чего нужно вернуть файл обратно (либо восстановить владельца root).

По уму, конечно, надо бы поправить остальные временные зоны в России - или вручную, или скачав мозилловские исходники и сгенерировав эту базу полностью из свежих определений.

четверг, 10 ноября 2011 г.

11.10

Просидев два дня на Unity понял что наверное все-таки смогу ей пользоваться, посему решил не ждать LTS до апреля и проапгрейдится до 11.10 прямо сейчас.

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

  • indicator-session занимает очень много места из-за того что выводит полное имя пользователя. Можно отключить в настройках через dconf-editor.
  • Лоток привода оптических дисков больше не блокируется (мне это нужно на ноуте). Видимо что-то в свежем третьем ядре.
  • Не запоминается уровень подсветки при перезагрузке
  • Иконка заряда батареи отображается дважды - в индикаторе и в трее.
  • В oneiric новый репозиторий един для обеих (i386 и x86) архитектур из-за чего консольный aptitude не может разрешить зависимости и настойчиво предлагает снести с сотню пакетов. После отмены предлагаемых им изменений можно что-то делать до следующего запуска.
  • Есть впечатление, что визуальный редактор репозиториев Software Source работает как-то не так. Ничего, поредактируем из консоли.
  • weather-indicator все также не может загрузить подробный прогноз для Москвы. Краткий прогноз работает нормально.
  • Thunderbird орет, что не может подключиться к удаленной адресной книге в Ubuntu One (а я и правда не подключен). Снес все пакеты Ubuntu One - орать перестал. Заколебали со своими облаками.
  • Выпадающее окно Guake так же некорректно устанавливает свою ширину при закрепленной панели Unity. Я уже писал как можно вылечить.
Что еще можно заметить?
  • Шрифт очень крупный. Я раньше корректировал DPI в настройках до значения 82-84 и все было в порядке. Сунулся было тут и не нашел ничего подобного, вообще никаких настроек нет. Ставим gnome-tweak-tool (он заодно подтянет альтернативную оболочку gnome-shell AKA Gnome3) - там есть все настройки включая размер и масштаб шрифтов, антиалиасинг и настройки иконок. Все размеры на единицу меньше, моноширийный шрифт - Monospaced-9, новый шрифт Ubuntu Mono как-то не впечатляет вообще.
  • Из-за изменений в лицензионной политике Sun/Oracle JDK больше нет в репозиториях и не будет. К сожалению все прогрессивное человечество вернулось в своем развитии на ступеньку вниз - к виндузятникам и маководам. В репах есть OpenJDK6 и OpenJDK7. Я сначала немного расстроился и кинулся искать что же делать. Вариантов интернет предлагает два: воспользоваться неким загадочным репозиторием, либо полностью реализовывать все действия инсталлятора через механизм Debian alternatives. Потыкавшись немного, понял, что лучше всего оставить OpenJDK6 в качестве общесистемной JDK, а Oracle JDK для разработки, production и особых случаев качать и ставить руками в /opt - эта схема вдобавок дает кучу очень правильных преимуществ, о чем может напишу потом подробней. Так что все это нестрашно на самом деле.
  • Наконец-то можно в программах-по-умолчанию установить раздельно аудио и видео плееры. Для аудио использую Audacious (понимает cue-разметку, что редкость), для видео использую VLC (жрет все и позволяет настраивать размер буфера, что важно при стриминге через Wi-Fi). Пакет banshee снес нафиг - не люблю комбайны, да и выпилят его в следующем релизе все равно.
  • Ubuntu Software Center уверенно удет к успеху - так уверенно, что даже запускать его не хочется.
  • Тема Thunderbird прикольная, но странная и отличается от других приложений. Почему Firefox так себя не рисует?
  • Индикатор нагрузки indicator-multiload уже в штатном репозитории.
  • Настройки все сократили до минимума и сделали похожими на настройки в OS-X
  • Стрелочки около иконок на панели Unity показывают на каком рабочем столе находится окно: на активном или неактивном.
  • Окно Dash home во весь экран - очень правильно.
  • Вместо штатного Static windows switcher по Alt-Tab сделали свой. Красиво, но как-то не очень удобно - мышкой окно нельзя быстро выбрать. Надо доделывать.
  • По Alt-F2 можно вводить цепочки типа gksu gedit doc.txt - в 11.04 не работало

В целом все работает стабильно, ничего не падает. В целом складывается сильное впечатление, что Космонавту не дают покоя лавры покойного Джобса: "бездарности подражают, гении крадут". Меня все это беспокоит, не знаю радоваться или нет и держу дистрибутив Arch на всякий случай. Однако чем больше домохозяек и хомячков удасться привлечь, тем лучше будет и нам - простым работникам консоли.

Думаю народ поорет немного, набалуется форкнутыми от Ubuntu дистрибутивами и через годик, когда весь софт стабилизируется, будет восхвалять Космонавта за смелость. Только верните простое гномовское меню назад.

вторник, 8 ноября 2011 г.

Unity

В неравной борьбе между моим упрямством и волей Космонавта с предсказуемым преимуществом победила последняя и я от безысходности и с 100-го раза все-таки перешел на Unity. Радости особой не испытываю, так как считаю, что Gnome 2 меня устраивал чуть более чем полностью и был удобен и быстр, однако воля Космонавта непоколебима и начиная с 11.10 никакого Gnome 2 в репозиториях уже нет.

Все нижеследующее относится к Ubuntu 11.04 на которой я все еще временно остаюсь.

Индикаторы

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

  • weather-indicator (в штатном репозитории)
  • classicmenu-indicator (ссылка в статье)
  • indicator-multiload (ссылка в статье)

Индикатор classicmenu-indicator решает одную из самых больших проблем - отсутствие быстрого доступа к запуску приложений через общее меню

Также традиционно удаляю бесполезные для меня:

  • indicator-me
  • indicator-messages

Быстрые клавиши

Да, в Unity есть быстрые клавиши.

Объединенное меню

Вторая серьезная проблема - это объединенное меню. Нет ничего более раздражающего чем искать меню маленького окошка калькулятора на противоположной стороне экрана здорового монитора. Специально спросил маководов - говорят, что тоже привыкали. Мне привыкать к этому не хочется, поэтому решаем проблему удалением следующих пакетов: appmenu-gtk, indicator-applet-appmenu, indicator-appmenu

Трей

Сюрпризом стало то, что иконки большинства приложений в трее не показываются. Оказалось, что необходимо специально выдавать разрешения на публикацию иконок в трее. Я разрешил вообще все иконки - для этого в редакторе dconf-editor для ключа /desktop/unity/panel/systray-whitelist нужно установить значение ['all']

Настройки

Кое-какие настройки Unity можно найти в CompizConfig Settings Manager в разделе Desktop/Ubuntu Unity Plugin. Необходимые для меня:

  • Desktop/Ubuntu Unity Plugin/Behaviour/Hide Launcher = Never (чтобы хоть как-то видеть какие именно приложения сейчас запущены)
  • Desktop/Ubuntu Unity Plugin/Behaviour/Key to show the launcher = <Alt><Super> (активно пользуюсь комбинациями Super+W, Super+D, Super+S - заметил, что иногда при этих командах лаунчер случайно вылазит сам в случае когда у него установлен биндинг лишь на одну лишь клавишу <Super>)
  • Desktop/Ubuntu Unity Plugin/Behaviour/Key to open the first panel menu = Отключить (иначе весьма нужная клавиша F10 будет занята этой ерундовой функцией)
  • Desktop/Ubuntu Unity Plugin/Experimental/Launch Icon Size = 32 (меньше размер - больше иконок влезет)
  • Desktop/Ubuntu Unity Plugin/Experimental/Backlight Mode = Backlight Toggles
  • General/General options/Desktop Size = Нужная конфигурация рабочих столов (я предпочитаю 1x3)
  • Window Management/Static Application Switcher/Appearance/Mipmap = Enabled
  • Desktop/Expo/Appearance/Mipmaps = Enabled
  • Desktop/Desktop Wall/Viewport Switching/Allow Wrap-Aroung = Enabled

Guake

У выскакивающей панели Guake есть одна проблема: она растягивается по всей ширине монитора, что на современных мониторах приводит к тому, что такой широкой консолью пользоваться не совсем удобно. Кроме того, в Unity эта ширина не совсем корректна сама по себе. К сожалению, настроить ширину окна через диалог настроек не представляется возможным, поэтому настраиваем ширину прямо в коде

--- /usr/lib/guake/guake.py.bak 2011-11-07 11:42:14.580261012 +0400
+++ /usr/lib/guake/guake.py 2011-11-07 12:29:05.500261042 +0400
@@ -814,7 +814,7 @@
         """
         screen = self.window.get_screen()
         height = self.client.get_int(KEY('/general/window_height'))
-        width = 100
+        width = 70
         halignment = self.client.get_int(KEY('/general/window_halignment'))
 
         # get the rectangle just from the first/default monitor in the

Заодно добавляем рамку вокруг окна в 1 пиксел

--- /usr/share/guake/guake.glade.bak 2011-11-07 12:33:05.830261044 +0400
+++ /usr/share/guake/guake.glade 2011-11-07 12:44:12.660261052 +0400
@@ -13,6 +13,7 @@
     <child>
       <widget class="GtkVBox" id="mainframe">
         <property name="visible">True</property>
+        <property name="border_width">1</property>
         <child>
           <widget class="GtkNotebook" id="notebook-teminals">
             <property name="visible">True</property>

пятница, 28 октября 2011 г.

PDF > DJVU

Читаю много книжек в последнее время на планшете. Периодически попадаются странные (но не растровые!) PDF документы, которые открываются с жуткими тормозами - не помогает даже перегон файла через pdfedit. Для таких книжиц выполняю конвертирование в DJVU через штатную утилиту pdf2djvu командой типа:
pdf2djvu --monochrome -j0 -o output.djvu input.pdf

At

Оказалось, что штатная утилита at не способна запустить ни одну gui программу. Проблема в том, что переменная окружения DISPLAY не запоминается и не передается дочернему процессу - причем это даже описано в руководстве по at. Решением будет запоминать и передавать переменную DISPLAY принудительно.
echo export DISPLAY=$DISPLAY \&\& zenity --info --text \"Hello\" | at now + 1 minutes
Небольшой скрипт-напоминалка:
#!/bin/bash

if (( $# < 1 ))
then
    echo "Time for 'at' is not specified"
    exit -1
fi

echo export DISPLAY=$DISPLAY \&\& \(play -q /usr/share/sounds/ubuntu/stereo/dialog-information.ogg \&\) \&\& \
  zenity --info --title \"Alarm\" --text \"Notification for [$@]\" | at "$@"

вторник, 4 октября 2011 г.

Обои для экрана входа

Мне никогда не нравилась штатная черно-синюшняя тема Ubuntu. Но, если основную тему и обои рабочего стола сменить очень просто, то смена обоев для экрана входа является неочевидной.

Вот инструкция по простой смене обоев для экрана входа: http://maketecheasier.com/change-login-and-boot-screen-in-ubuntu-lucid/2010/05/13:

  1. Скопировать файл с картинкой в /usr/share/backgrounds
  2. sudo cp /usr/share/applications/gnome-appearance-properties.desktop /usr/share/gdm/autostart/LoginWindow
  3. Завершить сеанс (log out). Появится экран входа с запущенным апплетом в котором можно сменить обои. Залогиниться обратно.
  4. sudo unlink /usr/share/gdm/autostart/LoginWindow/gnome-appearance-properties.desktop