Bagaimana cara membuat peluncur Matlab untuk Unity?

22

Saya mencoba menginstal peluncur Matlab R2011a untuk Unity di Ubuntu 12.04. Saya sudah mencoba panduan ini (walaupun saya tahu ini untuk 11.10 dan menyebutkan bahwa bahkan 11.10 adalah OS yang tidak didukung untuk Matlab R2011a) tetapi tanpa solusi yang memuaskan.

Ini adalah file peluncur saya /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;

Saya membuka panel dasbor dan mencari "matlab". Peluncur ini ditemukan di antara aplikasi. Saya klik, dan layar splash Matlab muncul, tetapi ketika menghilang program tidak dimulai. (Saya sudah memverifikasi dengan htoptidak ada matlab-proses yang berjalan di latar belakang juga.)

Jika saya tambahkan

Terminal=true

ke file launcher, program mulai OK, dan membuka terminal serta Matlab. Namun, baik terminal dan Matlab itu sendiri muncul di area Launcher, dengan ikon Matlab, jadi sepertinya saya memiliki dua instance Matlab yang berjalan ketika sebenarnya hanya satu. (Sebenarnya, mereka muncul sebagai dua program yang berbeda, dan bukan hanya dua contoh yang sama - ikonnya independen, tidak dikelompokkan bersama.)

Ini jelas tidak optimal. Saya berharap untuk membuat peluncur yang dapat saya kunci ke area peluncur, dan kemudian ikon yang sama akan menjadi ikon untuk instance Matlab yang aktif ketika program sedang berjalan.

Bagaimana cara membuat peluncur untuk Matlab yang berfungsi seperti yang diharapkan?

Pembaruan: Saya tampaknya agak tidak jelas pada gejala saya, saya akan mencoba sedikit menjelaskan. Saya juga sudah mencoba beberapa saran dari jawaban, dan menyelidiki lebih lanjut apa yang terjadi. Pengaturan saya saat ini (file peluncur dengan Terminal=truedan Exec=matlab -desktop -nosplash &) menampilkan perilaku berikut:

  1. Saya membuka Dash dengan menekan tombol Windows di laptop saya, dan mencari "matlab". Ia menemukan peluncur bernama "MATLAB R2011a". Saya klik itu.
  2. Jendela terminal terbuka, menggunakan ikon yang saya sebut dalam file peluncur. Hampir segera, layar splash MATLAB juga terbuka, menggunakan ikon yang sama (dan dengan demikian dikelompokkan dengan jendela terminal di peluncur).
  3. Layar splash menghilang dan begitu juga salah satu ikon di peluncur. Lingkungan desktop MATLAB terbuka, menggunakan versi ikon yang berbeda yang ditampilkan di sebelah ikon untuk jendela terminal (tidak dikelompokkan dengannya).

Saya dapat mengunci ikon jendela terminal ke peluncur dan berhasil memulai MATLAB dengan mengkliknya, tetapi tidak terasa optimal bahwa saya memulai program dengan satu ikon, dan beralih ke yang lain. Saya juga sudah mencoba yang berikut ini:

  • Exectanpa ampersand &pada perintah launcher, tetapi tidak ada bedanya.
  • Eksekusi matlab -nosplashsecara manual dari terminal masih menunjukkan layar splash. (Lalu, apa yang sebenarnya dilakukan opsi nosplash?)
Tomas Aschan
sumber
Apa yang terjadi ketika Anda menjalankan matlabsecara manual di jendela Terminal?
Eliah Kagan
@ ElliKagan: Itu bekerja dengan sangat baik. Tampaknya tidak masalah jika saya menjalankan matlabatau matlab -desktop, baik.
Tomas Aschan
Saya mengalami masalah yang sama persis dengan ikon. Saya juga menginstal paket Ubuntu untuk matlab dari repo. Saya merasa sangat aneh bahwa sekali Anda memulai matlab, ikon lain dibuat dan jika Anda mengunci yang baru ke peluncur, yang baru tidak akan membuka matlab ...
Felipe

Jawaban:

14

Jawaban Garrett hampir berhasil untuk saya, tetapi saya harus menggunakannya

StartupWMClass=sun-awt-X11-XFramePeer

Ini masih memberikan ikon peluncur tambahan saat splashscreen terlihat (karena WM_CLASS dari spashscreen hanya "MATLAB"), tetapi kemudian jendela dikelompokkan dengan benar di bawah peluncur.

Contoh baru Matlab (dimulai dengan terminal, atau Synapse, atau dari tty lain dengan export DISPLAY=:0) juga dikelompokkan di bawah peluncur ini, dan opsi berhenti peluncur membunuh mereka semua.

Saya menemukan nilai WM_CLASS ini dengan menggunakan

$ xprop WM_CLASS

dan kemudian mengklik pada jendela Matlab, perintah yang saya dapatkan dari Superuser .

Untuk mencegah ikon peluncur ekstra sementara, Anda juga dapat menambahkan -nosplashbendera setelah bendera -desktop.

Jadi, ~/.local/share/applications/MATLAB.desktoppenampilan saya seperti ini:

[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

Ini ada di Ubuntu 12.10, dengan Matlab R2012b

tsbertalan
sumber
Ini bekerja persis seperti yang saya inginkan. Terima kasih banyak!
Tomas Aschan
2
i telah memperluas pada jawaban Anda sedikit . penjelasan di sini
domba terbang
Tidak tahu dari mana orang lain mendapatkan logo mereka tetapi ini berfungsi:$ sudo wget http://upload.wikimedia.org/wikipedia/commons/2/21/Matlab_Logo.png -O /usr/share/pixmaps/matlab.png
Neil Traft
7

Itu sangat aneh. matlab -desktopbenar-benar harus melakukan triknya.

Pendekatan 1: lihat apa yang salah dengan peluncur

Saya memiliki ikon MATLAB yang berfungsi di sidebar Unity saya. Saya bisa mengkliknya, ia mempertahankan ikon yang benar dan tidak membuka terminal. Sejauh yang saya lihat itu hampir sama dengan kode Anda, meskipun:

[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

Kode di atas adalah di matlab.desktop, yang ditempatkan di /usr/share/applications/. Satu-satunya perbedaan yang saya lihat bisa jadi masalah adalah (i) Execpath, tetapi jika Anda menginstal symlink selama instalasi MATLAB Anda, Anda harusnya bekerja dengan baik dan (ii) saya menjalankan MATLAB R2011b.

Seperti Anda, saya sedang menjalankan Ubuntu 12.04.

Jika saya melewatkan sesuatu, Anda dapat mencoba menggunakan kode saya untuk memulai MATLAB, siapa tahu, itu mungkin berhasil.

Pendekatan 2: solusi kotor dengan terminal

Anda sebutkan memasukkan matlab -desktopdalam karya terminal (yaitu menambahkan Terminal=true). Namun, itu memberi Anda dua layar yang dikelompokkan di bawah MATLAB.

Anda dapat mencoba memperbaikinya dengan mengubah cara Anda memanggil proses. Kuncinya di sini adalah &simbol ampersand . Apa yang dilakukan adalah mengeksekusi kode sebelumnya, tidak menunggu sampai selesai. Idealnya, itu akan memulai terminal, biarkan terminal mulai MATLAB dan segera tutup terminal, biarkan MATLAB berjalan. Apa yang terjadi jika Anda memulai matlab dari terminal dengan ampersand setelah saluran, atau:

matlab -desktop &

Jika berhasil, Anda dapat mencoba (i) membuat peluncur dengan Terminal=truedan kode di atas atau (ii) membuat peluncur yang mengacu pada skrip bash, yang selanjutnya memanggil kode di atas.

Bagi Anda, Pendekatan 1 tidak membantu. Jika Pendekatan 2 tidak berhasil, mungkin baik untuk bermain-main sedikit, lihat apa yang dapat dan tidak dapat Anda lakukan dengan skrip ampersand, terminal dan bash. Saya punya banyak ide bagus, tapi seseorang yang lebih pintar dari saya mungkin bisa membantu Anda saat itu.

Tomas
sumber
Saya mencoba kode Anda, tetapi tidak berhasil. Juga, (i) saya menginstal symlinks selama instalasi Matlab. (ii) Tentu saja itu bisa menjadi perbedaan yang penting - sayangnya, ini adalah lisensi akademik dan saya R2011a adalah edisi terbaru yang tersedia untuk saya, jadi saya tidak dapat mengujinya dengan R2011b = (
Tomas Aschan
Saya baru saja mengedit posting saya, menambahkan ide lain. Beri tahu kami cara kerjanya bagi Anda.
Tomas
Terima kasih! Namun, itu tidak membuat banyak perbedaan. Sepertinya saya agak tidak jelas dengan gejala saya; silakan lihat pembaruan OP untuk beberapa klarifikasi.
Tomas Aschan
Aha, jadi Anda bisa mulai MATLAB menggunakan peluncur yang Anda buat. Hanya saja ikon itu salah. Saya khawatir jika Anda menggunakan solusi terminal yang dijelaskan dalam Pendekatan 2, Anda tidak akan mendapatkan ikon yang tepat. Saya memiliki masalah yang sama persis, tetapi dapat memanggil MATLAB menggunakan matlab -desktop(lihat Pendekatan 1). Bagi saya, itu memanggil MATLAB, dengan layar splash, dan ikon yang benar untuk antarmuka utama. Itu ditempatkan di bawah peluncur yang terkunci. Jika Anda ingin ikon yang benar dan tidak dapat menjalankan MATLAB melalui peluncur dengan matlab -desktop, saya kehabisan ide. Akan memberi tahu Anda jika saya menemukan sesuatu.
Tomas
Bagaimana Anda melihat teks yang sesuai dengan file .desktop?
DBinJP
4

Saya memasang file / skrip Konfigurasi Matlab dari Pusat Perangkat Lunak. Ini daftar peluncur Matlab di dasbor dan berfungsi dengan baik untuk Matlab2011a di Ubuntu 12.04. Tetapi itu tidak bekerja dari peluncur. Maksud saya, jika Anda menguncinya di peluncur dan mencoba memulainya dari sana maka itu tidak akan berhasil, setidaknya itu tidak bekerja untuk saya. Jadi saya harus memulainya dari dash.

Untuk menginstal ini, pergi ke Pusat Perangkat Lunak Ubuntu , cari Matlab , itu harus menjadi yang pertama dalam daftar (ikonnya adalah logo Matlab). Instal saja, dan itu akan mengurus sisanya.

maqtanim
sumber
1
Tip yang bagus! Namun, ia datang dengan masalah yang persis sama dengan peluncur yang saya buat sendiri.
Tomas Aschan
bagus, terima kasih @maqtanim! bekerja seperti pesona bagi saya (ubuntu 12.10 amd64)
amc
Bekerja dengan sempurna untuk saya (Matlab R2013a pada 12.10). Sebelum menginstal ini, saya bahkan tidak memiliki launcher. Tautan ke Pusat Perangkat Lunak: apt.ubuntu.com/p/matlab-support
Tobold
3

Inilah yang saya lakukan untuk mendapatkan hal-hal yang bekerja dengan benar dimulai dengan instalasi baru ( versi R2010b pada Ubuntu 12.04 ).

  1. Instal paket dukungan matlab dari pusat perangkat lunak seperti yang disarankan . Atau Anda dapat menggunakan perintah berikut: sudo apt-get install matlab-support.

  2. Buat file desktop lokal: gedit ~/.local/share/applications/matlab.desktop. Untuk beberapa alasan menyimpannya di / usr / share / aplikasi menyebabkannya tidak berfungsi ketika saya pertama kali masuk.

  3. Salin dan Tempel kode berikut dan simpan. Perubahan penting adalah garis 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. Buka aplikasi folder di mana Anda hanya menyimpan file matlab.desktop: nautilus ~/.local/share/applications.

  5. Seret dan Jatuhkan file matlab.desktop ke peluncur kesatuan.

Garrett Foster
sumber
Ini terlihat sangat menjanjikan! Namun, ada hal lain yang perlu saya lakukan - setelah melakukan ini, mengklik ikon Matlab di peluncur saya lakukan hal berikut: 1) jendela pembuka menampilkan, dengan ikon peluncurnya sendiri, dan ikon yang saya klik mulai berkedip (memudar dan di luar). 2) jendela splash, dan ikon itu menghilang, dan ikon peluncur saya terus berkedip. 3) Ikon berhenti berkedip, dan tidak ada yang terjadi.
Tomas Aschan
Saya juga memastikan bahwa file matlab.desktop adalah milik saya (bukan root) dan bahwa semua pengguna telah membaca dan menjalankan hak.
Tomas Aschan
Namun, jika saya memulai Matlab dari terminal atau Guake, ia menggunakan ikon yang baru saja saya letakkan di peluncur - jadi ada sesuatu yang benar =)
Tomas Aschan
Layar splash akan muncul dengan sendirinya, tetapi hilang. Hal ini disebabkan karena ia memiliki kelas yang berbeda dari mesin virtual Matlab (program utama). Sejauh tidak memulai, saya tidak yakin. Terutama karena Anda mengatakan itu dimulai di terminal (saya mengasumsikan menggunakan perintah yang sama matlab -desktop)
Garrett Foster
Ya, saya menggunakan perintah yang sama. matlab &juga berfungsi tanpa masalah (mis. -desktopsakelar tidak diperlukan saat memulai dari terminal).
Tomas Aschan
1

Saya mungkin datang ke ini sedikit terlambat, tetapi saya telah berhasil melakukan ini dengan menambahkan entri ke aplikasi 'Menu Utama'. Saya mendaftarkannya sebagai 'Aplikasi' dan kemudian memberikan path lengkap ke file executable di direktori MATLAB sebagai Command.

Saya juga harus menambahkan bendera '-desktop' (tanpa tanda kutip). Selain itu, saya juga harus menggunakan flag '-glnx86' karena saya menggunakan Versi Siswa pada sistem 64bit, tetapi itu juga berfungsi dengan baik.

Saya kemudian berhasil mendapatkan ikon dari situs web ini .

Ini kemudian dapat ditemukan di menu aplikasi dan diseret ke peluncur. Satu-satunya hal yang bertingkah agak aneh adalah ketika saya mengkliknya, ikon MATLAB lain muncul di peluncur alih-alih memanfaatkan yang sudah ada. Jika ada yang bisa menemukan cara untuk menyelesaikan ini maka itu akan bagus ... tapi saya bisa hidup dengan itu.

Tim
sumber