शराब आवेदन के लिए .desktop फ़ाइल में तर्क के रूप में फ़ाइल पास कैसे करें


11

मैं वास्तव में दो प्रश्न पूछना चाहता हूं:

  1. मैं डेस्कटॉप फ़ाइलों में Exec प्रविष्टि के लिए उपलब्ध तर्क / पैरामीटर शॉर्टकट के बारे में और अधिक जानकारी प्राप्त कर सकता हूं (जैसे% U,% u,% f ...)

  2. मुख्य सवाल, शराब आवेदन के लिए .desktop लांचर पर तर्क के रूप में फाइल कैसे पारित करें?

मैंने इस सुझाव को यहां खोजा: z:%fजो मेरे लिए किसी काम का नहीं है, जैसे कि मैं बस फ़ाइल को इस पर बिना पास किए चला जाता हूं। यह मान लेता है कि "ड्राइव" z:स्कैन करना शुरू कर देता है।z:


उदाहरण:

[Desktop Entry]
Name=Some Windows program
Exec=wine "program.exe" z:%f
Type=Application
Terminal=false
MimeType=application/docbook+xml

मैं इस शराब आवेदन के लिए अपने कस्टम .desktop लांचर पर XML फ़ाइल को छोड़ना चाहता हूं और मैं इस तरह से कर सकता हूं। समस्या यह है कि अगर मैं इस कार्यक्रम को शुरू करने के लिए लांचर आइकन पर क्लिक करता हूं, तो तर्क z:हमेशा उस पर पारित हो जाता है और यह स्वीकार्य नहीं है


आप btw क्या करने की कोशिश कर रहे हैं? क्या आप एक उदाहरण जोड़ सकते हैं?
ब्रूनो परेरा

हे ब्रूनो;) मुझे लगा कि यह स्पष्ट है - मैंने शराब आवेदन के लिए डेस्कटॉप फ़ाइल (उद्देश्य - लांचर) बनाया और मैं इस पर फ़ाइल पास करने में सक्षम होना चाहता हूं। ऊपर z:%fवर्कअराउंड अच्छा नहीं है क्योंकि जब भी मैं इस वाइन एप्लिकेशन को लॉन्च करता हूं तो z:उस पर तर्क पारित किया जाता है और मैं इससे बचना चाहता हूं
zetah

तो आपके पास एक विंडोज़ प्रोग्राम है जिसे (यानी) कहा जाता है जिसे application.exeआप वर्तमान चयनित फ़ाइल को नॉटिलस में पास करना चाहते हैं file.txt?
ब्रूनो परेरा

क्षमा करें, मुझे अपनी पहली पोस्ट में उदाहरण जोड़ना चाहिए था। मैंने इसे अभी जोड़ा है
zetah

मैं अब तक इसके चारों ओर एक नज़र रखता रहा हूं और इसके लिए एकमात्र विकल्प execलाइन में रखी गई एक स्क्रिप्ट है जो ए की जांच करती है %f, अगर यह मौजूद है तो फ़ाइल को एप्लिकेशन लॉन्च करें, यदि केवल एप्लिकेशन लॉन्च न करें। इसके लिए देखभाल या यह एक विकल्प नहीं है?
ब्रूनो परेरा

जवाबों:


8

यह सबसे अच्छा है जो मैं अब तक कर सकता हूं (नोटपैड उदाहरण)

[Desktop Entry]
Name=Notepad
Exec=sh -c "echo %f | sed 's/^\//z:\//' | xargs wine /home/zetah/.wine/drive_c/windows/notepad.exe"
Type=Application
Terminal=false
Categories=Wine
MimeType=text/plain

मुझे लगता है मैं शुरुआत कर रहा हूँ पर विचार कर बेहतर जवाब की उम्मीद है


एकाधिक फ़ाइलों को पारित करने के लिए नीचे मेरा सुधार देखें।
हार्वे


1

ज़ात के जवाब पर एक सुधार। इस कार्यक्रम के लिए कई फ़ाइलों को पारित करने के लिए काम करता है। % F को बदलकर% F (ऊपरी स्थिति) में सभी फ़ाइलों को पास करने के लिए बदल दिया जाता है, इसके स्थान पर ^ (लाइन की शुरुआत के लिए) को बदलने के लिए पथ नाम के साथ इसे और अधिक विशिष्ट बनाने के लिए, अंत में 'g'। सेड कमांड के कारण रिप्लेसमेंट का कारण बनी सभी फाइलों को रिपीट करना और अंत में $ के बदले / जिससे कि \ एस्केप अक्षर आवश्यक नहीं हैं।

