Я только что нашел параметр в gconf-редакторе, который позволит вам установить пусковую установку только на ваш основной рабочий стол: /apps/compiz-1/plugins/unityshell/screen0/options/num_launchers. Если вы установите значение 1, пусковая установка Unity будет отображаться только на основном рабочем столе. Если вы установите его на 0, пусковая установка будет доступна на всех рабочих столах.
В дополнение к этой настройке я также устанавливаю давление преодоления (/apps/compiz-1/plugins/unityshell/screen0/options/overcom_pressure=1) и скорость останова (/apps/compiz-1/plugins/unityshell/screen0/options/stop_velocity=20).
Если сценарий работает, тогда вы должны принять этот ответ, даже если он был вашим.
Что работало здесь для других приложений, поскольку пользовательская команда была близка к тому, что вы пытались, некоторые небольшие отличия.
wine "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" Z:%f
Ссылка на фотошоп с добавлением. информацию об изменении отображаемого имени при желании для использования правой кнопкой мыши - http://ubuntuforums.org/showpost.php?p=9193687&postcount=9
Если эта программа уже установлена с использованием вина, то я не думаю, что ей нужен абсолютный путь. Я думаю, что только
wine pdfxcview filename
откроет файл.
Хорошо, мой ответ глуп. Что на самом деле вы пытаетесь сделать? вы пытаетесь исправить ошибку запуска программы?
Я понимаю, что это старый вопрос, но я хочу поделиться своим решением, которое я понял после того, как начал использовать PDFXchangeEditor (преемник PDFXchangeViewer), а затем столкнулся с проблемой, чтобы он принимал несколько входных файлов из хоста os. Прежде всего, принятый ответ и все другие ответы, которые были опубликованы, предполагают, что программа будет обрабатывать только один файл. Вы можете на самом деле бросить несколько файловых аргументов сразу, и он откроет их все отлично, с небольшим трюком.
Трюк использует расширение кода %F в поле Exec в приложении .desktop приложения. launcher и препроводить все расширенные локальные файловые args в поле с помощью Z:, которые могут быть выполнены со следующим скриптом
Вызвать его wine-env. Это происходит в /usr/local/bin и не забудьте дать ему chmod +x
#!/bin/bash
allargs=("$@")
fixpath=0
for idx in "${!allargs[@]}"; do
arg="${allargs[$idx]}"
if [[ $fixpath -eq 0 ]]; then
# fix file paths only after the first executable is found in arg
if [[ "$arg" == *.exe ]]; then
fixpath=1
fi
continue
elif [[ $fixpath -eq 1 ]]; then
# if arg starts with '/' and it's a path that exists on host
# precede the path with drive 'Z:'
if [[ "${arg:0:1}" == '/' && -e "$arg" ]]; then
allargs[$idx]="Z:$arg"
fi
fi
done
exec env "${allargs[@]}"
И для файла appdesktop приложения, назовите его pdfxce.desktop и поместите его в ~/.local/share/applications/, и его содержимое должно выглядеть например
[Desktop Entry]
Name=PDF-XChange Editor
Type=Application
Terminal=false
Exec=wine-env WINEDEBUG=-all WINEPREFIX=/home/<user>/.local/share/bottles/pdfxce wine PDFXEdit.exe %F
Icon=/home/<user>/.local/share/icons/bottles/pdfxce-pdfxedit.png
Path=/home/<user>/.local/share/bottles/pdfxce/drive_c/Program Files/Tracker Software/PDF Editor
StartupNotify=true
StartupWMClass=PDFXEdit.exe
Вам нужно изменить часть с вашим собственным именем пользователя. Я держу все свои винды в папке под названием «бутылки». У вас может быть свой собственный способ организовать ваши винные исправления, поэтому измените все части, содержащие «бутылки» соответственно
И на последнем шаге назначьте файлы PDF в приложение в соответствии с нормальным (щелкните правой кнопкой мыши по pdf -> -> Open With)
Ссылка: спецификация рабочего стола Freedesktop
Я воспользовался этой ссылкой, чтобы установить 32-битный просмотрщик PDF XChange в Ubuntu 64 Bit 14.04. Затем ссылка показывает скрипт, чтобы открыть просмотрщик PDF Xchange с именем файла в качестве аргумента. Я сделал этот скрипт и сохранил его в /bin
Затем я редактировал ~/.local/share/applications/wine-extension-pdf.desktop следующим образом:
[Desktop Entry]
Type=Application
Name=PDF-XChangeViewer
MimeType=application/pdf;
Exec=PDFXCview %f
NoDisplay=true
StartupNotify=true
Мой скрипт был назван PDFXCview
Это основано на превосходном скрипте @ Flint.
Сначала я попробовал переменную "Z:"%U в конце поля рабочего файла Exec= для программ Wine. Он работал нормально, пока я не открыл программу без указанного файла. Винные программы жаловались на отсутствие файла, потому что строка Exec= указывала на диск Z: это явно не файл, а абсолютный путь к файлу. File not found: Z: или похожие сообщения, появившиеся в программе Wine. Бит раздражает.
Проблема с "Z:"%U заключается в том, что она не является условной переменной, если там используется Z:. Тем не менее, Wine абсолютно требует Z: потому что в противном случае он не может найти правильные пути к файлу.
Ваш скрипт делает всю вещь "Z:"%U условной. Скрипт выполняет задание точно так, как я хотел.
Однако сценарий должен учитывать все файлы exe, написанные в верхнем регистре. К настоящему времени он не может указывать файлы MS Office (docx, pptx ...) на MS Office 2010, потому что все исполняемые программы исполняются как WINWORD.EXE или POWERPNT.EXE. Конечно, исполняемые файлы можно было переименовать в нижнем регистре, но я предпочитаю более универсальное решение, вместо того чтобы переименовывать отдельные exe для каждой программы.
Грязное и универсальное решение заключается в изменении кода сценария, например:
#!/bin/bash
allargs=("$@")
fixpath=0
for idx in "${!allargs[@]}"; do
arg="${allargs[$idx]}"
if [[ $fixpath -eq 0 ]]; then
# fix file paths only after the first executable is found in arg
if [[ "$arg" == *.exe ]]; then
fixpath=1
fi
if [[ "$arg" == *.EXE ]]; then
fixpath=1
fi
continue
elif [[ $fixpath -eq 1 ]]; then
# if arg starts with '/' and it's a path that exists on host
# precede the path with drive 'Z:'
if [[ "${arg:0:1}" == '/' && -e "$arg" ]]; then
allargs[$idx]="z:${arg//\//\\}"
fi
fi
done
exec env "${allargs[@]}"
Оператор or по какой-то причине не работал. Я уверен, что есть более элегантный способ добиться такого же результата.