4
4
# ## Author : Igorek536
5
5
6
6
# ## Date : 06.11.2017
7
- # ## Version : 1.1
8
-
9
- # ##################################################################
10
- # ## ВНИМАНИЕ!!!
11
- # ## На 06.11.17 wine-staging(wine-staging.com) для дистрибутива Debian Sid
12
- # ## вызывает ряд очень серьёзных ошибок. В их числе крахи, ошибки,
13
- # ## связанные с дочерними процессами и проч. Согласно тестам, этому
14
- # ## подвержен пока только Debian Sid. Так что не ставьте wine-staging,
15
- # ## лучше установите wine-development из стандартных репозиториев.
16
- # ## Однако, все эти ошибки замечены лишь в некоторых приложениях.
17
- # ##
18
-
19
-
20
- # ##################################################################
21
- # ## Описание
22
- # ## WineBox - набор скриптов для удобного портирования программ
23
- # ## в Wine. Данный набор скриптов основан на скриптах от Kron'a.
24
- # ## Суть работы скрипта заключается в создании изолированного
25
- # ## префикса, в котором и содержится программа. Одновременно в
26
- # ## префиксе может содержиться лишь одна программа, однако
27
- # ## допускается установка дополтинельных программ-зависимостей.
28
-
29
- # ## WineBox Start - основной скрипт, который определяет параметры
30
- # ## приложения, его расположение и выполняет его запуск. Секрет
31
- # ## его работы заключается в использовании sandbox окружения,
32
- # ## которое активируется другим сторонним скриптом - winetricks.
33
-
34
- # ## Для того, чтобы портировать приложение, вам нужно поместить
35
- # ## этот скрипт в папку, в которой и будет расположено ваше
36
- # ## приложение. Далее, вам нужно поместить папку с программой
37
- # ## по пути [папка со скриптом]/prefix/drive_c . После чего
38
- # ## вам будет необходимо настроить ряд параметров,
39
- # ## представленных ниже.
40
- # ##################################################################
7
+ # ## Version : 1.3
41
8
42
- # #######################################################
43
- # Ниже представленны настройки(параметры). Измените их,
44
- # согласно вашим потребностям.
45
-
46
- # #######################################################
47
- # Параметры, специфичные для приложения:
48
- # export APP_NAME="Calculator" - имя программы
49
- # export APP_VER="1.0" - версия программы
50
- # export APP_FOLDER="CALC" - расположения программы в папке prefix/drive_c .
51
- # Если исполняемый файл программы расположен
52
- # по пути [папка со скриптом]/prefix/drive_c/CALC/calc.exe,
53
- # то следует указать только папку CALC. (export APP_FOLDER="CALC/")
54
- # export APP_EXE="calc.exe" - имя исполняемого файла программы.
55
- # Тут следует указать имя .exe файла, который должен быть запущен и
56
- # который находится по пути, указанному выше(в нашем случае - это calc.exe)
57
- # export APP_CHILDPROC="calc.bin" - имя процесса, который может создать программа(дочерний(е) процесс(ы)).
58
- # Предположим вы хотите запустить приложение, которое является лаунчером.
59
- # Такие приложения часто встречаются в различных онлайн играх.
60
- # Тоесть, лаунчер создаёт новый процесс - процесс игры. Таким образом,
61
- # запустив одно приложение, мы получаем два, а то и более дочерних процессов.
62
- # В этот пункт следует вписать имя такого дочернего просса, если их несколько,
63
- # необходимо записать их через пробел.
64
- #
65
-
66
- export APP_NAME=" World of Warcraft - Mists of Pandaria"
67
- export APP_VER=" 5.4.8"
68
- export APP_FOLDER=" MoP"
69
- export APP_EXE=" WoW.exe"
70
- export APP_CHILDPROC=" WoW-64.bin"
9
+ export APP_NAME=" World of Warcraft - Wrath of the Lich King"
10
+ export APP_VER=" 3.3.5a"
11
+ export APP_FOLDER=" WoTLK"
12
+ export APP_EXE=" Wow.exe"
13
+ export APP_ARGS=" -opengl"
14
+ export APP_CHILDPROC=" "
71
15
72
- # #######################################################
73
- # Параметры, специфичные для скрипта WineBox Start:
74
- # export WBOX_PREKILL="yes" - Использовать ли опцию PREKILL?
75
- # Порой, программы-лаунчеры не корректно завершаются и не завершают дочерние
76
- # процессы. Более того, сам Wine порой этим грешит. Висячие дочерние процессы
77
- # могут доставить уйму гемороя пользователям. Ведь далеко не каждый с первого
78
- # раза поймёт что случилось и почему приложение не работает, или работает не так
79
- # как нужно. Опция PREKILL является рекомендуемой. Она убивает большинство процессов
80
- # Wine'a, а так же убивает дочерние процессы перед запуском приложения.
81
- # Этот костыль в каком-то смысле гаратнирует то, что у вас не будет ошибок,
82
- # связанных с дочерними процессами. Такие ошибки часто возникают из-за того, что
83
- # программа способна работать только в единичном экземпляре остаётся жива, а заного запустить
84
- # её не выйдет без остановки процесса предыдущего экземпляра.
85
-
86
- export WBOX_PREKILL=" yes"
16
+ export WBOX_PREKILL=" no"
87
17
88
- # #######################################################
89
- # Параметры, специфичные для самого Wine:
90
- # export WINE_CSMT="off" - Использовать ли CSMT?
91
- # CSMT - это особый режим, который присутствует только в Wine-Staging.
92
- # Если у вас обычный Wine, НЕ ИСПОЛЬЗУЙТЕ ЭТОТ РЕЖИМ и оставьте "off".
93
- # Если у вас Wine-Staging, использовать этот режим не рекомендуется так же.
94
- # Однако, включение данного режима может несколько повысить быстродействие
95
- # некоторых игр и 3D приложений, но это происходит редко. Экспериментируйте.
96
- # export WINE_FORCEDX9="yes" - Использовать ли принудительно DirectX 9?
97
- # Если ваше приложение использует DirectX 11 - ставьте "no",
98
- # во всех иных случаях, оставьте "yes".
99
- # export WINE_WINDOWED="yes" - Запускать ли приложение, в искусственном окне?
100
- # Если ваше приложение работет в полноэкранном режиме, оставьте "yes",
101
- # в иных случаях - ставьте "no".
102
- # export WINE_RESOLUTION="1366x768" - Какое разрешение использовать для искусственного полноэкранного режима(ИПР)?
103
- # Даже, если вы не используете ИПР, рекомендуется записать сюда разрешение вашего экрана.
104
- # export WINE_FIXRES="no" - Использовать ли автоисправление разрешения экрана?
105
- # В некоторых случаях, программы могут сбивать резрешение вашего экрана. Однако,
106
- # Это может произойти лишь в полноэкранных приложениях(для которых рекомендована установка ИПР).
107
- # Если по каким-то причинам ИПР вам не подходит, вы можете включить этот режим, установим значение
108
- # "yes". Во всех остальных случаях крайне рекомендуется оставить как есть "no".
109
- # export WINE_USESYSWINE="yes" - Использовать ли системный Wine?
110
- # Если вы установили Wine из репозиториев своего дистрибутива, оставьте как есть "yes".
111
- # Если же вы готовы собирать Wine из исходников, руками доустанавливать зависимости,
112
- # можете установить "no". Однако, КРАЙНЕ РЕКОМЕНДУЕТСЯ УСТАНОВИТЬ WINE ИЗ РЕПОЗИТОРИЕВ
113
- # ПРИ ПОМОЩИ ПАКЕТНОГО МЕНЕДЖЕРА! Почему? Всё потому, что установка таким образом
114
- # гарантирует то, что все зависимости будут удовлетворены. В противном случае, возможны
115
- # самые разные ошибки. Так что лучше установите Wine из репозиториев вашего дистрибутива,
116
- # или попробуйте установить Wine-Staging(wine-staging.com).
117
-
118
- export WINE_CSMT=" off"
18
+ export WINE_CSMT=" no"
119
19
export WINE_FORCEDX9=" yes"
120
20
export WINE_WINDOWED=" yes"
121
21
export WINE_RESOLUTION=" 1366x768"
122
22
export WINE_FIXRES=" no"
123
23
export WINE_USESYSWINE=" yes"
124
24
125
-
126
- # Конец настроек. Всё что ниже - не трогать!
127
25
# #######################################################
128
26
129
27
# Предотвращаем запуск скрипта от имени суперпользователя(root)
@@ -149,12 +47,18 @@ export UPDATEPREFIX="yes"
149
47
export CORES=" $( getconf _NPROCESSORS_ONLN) "
150
48
export WORK_FOLDER=" $WINEPREFIX /drive_c/$APP_FOLDER "
151
49
50
+ # Some optimizations for MESA drivers
51
+ export mesa_glthread=true
52
+ export __GL_THREADED_OPTIMIZATIONS=1
53
+ export __GL_SHADER_DISK_CACHE=1
54
+ export __GL_SHADER_DISK_CACHE_PATH=$DIR
55
+
152
56
# Процессы, которые создаёт Wine
153
57
export WINE_WINEPROC=" wineserver winedevice.exe services.exe plugplay.exe winedbg explorer.exe"
154
58
155
59
# WineBox PREKILL
156
60
if [ " $WBOX_PREKILL " == " yes" ]; then
157
- killall $APP_EXE $APP_PREKILL 2>> /dev/null
61
+ killall $APP_EXE $APP_CHILDPROC $WINE_WINEPROC 2>> /dev/null
158
62
fi
159
63
160
64
# Если у нас одноядерный процессор, принудительно отключаем CSMT.
@@ -279,6 +183,7 @@ elif [ ! -f "$DIR/csmt_on" ] && [ "$WINE_CSMT" == "on" ]; then
279
183
fi
280
184
281
185
# Используем sandbox окружения скрипта winetricks.
186
+ chmod +x " $WINETRICKS "
282
187
" $WINETRICKS " sandbox
283
188
284
189
# Получаем нативное разрешение экрана.
@@ -298,14 +203,15 @@ echo "csmt: $WINE_CSMT"
298
203
echo " ===================="
299
204
echo " application: $APP_NAME "
300
205
echo " version: $APP_VER "
206
+ echo " command: $APP_EXE $APP_ARGS "
301
207
echo " ===================="
302
208
echo " home: $HOME "
303
209
echo
304
210
305
211
# Запускаем приложение.
306
212
cd " $WORK_FOLDER "
307
213
if [ " $WINE_WINDOWED " == " yes" ] || [ " $1 " == " -sw" ]; then
308
- " $WINE " explorer /desktop=Game,$WINE_RESOLUTION " $APP_EXE "
214
+ " $WINE " explorer /desktop=Game,$WINE_RESOLUTION " $APP_EXE " " $APP_ARGS "
309
215
else
310
216
" $WINE " " $APP_EXE "
311
217
fi
314
220
if [ " $WINE_FIXRES " == " yes" ]; then
315
221
" /usr/bin/xrandr" -s " $WINE_RESOLUTION "
316
222
fi
223
+
224
+ # EOF
0 commit comments