Chương trình rượu vang trong suốt


9

Khi tôi muốn chạy một chương trình rượu vang, tôi phải gõ

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

Nó sẽ có thể chạy trực tiếp TextAloudMP3? Ý tôi là không chỉ từ dòng lệnh (tôi có thể tạo bí danh) mà trong toàn bộ môi trường đồ họa. Tôi đang khởi chạy chương trình với dmenu.

Câu trả lời:


10

Tôi đoán bạn có ý định khởi chạy các chương trình exe với rượu trực tiếp, vì vậy hãy nói với kernel để chạy win32 nhị phân với rượu bằng cách,

  1. Núi binfmt fs, thêm một dòng none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0vào / etc / fstab và thực hiện mount -asau

  2. echo ':DOSWin:M::MZ::/usr/bin/wine:' > /proc/sys/fs/binfmt_misc/register để đăng ký định dạng nhị phân

Vì vậy, sau này, bạn chỉ cần chạy tệp exe với /path/to/XX.exe

Lưu ý rằng điều này cũng giới thiệu một vấn đề bảo mật.


Tôi không thể chỉnh sửa /proc/sys/fs/binfmt_misc/register. Nó viết /proc/sys/fs/binfmt_misc/register E667: Fsync failed. Tôi đã cố gắng chỉnh sửa theo tài khoản người dùng sudovà tài khoản root. Cả hai đều viết lỗi này.
xralf

Ồ Tôi không biết hạt nhân có thể làm điều đó. Trường hợp sử dụng đặc biệt này cảm thấy ác mặc dù. Nhưng tôi thích điều đó ngay cả khi mở cánh cửa đó , tên tập tin, đó là phần mở rộng, không quan trọng, trong khi các hệ điều hành khác ...: D
Bananguin

@xralf: Bạn đang cố chỉnh sửa tập tin như thế nào? echo nên hoạt động, nhưng một số trình soạn thảo (hầu hết / tất cả?) có thể không hoạt động, bởi vì nó không phải là một tệp có thể chỉnh sửa thực sự, nó là ảo trong hệ thống tập tin Proc.
chmeee

@xralf không chỉnh sửa với vim
daisy

@ warl0ck Tôi phải làm điều đó theo roottài khoản. Tôi đã thêm vào biến /path/to/của mình $PATHvà tôi có thể chạy XX.exetừ dòng lệnh nhưng vẫn không thể chạy nó từ đó dmenu. Xin lỗi tôi đã nhầm nó với xmobarcâu hỏi.
xralf

3

Hãy chắc chắn winetrong đường dẫn của bạn và tạo ra một kịch bản shell chứa những điều sau đây:

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

Cho phép bản thân thực thi tập lệnh bằng cách chạy chmod u+x SCRIPT_NAME.

Sau đó, chỉ cần chạy tập lệnh đó từ trình quản lý tệp của bạn. Nó sẽ bắt đầu rượu, sẽ chạy TextAloudMP3.exe.


Tôi đã tạo một tập lệnh có tên textaloudtrong /usr/local/binthư mục. Dòng đầu tiên là #! /bin/bashdòng thứ hai wine .... textaloud sẽ không xuất hiện trong xmobarlauncher. Khi chạy sh textaloudnó viết$ sh textaloud wine: cannot find '~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe'
xralf

Giáo sư. ~không mở rộng sang thư mục nhà của người dùng khi nó nằm trong dấu ngoặc kép. Tôi đã sửa đổi câu trả lời của tôi để sử dụng biến môi trường $HOMEthay thế.

sh textaloudđã hoạt động, nhưng chỉ từ thư mục /usr/local/binvà nó vẫn không hiển thị trong trình khởi chạy xmobar.
xralf

1
có thể muốn thêm $@vào sau tên chương trình để nó vượt qua tất cả các đối số. Và tôi thường đặt các tập lệnh như vậy vào ~ / bin (sau khi chắc chắn rằng nó nằm trong PATH của bạn, tất nhiên).
Wyatt8740

Bạn cũng không thể định nghĩa một bí danh ~/.bash_aliasessao?
Aaron Franke

3

Bước 0

Đặt PATH nhị phân cho người dùng của bạn. Chạy mkdir ~/binvà thêm thư mục này vào PATH của bạn.

Làm thế nào điều này được thực hiện có thể khác nhau tùy thuộc vào vỏ và môi trường máy tính để bàn bạn sử dụng.

Ở đây bạn có thể tìm thấy làm thế nào để thay đổi PATH của bạn trong một loạt các vỏ .

Kiểm tra câu hỏi đã giải quyết này nếu môi trường máy tính để bàn của bạn không quan tâm đến cấu hình shell của bạn và cái trước hoạt động từ thiết bị đầu cuối nhưng không phải từ môi trường máy tính để bàn .

Bước 1

Khi bạn đã thiết lập trình bao và môi trường máy tính để bàn của mình để tôn trọng một PATH mới, bạn có thể thả các tập lệnh ở đó và chạy chúng như các lệnh thông thường mà không cần nhập đường dẫn của chúng.

Tạo một tập lệnh shell ngắn để chạy chương trình rượu vang của bạn trong thư mục này, tức là ~/bin/textaloud:

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

Và cho phép nó thực thi.

chmod +x ~/bin/textaloud

Có ba điều cần lưu ý về kịch bản trên:

  • Đường cddẫn là nơi chương trình sẽ được chạy (trong thư mục nào). Một số chương trình có thể yêu cầu bạn chạy chúng trên một thư mục cụ thể. Nếu bạn gặp rắc rối với điều này, hãy đặt thư mục đó (thường giống với vị trí thực thi được đặt). Bạn có thể không muốn dòng này trong một số trường hợp.
  • Các execlệnh cho bash biến thành rượu với các đối số sau đây, vì vậy đây không còn là bash chạy rượu nữa, mà là quá trình bash trở thành rượu vang. PID vẫn còn. Bạn không có hai quy trình đang chạy.
  • Các $@được thay thế bằng các đối số bạn chạy các kịch bản, nếu có. Vì vậy, những người được truyền cho chương trình rượu vang của bạn.

Bây giờ bạn có thể chạy chương trình của mình từ trình bao như ...

textaloud

Bước 2

Tạo một trình khởi chạy ứng dụng. Ngày nay, các tệp này được đặt dưới dạng .desktoptệp và nhiều môi trường máy tính để bàn cung cấp các công cụ đồ họa để tạo chúng.

Dưới đây là một bộ xương mẫu bạn có thể sử dụng để tự viết nó. Bạn có thể muốn cung cấp một biểu tượng (thường ở dạng PNG, SVG hoặc XPM).

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

Đặt tập tin này vào ~/.local/share/applications/TextAloud.desktop. Các biểu tượng được tìm kiếm (trong số những nơi khác) ~/.local/share/icons, vì vậy hãy đảm bảo tìm thấy một biểu tượng dễ thương cho ứng dụng của bạn và đặt nó ở đó với tên textaloud.png.

Khi bạn đã thực hiện điều này, môi trường máy tính để bàn của bạn sẽ tìm thấy tệp lối tắt của bạn và có thể chạy chương trình với tập lệnh. Nếu không, tải lại hoặc khởi động lại nó.


Cảm ơn bạn, tôi đã thử hướng dẫn của bạn nhưng bước cuối cùng không hoạt động. Tôi không thể nhìn thấy textaloudtrong dmenulauncher.
xralf

Bước 2 được hướng đến các máy tính để bàn như Gnome, KDE hoặc XFCE. dmenu dường như không quan tâm đến các tệp .desktop, vì vậy với Bước 1, bạn sẽ ổn. Nó đã làm việc từ thiết bị đầu cuối? Nếu đã làm nhưng vẫn không hoạt động, hãy xem lại Bước 0. Có lẽ bạn đang sử dụng ~/.xsessionđể lấy X11 của bạn? Hãy thử thêm vào đó export PATH="$HOME/bin:$PATH"trước dòng bạn sử dụng để chạy dwm và khởi động lại X11.
Alicia

Trong các công trình từ thiết bị đầu cuối mà không có vấn đề. ĐƯỜNG là OK. Chỉ có câu hỏi để hoàn thành tôi muốn làm việc từ dmenu.
xralf

Tôi nói với bạn. Bạn có ~/.xsessionkhông Lưu ý rằng PATH của thiết bị đầu cuối của bạn có thể không bằng PATH của phiên X11 của bạn.
Alicia

$@nên được báo giá gấp đôi cho an toàn. vì vậy nó sẽ trở thành exec wine "~/.wine/drive_c/Program Files/TextAloud/TextAloudMP3.exe" "$@".
Wyatt8740

1

Bạn đã cân nhắc dùng thử PlayOnLinux chưa? Nó có thể chăm sóc toàn bộ mọi thứ cho bạn và thậm chí bạn có thể định cấu hình một số loại tệp được mở bởi các chương trình rượu vang.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.