मैं एकता के लिए मैटलैब लांचर कैसे बनाऊं?


22

मैं Ubuntu 12.04 में एकता के लिए एक Matlab R2011a लांचर स्थापित करने की कोशिश कर रहा हूं। मैंने इस गाइड की कोशिश की है (हालांकि मुझे पता है कि यह 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;

मैं डैश पैनल खोलता हूं और "मैटलैब" की खोज करता हूं। यह लांचर अनुप्रयोगों के बीच पाया जाता है। मैं इसे क्लिक करता हूं, और मतलाब की छप स्क्रीन दिखाता है, लेकिन जब यह गायब हो जाता है तो कार्यक्रम शुरू नहीं होता है। (मैंने इस बात से सत्यापित किया है htopकि कोई भी मैटलैब-प्रक्रिया पृष्ठभूमि में नहीं चल रही है।)

अगर मैं जोड़ूं

Terminal=true

लॉन्चर फ़ाइल में, प्रोग्राम ठीक शुरू होता है, और एक टर्मिनल के साथ-साथ मतलाब भी खोलता है। हालांकि, टर्मिनल और Matlab दोनों ही Matlab आइकन के साथ लॉन्चर क्षेत्र में दिखाई देते हैं, इसलिए ऐसा लगता है कि मेरे पास दो Matlab इंस्टेंस चल रहे हैं जब वास्तव में यह केवल एक है। (वास्तव में, वे दो अलग-अलग कार्यक्रमों के रूप में दिखाई देते हैं, और केवल एक ही के दो उदाहरण नहीं हैं - प्रतीक स्वतंत्र हैं, एक साथ समूहीकृत नहीं हैं।)

यह निश्चित रूप से इष्टतम नहीं है। मुझे एक लॉन्चर बनाने की उम्मीद थी जिसे मैं लॉन्चर क्षेत्र में लॉक कर सकता हूं, और फिर वही आइकन सक्रिय मैटलैब उदाहरण के लिए आइकन होगा जब प्रोग्राम चल रहा हो।

मैं मतलाब के लिए एक लांचर कैसे बनाऊंगा जो उम्मीद के मुताबिक काम करता है?

अपडेट: मैं अपने लक्षणों पर स्पष्ट रूप से थोड़ा अस्पष्ट था, मैं थोड़ा स्पष्ट करने की कोशिश करूंगा। मैंने उत्तरों से कुछ सुझावों की भी कोशिश की है, और आगे क्या हुआ है इसकी जांच की। मेरा वर्तमान सेटअप (एक लांचर फ़ाइल के साथ Terminal=trueऔर Exec=matlab -desktop -nosplash &) निम्न व्यवहार प्रस्तुत करता है:

  1. मैं अपने लैपटॉप पर विंडोज कुंजी दबाकर डैश खोलता हूं, और "मैटलैब" की खोज करता हूं। यह "MATLAB R2011a" नाम के लॉन्चर को ढूंढता है। मैं इसे क्लिक करता हूं।
  2. एक टर्मिनल विंडो खुलती है, जिसे मैंने लांचर फ़ाइल में संदर्भित आइकन का उपयोग करके किया है। लगभग तुरंत ही, MATLAB की स्प्लैश स्क्रीन भी खुल जाती है, उसी आइकन का उपयोग करके (और इस तरह लॉन्चर में टर्मिनल विंडो के साथ समूहीकृत किया जा रहा है)।
  3. स्प्लैश स्क्रीन गायब हो जाती है और इसलिए लॉन्चर में एक आइकन होता है। MATLAB डेस्कटॉप वातावरण, आइकन के एक अलग संस्करण का उपयोग करके खुलता है, जो टर्मिनल विंडो के लिए आइकन के बगल में प्रदर्शित होता है (इसके साथ समूहीकृत नहीं)।

मैं टर्मिनल विंडो के आइकन को लॉन्चर में लॉक कर सकता हूं और सफलतापूर्वक इसे क्लिक करके MATLAB शुरू कर सकता हूं, लेकिन यह इष्टतम नहीं लगता है कि मैं एक आइकन के साथ कार्यक्रम शुरू करता हूं, और दूसरे के साथ स्विच करता हूं। मैंने भी निम्नलिखित की कोशिश की है:

  • Exec&लांचर कमांड में एम्परसेंड के बिना , लेकिन इससे कोई फर्क नहीं पड़ा ।
  • matlab -nosplashटर्मिनल से मैन्युअल रूप से निष्पादित करना अभी भी छप स्क्रीन दिखाता है। (क्या, तो, nosplash विकल्प वास्तव में करता है?)

matlabटर्मिनल विंडो में मैन्युअल रूप से चलने पर क्या होता है ?
एलिया कगन

@ एलियाकगन: यह पूरी तरह से ठीक काम करता है। मुझे लगता है कि मैं चला रहा हूँ matlabया matlab -desktopतो यह बात नहीं है ।
टॉमस असचन

मैं माउस के साथ एक ही समस्या है। मैंने रिपॉजिट से मैटलैब के लिए उबंटू पैकेज भी स्थापित किया। मुझे यह वास्तव में अजीब लगता है कि एक बार जब आप matlab शुरू करते हैं तो एक और आइकन बनाया जाता है और यदि आप नए को लॉन्चर में लॉक करते हैं, तो नया मैटलैब नहीं खुलेगा ...
फेलिप

जवाबों:


14

गैरेट का जवाब मेरे लिए लगभग काम करता है, लेकिन इसके बजाय मुझे उपयोग करना होगा

StartupWMClass=sun-awt-X11-XFramePeer

यह अभी भी एक अतिरिक्त लॉन्चर आइकन देता है जबकि स्प्लैशस्क्रीन दिखाई देती है (क्योंकि स्पैशस्क्रीन का WM_CLASS सिर्फ "MATLAB" है), लेकिन तब विंडो ठीक से लॉन्चर के नीचे समूहीकृत हो जाती है।

मतलाब के नए उदाहरण (टर्मिनल, या सिनैप्स, या किसी अन्य प्रकार से शुरू export DISPLAY=:0) को भी इस लॉन्चर के तहत समूहीकृत किया जाता है, और लॉन्चर का विकल्प छोड़ दिया जाता है।

मैंने उपयोग करके यह WM_CLASS मान पाया

$ xprop WM_CLASS

और फिर Matlab विंडो पर क्लिक करते हुए, एक कमांड जो मुझे सुपरयुसर से मिली ।

अस्थायी अतिरिक्त लॉन्चर आइकन को रोकने के लिए, आप -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: देखें कि लॉन्चर के साथ क्या गलत है

मेरे एकता साइडबार में एक काम करने वाला 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) एक लॉन्चर बनाने के लिए जो बैश स्क्रिप्ट को संदर्भित करता है, जो बदले में उपरोक्त कोड को कॉल करता है।

