четверг, 16 октября 2008 г.

Настройка виджета календаря в приложениях gtk (gnome-panel прежде всего)

Взято с http://soniahamilton.wordpress.com/2008/02/06/change-first-day-of-week-in-ubuntus-gnome-calendar/
Многие как и я предпочитают использовать англоязычный интерфейс с локалью вида en_US, en_UK и т.п. Но в таких случаях календарь показывает недели начиная не с понедельника, а с воскресенья, что не по-православному и ересь.
Сам виджет может показывать начало недели с любого дня, пусть хоть с четверга и это настраивается в конфигурациях локали.
Итак, что нужно сделать, чтобы поменять отображение:
  1. Узнать, какая у вас локаль: echo $LANG в терминале. У меня en_US.UTF-8
  2. Следовательно, нужно изменить файл локали en_US - sudo emacs /usr/share/i18n/locales/en_US
  3. Меняем значение first_weekday с 1 на 2. Сохраняемся
  4. Переконфигурируем локаль: sudo locale-gen
Чтобы увидеть эффект нужно либо перелогиниться, либо перезапустить приложения использующие этот виджет. Весь это замут, по большому счёту, делался ради календаря на гномьей панели, так что лучше вместе разглогинивания перезапустим панель: killall gnome-panel. Результат будет похож на следующий:

[Gnome] Количество пунктов в Places (Перейти)


Places содержит в точности те закладки, которые были внесены в панельку places наутилуса. Только вот по умолчанию вы в своём гноме похожего не увидите - вместо большого меню с закладками будет подменю Bookmarks. Если точнее, ваша картинка будет похожа на мою, пока закладок будет меньше шести. При шести и более закладках вы увидите подменю. В своё время меня это сильно раздражало, что я решил спросить на багзиле гнома. Там мне посоветовали следующий рецепт (требует правки исходников пакета gnome-panel, но в случае debian-based или всяких генту это не проблема):
  1. Получаем как-нибудь исходники gnome-panel
  2. Распаковываем их куда-нибудь, например в каталог gnome-panel и заходим туда (у меня полный путь к этому каталогу выглядит как /var/cache/apt-build/build/gnome-panel-2.24.0/
  3. Редактируем файл gnome-panel/panel-menu-items.c (я делаю sudo emacs /var/cache/apt-build/build/gnome-panel-2.24.0/gnome-panel/panel-menu-items.c)
  4. Находим макрос MAX_ITEMS_OR_SUBMENU и изменяем его значение с 5 на, например, 50

Последним шагом собираем и устанавливаем пакет.
В случае debian-based дистрибутивов можно и нужно использовать утилиту apt-build:
sudo aptitude install apt-build # проходим процесс конфигурации
sudo apt-build source gnome-panel # скачиваем исходники
Потом изменяем исходный код (он как у меня будет валяться в /var/cache/apt-build/build), если вы не измените это при конфигурации apt-build, и, наконец, устанавливаем:
sudo apt-build install -f gnome-panel.
А вот для ленивых, просто скопируйте в командную строку:
sudo aptitude apt-build; echo 'deb file:/var/cache/apt-build/repository apt-build main' | cat /etc/apt/sources.list > ~/lol.list; sudo mv ~/lol.list /etc/apt/sources.list; sudo apt-build source gnome-panel; file=`find /var/cache/apt-build/build -name *gnome-panel -type d | sort | tail -1`'/panel-menu-items.c'; sed -e 's/^#define MAX_ITEMS_OR_SUBMENU.*/#define MAX_ITEMS_OR_SUBMENU 50/g' $file > ~/lol.tmp; sudo mv ~/lol.tmp $file; sudo apt-build install -f gnome-panel; killall gnome-panel