Exec=sh -c "echo %F | sed 's$/home$z:/home$g' | xargs wine /home/owner/.wine/dosdevices/c:/Progs/Boxer/b.exe"

मैंने प्रोग्राम को एक ऐसे पथ पर निष्पादित करने के लिए भी स्थानांतरित किया जहां pathname का कोई स्थान नहीं है, इसलिए मैंने अपने बॉक्सर संपादक को यहां से स्थानांतरित किया:

/home/owner/.wine/dosdevices/c:/Program Files/Boxer Text Editor/

सेवा:

/home/owner/.wine/dosdevices/c:/Progs/Boxer/

1

इस थ्रेड में बहुत सारे हैकिश समाधान पोस्ट किए गए थे। यहाँ एक बेहतर समाधान है जो कई फ़ाइलों और फ़ाइल नाम में रिक्त स्थान से संबंधित है।

जैसा कि आप आमतौर पर .desktop फ़ाइल बनाते हैं, और बस इस Exec लाइन का उपयोग करें:

Exec=/usr/bin/env bash -c "printf 'z:%%q\\n' %F | WINEPREFIX='/home/<your username>/.wine' xargs wine 'C:\\Path\\to the executable\\app.exe'"

संपादित करें : यदि आपका एप्लिकेशन एक ही उदाहरण में एक से अधिक फ़ाइलों को संभाल सकता है (उदाहरण के लिए एक बहु-टैब पीडीएफ दर्शक) और आप चाहते हैं कि वर्तमान आवृत्ति ऑटो-केंद्रित हो जब भी आप एक नई फ़ाइल लॉन्च करते हैं तो आपको निम्न कार्य करने की आवश्यकता होती है:

  • इस लाइन को .desktop फ़ाइल में जोड़ें: StartupWMClass=app.exe

  • इस Exec कमांड का उपयोग करें:

    Exec=/usr/bin/env bash -c "(printf 'z:%%q\\n' %F | WINEPREFIX='/home/<your username>/.wine' xargs wine 'C:\\Path\\to the executable\\app.exe' &); xdotool windowactivate \$(xdotool search --sync --onlyvisible --class \"app.exe\")"
    

1

वाइनपैथ के एक पाइप के साथ एक्सैस लाइन , जिसका उपयोग उचित उद्धरण और उनके -0 विकल्पों के साथ किया जाता है, एकल और कई फ़ाइलों को खोलने के लिए Ubuntu 14.04 में त्रुटिपूर्ण रूप से काम करता है।

Exec=/usr/bin/env sh -c "winepath -w -0 %F | WINEPREFIX='/home/your_user_name/.wine' xargs -0 wine 'C:\\\\Program Files\\\\Some Vendor\\\\SomeProgram.exe'"

0

यह वह तरीका है जिसने अभी मेरे लिए RHEL 6.3 बॉक्स पर कुछ परीक्षण और त्रुटि के बाद और डेस्कटॉप प्रविष्टि विशिष्टता को पढ़ने के लिए काम किया है। यह तर्कों के साथ शराब के लिए विशिष्ट नहीं है, लेकिन इसे कुछ के साथ काम करना चाहिए Exec=wine \"filename.exe\"

आशा है कि यह किसी की मदद करता है क्योंकि यह मुझे काम करने के लिए कुछ खोज ले गया।

मुझे लगता है कि आपको दोहरे उद्धरण चिह्नों का उपयोग करना होगा और उन्हें बचाना होगा और साथ ही किसी विशेष वर्ण का उपयोग करना होगा।

[Desktop Entry]
Version=1.0
Name=Ansys User Lic Prefs 12.1
GenericName=Ansys User Lic Prefs 12.1
Comment=Ansys User License Prefs 12.1
Encoding=UTF-8
Exec=anslic_admin \"\-userprefs121\"
Icon=ansysLogo_16x16.png
Terminal=false
Type=Application
Categories=Ansys;

0

मैंने सिर्फ एक छोटा पायथन लिपि लिखी है जो यूनिक्स शैली के रास्तों को वाइन पथ प्रारूप में परिवर्तित करती है।

ज़िप डाउनलोड करें , अपने होम फोल्डर में वाइन-बलेन्चोरम निकालें और अपनी .desktop फ़ाइल को इस तरह संपादित करें:

Exec=python ~/wine-launcher.py "program.exe" %F
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.