आपके लिए, दृष्टिकोण 1 ने मदद नहीं की। यदि दृष्टिकोण 2 काम नहीं करता है तो या तो थोड़ा सा आसपास खेलना अच्छा हो सकता है, देखें कि आप एम्परसेंड, टर्मिनल और बैश स्क्रिप्ट के साथ क्या कर सकते हैं और क्या नहीं। मैं अच्छे विचारों से बहुत बाहर हूं, लेकिन मुझसे ज्यादा होशियार कोई आपकी मदद करने में सक्षम हो सकता है।


मैंने आपके कोड की कोशिश की, लेकिन सफलता के बिना। इसके अलावा, (i) मैंने मतलाब की स्थापना के दौरान सीमलिंक स्थापित किए। (ii) निश्चित रूप से यह अंतर हो सकता है जो मायने रखता है - दुर्भाग्य से, यह एक अकादमिक लाइसेंस है और I R2011a मेरे लिए नवीनतम संस्करण उपलब्ध है, इसलिए मैं इसे R2011b = (
टॉमस असचान

मैंने अभी एक और विचार जोड़ते हुए अपनी पोस्ट संपादित की है। आइए जानते हैं कि यह कैसे आपके लिए कारगर है।
टॉमस

धन्यवाद! हालांकि, इससे बहुत फर्क नहीं पड़ा। मुझे लगता है कि मेरे लक्षणों पर थोड़ा अस्पष्ट रहा है; कृपया कुछ स्पष्टीकरण के लिए ओपी अपडेट देखें।
टॉमस असचन

अहा, इसलिए आप उस लांचर का उपयोग करके MATLAB शुरू कर सकते हैं जिसे आपने बनाया है। यह सिर्फ आइकन है जो गलत है। मुझे डर है कि यदि आप दृष्टिकोण 2 में वर्णित टर्मिनल समाधान का सहारा लेते हैं, तो आपको सही आइकन नहीं मिलेगा। मेरे पास ठीक यही समस्या थी, लेकिन MATLAB का उपयोग करके कॉल कर सकते हैं matlab -desktop(दृष्टिकोण 1 देखें)। मेरे लिए, वह मैला स्क्रीन के साथ MATLAB और मुख्य इंटरफ़ेस के लिए सही आइकन को समन करता है। इसे लॉक्ड लॉन्चर के नीचे रखा गया है। यदि आप सही आइकन चाहते हैं और एक लांचर के माध्यम से MATLAB नहीं चला सकते हैं matlab -desktop, तो मैं विचारों से बाहर हूं। तुम्हें बता दूंगा कि अगर मैं किसी चीज के साथ आता हूं।
टॉमस

आप उस टेक्स्ट को .desktop फाइल के अनुरूप कैसे देखते हैं?
DBINJP

4

मैंने सॉफ्टवेयर केंद्र से एक Matlab कॉन्फ़िगरेशन फ़ाइल / स्क्रिप्ट स्थापित की है। यह डैश में Matlab लांचर को सूचीबद्ध करता है और Ubuntu 12.04 में Matlab2011a के लिए पूरी तरह से काम करता है। लेकिन यह लॉन्चर से काम नहीं कर रहा है। मेरा मतलब है, यदि आप इसे लॉन्चर पर लॉक करते हैं और इसे वहां से शुरू करने की कोशिश करते हैं तो यह काम नहीं करेगा, कम से कम यह मेरे लिए काम नहीं कर रहा है। इसलिए मुझे इसे डैश से शुरू करना होगा।

इसे स्थापित करने के लिए, उबंटु सॉफ्टवेयर सेंटर पर जाएं , मतलाब की खोज करें , यह सूची में पहला होना चाहिए (आइकन एक माटलब लोगो है)। बस इसे स्थापित करें, और यह बाकी की देखभाल करेगा।


1
अच्छा सुझाव! हालाँकि, यह ठीक उसी तरह की समस्याओं के साथ आता है जैसे मेरे स्व-निर्मित लांचर।
टॉमस एशचन

महान, धन्यवाद @maqtanim! मेरे लिए आकर्षण की तरह काम करता है (ubuntu 12.10 amd64)
amc

मेरे लिए पूरी तरह से काम किया (12.10 पर मतलाब R2013a)। इसे स्थापित करने से पहले मेरे पास लांचर भी नहीं था। सॉफ्टवेयर सेंटर का लिंक: apt.ubuntu.com/p/matlab-support
Tobold

3

यहां मैंने एक नई स्थापना के साथ शुरू करने वाली चीजों को सही ढंग से काम करने के लिए किया था ( उबंटू 12.04 पर संस्करण R2010b )।

  1. सुझाए गए सॉफ़्टवेयर केंद्र से matlab-support पैकेज स्थापित करें । या आप निम्न कमांड का उपयोग कर सकते हैं sudo apt-get install matlab-support:।

  2. एक स्थानीय .desktop फ़ाइल बनाएँ gedit ~/.local/share/applications/matlab.desktop:। किसी कारण से इसे / usr / शेयर / एप्लिकेशन में सहेजने के कारण यह काम नहीं कर सका जब मैं पहली बार लॉग इन करूंगा।

  3. निम्नलिखित कोड को कॉपी और पेस्ट करें और सहेजें। महत्वपूर्ण बदलाव स्टार्टअपअपक्लास लाइन है।

    [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) छप खिड़की, और यह आइकन गायब हो जाता है, और लांचर आइकन मैं चमकता रहता है। 3) आइकन चमकना बंद कर देता है, और कुछ भी नहीं होता है।
