Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
PortWINE
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Mikhail Tergoev
PortWINE
Commits
5406e3b7
You need to sign in or sign up before continuing.
Commit
5406e3b7
authored
Aug 21, 2022
by
castro-fidel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hotfix start.sh
parent
cc7f5c32
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
747 additions
and
1 deletion
+747
-1
changelog_eng
data_from_portwine/changelog_eng
+3
-0
changelog_rus
data_from_portwine/changelog_rus
+3
-0
start.sh
data_from_portwine/scripts/start.sh
+740
-0
var
data_from_portwine/scripts/var
+1
-1
No files found.
data_from_portwine/changelog_eng
View file @
5406e3b7
...
...
@@ -2,6 +2,9 @@ You can help us in the development of the project on the website: boosty.to/port
-----------------------------------------
Changelog:
###Scripts version 2125###
* HOTFIX - start.sh
###Scripts version 2124###
* updated "PROTON_GE" to version 7-29
* updated "PROTON_STEAM" to version 7.0-4
...
...
data_from_portwine/changelog_rus
View file @
5406e3b7
...
...
@@ -2,6 +2,9 @@
-----------------------------------------
История изменений:
###Scripts version 2125###
* HOTFIX - start.sh
###Scripts version 2124###
* обновлен "PROTON_GE" до версии 7-29
* обновлен "PROTON_STEAM" до версии 7.0-4
...
...
data_from_portwine/scripts/start.sh
0 → 100755
View file @
5406e3b7
#!/usr/bin/env bash
# Author: PortWINE-Linux.ru
export
NO_AT_BRIDGE
=
1
export
pw_full_command_line
=(
"
$0
"
$*
)
if
[
-f
"
$1
"
]
;
then
export
portwine_exe
=
"
$(
readlink
-f
"
$1
"
)
"
fi
.
"
$(
dirname
$(
readlink
-f
"
$0
"
))
/runlib"
kill_portwine
pw_stop_progress_bar
if
[[
-f
"/usr/bin/portproton"
]]
&&
[[
-f
"
${
HOME
}
/.local/share/applications/PortProton.desktop"
]]
;
then
/usr/bin/env bash
"/usr/bin/portproton"
"
$@
"
&
exit
0
fi
if
[[
"
${
XDG_SESSION_TYPE
}
"
=
"wayland"
]]
&&
[[
!
-f
"
${
PORT_WINE_TMP_PATH
}
/check_wayland"
]]
;
then
zenity_info
"
$PW_WAYLAND_INFO
"
echo
"1"
>
"
${
PORT_WINE_TMP_PATH
}
/check_wayland"
fi
if
[[
-n
$(
basename
"
${
portwine_exe
}
"
|
grep
.ppack
)
]]
;
then
export
PW_ADD_TO_ARGS_IN_RUNTIME
=
"--xterm"
unset
PW_SANDBOX_HOME_PATH
pw_init_runtime
export
PW_PREFIX_NAME
=
$(
basename
"
$1
"
|
awk
-F
'.'
'{print $1}'
)
${
pw_runtime
}
env
PATH
=
"
${
PATH
}
"
LD_LIBRARY_PATH
=
"
${
PW_LD_LIBRARY_PATH
}
"
unsquashfs
-f
-d
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
"
"
$1
"
&
sleep
10
while
true
;
do
if
[[
-n
$(
pgrep
-a
xterm |
grep
".ppack"
|
head
-n
1 |
awk
'{print $1}'
)
]]
;
then
sleep
0.5
else
kill
-TERM
$(
pgrep
-a
unsquashfs |
grep
".ppack"
|
head
-n
1 |
awk
'{print $1}'
)
sleep
0.3
if
[[
-z
"
$(
pgrep
-a
unsquashfs |
grep
".ppack"
|
head
-n
1 |
awk
'{print $1}'
)
"
]]
then
break
else
sleep
0.3
fi
fi
done
if
[[
-f
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/.create_shortcut"
]]
;
then
orig_IFS
=
"
$IFS
"
IFS
=
$'
\n
'
for
crfb
in
$(
cat
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/.create_shortcut"
)
;
do
export
portwine_exe
=
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/
${
crfb
}
"
portwine_create_shortcut
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/
${
crfb
}
"
done
IFS
=
"
$orig_IFS
"
fi
exit
0
fi
portwine_launch
()
{
start_portwine
PORTWINE_MSI
=
$(
basename
"
${
portwine_exe
}
"
|
grep
.msi
)
PORTWINE_BAT
=
$(
basename
"
${
portwine_exe
}
"
|
grep
.bat
)
if
[[
-n
"
${
PW_VIRTUAL_DESKTOP
}
"
&&
"
${
PW_VIRTUAL_DESKTOP
}
"
==
"1"
]]
;
then
pw_screen_resolution
=
$(
xrandr
--current
|
grep
"*"
|
awk
'{print $1;}'
|
head
-1
)
pw_run explorer
"/desktop=portwine,
${
pw_screen_resolution
}
"
${
WINE_WIN_START
}
"
$portwine_exe
"
elif
[
-n
"
${
PORTWINE_MSI
}
"
]
;
then
pw_run msiexec /i
"
$portwine_exe
"
elif
[[
-n
"
${
PORTWINE_BAT
}
"
||
-n
"
${
portwine_exe
}
"
]]
;
then
pw_run
${
WINE_WIN_START
}
"
$portwine_exe
"
else
pw_run winefile
fi
}
portwine_start_debug
()
{
kill_portwine
export
PW_LOG
=
1
export
PW_WINEDBG_DISABLE
=
0
echo
"
${
port_deb1
}
"
>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"
${
port_deb2
}
"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"-------------------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"PortWINE version:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
read
install_ver <
"
${
PORT_WINE_TMP_PATH
}
/
${
portname
}
_ver"
echo
"
${
portname
}
-
${
install_ver
}
"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"------------------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"Scripts version:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
cat
"
${
PORT_WINE_TMP_PATH
}
/scripts_ver"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"-----------------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
if
[
"
${
PW_USE_RUNTIME
}
"
=
0
]
;
then
echo
"RUNTIME is disabled"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
else
echo
"RUNTIME is enabled"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
fi
echo
"----------------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
if
[
-n
"
${
portwine_exe
}
"
]
;
then
echo
"Debug for programm:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"
${
portwine_exe
}
"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"---------------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
fi
echo
"GLIBC version:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
$(
ldd
--version
|
grep
-m1
ldd |
awk
'{print $NF}'
)
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"--------------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
if
[[
"
${
PW_VULKAN_USE
}
"
=
"0"
]]
;
then
echo
"PW_VULKAN_USE=
${
PW_VULKAN_USE
}
- DX9-11 to OpenGL"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
elif
[[
"
${
PW_VULKAN_USE
}
"
=
"3"
]]
;
then
echo
"PW_VULKAN_USE=
${
PW_VULKAN_USE
}
- native DX9 on MESA drivers"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
else
echo
"PW_VULKAN_USE=
${
PW_VULKAN_USE
}
"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
fi
echo
"--------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"Version WINE in the Port:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
print_var PW_WINE_USE
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
[
-f
"
${
WINEDIR
}
/version"
]
&&
cat
"
${
WINEDIR
}
/version"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"------------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"Date and time of start debug for
${
portname
}
:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
date
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"-----------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"The installation path of the
${
portname
}
:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"
$PORT_WINE_PATH
"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"----------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"Operating system"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
lsb_release
-d
|
sed
s/Description/ОС/g
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"--------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"Desktop environment:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"Desktop session:
${
DESKTOP_SESSION
}
"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"Current desktop:
${
XDG_CURRENT_DESKTOP
}
"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"Session type:
${
XDG_SESSION_TYPE
}
"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"--------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"Kernel"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
uname
-r
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"-------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"CPU"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
cat
/proc/cpuinfo |
grep
"model name"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"------------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"RAM"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
free
-m
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"-----------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"Graphic cards and drivers:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
'lspci -k | grep -EA3 VGA|3D|Display:'
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
$(
lspci
-k
|
grep
-EA3
'VGA|3D|Display'
)
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
[[
`
which glxinfo
`
]]
&&
glxinfo
-B
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
" "
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"inxi -G:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
"
${
PW_WINELIB
}
/portable/bin/inxi"
-G
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"----------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"Vulkan info device name:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
[[
`
which vulkaninfo
`
]]
&&
vulkaninfo |
grep
deviceName
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
"
${
PW_WINELIB
}
/portable/bin/vkcube"
--c
50
if
[
$?
-eq
0
]
;
then
echo
"Vulkan cube test passed successfully"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
else
echo
"Vkcube test completed with error"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
fi
if
[
!
-x
"
$(
which gamemoderun 2>/dev/null
)
"
]
then
echo
"---------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"!!!gamemod not found!!!"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
fi
echo
"-------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
if
[[
"
${
PW_USE_D3D_EXTRAS
}
"
!=
1
]]
then
echo
"D3D_EXTRAS - disabled"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
else
echo
"D3D_EXTRAS - enabled"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
fi
echo
"------------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"winetricks.log:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
cat
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/winetricks.log"
|
sed
-e
/
"^d3dcomp*"
/d
-e
/
"^d3dx*"
/d
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
echo
"-----------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
if
[
-n
"
${
PORTWINE_DB_FILE
}
"
]
;
then
echo
"Use
${
PORTWINE_DB_FILE
}
db file:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
cat
"
${
PORTWINE_DB_FILE
}
"
|
sed
'/##/d'
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
else
echo
"Use
${
PORT_SCRIPTS_PATH
}
/portwine_db/default db file:"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
cat
"
${
PORT_SCRIPTS_PATH
}
/portwine_db/default"
|
sed
'/##/d'
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
fi
echo
"----------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
if
[
-f
"
${
USER_CONF
}
"
]
;
then
cat
"
${
USER_CONF
}
"
|
sed
'/bash/d'
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
fi
echo
"---------------------------------------"
>>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
export
DXVK_HUD
=
"full"
portwine_launch &
sleep
3
pw_stop_progress_bar_cover
unset
PW_TIMER
while
read
-r
line
||
[[
-n
$(
pgrep
-a
yad |
grep
"yad_new --text-info --tail --button="
STOP
":0 --title="
DEBUG
""
|
awk
'{print $1}'
)
]]
;
do
sleep
0.005
if
[[
-n
"
${
line
}
"
]]
&&
[[
-z
"
$(
echo
"
${
line
}
"
|
grep
-i
"gstreamer"
)
"
]]
\
&&
[[
-z
"
$(
echo
"
${
line
}
"
|
grep
-i
"kerberos"
)
"
]]
\
&&
[[
-z
"
$(
echo
"
${
line
}
"
|
grep
-i
"ntlm"
)
"
]]
then
echo
"#
${
line
}
"
fi
if
[[
"
${
PW_TIMER
}
"
!=
1
]]
;
then
sleep
3
PW_TIMER
=
1
fi
done
<
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
|
"
${
pw_yad_new
}
"
--text-info
--tail
--button
=
"STOP"
:0
--title
=
"DEBUG"
\
--skip-taskbar
--center
--width
=
800
--height
=
400
--text
"
${
port_debug
}
"
&&
kill_portwine
# sleep 1 && zenity --info --title "DEBUG" --text "${port_debug}" --no-wrap &> /dev/null && kill_portwine
sed
-i
'/.fx$/d'
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
sed
-i
'/GStreamer/d'
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
sed
-i
'/kerberos/d'
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
sed
-i
'/ntlm/d'
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
sed
-i
'/HACK_does_openvr_work/d'
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
sed
-i
'/Uploading is disabled/d'
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
deb_text
=
$(
cat
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
|
awk
'! a[$0]++'
)
echo
"
$deb_text
"
>
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
"
$pw_yad
"
--title
=
"
${
portname
}
.log"
--borders
=
7
--no-buttons
--text-align
=
center
\
--text-info
--show-uri
--wrap
--center
--width
=
1200
--height
=
550
--uri-color
=
red
\
--filename
=
"
${
PORT_WINE_PATH
}
/
${
portname
}
.log"
stop_portwine
}
pw_winecfg
()
{
start_portwine
pw_run winecfg
}
pw_winefile
()
{
start_portwine
pw_run winefile
}
pw_winecmd
()
{
export
PW_USE_TERMINAL
=
1
start_portwine
cd
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/drive_c"
${
pw_runtime
}
env
LD_LIBRARY_PATH
=
"
${
PW_LD_LIBRARY_PATH
}
"
xterm
-e
"
${
WINELOADER
}
"
cmd
stop_portwine
}
pw_winereg
()
{
start_portwine
pw_run regedit
}
pw_prefix_manager
()
{
update_winetricks
start_portwine
if
[
!
-f
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/winetricks.log"
]
;
then
touch
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/winetricks.log"
fi
pw_start_progress_bar_block
"Starting prefix manager..."
"
${
PORT_WINE_TMP_PATH
}
/winetricks"
dlls list |
awk
-F
'('
'{print $1}'
1>
"
${
PORT_WINE_TMP_PATH
}
/dll_list"
"
${
PORT_WINE_TMP_PATH
}
/winetricks"
fonts list |
awk
-F
'('
'{print $1}'
1>
"
${
PORT_WINE_TMP_PATH
}
/fonts_list"
"
${
PORT_WINE_TMP_PATH
}
/winetricks"
settings list |
awk
-F
'('
'{print $1}'
1>
"
${
PORT_WINE_TMP_PATH
}
/settings_list"
pw_stop_progress_bar
gui_prefix_manager
()
{
pw_start_progress_bar_block
"Starting prefix manager..."
unset
SET_FROM_PFX_MANAGER_TMP SET_FROM_PFX_MANAGER
old_IFS
=
$IFS
IFS
=
$'
\n
'
try_remove_file
"
${
PORT_WINE_TMP_PATH
}
/dll_list_tmp"
while
read
PW_BOOL_IN_DLL_LIST
;
do
if
[[
-z
$(
echo
"
${
PW_BOOL_IN_DLL_LIST
}
"
|
grep
-E
'd3d|directx9|dont_use|dxvk|vkd3d|galliumnine|faudio1'
)
]]
;
then
if
grep
"^
$(
echo
${
PW_BOOL_IN_DLL_LIST
}
|
awk
'{print $1}'
)
$"
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/winetricks.log"
;
then
echo
-e
"true
\n
$(
echo
${
PW_BOOL_IN_DLL_LIST
}
|
awk
'{print $1}'
)
\n
`
echo
${
PW_BOOL_IN_DLL_LIST
}
|
awk
'{ $1 = ""; print substr($0, 2) }'
`
"
>>
"
${
PORT_WINE_TMP_PATH
}
/dll_list_tmp"
else
echo
-e
"false
\n
`
echo
"
${
PW_BOOL_IN_DLL_LIST
}
"
|
awk
'{print $1}'
`
\n
`
echo
${
PW_BOOL_IN_DLL_LIST
}
|
awk
'{ $1 = ""; print substr($0, 2) }'
`
"
>>
"
${
PORT_WINE_TMP_PATH
}
/dll_list_tmp"
fi
fi
done
<
"
${
PORT_WINE_TMP_PATH
}
/dll_list"
try_remove_file
"
${
PORT_WINE_TMP_PATH
}
/fonts_list_tmp"
while
read
PW_BOOL_IN_FONTS_LIST
;
do
if
[[
-z
$(
echo
"
${
PW_BOOL_IN_FONTS_LIST
}
"
|
grep
-E
'dont_use'
)
]]
;
then
if
grep
"^
$(
echo
"
${
PW_BOOL_IN_FONTS_LIST
}
"
|
awk
'{print $1}'
)
$"
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/winetricks.log"
;
then
echo
-e
"true
\n
$(
echo
"
${
PW_BOOL_IN_FONTS_LIST
}
"
|
awk
'{print $1}'
)
\n
$(
echo
"
${
PW_BOOL_IN_FONTS_LIST
}
"
|
awk
'{ $1 = ""; print substr($0, 2) }'
)
"
>>
"
${
PORT_WINE_TMP_PATH
}
/fonts_list_tmp"
else
echo
-e
"false
\n
$(
echo
"
${
PW_BOOL_IN_FONTS_LIST
}
"
|
awk
'{print $1}'
)
\n
$(
echo
"
${
PW_BOOL_IN_FONTS_LIST
}
"
|
awk
'{ $1 = ""; print substr($0, 2) }'
)
"
>>
"
${
PORT_WINE_TMP_PATH
}
/fonts_list_tmp"
fi
fi
done
<
"
${
PORT_WINE_TMP_PATH
}
/fonts_list"
try_remove_file
"
${
PORT_WINE_TMP_PATH
}
/settings_list_tmp"
while
read
PW_BOOL_IN_FONTS_LIST
;
do
if
[[
-z
$(
echo
"
${
PW_BOOL_IN_FONTS_LIST
}
"
|
grep
-E
'vista|alldlls|autostart_|bad|good|win|videomemory|vd=|isolate_home'
)
]]
;
then
if
grep
"^
$(
echo
"
${
PW_BOOL_IN_FONTS_LIST
}
"
|
awk
'{print $1}'
)
$"
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/winetricks.log"
;
then
echo
-e
"true
\n
$(
echo
"
${
PW_BOOL_IN_FONTS_LIST
}
"
|
awk
'{print $1}'
)
\n
$(
echo
"
${
PW_BOOL_IN_FONTS_LIST
}
"
|
awk
'{ $1 = ""; print substr($0, 2) }'
)
"
>>
"
${
PORT_WINE_TMP_PATH
}
/settings_list_tmp"
else
echo
-e
"false
\n
$(
echo
"
${
PW_BOOL_IN_FONTS_LIST
}
"
|
awk
'{print $1}'
)
\n
$(
echo
"
${
PW_BOOL_IN_FONTS_LIST
}
"
|
awk
'{ $1 = ""; print substr($0, 2) }'
)
"
>>
"
${
PORT_WINE_TMP_PATH
}
/settings_list_tmp"
fi
fi
done
<
"
${
PORT_WINE_TMP_PATH
}
/settings_list"
pw_stop_progress_bar
KEY_EDIT_MANAGER_GUI
=
$RANDOM
"
${
pw_yad_new
}
"
--plug
=
$KEY_EDIT_MANAGER_GUI
--tabnum
=
1
--list
--checklist
\
--text
=
"Select components to install in prefix: <b>
\"
${
PW_PREFIX_NAME
}
\"
</b>, using wine: <b>
\"
${
PW_WINE_USE
}
\"
</b>"
\
--column
=
set
--column
=
dll
--column
=
info <
"
${
PORT_WINE_TMP_PATH
}
/dll_list_tmp"
1>>
"
${
PORT_WINE_TMP_PATH
}
/to_winetricks"
&
"
${
pw_yad_new
}
"
--plug
=
$KEY_EDIT_MANAGER_GUI
--tabnum
=
2
--list
--checklist
\
--text
=
"Select fonts to install in prefix: <b>
\"
${
PW_PREFIX_NAME
}
\"
</b>, using wine: <b>
\"
${
PW_WINE_USE
}
\"
</b>"
\
--column
=
set
--column
=
dll
--column
=
info <
"
${
PORT_WINE_TMP_PATH
}
/fonts_list_tmp"
1>>
"
${
PORT_WINE_TMP_PATH
}
/to_winetricks"
&
"
${
pw_yad_new
}
"
--plug
=
$KEY_EDIT_MANAGER_GUI
--tabnum
=
3
--list
--checklist
\
--text
=
"Change config for prefix: <b>
\"
${
PW_PREFIX_NAME
}
\"
</b>"
\
--column
=
set
--column
=
dll
--column
=
info <
"
${
PORT_WINE_TMP_PATH
}
/settings_list_tmp"
1>>
"
${
PORT_WINE_TMP_PATH
}
/to_winetricks"
&
"
${
pw_yad_new
}
"
--key
=
$KEY_EDIT_MANAGER_GUI
--notebook
--borders
=
5
--width
=
700
--height
=
600
--center
\
--window-icon
=
"
$PW_GUI_ICON_PATH
/port_proton.png"
--title
"PREFIX MANAGER..."
--tab-pos
=
bottom
--tab
=
"DLL"
--tab
=
"FONTS"
--tab
=
"SETTINGS"
YAD_STATUS
=
"
$?
"
if
[[
"
$YAD_STATUS
"
==
"1"
||
"
$YAD_STATUS
"
==
"252"
]]
;
then
stop_portwine
exit
0
fi
try_remove_file
"
${
PORT_WINE_TMP_PATH
}
/dll_list_tmp"
try_remove_file
"
${
PORT_WINE_TMP_PATH
}
/fonts_list_tmp"
try_remove_file
"
${
PORT_WINE_TMP_PATH
}
/settings_list_tmp"
for
STPFXMNG
in
$(
cat
"
${
PORT_WINE_TMP_PATH
}
/to_winetricks"
)
;
do
grep
$(
echo
${
STPFXMNG
}
|
awk
-F
'|'
'{print $2}'
)
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/winetricks.log"
&>/dev/null
if
[
"
$?
"
==
"1"
]
;
then
[[
-n
"
${
STPFXMNG
}
"
]]
&&
SET_FROM_PFX_MANAGER+
=
"
$(
echo
"
${
STPFXMNG
}
"
|
awk
-F
'|'
'{print $2}'
)
"
fi
done
IFS
=
${
old_IFS
}
try_remove_file
"
${
PORT_WINE_TMP_PATH
}
/to_winetricks"
if
[[
-n
${
SET_FROM_PFX_MANAGER
}
]]
;
then
export
PW_ADD_TO_ARGS_IN_RUNTIME
=
"--xterm"
pw_init_runtime
${
pw_runtime
}
env
PATH
=
"
${
PATH
}
"
LD_LIBRARY_PATH
=
"
${
PW_LD_LIBRARY_PATH
}
"
"
${
PORT_WINE_TMP_PATH
}
/winetricks"
-q
-r
-f
${
SET_FROM_PFX_MANAGER
}
gui_prefix_manager
else
print_info
"Nothing to do. Restarting PortProton..."
stop_portwine &
/usr/bin/env bash
-c
${
pw_full_command_line
[*]
}
fi
}
gui_prefix_manager
}
pw_winetricks
()
{
update_winetricks
export
PW_USE_TERMINAL
=
1
start_portwine
pw_stop_progress_bar
echo
"WINETRICKS..."
>
"
${
PORT_WINE_TMP_PATH
}
/update_pfx_log"
unset
PW_TIMER
while
read
-r
line
||
[[
-n
$(
pgrep
-a
yad |
grep
"yad_new --text-info --tail --no-buttons --title="
WINETRICKS
""
|
awk
'{print $1}'
)
]]
;
do
sleep
0.005
if
[[
-n
"
${
line
}
"
]]
&&
[[
-z
"
$(
echo
"
${
line
}
"
|
grep
-i
"gstreamer"
)
"
]]
\
&&
[[
-z
"
$(
echo
"
${
line
}
"
|
grep
-i
"kerberos"
)
"
]]
\
&&
[[
-z
"
$(
echo
"
${
line
}
"
|
grep
-i
"ntlm"
)
"
]]
then
echo
"#
${
line
}
"
fi
if
[[
"
${
PW_TIMER
}
"
!=
1
]]
;
then
sleep
3
PW_TIMER
=
1
fi
done
<
"
${
PORT_WINE_TMP_PATH
}
/update_pfx_log"
|
"
${
pw_yad_new
}
"
--text-info
--tail
--no-buttons
--title
=
"WINETRICKS"
\
--auto-close
--skip-taskbar
--width
=
$PW_GIF_SIZE_X
--height
=
$PW_GIF_SIZE_Y
&
"
${
PORT_WINE_TMP_PATH
}
/winetricks"
-q
-r
-f
&>>
"
${
PORT_WINE_TMP_PATH
}
/update_pfx_log"
try_remove_file
"
${
PORT_WINE_TMP_PATH
}
/update_pfx_log"
kill
-s
SIGTERM
"
$(
pgrep
-a
yad_new |
grep
"title=WINETRICKS"
|
awk
'{print $1}'
)
"
>
/dev/null 2>&1
stop_portwine
}
pw_start_cont_xterm
()
{
cd
"
$HOME
"
unset
PW_SANDBOX_HOME_PATH
# export PW_ADD_TO_ARGS_IN_RUNTIME="--xterm"
pw_init_runtime
${
pw_runtime
}
xterm
}
pw_create_prefix_backup
()
{
cd
"
$HOME
"
PW_PREFIX_TO_BACKUP
=
$(
"
${
pw_yad_new
}
"
--file
--directory
--borders
=
5
--width
=
650
--height
=
500
--auto-close
--center
\
--window-icon
=
"
$PW_GUI_ICON_PATH
/port_proton.png"
--title
"BACKUP PREFIX TO..."
)
YAD_STATUS
=
"
$?
"
if
[[
"
$YAD_STATUS
"
==
"1"
||
"
$YAD_STATUS
"
==
"252"
]]
;
then
exit
0
;
fi
if
[[
-n
"
$(
grep
"/
${
PW_PREFIX_NAME
}
/"
"
${
PORT_WINE_PATH
}
"
/
*
.desktop
)
"
]]
;
then
try_remove_file
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/.create_shortcut"
grep
"/
${
PW_PREFIX_NAME
}
/"
"
${
PORT_WINE_PATH
}
"
/
*
.desktop |
awk
-F
"/
${
PW_PREFIX_NAME
}
/"
'{print $2}'
\
|
awk
-F
\"
'{print $1}'
>
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
/.create_shortcut"
fi
unset
PW_SANDBOX_HOME_PATH
export
PW_ADD_TO_ARGS_IN_RUNTIME
=
"--xterm"
pw_init_runtime
chmod
-R
u+w
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
"
${
pw_runtime
}
env
PATH
=
"
${
PATH
}
"
LD_LIBRARY_PATH
=
"
${
PW_LD_LIBRARY_PATH
}
"
mksquashfs
"
${
PORT_WINE_PATH
}
/data/prefixes/
${
PW_PREFIX_NAME
}
"
"
${
PW_PREFIX_TO_BACKUP
}
/
${
PW_PREFIX_NAME
}
.ppack.part"
-comp
zstd &
sleep
10
while
true
;
do
if
[[
-n
$(
pgrep
-a
xterm |
grep
".ppack.part"
|
head
-n
1 |
awk
'{print $1}'
)
]]
;
then
sleep
0.5
else
kill
-TERM
$(
pgrep
-a
mksquashfs |
grep
".ppack.part"
|
head
-n
1 |
awk
'{print $1}'
)
sleep
0.3
if
[[
-z
"
$(
pgrep
-a
mksquashfs |
grep
".ppack.part"
|
head
-n
1 |
awk
'{print $1}'
)
"
]]
then
break
else
sleep
0.3
fi
fi
done
if
[[
-f
"
${
PW_PREFIX_TO_BACKUP
}
/
${
PW_PREFIX_NAME
}
.ppack.part"
]]
;
then
mv
-f
"
${
PW_PREFIX_TO_BACKUP
}
/
${
PW_PREFIX_NAME
}
.ppack.part"
"
${
PW_PREFIX_TO_BACKUP
}
/
${
PW_PREFIX_NAME
}
.ppack"
zenity_info
"Backup for prefix
\"
${
PW_PREFIX_NAME
}
\"
successfully created."
else
zenity_error
"An error occurred while creating a backup for prefix:
\"
${
PW_PREFIX_NAME
}
\"
!"
fi
return
0
}
pw_edit_db
()
{
pw_gui_for_edit_db
\
PW_MANGOHUD PW_MANGOHUD_USER_CONF ENABLE_VKBASALT PW_NO_ESYNC PW_NO_FSYNC PW_USE_DXR10 PW_USE_DXR11
\
PW_USE_NVAPI_AND_DLSS PW_WINE_FULLSCREEN_FSR PW_OLD_GL_STRING PW_HIDE_NVIDIA_GPU PW_FORCE_USE_VSYNC PW_VIRTUAL_DESKTOP
\
PW_WINEDBG_DISABLE PW_USE_TERMINAL PW_WINE_ALLOW_XIM PW_HEAP_DELAY_FREE PW_GUI_DISABLED_CS PW_USE_GSTREAMER
\
PW_USE_GAMEMODE PW_DX12_DISABLE PW_PRIME_RENDER_OFFLOAD PW_USE_D3D_EXTRAS PW_FIX_VIDEO_IN_GAME PW_USE_AMDVLK_DRIVER
\
PW_FORCE_LARGE_ADDRESS_AWARE PW_USE_SHADER_CACHE
if
[
"
$?
"
==
0
]
;
then
/usr/bin/env bash
-c
${
pw_full_command_line
[*]
}
&
exit
0
fi
}
pw_autoinstall_from_db
()
{
export
PW_USER_TEMP
=
"
${
PORT_WINE_TMP_PATH
}
"
export
PW_FORCE_LARGE_ADDRESS_AWARE
=
0
export
PW_USE_GAMEMODE
=
0
export
PW_CHECK_AUTOINSTAL
=
1
export
PW_GUI_DISABLED_CS
=
1
export
PW_WINEDBG_DISABLE
=
1
export
PW_NO_WRITE_WATCH
=
0
export
PW_VULKAN_USE
=
0
export
PW_NO_FSYNC
=
1
export
PW_NO_ESYNC
=
1
unset
PORTWINE_CREATE_SHORTCUT_NAME
export
PW_DISABLED_CREATE_DB
=
1
export
PW_MANGOHUD
=
0
export
ENABLE_VKBASALT
=
0
export
PW_USE_D3D_EXTRAS
=
1
.
"
${
PORT_SCRIPTS_PATH
}
/pw_autoinstall/
${
PW_YAD_SET
}
"
}
gui_credits
()
{
.
"
${
PORT_SCRIPTS_PATH
}
/credits"
}
export
-f
gui_credits
###MAIN###
PW_PREFIX_NAME
=
"
$(
echo
"
${
PW_PREFIX_NAME
}
"
|
sed
-e
s/[[:blank:]]/_/g
)
"
PW_ALL_PREFIXES
=
$(
ls
"
${
PORT_WINE_PATH
}
/data/prefixes/"
|
sed
-e
s/
"
${
PW_PREFIX_NAME
}
$"
//g
)
export
PW_PREFIX_NAME PW_ALL_PREFIXES
# if [[ -n "${PORTWINE_DB}" ]] && [[ -z `echo "${PW_PREFIX_NAME}" | grep -i "$(echo "${PORTWINE_DB}" | sed -e s/[[:blank:]]/_/g)"` ]] ; then
# export PW_PREFIX_NAME="${PW_PREFIX_NAME}!`echo "${PORTWINE_DB}" | sed -e s/[[:blank:]]/_/g`"
# fi
unset
PW_ADD_PREFIXES_TO_GUI
IFS_OLD
=
$IFS
IFS
=
$'
\n
'
for
PAIG
in
${
PW_ALL_PREFIXES
[*]
}
;
do
[[
"
${
PAIG
}
"
!=
$(
echo
"
${
PORTWINE_DB
^^
}
"
|
sed
-e
s/[[:blank:]]/_/g
)
]]
&&
\
export
PW_ADD_PREFIXES_TO_GUI
=
"
${
PW_ADD_PREFIXES_TO_GUI
}
!
${
PAIG
}
"
done
IFS
=
$IFS_OLD
export
PW_ADD_PREFIXES_TO_GUI
=
"
${
PW_PREFIX_NAME
^^
}${
PW_ADD_PREFIXES_TO_GUI
}
"
PW_ALL_DIST
=
$(
ls
"
${
PORT_WINE_PATH
}
/data/dist/"
|
sed
-e
s/
"
${
PW_PROTON_GE_VER
}
$/
/g"
|
sed
-e
s/
"
${
PW_PROTON_STEAM_VER
}
$/
/g"
)
unset
DIST_ADD_TO_GUI
for
DAIG
in
${
PW_ALL_DIST
}
do
export
DIST_ADD_TO_GUI
=
"
${
DIST_ADD_TO_GUI
}
!
${
DAIG
}
"
done
if
[[
-n
"
${
PORTWINE_DB_FILE
}
"
]]
;
then
[[
-z
"
${
PW_COMMENT_DB
}
"
]]
&&
PW_COMMENT_DB
=
"PortWINE database file for "
\"
${
PORTWINE_DB
}
"
\"
was found."
if
[[
-z
"
${
PW_VULKAN_USE
}
"
||
-z
"
${
PW_WINE_USE
}
"
]]
;
then
unset
PW_GUI_DISABLED_CS
[[
-z
"
${
PW_VULKAN_USE
}
"
]]
&&
export
PW_VULKAN_USE
=
1
fi
case
"
${
PW_VULKAN_USE
}
"
in
"0"
)
export
PW_DEFAULT_VULKAN_USE
=
'OPENGL!VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!GALLIUM_NINE (native DX9 on MESA)'
;;
"2"
)
export
PW_DEFAULT_VULKAN_USE
=
'VULKAN (WINE DXGI)!VULKAN (DXVK and VKD3D)!OPENGL!GALLIUM_NINE (native DX9 on MESA)'
;;
"3"
)
export
PW_DEFAULT_VULKAN_USE
=
'GALLIUM_NINE (native DX9 on MESA)!VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL'
;;
*
)
export
PW_DEFAULT_VULKAN_USE
=
'VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)'
;;
esac
if
[[
-n
$(
echo
"
${
PW_WINE_USE
}
"
|
grep
"^PROTON_STEAM$"
)
]]
;
then
export
PW_DEFAULT_WINE_USE
=
"
${
PW_PROTON_STEAM_VER
}
!
${
PW_PROTON_GE_VER
}${
DIST_ADD_TO_GUI
}
!GET-OTHER-WINE"
elif
[[
-n
$(
echo
"
${
PW_WINE_USE
}
"
|
grep
"^PROTON_GE$"
)
]]
;
then
export
PW_DEFAULT_WINE_USE
=
"
${
PW_PROTON_GE_VER
}
!
${
PW_PROTON_STEAM_VER
}${
DIST_ADD_TO_GUI
}
!GET-OTHER-WINE"
else
if
[[
"
${
PW_WINE_USE
}
"
==
"
${
PW_PROTON_STEAM_VER
}
"
]]
;
then
export
PW_DEFAULT_WINE_USE
=
"
${
PW_WINE_USE
}
!
${
PW_PROTON_GE_VER
}${
DIST_ADD_TO_GUI
}
!GET-OTHER-WINE"
elif
[[
"
${
PW_WINE_USE
}
"
==
"
${
PW_PROTON_GE_VER
}
"
]]
;
then
export
PW_DEFAULT_WINE_USE
=
"
${
PW_WINE_USE
}
!
${
PW_PROTON_STEAM_VER
}${
DIST_ADD_TO_GUI
}
!GET-OTHER-WINE"
else
export
DIST_ADD_TO_GUI
=
$(
echo
"
${
DIST_ADD_TO_GUI
}
"
|
sed
-e
s/
"
\!
${
PW_WINE_USE
}
$/
/g"
)
export
PW_DEFAULT_WINE_USE
=
"
${
PW_WINE_USE
}
!
${
PW_PROTON_GE_VER
}
!
${
PW_PROTON_STEAM_VER
}${
DIST_ADD_TO_GUI
}
!GET-OTHER-WINE"
fi
fi
else
export
PW_DEFAULT_VULKAN_USE
=
'VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)'
if
[[
-n
$(
echo
"
${
PW_WINE_USE
}
"
|
grep
"^PROTON_STEAM$"
)
]]
;
then
export
PW_DEFAULT_WINE_USE
=
"
${
PW_PROTON_STEAM_VER
}
!
${
PW_PROTON_GE_VER
}${
DIST_ADD_TO_GUI
}
!GET-OTHER-WINE"
elif
[[
-n
$(
echo
"
${
PW_WINE_USE
}
"
|
grep
"^PROTON_GE$"
)
]]
;
then
export
PW_DEFAULT_WINE_USE
=
"
${
PW_PROTON_GE_VER
}
!
${
PW_PROTON_STEAM_VER
}${
DIST_ADD_TO_GUI
}
!GET-OTHER-WINE"
else
if
[[
"
${
PW_WINE_USE
}
"
==
"
${
PW_PROTON_STEAM_VER
}
"
]]
;
then
export
PW_DEFAULT_WINE_USE
=
"
${
PW_WINE_USE
}
!
${
PW_PROTON_GE_VER
}${
DIST_ADD_TO_GUI
}
!GET-OTHER-WINE"
elif
[[
"
${
PW_WINE_USE
}
"
==
"
${
PW_PROTON_GE_VER
}
"
]]
;
then
export
PW_DEFAULT_WINE_USE
=
"
${
PW_WINE_USE
}
!
${
PW_PROTON_STEAM_VER
}${
DIST_ADD_TO_GUI
}
!GET-OTHER-WINE"
else
export
DIST_ADD_TO_GUI
=
$(
echo
"
${
DIST_ADD_TO_GUI
}
"
|
sed
-e
s/
"
\!
${
PW_WINE_USE
}
$/
/g"
)
export
PW_DEFAULT_WINE_USE
=
"
${
PW_WINE_USE
}
!
${
PW_PROTON_GE_VER
}
!
${
PW_PROTON_STEAM_VER
}${
DIST_ADD_TO_GUI
}
!GET-OTHER-WINE"
fi
fi
unset
PW_GUI_DISABLED_CS
fi
if
[
-n
"
${
portwine_exe
}
"
]
;
then
if
[[
-z
"
${
PW_GUI_DISABLED_CS
}
"
||
"
${
PW_GUI_DISABLED_CS
}
"
==
0
]]
;
then
pw_create_gui_png
grep
-il
"
${
portwine_exe
}
"
"
${
HOME
}
/.local/share/applications"
/
*
.desktop
if
[[
"
$?
"
!=
"0"
]]
;
then
PW_SHORTCUT
=
"CREATE SHORTCUT!!
${
loc_create_shortcut
}
:100"
else
PW_SHORTCUT
=
"DELETE SHORTCUT!!
${
loc_delete_shortcut
}
:98"
fi
OUTPUT_START
=
$(
"
${
pw_yad
}
"
--text-align
=
center
--text
"
$PW_COMMENT_DB
"
--wrap-width
=
150
--borders
=
7
--form
--center
\
--title
"
${
portname
}
-
${
install_ver
}
(
${
scripts_install_ver
}
)"
--image
"
${
PW_ICON_FOR_YAD
}
"
--separator
=
";"
\
--window-icon
=
"
$PW_GUI_ICON_PATH
/port_proton.png"
\
--field
=
"3D API : :CB"
"
${
PW_DEFAULT_VULKAN_USE
}
"
\
--field
=
" WINE : :CB"
"
${
PW_DEFAULT_WINE_USE
}
"
\
--field
=
"PREFIX : :CBE"
"
${
PW_ADD_PREFIXES_TO_GUI
}
"
\
--field
=
":LBL"
""
\
--button
=
'VKBASALT'
!!
"
${
ENABLE_VKBASALT_INFO
}
"
:120
\
--button
=
'EDIT DB'
!!
"
${
loc_edit_db
}
${
PORTWINE_DB
}
"
:118
\
--button
=
"
${
PW_SHORTCUT
}
"
\
--button
=
'DEBUG'
!!
"
${
loc_debug
}
"
:102
\
--button
=
'LAUNCH'
!!
"
${
loc_launch
}
"
:106
)
export
PW_YAD_SET
=
"
$?
"
if
[[
"
$PW_YAD_SET
"
==
"1"
||
"
$PW_YAD_SET
"
==
"252"
]]
;
then
exit
0
;
fi
export
VULKAN_MOD
=
$(
echo
"
${
OUTPUT_START
}
"
|
grep
\;\;
|
awk
-F
";"
'{print $1}'
)
export
PW_WINE_VER
=
$(
echo
"
${
OUTPUT_START
}
"
|
grep
\;\;
|
awk
-F
";"
'{print $2}'
)
export
PW_PREFIX_NAME
=
$(
echo
"
${
OUTPUT_START
}
"
|
grep
\;\;
|
awk
-F
";"
'{print $3}'
|
sed
-e
s/[[:blank:]]/_/g
)
if
[[
-z
"
${
PW_PREFIX_NAME
}
"
]]
||
[[
-n
"
$(
echo
"
${
PW_PREFIX_NAME
}
"
|
grep
-E
'^_.*'
)
"
]]
;
then
export
PW_PREFIX_NAME
=
"DEFAULT"
else
export
PW_PREFIX_NAME
=
"
${
PW_PREFIX_NAME
^^
}
"
fi
elif
[
-n
"
${
PORTWINE_DB_FILE
}
"
]
;
then
portwine_launch
fi
else
button_click
()
{
[[
-n
"
$1
"
]]
&&
echo
"
$1
"
>
"
${
PORT_WINE_TMP_PATH
}
/tmp_yad_form"
if
[[
-n
$(
pidof
-s
yad
)
]]
||
[[
-n
$(
pidof
-s
yad_new
)
]]
;
then
kill
-s
SIGUSR1
$(
pgrep
-a
yad |
grep
"
\-\-
key=
${
KEY
}
\-\-
notebook"
|
awk
'{print $1}'
)
>
/dev/null 2>&1
fi
}
export
-f
button_click
gui_clear_pfx
()
{
if
gui_question
"
${
port_clear_pfx
}
"
;
then
pw_clear_pfx
/usr/bin/env bash
-c
${
pw_full_command_line
[*]
}
&
exit
0
fi
}
export
-f
gui_clear_pfx
gui_rm_portproton
()
{
if
gui_question
"
${
port_del2
}
"
;
then
rm
-fr
"
${
PORT_WINE_PATH
}
"
rm
-fr
"
${
PORT_WINE_TMP_PATH
}
"
rm
-fr
"
${
HOME
}
/PortWINE"
rm
-f
$(
grep
-il
PortProton
"
${
HOME
}
/.local/share/applications"
/
*)
update-desktop-database
-q
"
${
HOME
}
/.local/share/applications"
fi
exit
0
}
export
-f
gui_rm_portproton
gui_pw_update
()
{
try_remove_file
"
${
PORT_WINE_TMP_PATH
}
/scripts_update_notifier"
/usr/bin/env bash
-c
${
pw_full_command_line
[*]
}
&
exit
0
}
gui_wine_uninstaller
()
{
start_portwine
pw_run uninstaller
}
export
-f
gui_wine_uninstaller
gui_open_user_conf
()
{
xdg-open
"
${
PORT_WINE_PATH
}
/data/user.conf"
}
export
-f
gui_open_user_conf
gui_open_scripts_from_backup
()
{
cd
"
${
PORT_WINE_TMP_PATH
}
/scripts_backup/"
PW_SCRIPT_FROM_BACKUP
=
$(
"
${
pw_yad_new
}
"
--file
--borders
=
5
--width
=
650
--height
=
500
--auto-close
--center
\
--window-icon
=
"
$PW_GUI_ICON_PATH
/port_proton.png"
--title
"SCRIPTS FROM BACKUP"
--file-filter
=
"backup_scripts|scripts_v*.tar.gz"
)
YAD_STATUS
=
"
$?
"
if
[[
"
$YAD_STATUS
"
==
"1"
||
"
$YAD_STATUS
"
==
"252"
]]
;
then
exit
0
;
fi
unpack_tar_gz
"
$PW_SCRIPT_FROM_BACKUP
"
"
${
PORT_WINE_PATH
}
/data/"
echo
"0"
>
"
${
PORT_WINE_TMP_PATH
}
/scripts_update_notifier"
/usr/bin/env bash
-c
${
pw_full_command_line
[*]
}
&
exit
0
}
export
-f
gui_open_scripts_from_backup
export
KEY
=
$RANDOM
"
${
pw_yad_new
}
"
--plug
=
${
KEY
}
--tabnum
=
4
--columns
=
3
--align-buttons
--form
--separator
=
";"
\
--field
=
"
$loc_gui_rm_pp
"
!
""
!
""
:
"FBTN"
'@bash -c "button_click gui_rm_portproton"'
\
--field
=
"
$loc_gui_upd_pp
"
!
""
!
""
:
"FBTN"
'@bash -c "button_click gui_pw_update"'
\
--field
=
"
$loc_gui_changelog
"
!
""
!
""
:
"FBTN"
'@bash -c "button_click open_changelog"'
\
--field
=
"
$loc_gui_edit_usc
"
!
""
!
""
:
"FBTN"
'@bash -c "button_click gui_open_user_conf"'
\
--field
=
"
$loc_gui_scripts_fb
"
!
""
!
""
:
"FBTN"
'@bash -c "button_click gui_open_scripts_from_backup"'
\
--field
=
" Xterm"
!
""
!
""
:
"FBTN"
'@bash -c "button_click pw_start_cont_xterm"'
\
--field
=
"
$loc_gui_credits
"
!
""
!
""
:
"FBTN"
'@bash -c "button_click gui_credits"'
&
"
${
pw_yad_new
}
"
--plug
=
${
KEY
}
--tabnum
=
3
--columns
=
3
--align-buttons
--form
--separator
=
";"
\
--field
=
" 3D API : :CB"
"VULKAN (DXVK and VKD3D)!VULKAN (WINE DXGI)!OPENGL!GALLIUM_NINE (native DX9 on MESA)"
\
--field
=
" PREFIX : :CBE"
"
${
PW_ADD_PREFIXES_TO_GUI
}
"
\
--field
=
" WINE : :CB"
"
${
PW_DEFAULT_WINE_USE
}
"
\
--field
=
" DOWNLOAD OTHER WINE "
!
"
${
loc_download_other_wine
}
"
:
"FBTN"
'@bash -c "button_click gui_proton_downloader"'
\
--field
=
' WINECFG'
!
""
!
"
${
loc_winecfg
}
"
:
"FBTN"
'@bash -c "button_click WINECFG"'
\
--field
=
' WINEFILE'
!
""
!
"
${
loc_winefile
}
"
:
"FBTN"
'@bash -c "button_click WINEFILE"'
\
--field
=
' WINECMD'
!
""
!
"
${
loc_winecmd
}
"
:
"FBTN"
'@bash -c "button_click WINECMD"'
\
--field
=
' WINEREG'
!
""
!
"
${
loc_winereg
}
"
:
"FBTN"
'@bash -c "button_click WINEREG"'
\
--field
=
' WINETRICKS'
!
""
!
"
${
loc_winetricks
}
"
:
"FBTN"
'@bash -c "button_click WINETRICKS"'
\
--field
=
" WINE UNINSTALLER"
!
""
!
""
:
"FBTN"
'@bash -c "button_click gui_wine_uninstaller"'
\
--field
=
" CLEAR PREFIX"
!
""
!
""
:
"FBTN"
'@bash -c "button_click gui_clear_pfx"'
\
--field
=
" CREATE PFX BACKUP"
!
""
!
""
:
"FBTN"
'@bash -c "button_click pw_create_prefix_backup"'
&>
"
${
PORT_WINE_TMP_PATH
}
/tmp_yad_form_vulkan"
&
"
${
pw_yad_new
}
"
--plug
=
$KEY
--tabnum
=
2
--form
--columns
=
3
--align-buttons
--keep-icon-size
--scroll
\
--field
=
" Dolphin 5.0"
!
"
$PW_GUI_ICON_PATH
/dolphin.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_DOLPHIN"'
\
--field
=
" MAME"
!
"
$PW_GUI_ICON_PATH
/mame.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_MAME"'
\
--field
=
" ScummVM"
!
"
$PW_GUI_ICON_PATH
/scummvm.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_SCUMMVM"'
\
--field
=
" RetroArch"
!
"
$PW_GUI_ICON_PATH
/retroarch.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_RETROARCH"'
\
--field
=
" PPSSPP Windows"
!
"
$PW_GUI_ICON_PATH
/ppsspp.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_PPSSPP"'
\
--field
=
" Citra"
!
"
$PW_GUI_ICON_PATH
/citra.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_CITRA"'
\
--field
=
" Cemu"
!
"
$PW_GUI_ICON_PATH
/cemu.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_CEMU"'
\
--field
=
" DuckStation"
!
"
$PW_GUI_ICON_PATH
/duckstation.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_DUCKSTATION"'
\
--field
=
" ePSXe"
!
"
$PW_GUI_ICON_PATH
/epsxe.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_EPSXE"'
\
--field
=
" Project64"
!
"
$PW_GUI_ICON_PATH
/project64.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_PROJECT64"'
\
--field
=
" VBA-M"
!
"
$PW_GUI_ICON_PATH
/vba-m.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_VBA-M"'
\
--field
=
" Yabause"
!
"
$PW_GUI_ICON_PATH
/yabause.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_YABAUSE"'
&
"
${
pw_yad_new
}
"
--plug
=
$KEY
--tabnum
=
1
--form
--columns
=
3
--align-buttons
--keep-icon-size
--scroll
\
--field
=
" Wargaming Game Center"
!
"
$PW_GUI_ICON_PATH
/wgc.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_WGC"'
\
--field
=
" Battle.net Launcher"
!
"
$PW_GUI_ICON_PATH
/battle_net.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_BATTLE_NET"'
\
--field
=
" Epic Games Launcher"
!
"
$PW_GUI_ICON_PATH
/epicgames.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_EPIC"'
\
--field
=
" GoG Galaxy Launcher"
!
"
$PW_GUI_ICON_PATH
/gog.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_GOG"'
\
--field
=
" Ubisoft Game Launcher"
!
"
$PW_GUI_ICON_PATH
/ubc.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_UBC"'
\
--field
=
" EVE Online Launcher"
!
"
$PW_GUI_ICON_PATH
/eve.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_EVE"'
\
--field
=
" Origin Launcher"
!
"
$PW_GUI_ICON_PATH
/origin.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_ORIGIN"'
\
--field
=
" Rockstar Games Launcher"
!
"
$PW_GUI_ICON_PATH
/Rockstar.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_ROCKSTAR"'
\
--field
=
" My.Games Launcher"
!
"
$PW_GUI_ICON_PATH
/mygames.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_MYGAMES"'
\
--field
=
" Ankama Launcher"
!
"
$PW_GUI_ICON_PATH
/ankama.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_ANKAMA"'
\
--field
=
" OSU"
!
"
$PW_GUI_ICON_PATH
/osu.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_OSU"'
\
--field
=
" League of Legends"
!
"
$PW_GUI_ICON_PATH
/lol.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_LOL"'
\
--field
=
" Gameforge Client"
!
"
$PW_GUI_ICON_PATH
/gameforge.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_GAMEFORGE"'
\
--field
=
" World of Sea Battle (BETA)"
!
"
$PW_GUI_ICON_PATH
/wosb.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_WOSB"'
\
--field
=
" ITCH.IO"
!
"
$PW_GUI_ICON_PATH
/itch.png"
!
""
:
"FBTN"
'@bash -c "button_click PW_ITCH"'
&
# --field=" Steam Client Launcher"!"$PW_GUI_ICON_PATH/steam.png"!"":"FBTN" '@bash -c "button_click PW_STEAM"'
# --field=" Bethesda.net Launcher"!"$PW_GUI_ICON_PATH/bethesda.png"!"":"FBTN" '@bash -c "button_click PW_BETHESDA"'
"
${
pw_yad_new
}
"
--key
=
$KEY
--notebook
--borders
=
5
--width
=
900
--height
=
235
--no-buttons
--auto-close
--center
\
--window-icon
=
"
$PW_GUI_ICON_PATH
/port_proton.png"
--title
"
${
portname
}
-
${
install_ver
}
(
${
scripts_install_ver
}
)"
\
--tab-pos
=
bottom
--tab
=
"
$loc_mg_autoinstall
"
!
""
!
""
--tab
=
"
$loc_mg_emulators
"
!
""
!
""
--tab
=
"
$loc_mg_wine_settings
"
!
""
!
""
--tab
=
"
$loc_mg_portproton_settings
"
!
""
!
""
YAD_STATUS
=
"
$?
"
if
[[
"
$YAD_STATUS
"
==
"1"
||
"
$YAD_STATUS
"
==
"252"
]]
;
then
exit
0
;
fi
if
[[
-f
"
${
PORT_WINE_TMP_PATH
}
/tmp_yad_form"
]]
;
then
export
PW_YAD_SET
=
$(
cat
"
${
PORT_WINE_TMP_PATH
}
/tmp_yad_form"
|
head
-n
1 |
awk
'{print $1}'
)
try_remove_file
"
${
PORT_WINE_TMP_PATH
}
/tmp_yad_form"
fi
if
[[
-f
"
${
PORT_WINE_TMP_PATH
}
/tmp_yad_form_vulkan"
]]
;
then
export
VULKAN_MOD
=
$(
cat
"
${
PORT_WINE_TMP_PATH
}
/tmp_yad_form_vulkan"
|
grep
\;\;
|
awk
-F
";"
'{print $1}'
)
export
PW_PREFIX_NAME
=
$(
cat
"
${
PORT_WINE_TMP_PATH
}
/tmp_yad_form_vulkan"
|
grep
\;\;
|
awk
-F
";"
'{print $2}'
|
sed
-e
"s/[[:blank:]]/_/g"
)
export
PW_WINE_VER
=
$(
cat
"
${
PORT_WINE_TMP_PATH
}
/tmp_yad_form_vulkan"
|
grep
\;\;
|
awk
-F
";"
'{print $3}'
)
if
[[
-z
"
${
PW_PREFIX_NAME
}
"
]]
||
[[
-n
"
$(
echo
"
${
PW_PREFIX_NAME
}
"
|
grep
-E
'^_.*'
)
"
]]
;
then
export
PW_PREFIX_NAME
=
"DEFAULT"
else
export
PW_PREFIX_NAME
=
"
${
PW_PREFIX_NAME
^^
}
"
fi
try_remove_file
"
${
PORT_WINE_TMP_PATH
}
/tmp_yad_form_vulkan"
fi
export
PW_DISABLED_CREATE_DB
=
1
fi
if
[[
-n
"
${
VULKAN_MOD
}
"
&&
"
${
VULKAN_MOD
}
"
=
"OPENGL"
]]
then
export
PW_VULKAN_USE
=
"0"
elif
[[
-n
"
${
VULKAN_MOD
}
"
&&
"
${
VULKAN_MOD
}
"
=
"VULKAN (DXVK and VKD3D)"
]]
then
export
PW_VULKAN_USE
=
"1"
elif
[[
-n
"
${
VULKAN_MOD
}
"
&&
"
${
VULKAN_MOD
}
"
=
"VULKAN (WINE DXGI)"
]]
then
export
PW_VULKAN_USE
=
"2"
elif
[[
-n
"
${
VULKAN_MOD
}
"
&&
"
${
VULKAN_MOD
}
"
=
"GALLIUM_NINE (native DX9 on MESA)"
]]
then
export
PW_VULKAN_USE
=
"3"
fi
init_wine_ver
if
[[
-z
"
${
PW_DISABLED_CREATE_DB
}
"
]]
;
then
if
[[
-n
"
${
PORTWINE_DB
}
"
]]
&&
[[
-z
"
${
PORTWINE_DB_FILE
}
"
]]
;
then
PORTWINE_DB_FILE
=
$(
grep
-il
"
\#
${
PORTWINE_DB
}
.exe"
"
${
PORT_SCRIPTS_PATH
}
/portwine_db"
/
*)
if
[[
-z
"
${
PORTWINE_DB_FILE
}
"
]]
;
then
echo
"#!/usr/bin/env bash"
>
"
${
portwine_exe
}
"
.ppdb
echo
"#Author: "
${
USER
}
""
>>
"
${
portwine_exe
}
"
.ppdb
echo
"#"
${
PORTWINE_DB
}
.exe
""
>>
"
${
portwine_exe
}
"
.ppdb
echo
"#Rating=1-5"
>>
"
${
portwine_exe
}
"
.ppdb
cat
"
${
PORT_SCRIPTS_PATH
}
/portwine_db/default"
|
grep
"##"
>>
"
${
portwine_exe
}
"
.ppdb
export
PORTWINE_DB_FILE
=
"
${
portwine_exe
}
"
.ppdb
fi
fi
edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME
fi
case
"
$PW_YAD_SET
"
in
1|252
)
exit
0
;;
98
)
portwine_delete_shortcut
;;
100
)
portwine_create_shortcut
;;
DEBUG|102
)
portwine_start_debug
;;
106
)
portwine_launch
;;
WINECFG|108
)
pw_winecfg
;;
WINEFILE|110
)
pw_winefile
;;
WINECMD|112
)
pw_winecmd
;;
WINEREG|114
)
pw_winereg
;;
WINETRICKS|116
)
pw_prefix_manager
;;
118
)
pw_edit_db
;;
gui_clear_pfx
)
gui_clear_pfx
;;
gui_open_user_conf
)
gui_open_user_conf
;;
gui_wine_uninstaller
)
gui_wine_uninstaller
;;
gui_rm_portproton
)
gui_rm_portproton
;;
gui_pw_update
)
gui_pw_update
;;
gui_proton_downloader
)
gui_proton_downloader
;;
gui_open_scripts_from_backup
)
gui_open_scripts_from_backup
;;
open_changelog
)
open_changelog
;;
120
)
gui_vkBasalt
;;
pw_create_prefix_backup
)
pw_create_prefix_backup
;;
gui_credits
)
gui_credits
;;
pw_start_cont_xterm
)
pw_start_cont_xterm
;;
PW_
*
)
pw_autoinstall_from_db
;;
esac
stop_portwine
data_from_portwine/scripts/var
View file @
5406e3b7
#!/usr/bin/env bash
#Author: Castro-Fidel (PortWINE-Linux.ru)
#SCRIPTS_NEXT_VERSION=212
4
#SCRIPTS_NEXT_VERSION=212
5
########################################################################
export
PW_MANGOHUD
=
0
export
MANGOHUD_CONFIG
=
cpu_stats,cpu_temp,cpu_mhz,cpu_color
=
2e97cb,cpu_text
=
CPU,gpu_stats,gpu_temp,gpu_core_clock,gpu_mem_clock,vulkan_driver,gpu_name,gpu_color
=
2e9762,gpu_text
=
GPU,vram,vram_color
=
ad64c1,ram,ram_color
=
c26693,io_color
=
a491d3,frame_timing
=
1,frametime_color
=
00ff00,time,arch,wine,wine_color
=
eb5b5b,engine_color
=
eb5b5b,background_alpha
=
0.2,font_size
=
24,background_color
=
020202,text_color
=
ffffff,toggle_hud
=
Shift_R+F12,resolution,vkbasalt
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment