CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
05.04.2020

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Desktop
Internet
Internet-серверы
Безопасность
Бизнес/Офис
Игры
Мультимедиа
Наука
Операционные системы
Программирование
СУБД
Создание веб-сайтов
Утилиты

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Блогометки :: Десктопы

Gnome. Меняем меню скриптом

http://strannick.blogspot.com/

Недавний разговор с уважаемым Warderer'ом, большим любителем Ion'а и большим нелюбителем всех и всяческих DE, навёл меня на следующие мысли. Warderer в качестве примера удобства и автоматизации рабочего места, привёл следующие ситуации:

  1. Скриптом отключать и включать пункты меню в определённое время. Например, чтобы в рабочее время в меню отсутствовали браузер, IM и, к примеру, игрушки.
  2. С наступлением вечера изменять шрифты интерфейса в сторону увеличения, а с наступлением дня возвращать их оригинальные размеры.

Традиционно считается, что DE слабо поддаются автоматизации (а уж Gnome — и вовсе не поддаётся). Я решил развеять это предубеждение.

Приступим? Пункт второй я рассмотрю в отдельной заметке, а вот динамическое изменение меню, в силу крайней простоты этой процедуры, опишу сейчас.

Итак, согласно заветам freedesktop.org элементы меню хранятся в xml-файлах. Описания отдельных программ хранятся в т.н. desktop-файлах во вполне определённых каталогах.

После установки программы, описывающий её desktop-файл попадает в каталог /usr/share/applications/, из которого и формируется меню для всех пользователей. Персональные же настройки хранятся в каталоге ~/.local/share/applications/.

Несколько сумбурно и запутано, так? Ничего, сейчас будет пример и всё станет ясно.

Воспользуемся свежеприобретёнными знаниями и скроем из меню строку Firefox.

$ cp /usr/share/applications/firefox.desktop .local/share/applications/
$ echo "NoDisplay=true" > >.local/share/applications/firefox.desktop

Итак, что мы сделали? В случае, если для одной и той же программы есть описание и в системном и в пользовательском каталоге, приоритетным считается файл описания из локального каталога. Поэтому, добавив в desktop-файл параметр NoDisplay, можно скрывать, либо отображать соответствующий пункт меню.

Итак, мы скрыли пункт меню. Неплохо бы теперь вернуть его обратно. Сделать это можно двумя способами:

  1. Поменять NoDisplay=true на NoDisplay=false.
  2. Убрать нафиг правленый desktop-файл из локального каталога.

Вот так:

rm .local/share/applications/firefox.desktop

В силу того, что я ленивый — второй способ нравится мне куда больше.

Выводы:

  • править меню из консоли легко и просто.
  • сильно подозреваю, что этот способ работает и в XFCE. Возможно и в KDE.

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





Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds