Birlik için nasıl bir Matlab başlatıcısı yapabilirim?


22

Ubuntu 12.04'te Unity için bir Matlab R2011a başlatıcısı yüklemeye çalışıyorum. Bu kılavuzu denedim (11.10 için olduğunu bilmeme rağmen 11.10'un bile Matlab R2011a için desteklenmeyen bir işletim sistemi olduğundan bahsettim) ancak tatmin edici bir çözümü yoktu.

Bu benim başlatıcı dosyam /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;

Gösterge panelini açıp "matlab" için arama yapıyorum. Bu başlatıcı uygulamalar arasında bulunur. Tıkladım ve Matlab'ın açılış ekranı belirdi, ancak kaybolduğunda program başlamıyor. ( htopArka planda hiçbir matlab işleminin çalışmadığını da doğruladım .)

Eklersem

Terminal=true

başlatıcı dosyasına program Tamam'ı başlatır ve Matlab'ın yanı sıra bir terminal açar. Bununla birlikte, hem terminal hem de Matlab, Başlatıcı alanında, Matlab simgesiyle birlikte görünür, bu yüzden gerçekten yalnızca bir tane olduğunda çalışan iki Matlab örneğine sahip gibiyim . (Aslında, iki farklı program gösterirler ve sadece iki örnek değil, simgeler bağımsızdır, birlikte gruplanmazlar.)

Bu kesinlikle en uygun değil. Başlatıcı alanına kilitleyebileceğim bir başlatıcı oluşturmayı umuyordum ve aynı simge, program çalışırken aktif Matlab örneğinin simgesi olacak.

Matlab için beklendiği gibi çalışan bir başlatıcı nasıl oluşturabilirim?

Güncelleme: Görünüşe göre belirtilerim konusunda biraz belirsizdim, biraz netleştirmeye çalışacağım. Ayrıca cevaplardan bazı önerileri denedim ve neler olduğunu daha fazla araştırdım. Benim şu anki kurulumu (bir başlatıcısı dosya Terminal=trueve Exec=matlab -desktop -nosplash &) Aşağıdaki davranışı vermektedir:

  1. Dizüstü bilgisayarımdaki Windows tuşuna basarak Dash’i açıyorum ve "matlab" kelimesini arıyorum. "MATLAB R2011a" isimli fırlatıcıyı bulur. Tıklayın.
  2. Başlatıcı dosyasında bahsettiğim simgeyi kullanarak bir terminal penceresi açılır. Neredeyse hemen, MATLAB'ın açılış ekranı da aynı simgeyi kullanarak açılır (ve böylece başlatıcıdaki terminal penceresiyle birlikte gruplandırılır).
  3. Açılış ekranı kaybolur ve başlatıcıdaki simgelerden biri de öyle. MATLAB masaüstü ortamı , terminal penceresinin simgesinin yanında görüntülenen simgenin farklı bir sürümünü kullanarak açılır (bununla birlikte gruplandırılmaz).

Terminal penceresinin simgesini başlatıcıya kilitleyebilir ve başarıyla tıklatarak MATLAB'ı başlatabilirim, ancak programı bir simgeyle başlatmam ve bir başkasıyla değiştirmem uygun değil. Ayrıca aşağıdakileri de denedim:

  • Exec&başlatıcı komutunda ve işareti olmadan , ancak bir fark yaratmadı.
  • matlab -nosplashBir terminalden manuel olarak çalıştırma yine açılış ekranını gösterir. (O zaman nosplash seçeneği gerçekten ne yapar?)

matlabTerminal penceresinde manuel olarak çalıştırdığınızda ne olur ?
Eliah Kagan

@EliahKagan: Bu mükemmel çalışıyor. Ben koşmak bile önemli görünmüyor matlabya matlab -desktopya.
Tomas Aschan

Simgelerle de aynı sorunu yaşıyorum. Ayrıca Ubuntu paketini matlab için depolardan kurdum. Matlab'a başladığınızda başka bir ikonun yaratılmasının ve yenisini başlatıcıya kilitlemenizin, yeni matlabın açılmaması gerçekten garip buluyorum ...
Felipe

Yanıtlar:


14

Garrett'in cevabı neredeyse benim için çalışıyor, ama onun yerine kullanmak zorundayım

StartupWMClass=sun-awt-X11-XFramePeer

Bu, açılış ekranı görünür durumdayken (spashscreen'in WM_CLASS'i sadece "MATLAB" olduğu için) ekstra bir başlatıcı simgesi verir, ancak daha sonra pencere başlatıcının altında doğru bir şekilde gruplandırılır.

Yeni Matlab örnekleri (terminal veya Synapse tarafından başlatıldı veya başka bir numaradan başlıyor export DISPLAY=:0) bu başlatıcının altında gruplandırılıyor ve başlatıcının bırakma seçeneği hepsini öldürüyor.

Bu WM_CLASS değerini kullanarak buldum

$ xprop WM_CLASS

ve sonra Süper Kullanıcı'dan aldığım bir komut olan Matlab penceresine tıklamak .

Geçici ekstra başlatıcı simgesini önlemek için, -nosplashbayraktan -desktopbir tanesini de ekleyebilirsiniz .

Öyleyse benim ~/.local/share/applications/MATLAB.desktopgörünüşüm şöyle:

[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

Bu, Matlab R2012b ile Ubuntu 12.10'da.


Bu tam olarak istediğim gibi çalışıyor. Çok teşekkürler!
Tomas Aschan

2
cevabını biraz genişlettim . burada
uçan koyun

Başkalarının logolarını nereden bilmiyorum ama bu işler:$ sudo wget http://upload.wikimedia.org/wikipedia/commons/2/21/Matlab_Logo.png -O /usr/share/pixmaps/matlab.png
Neil Traft

7

Bu çok garip. matlab -desktopbu numarayı gerçekten yapmalısın.

Yaklaşım 1: Başlatıcıda neyin yanlış olduğunu görün

Unity kenar çubuğumda çalışan bir MATLAB ikonu var. Tıklayabilir, doğru simgeyi korur ve bir terminal açmaz. Görebildiğim kadarıyla kodunuzla hemen hemen aynı.

[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

Yukarıdaki kod yerleştirilen matlab.desktop dosyasındadır /usr/share/applications/. Önemli olduğunu düşündüğüm tek fark (i) Execyoldur, ancak MATLAB kurulumlarınızda sembolik bağlantılar kurduysanız, sizinki gayet iyi çalışmalı ve (ii) MATLAB R2011b kullanıyorum.

Senin gibi, ben Ubuntu 12.04 kullanıyorum.

Bir şeyi kaçırmış olsaydım, MATLAB'ı başlatmak için kodumu kullanmaya çalışabilirsin, kim bilir, işe yarayabilir.

Yaklaşım 2: terminal ile kirli bir geçici çözüm

matlab -desktopTerminal çalışmalarına girmekten bahsettiniz (örneğin, ekleyerek Terminal=true). Ancak, bu MATLAB altında gruplandırılmış iki ekran verir.

Süreci nasıl adlandırdığınızı değiştirerek bunu düzeltmeyi deneyebilirsiniz. Burada anahtar işareti ve işareti olacaktır &. Bu, önceki kodu yürütmek, bitmesini beklememek. İdeal olarak terminali başlatır, terminalin MATLAB'ı başlatmasına izin verir ve hemen terminali kapatır, MATLAB'ın çalışmasını sağlar. Matlab'ı terminalden, satırdan sonra ve işaretiyle birlikte başlatırsanız ne olur:

matlab -desktop &

Bu işe yararsa, (i) Terminal=trueyukarıdaki kodla birlikte bir başlatıcı ve (ii) sırayla yukarıdaki kodu çağıran bir bash betiğine karşılık gelen bir başlatıcı yapmayı deneyebilirsiniz .

Sizin için, Yaklaşım 1 yardımcı olmadı. Yaklaşım 2 de işe yaramazsa, biraz oynamaya iyi gelebilir, ve işareti, terminal ve bash scriptleri ile yapabileceklerinizi görün. Neredeyse iyi fikirlerim yok ama benden daha akıllı biri size o zaman yardımcı olabilir.


Kodunu denedim ama başarılı olamadım. Ayrıca, (i) Matlab kurulumu sırasında sembolik bağlantılar kurdum. (ii) Bu tabii önemli olan bu fark olabilir - ne yazık ki, bu akademik bir lisans ve ben R2011b ile test edemez bu yüzden R2011a, bana en son sürümüdür = (
Tomas Aschan

Başka bir fikir ekleyerek yayınımı yeni düzenledim. Bunun sizin için nasıl yürüdüğünü bize bildirin.
Tomas,

Teşekkürler! Ancak, pek bir fark yaratmadı. Belirtilerim hakkında biraz belirsiz görünüyorum; Bazı açıklamalar için lütfen OP güncellemesine bakınız.
Tomas Aschan

Aha, bu nedenle olabilir Oluşturduğunuz bu başlatıcısı kullanılarak MATLAB başlatın. Sadece yanlış olan simge. Korkarım, Yaklaşım 2'de açıklanan terminal çözümüne başvurursanız, doğru simgeyi alamayacaksınız. Ben de aynı problemi yaşadım ama MATLAB'ı kullanarak arayabilirdim matlab -desktop(bkz. Yaklaşım 1) Benim için bu, açılış ekranı ve ana arayüz için doğru simgeyle MATLAB'i çağırıyor. Kilitli fırlatıcı altına yerleştirilir. Doğru simgeyi istiyorsanız ve MATLAB ile başlatıcısını çalıştıramazsanız matlab -desktop, fikirlerim bitmiştir. Bir şey bulursam haber veririm.
Tomas

.Desktop dosyasına karşılık gelen metni nasıl görüyorsunuz?
DBinJP

4

Yazılım Merkezinden bir Matlab Konfigürasyon dosyası / komut dosyası kurdum. Göstergede Matlab başlatıcısını listeler ve Ubuntu 12.04'deki Matlab2011a için mükemmel çalışır. Ancak başlatıcıdan çalışmıyor. Yani, başlatıcıya kilitlerseniz ve oradan başlatmaya çalışırsanız, o zaman işe yaramaz, en azından benim için çalışmıyor. Bu yüzden çizgi üzerinden başlatmak zorundayım.

Bunu yüklemek için, Ubuntu Yazılım Merkezine gidin , Matlab'ı arayın , listedeki ilk kişi olmalıdır (simge bir Matlab logosu). Sadece kurun ve gerisini halledin.


1
İyi bahşiş! Ancak, kendi oluşturduğum fırlatıcı ile aynı sorunlarla geliyor.
Tomas Aschan

harika, teşekkürler @ maqtanim! benim için bir cazibe gibi çalışıyor (ubuntu 12.10 amd64)
amc

Benim için mükemmel çalıştı (12.10'da Matlab R2013a). Bunu kurmadan önce bir fırlatıcı bile yoktu. Yazılım Merkezine Bağlantı: apt.ubuntu.com/p/matlab-support
Tobold

3

İşte yeni bir kurulumdan başlayarak işleri düzgün bir şekilde halletmek için yaptıklarım ( Ubuntu 12.04'teki sürüm R2010b ).

  1. Matlab destek paketini yazılım merkezinden önerildiği şekilde kurun . Yoksa aşağıdaki komutu kullanabilirsiniz: sudo apt-get install matlab-support.

  2. Yerel bir .desktop dosyası oluşturun: gedit ~/.local/share/applications/matlab.desktop. Bazı nedenlerden dolayı / usr / share / uygulamalarında kaydedilmesi, ilk giriş yaptığımda çalışmamasına neden oldu.

  3. Aşağıdaki kodu kopyalayıp yapıştırın ve kaydedin. Önemli değişiklik StartupWMClass satırıdır.

    [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. Sadece matlab.desktop dosyasını kaydettiğiniz yeri klasör uygulamaları açma: nautilus ~/.local/share/applications.

  5. Matlab.desktop dosyasını sürükleyip Birlik Başlatıcısına bırakın.


Bu gerçekten umut verici görünüyor! Bununla birlikte, yapmam gereken daha çok şey var - bunu yaptıktan sonra, başlatıcımdaki Matlab simgesine tıklamak aşağıdakileri yapıyor: 1) kendi ayrı başlatıcı simgesine sahip bir sıçrama penceresi görüntülenir ve tıkladığım simge yanıp sönmeye başlar (solma ve dışarı). 2) açılış penceresi ve bu simge kaybolur ve başlatıcısı simgesi yanıp sönmeye devam ediyor. 3) Simgenin yanıp sönmesi durur ve hiçbir şey olmaz.
Tomas Aschan

Ayrıca, matlab.desktop dosyasının bana ait olduğunu (root değil) ve tüm kullanıcıların hakları okuyup yürüttüğünden emin oldum.
Tomas Aschan

Bununla birlikte, Matlab'ı terminalden veya Guake'den başlatırsam, sadece başlatıcıya koyduğum simgeyi kullanır - yani bir şey doğru =)
Tomas Aschan

Açılış ekranı kendiliğinden görünecek, ancak ortadan kalkacak. Bunun nedeni Matlab sanal makinesinden (ana program) farklı bir sınıfa sahip olmasıdır. Başlamadığım sürece, emin değilim. Özellikle terminalde başladığını söylediğinden beri (aynı komutu kullanacağımı farz ediyorum matlab -desktop)
Garrett Foster

Evet, aynı komutu kullanıyorum. matlab &ayrıca sorunsuz çalışır (yani -desktopterminalden başlatırken anahtar gerekli değildir).
Tomas Aschan

1

Belki buna biraz geç gelebilirim, ancak 'Ana Menü' uygulamasına giriş ekleyerek bunu başardım. Bunu bir 'Uygulama' olarak sıraladım ve MATLAB dizinindeki yürütülebilir dosyanın tam yolunu Komut olarak verdim.

Ayrıca '-desktop' bayrağını eklemek zorunda kaldım (tırnak işaretleri olmadan). Ek olarak, '-glnx86' bayrağını 64bit sistemde Öğrenci Sürümü'nü kullandığım için kullanmak zorunda kaldım, ancak bu da işe yaradı.

Daha sonra bu web sitesinden bir simge almayı başardım .

Bu daha sonra uygulama menüsünde bulunabilir ve başlatıcıya sürüklenebilir. Biraz garip davranan tek şey, üzerine tıkladığımda, zaten orada olanı kullanmak yerine başlatıcıda başka bir MATLAB simgesinin görünmesi. Eğer biri bunu çözmenin bir yolunu bulabilirse, bu harika olurdu ... ama onunla yaşayabilirim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.