Як зробити запуск Matlab для Unity?


22

Я намагаюся встановити запуск запуску Matlab R2011a для Unity в Ubuntu 12.04. Я спробував це керівництво (хоча я знаю, що це для 11.10 і згадує, що навіть 11.10 є непідтримуваною ОС для Matlab R2011a), але без задовільного рішення.

Це мій файл запуску /usr/share/applications/matlab.desktop:

#!/usr/bin/env xdg-open
[Desktop Entry]
Type=Application
Icon=/usr/share/icons/matlab.png
Name=MATLAB R2011a
Comment=Start MATLAB - The Language of Technical Computing
Exec=matlab -desktop
Categories=Development;

Відкриваю панель приладів і шукаю "матлаб". Цей пусковий пристрій знайдено серед застосувань. Я натискаю на нього, і з'являється сплеск екрану Matlab, але коли він зникає, програма не запускається. (Я перевірив, htopщо жодні процеси matlab не працюють у фоновому режимі.)

Якщо я додам

Terminal=true

до файлу запуску програма запускається ОК і відкриває термінал, а також Matlab. Однак і термінал, і сам Matlab з'являються в області запуску, зі значком Matlab, тому схоже, що у мене є два екземпляри Matlab, коли насправді це лише один. (Насправді вони відображаються як дві різні програми, а не лише два екземпляри однієї і тієї ж - піктограми незалежні, не згруповані разом.)

Це, безумовно, не оптимально. Я сподівався створити панель запуску, яку я можу заблокувати до області запуску, і тоді ця сама піктограма буде піктограмою для активного екземпляра Matlab, коли програма працює.

Як створити пусковий апарат для Matlab, який працює як очікувалося?

Оновлення: мені, здавалося, було трохи незрозуміло мої симптоми, я спробую трохи уточнити. Я також спробував кілька пропозицій з відповідей і далі дослідив, що відбувається. Моя поточна установка (файл запуску з Terminal=trueі Exec=matlab -desktop -nosplash &) виконує таку поведінку:

  1. Я відкриваю Dash, натискаючи клавішу Windows на своєму ноутбуці та шукаю "matlab". Він знаходить пускову установку під назвою "MATLAB R2011a". Я натискаю на нього.
  2. Відкриється вікно терміналу, використовуючи значок, про який я згадував у файлі запуску. Майже одразу ж відкриється сплеск екрану MATLAB, використовуючи той самий значок (і, таким чином, групуючись з вікном терміналу на панелі запуску).
  3. Екран сплеску зникає, і це робить одна з піктограм на панелі запуску. Відкриється середовище робочого столу MATLAB, використовуючи іншу версію піктограми, яка відображається поруч із піктограмою для вікна терміналу (не згрупується з ним).

Я можу зафіксувати піктограму вікна термінала на панелі запуску та успішно запустити MATLAB, натиснувши на нього, але він не відчуває себе оптимальним, коли я запускаю програму однією піктограмою та перемикаюсь на неї іншою. Я також спробував таке:

  • Execбез амперсанда &в команді пуска, але це не мало значення.
  • Виконання matlab -nosplashвручну з терміналу все ще показує екран сплеску. (Що ж тоді робить варіант "nosplash" насправді?)

Що відбувається, коли ви запустите matlabвручну у вікні терміналу?
— Елія Каган

@EliahKagan: Це прекрасно працює. Це , здається, не має значення , якщо я біжу matlabабо matlab -desktop, або.
— Томаш Ашан

У мене точно такі ж проблеми з іконками. Я також встановив пакет Ubuntu для matlab з репостів. Мені здається, що це дивно, що коли ви запускаєте matlab, створюється інший значок, і якщо ви заблокуєте нову на пусковій установці, нова не буде відкривати матлаб ...
— Felipe

Відповіді:


14

Відповідь Гаррета майже працює для мене, але натомість мені доведеться скористатися

StartupWMClass=sun-awt-X11-XFramePeer

Це все ще дає додаткову піктограму запуску, поки видно заставковий екран (оскільки WM_CLASS на електронному екрані просто "MATLAB"), але потім вікно отримує належну групування під панеллю запуску.

Нові екземпляри Matlab (запущені терміналом, або Synapse, або з іншого tty з export DISPLAY=:0) також групуються під цим запуском, і опція виходу запуску вбиває їх усіх.

Я знайшов це значення WM_CLASS за допомогою

$ xprop WM_CLASS

а потім клацнувши на вікні Matlab, команда, яку я отримав від Superuser .

Щоб запобігти тимчасовій додатковій значці запуску, ви можете також додати -nosplashпрапор після цього -desktop.