टॉमस एशचन

मैंने यह भी सुनिश्चित किया है कि matlab.desktop फ़ाइल मेरे पास है (रूट नहीं) और यह कि सभी उपयोगकर्ताओं ने अधिकारों को पढ़ा और निष्पादित किया है।
टॉमस एशचन

हालाँकि, अगर मैं टर्मिनल या गाइड से मतलाब शुरू करता हूं, तो यह उस आइकन का उपयोग करता है जिसे मैंने अभी लॉन्चर में रखा है - इसलिए कुछ सही है =)
टॉमस असचन

छप स्क्रीन अपने आप दिखाई देगा, लेकिन दूर चला जाता है। इसकी वजह यह है कि मैटलैब वर्चुअल मशीन (मुख्य कार्यक्रम) की तुलना में एक अलग वर्ग है। जहां तक ​​शुरुआत नहीं है, मुझे यकीन नहीं है। खासकर जब से आप कहते हैं कि यह टर्मिनल में शुरू होता है (मैं उसी कमांड का उपयोग कर रहा हूं matlab -desktop)
गैरेट फोस्टर

हां, मैं उसी कमांड का उपयोग करता हूं। matlab &समस्याओं के बिना भी काम करता है (यानी -desktopटर्मिनल से शुरू होने पर स्विच आवश्यक नहीं है)।
टॉमस अचन

1

मुझे शायद यह थोड़ा देर से आ रहा है, लेकिन मैंने 'मेन मेन्यू' एप्लिकेशन में प्रविष्टि जोड़कर ऐसा करने में कामयाबी हासिल की है। मैंने इसे 'एप्लिकेशन' के रूप में सूचीबद्ध किया और फिर MATLAB निर्देशिका में निष्पादन योग्य को कमांड के रूप में पूरा रास्ता प्रदान किया।

मुझे झंडे को भी जोड़ना था '-desktop' (बिना उद्धरण के)। इसके अलावा, मुझे '-glnx86' झंडे का भी इस्तेमाल करना था क्योंकि मैं 64 बिट सिस्टम पर स्टूडेंट वर्जन का उपयोग कर रहा हूं, लेकिन यह भी ठीक काम किया है।

मैंने तब इस वेबसाइट से एक आइकन प्राप्त करने में कामयाबी हासिल की ।

यह तब एप्लिकेशन मेनू में स्थित हो सकता है और लॉन्चर में नीचे खींचा जा सकता है। केवल एक चीज जो थोड़ा अजीब काम कर रही है वह यह है कि जब मैं उस पर क्लिक करता हूं, तो लांचर में एक और MATLAB आइकन दिखाई देता है, बजाय इसके कि वहां पहले से ही उपयोग करने के बजाय। अगर किसी को इसे हल करने का तरीका मिल सकता है तो यह बहुत अच्छा होगा ... लेकिन मैं इसके साथ रह सकता हूं जैसा कि यह है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.