Ş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.