Отже, моє ~/.local/share/applications/MATLAB.desktopвиглядає так:

[Desktop Entry]
Version=1.0
Type=Application
Icon=matlab
Name=Matlab
Comment=Start MATLAB - The Language of Technical Computing
Exec=matlab -desktop -nosplash
Terminal=false
Categories=Development;
StartupNotify=true
StartupWMClass=sun-awt-X11-XFramePeer
X-Ayatana-Desktop-Shortcuts=New_Window;

Name[en_US]=MATLAB

[New_Window Shortcut Group]
Name=start a new MATLAB instance
Exec=matlab -desktop

Це на Ubuntu 12.10, з Matlab R2012b


Це працює саме так, як я хотів би. Дуже дякую!
— Томаш Ашан

2
я розширив на ваш відповідь ТРОХИ . пояснення тут
— літаючі вівці

Не знаю, де інші люди отримали свої логотипи, але це працює:$ sudo wget http://upload.wikimedia.org/wikipedia/commons/2/21/Matlab_Logo.png -O /usr/share/pixmaps/matlab.png
— Ніл Трафт,

7

Це дуже дивно. matlab -desktopдійсно слід зробити трюк.

Підхід 1: подивіться, що не так з пусковим пристроєм

У мене на бічній панелі Unity є робочий значок MATLAB. Я можу натиснути його, він підтримує правильний значок і не відкриває термінал. Наскільки я можу бачити, це майже те саме, що і ваш код:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/local/MATLAB/R2011b/bin/matlab -desktop
Name=MATLAB
Icon=/home/tomas/icons/Matlab_Logo.png

Наведений вище код знаходиться в matlab.desktop, який розміщений у /usr/share/applications/. Єдині відмінності, які я бачу, що можуть мати значення, - це (i) Execшлях, але якщо ви встановили посилання під час встановлення MATLAB, ваші повинні працювати нормально, і (ii) я запускаю MATLAB R2011b.

Як і ви, я запускаю Ubuntu 12.04.

Якщо я щось пропустив, ви можете спробувати використати мій код, щоб запустити MATLAB, хто знає, це може спрацювати.

Підхід 2: брудне рішення з терміналом

Ви згадали про входження matlab -desktopв роботу терміналу (тобто додавання Terminal=true). Однак це дає два екрани, згруповані під MATLAB.

Ви можете спробувати виправити це, змінивши спосіб виклику процесу. Ключовим тут буде &символ амперсанда . Для цього потрібно виконати попередній код, не чекаючи його закінчення. В ідеалі він би запустив термінал, дозволив терміналу запустити MATLAB і негайно закрити термінал, залишивши MATLAB працює. Що станеться, якщо запустити матлаб з терміналу з амперсандом після рядка, або:

matlab -desktop &

Якщо це працює, ви можете спробувати (i) зробити запуск із Terminal=trueта вищевказаним кодом або (ii) зробити пусковий апарат, який посилається на скрипт bash, який, у свою чергу, викликає вищевказаний код.

Для вас підхід 1 не допоміг. Якщо підхід 2 не працює, може бути непогано пограти, подивитися, що можна, а що не можна робити зі сценаріями ampersand, terminal та bash. Я майже не маю гарних ідей, але хтось розумніший за мене, можливо, зможе вам тоді допомогти.


