Şeffaf şarap programları


9

Bir şarap programı çalıştırmak istediğimde, örneğin

$ wine ~/.wine/drive_c/Program\ Files/TextAloud/TextAloudMP3.exe

Doğrudan koşmak mümkün TextAloudMP3mü? Sadece komut satırından değil (diğer ad oluşturabilirim) değil, tüm grafik ortamında. İle programlar başlatıyorum dmenu.

Yanıtlar:


10

Sanırım doğrudan şarapla exe programları başlatmak istedin, bu yüzden çekirdeğe şarapla win32 ikili dosyaları çalıştırmasını söyle,

  1. Binfmt fs'yi bağlayın, none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0/ etc / fstab öğesine bir satır ekleyin ve mount -adaha sonra çalıştırın

  2. echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register ikili biçimi kaydetmek için

Daha sonra exe dosyasını /path/to/XX.exe

Bunun bir güvenlik sorunu da getirdiğini unutmayın.


Düzenleyemiyorum /proc/sys/fs/binfmt_misc/register. Yazıyor /proc/sys/fs/binfmt_misc/register E667: Fsync failed. Kullanıcı sudohesabı altında ve root hesabı altında da düzenlemeye çalıştım . Her ikisi de bu hatayı yazar.
xralf

Vaov! Çekirdeğin bunu yapabileceğini bilmiyordum. Bu özel kullanım durumu yine de kötü hissettiriyor. Ama o kapıyı açarken bile , dosya
isimleri

@xralf: Dosyayı nasıl düzenlemeye çalışıyorsunuz? echo çalışmalıdır, ancak bazı (çoğu / tümü?) editörler çalışmayabilir, çünkü bu gerçek bir düzenlenebilir dosya değildir, proc dosya sisteminde sanaldır.
chmeee

@xralf vim
daisy

@ warl0ck Bunu roothesaba katmak zorundayım . Eklediğim /path/to/benim için $PATHdeğişken ve ben çalıştırabilirsiniz XX.exekomut satırından ama hala onu çalıştırılamaz dmenu. Üzgünüm xmobarsoruda yanıldım .
xralf

3

Emin olun wineolduğu yolunda bir ve aşağıdakileri içeren bir kabuk komut dosyası oluşturun:

#!/bin/sh
wine "$HOME/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe"

Komut dosyasını çalıştırarak yürütmek için kendinize izin verin chmod u+x SCRIPT_NAME.

Ardından, bu komut dosyasını dosya yöneticinizden çalıştırın. TextAloudMP3.exe'yi çalıştıracak şarabı başlatacaktır.


Ben adında bir komut dosyası oluşturdu textaloudiçinde /usr/local/binklasörün. Birinci satır #! /bin/bashikinci satır wine .... textaloud xmobarbaşlatıcıda görünmez . Çalıştırırken sh textaloudo yazar$ sh textaloud wine: cannot find '~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe'
xralf

Hata. ~çift ​​tırnak içine alındığında kullanıcının ana dizinine genişlemez. Bunun $HOMEyerine cevabımı çevresel değişkeni kullanacak şekilde değiştirdim .

sh textaloudzaten çalışıyor, ancak sadece /usr/local/bindizinden ve xmobar başlatıcısında hala görünmüyor.
xralf

1
$@tüm bağımsız değişkenleri geçmesi için program adından sonra eklemek isteyebilir . Ve genellikle bu tür komut dosyalarını ~ / bin içine koyarım (elbette PATH'ınızda olduğundan emin olduktan sonra).
Wyatt8740

Ayrıca bir takma ad da tanımlayamadınız ~/.bash_aliasesmı?
Aaron Franke

3

Adım 0

Kullanıcınız için bir ikili PATH ayarlayın. mkdir ~/binBu dizini çalıştırın ve PATH'nize ekleyin.

Bunun nasıl kullanıldığı, kullandığınız kabuğa ve masaüstü ortamına bağlı olarak değişebilir.

Burada PATH'inizi çeşitli kabuklarda nasıl değiştireceğinizi bulabilirsiniz .

Masaüstü ortamınızın kabuk profilinizle ilgilenmemesi ve ilkinin terminalden çalışıp masaüstü ortamından çalışmaması durumunda bu çözülmüş soruyu kontrol edin .

Aşama 1

Kabuğunuzu ve masaüstü ortamınızı yeni bir PATH'ye uyacak şekilde ayarladıktan sonra, komut dosyalarını buraya bırakıp yollarını yazmadan normal komutlar olarak çalıştırabilirsiniz.

Şarap programınızı bu dizinde çalıştırmak için kısa bir kabuk komut dosyası oluşturun, yani ~/bin/textaloud:

#!/bin/bash
cd "~/.wine/drive_c"
exec wine "~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe" "$@"

Ve yürütmesine izin ver.

chmod +x ~/bin/textaloud

Yukarıdaki senaryo hakkında dikkat edilmesi gereken üç şey vardır:

  • cdYol programı (hangi dizinde) çalıştırılmak üzere nereye gittiğini olduğunu. Bazı programlar, bunları belirli bir dizinde çalıştırmanızı gerektirebilir. Bu konuda sorun yaşıyorsanız, bu dizini (genellikle yürütülebilir dosyanın bulunduğu konumla) ayarlayın. Bazı durumlarda bu çizgiyi kullanmak istemeyebilirsiniz.
  • execBu şarabı artık çalışmadığı Bash, ancak bash süreç şarap haline böylece komutlar aşağıdaki argümanlarla şaraba morph için bash söyle. PID kalır. Çalışan iki işleminiz yok.
  • Bu $@, varsa betiği çalıştırdığınız bağımsız değişkenlerle değiştirilir. Yani bunlar şarap programınıza geçiyor.

Şimdi programınızı kabuk gibi çalıştırabilirsiniz ...

textaloud

Adım 2

Bir uygulama başlatıcısı oluşturun. Günümüzde bu dosyalar dosyalar olarak standartlaştırılmıştır .desktopve birçok masaüstü ortamı bunları oluşturmak için grafik araçları sağlar.

İşte kendiniz yazmak için kullanabileceğiniz örnek bir iskelet. Bir simge sağlamak isteyebilirsiniz (genellikle PNG, SVG veya XPM'de).

[Desktop Entry]
Type=Application
Name=TextAloud
Exec=textaloud
Icon=textaloud.png

Bu dosyayı içine yerleştirin ~/.local/share/applications/TextAloud.desktop. Simgeler (diğer yerlerin yanı sıra) içinde aranır ~/.local/share/icons, bu nedenle uygulamanız için sevimli bir simge bulduğunuzdan emin olun ve adıyla oraya yerleştirin textaloud.png.

Bunu yaptıktan sonra, masaüstü ortamınız kısayol dosyanızı bulmalı ve programı komut dosyasıyla çalıştırabilmelidir. Değilse, yeniden yükleyin veya yeniden başlatın.


Teşekkürler, rehberinizi denedim ama son adım işe yaramıyor. Göremiyorum textaloudiçinde dmenufırlatıcı.
xralf

2. adım GNOME, KDE veya XFCE gibi masaüstlerine yöneliktir. dmenu .desktop dosyalarını önemsemiyor gibi görünüyor, bu yüzden Adım 1 ile iyi olmalısınız. Terminalden çalıştı mı? Eğer işe yaradı ama yine de çalışmıyorsa, 0. Adımı inceleyin. Belki ~/.xsessionX11 sesion'unuzu almak için kullanıyorsunuzdur ? export PATH="$HOME/bin:$PATH"DWM'yi çalıştırmak ve X11'i yeniden başlatmak için kullandığınız satırdan önce oraya eklemeyi deneyin .
Alicia

Terminalden sorunsuz çalışır. PATH iyi. Sadece soruların eksiksiz olması için dmenu'dan çalışmak istiyorum.
xralf

Sana söylemiştim. Var mı ~/.xsession? Terminalinizin PATH değerinin X11 oturumunuzun PATH değerine eşit olmayabileceğini unutmayın.
Alicia

$@güvenlik için çift tırnak içinde olmalıdır. böylece olur exec wine "~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe" "$@".
Wyatt8740

1

PlayOnLinux'u denemeyi düşündünüz mü? Sizin için her şeyi halledebilir ve hatta şarap programları tarafından açılacak bazı dosya türlerini yapılandırabilirsiniz.

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.