Şarap uygulaması için .desktop dosyasında argüman olarak dosya nasıl aktarılır


11

Aslında iki soru sormak istiyorum:

  1. Masaüstü dosyalarında Exec girişi için kullanılabilir bağımsız değişkenler / parametreler kısayolları hakkında daha fazla bilgiyi nerede bulabilirim (% U,% u,% f ... gibi)

  2. Ana soru, nasıl şarap uygulaması için .desktop başlatıcısı argüman olarak dosya geçmek için?

Ben burada bu öneri arama bulundu: z:%fbenim için hiçbir faydası yok, sanki ben .desktop dosyasını üzerinde dosya geçmeden çalıştırmak gibi, argüman olduğunu varsayar z:ve z:"sürücü" taramaya başlar


Misal:

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

Bu şarap uygulaması için özel .desktop başlatıcıma XML dosyası bırakmak istiyorum ve bu şekilde yapabilirim. Sorun şu ki, bu programı çağırmak için başlatıcı simgesine tıklarsam, argüman z:her zaman aktarılır ve bu kabul edilemez


Btw ne yapmaya çalışıyorsun? Bir örnek ekleyebilir misiniz?
Bruno Pereira

Hey Bruno;) Açık olduğunu düşündüm - şarap uygulaması için masaüstü dosyası (amaç - başlatıcısı) yaptım ve üzerine dosya geçirebilmek istiyorum. Yukarıdaki z:%fgeçici çözüm, bu şarap uygulaması argümanını her başlattığımda iyi z:değil ve bundan kaçınmak istiyorum
zetah

Yani application.exenautilus geçerli seçilen dosyayı yani yani geçmek istediğiniz (yani) adlı bir windows programınız var file.txtmı?
Bruno Pereira

Üzgünüm ilk yazımda örnek eklemeliydim. Şimdi ekledim
zetah

Şimdiye kadar bu bir göz olmuştur ve bunun için tek diğer seçenek , eğer sadece uygulamayı başlatmak değil, dosya üzerinde uygulamayı başlatmak için execdenetler satırda yerleştirilen bir komut %fdosyasıdır. Bunu önemsiyor musunuz yoksa bir seçenek değil mi?
Bruno Pereira

Yanıtlar:


8

Bu şimdiye kadar yapabileceğim en iyisi (Not defteri örneği)

[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

Yeni başlayan olduğumu düşünerek daha iyi cevaplar bekliyorum


Birden fazla dosya aktarmak için aşağıdaki geliştirmeme bakın.
Harvey


1

Zetah'ın cevabında bir gelişme. Bu, programa birden fazla dosya aktarmak için çalışır. % F (büyük harf), bırakılan tüm dosyaları iletmek için% F (büyük harf) olarak değiştirilir ve ^ (satırın başlangıcı için) daha olası benzersiz hale getirmek için yeterli yol adıyla değiştirilir, sonunda 'g' değiştirilen tüm dosyalar için yinelemenin tekrarlanmasına neden olan sed komutunun ve son olarak \ yerine \ escape karakterlerinin gerekli olmaması için $ yerine.

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

Ayrıca çalıştırılacak programı, yol adının boşluğu olmayan bir yola taşıdım, bu yüzden boksör düzenleyicimi:

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

için:

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

1

Bu konuya birçok hackish çözümü gönderildi. Birden çok dosya ve dosya adlarındaki boşluklarla ilgilenen çok daha iyi bir çözüm.

Genellikle yaptığınız gibi .desktop dosyasını oluşturun ve bu Exec satırını kullanın:

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'"

Düzenleme : Uygulamanız tek bir örnekte birden fazla dosyayı işleyebiliyorsa (örneğin, çok sekmeli PDF görüntüleyici) ve yeni bir dosya başlattığınızda geçerli örnek otomatik olarak odaklanmayı istiyorsanız, aşağıdakileri yapmanız gerekir:

  • Bu satırı .desktop dosyasına ekleyin: StartupWMClass=app.exe

  • Bu Exec komutunu kullanın:

    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

Uygun alıntılar ve -0 seçenekleriyle kullanılan xargs'a bir şarap yolu borusu içeren bir Exec satırı, tek ve birden fazla dosyayı açmak için Ubuntu 14.04'te sorunsuz çalışır.

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

Bazı deneme ve hata ve Masaüstü Giriş Şartnamesi'ni okuduktan sonra bir RHEL 6.3 kutusunda benim için çalışmanın yolu budur. Tartışmalı şaraba özgü değildir, ancak böyle bir şeyle çalışmalıdır Exec=wine \"filename.exe\".

Umarım işe yardımcı olmak için biraz araştırma yapmam gerektiğinden birine yardımcı olur.

Bence çift tırnak kullanmalı ve ters eğik çizgi kullanarak herhangi bir özel karakterden kaçmalısınız.

[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

Unix tarzı yolları Şarap yolu formatına dönüştüren küçük bir Python betiği yazdım .

İndir zip ayıklamak, wine-launcher.py ev klasörüne ve düzenlemek bu gibi .desktop dosya içine:

Exec=python ~/wine-launcher.py "program.exe" %F
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.