Я спробував ваш код, але без успіху. Також (i) я встановлював посилання під час встановлення Matlab. (ii) Це, звичайно, може бути різницею, що має значення - на жаль, це академічна ліцензія, і я R2011a - це остання доступна для мене версія, тому я не можу перевірити її на R2011b = (
— Томаш Ашан

Я щойно відредагував свою публікацію, додавши ще одну ідею. Дайте нам знати, як це працює для вас.
— Томаш

Спасибі! Однак це мало змінило. Мені здається, мені було трохи незрозуміло щодо моїх симптомів; Будь ласка, дивіться оновлення ОП для деяких роз'яснень.
— Томаш Ашан

Так, ви можете запустити MATLAB за допомогою запущеного вами запуску. Це просто ікона, яка неправильна. Я боюся, що якщо вдатися до рішення терміналу, описаного в підході 2, ви не отримаєте потрібного значка. У мене була та сама проблема, але я міг викликати MATLAB за допомогою matlab -desktop(див. Підхід 1). Для мене це викликає MATLAB із екраном заставки та правильним значком для основного інтерфейсу. Він розміщується під заблокованим пусковим пристроєм. Якщо ви хочете вказати правильний значок і не можете запустити MATLAB через пусковий апарат matlab -desktop, я не маю ідеї. Повідомлю вас, якщо я щось придумаю.
— Томаш

Як ви бачите цей текст, відповідний файлу .desktop?
— DBinJP

4

Я встановив файл / сценарій конфігурації Matlab з Центру програмного забезпечення. Він містить список запуску Matlab в тирі і прекрасно працює для Matlab2011a в Ubuntu 12.04. Але це не працює від пускової установки. Я маю на увазі, якщо ви заблокуєте його на пусковій установці і спробуєте запустити його звідти, то це не спрацює, принаймні, це не працює для мене. Тож я повинен почати це з тире.

Щоб встановити це, перейдіть до програмного центру Ubuntu , знайдіть Matlab , він повинен бути першим у списку (піктограма - логотип Matlab). Просто встановіть його, і він подбає про інше.


1
Гарна порада! Однак він має абсолютно ті ж самі проблеми, що і мій саморобний пусковий апарат.
— Томаш Ашан

чудово, дякую @maqtanim! працює як шарм для мене (ubuntu 12.10 amd64)
— amc

Для мене прекрасно працював (Matlab R2013a 12.10). Перед встановленням у мене навіть не було пускової установки. Посилання на Центр програмного забезпечення: apt.ubuntu.com/p/matlab-support
— Tobold

3

Ось що я зробив, щоб правильно працювати, починаючи з нової установки ( версія R2010b на Ubuntu 12.04 ).

  1. Встановіть пакет підтримки matlab з центру програмного забезпечення, як пропонується . Або ви можете використовувати наступну команду: sudo apt-get install matlab-support.

  2. Створення локального файлу .desktop: gedit ~/.local/share/applications/matlab.desktop. З певних причин збереження його в / usr / share / застосунках призвело до того, що він не працюватиме під час першого входу.

  3. Скопіюйте та вставте наступний код та збережіть. Важливою зміною є лінія StartupWMClass .

    [Desktop Entry]
    Version=1.0
    Type=Application
    Icon=/usr/share/icons/matlab.png
    Name=Matlab
    Comment=Start MATLAB - The Language of Technical Computing
    Exec=matlab -desktop
    Terminal=false
    Categories=Development;
    StartupNotify=true
    StartupWMClass=com-mathworks-util-PostVMInit
    X-Ayatana-Desktop-Shortcuts=New_Window;
    
    [New_Window Shortcut Group]
    Name=New Matlab
    Exec=matlab -desktop
    
  4. Відкрийте папку програм, де ви тільки що зберегли файл matlab.desktop : nautilus ~/.local/share/applications.

  5. Перетягніть файл matlab.desktop до запуску єдності.


Це виглядає справді перспективно! Однак мені потрібно зробити щось більше - після цього натискання піктограми Matlab у моєму запуску виконує наступні дії: 1) відображається вікно сплеску із власним значком запуску, і піктограма, на яку я натискав, починає блимати (згасає та вихід). 2) вікно сплеску, і його піктограма зникає, і піктограма запуску I продовжує блимати. 3) Піктограма перестає блимати, і нічого не відбувається.
— Томаш Ашан

Я також переконався, що файл matlab.desktop належить мені (а не root) і що всі користувачі читають і виконують права.
— Томаш Ашан

Однак, якщо я запускаю Matlab з терміналу або Guake, він використовує значок, який я просто помістив у пускову установку - так щось правильно =)
— Томаш Ащан

Екран сплеску відображатиметься самостійно, але проходить. Це пов'язано з тим, що він має інший клас, ніж віртуальна машина Matlab (основна програма). Що стосується не старту, я не впевнений. Тим більше, що ви говорите, що це починається в терміналі (я припускаю, що використовую ту саму команду matlab -desktop)
— Гаррет Фостер,

Так, я використовую ту саму команду. matlab &також працює без проблем (тобто -desktopкомутатор не потрібен при запуску з терміналу).
— Томаш Ашан

1

Я, можливо, до цього прийшов трохи пізно, але мені вдалося це зробити, додавши запис до програми "Головне меню". Я перерахував це як "Застосування", а потім подав повний шлях до виконуваного файлу в каталозі MATLAB як Команда.

Я також повинен був додати прапор '-desktop' (без лапок). Крім того, мені також довелося використовувати прапор '-glnx86', оскільки я використовую студентську версію в 64-бітовій системі, але це також спрацювало чудово.

Потім мені вдалося отримати іконку з цього веб-сайту .

Потім це може бути розташоване в меню додатків і перетягнуте в пусковий панель. Єдине, що виглядає трохи дивно - це те, що коли я натискаю на нього, інша піктограма MATLAB з’являється в пусковій установці, а не просто використовує ту, яка вже є. Якщо хтось може знайти спосіб вирішити це, то це було б чудово ... але я можу жити з цим, як є.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.