Скрипт создание иконок запуска программ в Wine
При установке программ и игр, запускаемых с помощью приложения Wine, неплохо было бы иметь ярлычки (да простят меня ортодоксальные линуксоиды, которые скажут что в Linux нет понятия "ярлык") запуска этих программ и игр на рабочем столе. Конечно, многие программы и игры, для своего запуска, выводят на рабочий стол ярлычки, но не все и не всегда рабочие. В случае, если Вы устанавливаете windows-приложения в отдельные префиксы, да еще используете несколько версий Wine, установленных в разных директориях, вопрос с выводом иконки запуска на рабочий стол еще более усугубляется. Конечно создать подобный ярлычок/иконку можно и вручную, я уже описывал этот способ, но иногда подобный метод может быть утомительным и затруднительным для новичка. Поэтому, я решил немного облегчить эту задачу и написал для себя скриптик, автоматизирующий этот процесс, надеюсь он пригодится и Вам.
Скрипт создания иконок запуска
Для работы скрипта требуется установленный пакет zenity, присутствует в большинстве дистрибутивов Ubuntu по умолчанию, иначе можете установить его из "Центра приложений Ubuntu".
Сам скрипт
Создадим пустой документ и назовем его к примеру - shortcut.sh, в текстовом редакторе впишите в него текст описанный ниже.
Сохраните созданный файл и закройте текстовый редактор. Теперь сделаем его исполняемым: для этого щелкните по скрипту shortcut.sh правой кнопкой мышки -> Выберите пункт "Свойства" -> Перейдите на вкладку "Права" -> Поставьте галочку в позиции "Выполнение: V Разрешить исполнение файла как программы". Все наш скрипт готов к работе!
"Тело" скрипта
Первый вариант, упрощенный - у кого сам Wine и его префикс установлены по умолчанию (т.е. /usr/bin/wine и /home/Ваш_профиль/.wine соответственно):
#!/bin/bash
# Author: Airvikar <http://ubuntu-wine.ru>
a=$(readlink -f "$0")
b=`dirname "$a"`
GP=`zenity --file-filter=*.exe \
--filename="$b/" \
--file-selection \
--title="Выберите запускающий игру файл (Пример: Game.exe)"`
case $? in
0)
echo "";;
1)
exit;;
-1)
exit;;
esac
c=${GP##*/}
e=${c%.exe}
IP=`zenity --file-filter=*.png \
--filename="$b/" \
--file-selection \
--title="Выберите иконку в формате PNG (Пример: Icon.png)"`
case $? in
0)
echo "";;
1)
exit;;
-1)
exit;;
esac
d=${IP##*/}
echo "[Desktop Entry]" > $HOME/Рабочий\ стол/"$e".desktop
echo "Name=$e" >> $HOME/Рабочий\ стол/"$e".desktop
echo "Exec=env WINEPREFIX=\"$PP\" $WP \"$GP\"" >> $HOME/Рабочий\ стол/"$e".desktop
echo "Type=Application" >> $HOME/Рабочий\ стол/"$e".desktop
echo "StartupNotify=true" >> $HOME/Рабочий\ стол/"$e".desktop
echo "Path=$b/" >> $HOME/Рабочий\ стол/"$e".desktop
echo "Icon=$IP" >> $HOME/Рабочий\ стол/"$e".desktop
chmod u+x $HOME/Рабочий\ стол/"$e".desktop
exit
Второй вариант, у кого Wine и его префикс/префиксы установлены в другие директории (т.е. пути выбираете сами):
#!/bin/bash
# Author: Airvikar <http://ubuntu-wine.ru>
a=$(readlink -f "$0")
b=`dirname "$a"`
GP=`zenity --file-filter=*.exe \
--filename="$b/" \
--file-selection \
--title="Выберите запускающий игру файл (Пример: Game.exe)"`
case $? in
0)
echo "";;
1)
exit;;
-1)
exit;;
esac
c=${GP##*/}
e=${c%.exe}
IP=`zenity --file-filter=*.png \
--filename="$b/" \
--file-selection \
--title="Выберите иконку в формате PNG (Пример: Icon.png)"`
case $? in
0)
echo "";;
1)
exit;;
-1)
exit;;
esac
d=${IP##*/}
PP=`zenity --filename="$HOME/" \
--file-selection \
--directory \
--title="Выберите свой префикс Wine (По умолчанию: .wine)"`
case $? in
0)
echo "";;
1)
exit;;
-1)
exit;;
esac
WP=`zenity --filename="/usr/bin/" \
--file-selection \
--title="Выберите запускающий файл - wine (По умолчанию: /usr/bin/wine)"`
case $? in
0)
echo "";;
1)
exit;;
-1)
exit;;
esac
echo "[Desktop Entry]" > $HOME/Рабочий\ стол/"$e".desktop
echo "Name=$e" >> $HOME/Рабочий\ стол/"$e".desktop
echo "Exec=env WINEPREFIX=\"$PP\" $WP \"$GP\"" >> $HOME/Рабочий\ стол/"$e".desktop
echo "Type=Application" >> $HOME/Рабочий\ стол/"$e".desktop
echo "StartupNotify=true" >> $HOME/Рабочий\ стол/"$e".desktop
echo "Path=$b/" >> $HOME/Рабочий\ стол/"$e".desktop
echo "Icon=$IP" >> $HOME/Рабочий\ стол/"$e".desktop
chmod u+x $HOME/Рабочий\ стол/"$e".desktop
exit
Как это работает
1. Скопируйте скрипт shortcut.sh в папку с программой/игрой, где расположен запускающий exe-файл.
В качестве примера использована игра Risen
2. В эту же директорию поместите значок/картинку, которую Вы хотите лицезреть на рабочем столе, в формате PNG и стандартным для ярлыка размером (48x48, 64x64, 128x128 и тому подобное). Картинку можно найти в интернете или сделать самому, например в GIMP.
3. Запускаем скрипт двойным щелчком мышки и на вопрос как запускать выбираем "Запустить в терминале" или "Запустить"
4. В открывшимся окне выбираете Ваш запускающий файл (Пример: Risen.exe). Жмете - OK
5. В следующем окне выбираете Значок.png (Пример: gameicon.exe) Жмете - OK
# Для упрощенного варианта скрипта на этом все! Смотри пункт 8.
# Для второго варианта продолжаем...
6. Далее выбираете префикс wine, по умолчанию это папка .wine в домашней директории Жмете - OK
7. Теперь указываете местоположение файла wine (находится в директории куда инсталлировался пакет wine), по умолчанию в /usr/bin/ Жмете - OK
8. Все!, Ваш значок/ярлык/иконка запуска появится на рабочем столе.
Скачать оба варианта скрипта можно по ссылке: Скрипт создания иконок запуска программ в Wine