Создание совместимых с вином файлов рабочего стола с необязательным аргументом file

Я использую MS Office 2007 через Wine / PoL и сделал для них файлы рабочего стола следующим образом:

Для запуска:

[Desktop Entry]
Encoding=UTF-8
Name=Word 2007
GenericName=Game
Comment=PlayOnLinux
Type=Application
Exec=/usr/share/playonlinux/playonlinux --run "Microsoft Word 2007"
Icon=/home/sebastian/.PlayOnLinux//icones/full_size/Word 2007
Categories=Office;

Для открытия файла: ( z: является винной ссылкой на /)

[Desktop Entry]
Encoding=UTF-8
Name=Mit Word 2007 öffnen
GenericName=Game
Comment=PlayOnLinux
Type=Application
Exec=/usr/share/playonlinux/playonlinux --run "Microsoft Word 2007" z:%f
Icon=/home/sebastian/.PlayOnLinux//icones/full_size/Word 2007
Categories=Office;

Тем не менее, ярлык открытия файла не принимает файлы с пробелами (они заменяются на %20).

Теперь я хочу объединить эти два файла в один, который должен запустить Word и, если он есть, открыть документ, который может содержать пробелы.

Как мне это сделать?

0
задан 07.05.2020, 15:54

1 ответ

Я нашел решение для себя. Я создал следующий скрипт:

#!/bin/bash
if [ "$2" != "" ]
 then
  mode="open"
  DATA="file:///Z:$2"
  DATA=${DATA// /%20}
else
  mode="noopen"
fi
case $1 in
  winword)
    if [ $mode == "open" ]
    then
      /usr/share/playonlinux/playonlinux --run "Microsoft Word 2007" "$DATA"
    else
      /usr/share/playonlinux/playonlinux --run "Microsoft Word 2007"
    fi
  ;;
  excel)
    if [ $mode == "open" ]
    then
      /usr/share/playonlinux/playonlinux --run "Microsoft Excel 2007" "$DATA"
    else
      /usr/share/playonlinux/playonlinux --run "Microsoft Excel 2007"
    fi
  ;;
  pwrpoint)
    if [ $mode == "open" ]
    then
      /usr/share/playonlinux/playonlinux --run "Microsoft Powerpoint 2007" "$DATA"
    else
      /usr/share/playonlinux/playonlinux --run "Microsoft Powerpoint 2007"
    fi
  ;;
  *)
    exit
  ;;
esac

Он преобразует имя файла в URL (file:///Z:/home/sebastian/Documents/test.docx). Он также определяет, следует ли указать второй аргумент или нет, поэтому Office не скажет File "Z:" not found.

Пусковые установки теперь выглядят так: (Это слово)

[Desktop Entry]
Encoding=UTF-8
Name=Word 2007
GenericName=Word Processor
Comment=PlayOnLinux
Type=Application
Exec=/home/sebastian/.PlayOnLinux//wineprefix/Office2007/MSOfficeExecutor.sh winword %f
Icon=/home/sebastian/.PlayOnLinux//icones/full_size/Word 2007
Categories=Office;
0
ответ дан 07.05.2020, 15:54

Теги

Похожие вопросы