Как я могу добавить приложения в панель запуска приложений lxpanel через cli?

11

Есть ли способ на панели инструментов LXDE изменить приложения, которые находятся в части быстрого запуска через терминал, чтобы их можно было поместить в пакетный файл для изменения на нескольких клиентах?

Jhondoe
источник
Я могу подтвердить ответ Незнакомца, с Джесси на Pi3, файлы рабочего стола находятся в / usr / share / raspi-ui-overrides / apps / В тот момент, когда я скопировал eclipse.desktop из / usr / share / Applications / его значок появился в Appliaction Настройки панели запуска, и я смог добавить ее в панель запуска.
Иштван Арани

Ответы:

17

Это можно легко сделать, создав .desktopфайл для каждого приложения, которое вы хотите добавить в меню. Все это четко объяснено в вики LXDE для главного меню 1 .

* .desktop Расположение

Если вы хотите, чтобы приложение отображалось в меню для всех пользователей системы, добавьте файл в каталог /usr/share/applications/. Например, вы можете иметь /usr/share/applications/gimp.desktopдля приложения gimp. Это где пакеты обычно создают свои .desktopфайлы и рекомендуется.

Если вы хотите добавить приложение в меню определенного пользователя, создайте файл в каталоге $HOME/.local/share/applications/.

* .desktop Settings

Прочитайте некоторые из ваших существующих .desktopфайлов, /usr/share/applications/чтобы понять, как они работают. Они довольно просты, но в вики дается краткое объяснение часто используемых настроек.

Вот немного измененное объяснение из вики для warsow.desktopфайла. Фактические настройки выделены жирным шрифтом.

  • [Desktop Entry] - указывает, что этот файл является * .desktop файлом
  • Кодировка = UTF-8 - используется кодировка UTF-8
  • Exec = warsow - путь бинарного файла или скрипта, используемого для запуска программы
  • Icon = / home / USER / my / icons / wsw-icon_80x80.png - путь к значку для записи
  • Тип = Приложение - файл рабочего стола запускает приложение
  • Terminal = false - программа не будет работать в терминале
  • Name = Warsow - отображаемое имя в меню
  • GenericName = warsow - описание записи
  • StartupNotify = false - уведомление о запуске отключено
  • Категории = Игра - указывает категории, в которых запись будет размещена в меню (несколько категорий указаны с точкой с запятой между ними, например, «Игра; Образование»).

Добавление приложения в панель запуска приложений

Если вы создали .desktopфайл или он был создан при установке приложения, вы можете добавить приложение в панель запуска внутри lxpanel. Конфигурации для панелей находятся в каталоге профиля. Например, одна из ваших панелей может быть на $HOME/.config/lxpanel/LXDE/panels/panel.

Редактируя файл с помощью vim ~/.config/lxpanel/LXDE/panels/panel, я вижу, куда добавляются плагин и конфигурация панели запуска. Если плагин еще не добавлен на панель, вам нужно будет добавить его для каждого пользователя. Обратите внимание, что плагины панели запуска будут отображаться на панели в том же порядке, в котором они отображаются в этом файле.

Кроме того, вам нужно будет добавить Buttonконфигурацию с idпутем к .desktopфайлу для каждого приложения, которое вы хотите отобразить на панели запуска. Вот пример того, как это выглядит.

Plugin {
    type = launchbar
    Config {
        Button {
            id=pcmanfm.desktop
        }
        Button {
            id=/var/lib/menu-xdg/applications/menu-xdg/X-Debian-Applications-Network-File-Transfer-transmission_bittorrent_client_(gtk).desktop
        }
        Button {
            id=/usr/share/applications/gimp.desktop
        }
        Button {
            id=/var/lib/menu-xdg/applications/menu-xdg/X-Debian-Applications-Terminal-Emulators-gnome_terminal.desktop
        }
        Button {
            id=/usr/share/applications/gedit.desktop
        }
        Button {
            id=/usr/share/applications/gcalctool.desktop
        }
        Button {
            id=/usr/share/applications/keepassx.desktop
        }
    }
}

Обновление панели

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

#!/bin/bash

# lxpanel processes must be killed before it can reload an lxpanel profile.
killall lxpanel
# Finds and deletes cached menu items to ensure updates will appear.
find ~/.cache/menus -name '*' -type f -print0 | xargs -0 rm
# Starts lxpanel with the `--profile` option and runs as a background process.
# In this example the profile is LXDE. Profiles are the directories located 
# in $HOME/.config/lxpanel/. In this case, $HOME/.config/lxpanel/LXDE.
lxpanel -p LXDE &

Если вы запускаете lxpanelкоманду в своем терминале, я рекомендую использовать ее, nohupчтобы она не убивала процесс lxpanel при закрытии терминала. nohup lxpanel -p LXDE &

iyrin
источник
1
Вопрос был о том, как добавить вещи в панель запуска приложений через терминал. Я уже не знаю, как добавить вещи в меню «Пуск»
Jhondoe
1
Ответ отредактирован. Вам по-прежнему понадобятся .desktopфайлы, и не забудьте обновить панель для появления изменений.
Айрин
Пожалуйста, выберите это как ответ.
Айрин
2
С Jessie на Pi 3 файлы .desktop находятся в / usr / share / Applications / и / / usr / share / raspi-ui-overrides / Applications / Файл Panel должен отражать фактическое местоположение. Либо будет работать, но я подозреваю, что последний является новым способом ведения дел. sudo mv копии файла .desktop предоставит вам версию в обоих местах.
Wayfaring Незнакомец
1
Для перезапуска панели на Raspbian команда есть lxpanel -p LXDE-pi &.
Фрэнк