понедельник, 14 декабря 2015 г.

Как запустить STM32CubeMX в ОС Linux. Шаг 2. Финиш

Шаг второй и последний. В предыдущих я рассказывал как запустить Куб (STM32CubeMX) под линуксом здесь и здесь.

В этот раз я расскажу, как сделать пункт меню для окружения рабочего стола (DE)  Gnome, Unity или KDE. Скорее всего этот способ будет работать и в XFCE, а вот относительно экзотических DE типа  Enlightenment ничего не скажу.

Для начала отойду в сторону и расскажу, как формируется меню программ в рабочих столах линукса. Каждый пункт меню описывается desktop-файлом. По сути это INI-файл, который имеет  минимум одну секцию и некоторый набор параметров. Вот пример такого файла для редактора gedit:

[Desktop Entry]
Name=Text Editor
Comment=Edit text files
Exec=gedit %U
Terminal=false
Type=Application
StartupNotify=true
MimeType=text/plain;
Icon=accessories-text-editor
Categories=GNOME;GTK;Utility;TextEditor;
X-GNOME-DocPath=gedit/gedit.xml
X-GNOME-FullName=Text Editor
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gedit
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=2.30.4
X-GNOME-Bugzilla-ExtraInfoScript=/usr/share/gedit-2/gedit-bugreport
X-Ubuntu-Gettext-Domain=gedit

Как мы можем видеть, здесь много параметров, назначение которых нам на данном этапе знать и не нужно. Позже мы создадим такой файл для нашего куба. А пока скажу, что системные файлы (по терминологии Windows - программы для всех пользователей) располагаются по пути /usr/share/desktop/applications. Если программа установлена для конкретного пользователя, то такие пункты меню описываются в домашней папке по пути ~/.local/share/applications. Здесь мы и будем создавать наш desktop-файл.

Кстати, формат стандартный и его понимают все выше перечисленные DE, с небольшими оговорками - каждое DE может добавлять свои специфические параметры по типу GNOME в приведенном примере (параметры X-GNOME-...).

Итак, переходим в каталог ~/.local/share/applications. Замечу, что файлы и папки, начинающиеся с точки в линуксе являются скрытыми. Поэтому если Вы пользуетесь графическим файловым менеджером, рекомендую предварительно включить отображение скрытых файлов и папок (для Nautilus это комбинация клавиш Ctrl+H).

Здесь создаем файл STM32CubeMX.desktop. Кстати, название файла никак не влияет на отображение пункта меню. Для удобства понимания в каком файле пункт какой программы описан я рекомендую называть его по имени программы.

В моем случае STM32CubeMX.desktop имеет такое содержимое:

[Desktop Entry]
Terminal=false
Name=STM32CubeMX
Exec=/usr/lib/jvm/java-8-oracle/bin/java -jar /home/sergio/STM32Cube/STM32CubeMX/STM32CubeMX.jar
Type=Application
Categories=Development
Icon=/home/sergio/STM32Cube/STM32CubeMX/cube.png
Hidden=false
NoDisplay=false

Разберу по порядку.
Секция [Desktop Entry] является обязательной и сообщает рабочему окружению, что далее  будет описан элемент рабочего стола (пункты меню являются элементами рабочего стола).

Terminal=false сообщает о том, что программу не нужно запускать в терминальной сессии

Exec= здесь указывается какой исполняемый файл необходимо запустить. Т.к. у нас не совсем исполняемый файл, а JAR-архив, то исполнять нам надо его в среде виртуальной Java машины. У меня  путь к ней /usr/lib/jvm/java-8-oracle/bin/java. У Вас может отличаться. Выяснить его не сложно, набрав в терминале which java Вы узнаете полный путь к исполняемому файлу.
-jar - это параметр командной строки уже Java-машины и говорит о том, какой JAR-файл нужно запустить. Мы помним из предыдущих шагов, что информация об основном классе хранится в манифесте, поэтому уже можем не беспокоиться относительно этих инструкций. Java-машина сама найдет необходимую ей информацию.

Type=Application говорит о том, что это приложение. Desktop Entry могут быть не только приложения. Документы, папки и прочее.

Categories=Development Здесь через точку с запятой перечисляются стандартные категории, в которых надо отображать этот пункт меню. Выяснить их название можно в документации к DE, но в нашем случае категория будет всего одна - "Разработка".

Icon=/home/sergio/STM32Cube/STM32CubeMX/cube.png Если помните. в прошлом шаге мы упаковывали в JAR-архив содержимое exe-файла. Так вот там есть иконка для Куба. Можно использовать ее, можно нарисовать свою или стянуть из интернета. Главное, что эта иконка не должна быть в архиве, а лежать в какой-то папке. Кстати, совсем не обязательно в папке с программой.

Hidden=false
NoDisplay=false
Эти две опции говорят о том, что пункт меню не будет скрытым и его надо отображать.

На этом, собственно, создание пункта меню закончено. Скриншотов не будет, т.к. скриншотить, собственно, нечего.
И еще, рекомендую на уровень выше папки с Кубом (у меня это ~/STM32Cube/) создать каталог Repository и указать его в настройках программы  как путь для сохранения баз данных плат и процессоров.
Т.е.:
~/STM32Cube/STM32CubeMX - каталог с программой
~/STM32Cube/Reository - каталог репозиториев

Теперь Ваш Куб готов к работе. Удачи :)

Комментариев нет:

Отправить комментарий