{"id":367369,"date":"2024-05-21T03:19:41","date_gmt":"2024-05-21T03:19:41","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=367369"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=367369","title":{"rendered":"<span>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c Steam \u0438\u0433\u0440\u044b \u0432 Proton c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Native Wayland<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/791570\/\" rel=\"Proton Wayland\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/lh\/k3\/mc\/lhk3mc59ms-cjwlcsan1lcmufus.jpeg\" alt=\"Proton Wayland\" data-src=\"https:\/\/habrastorage.org\/webt\/lh\/k3\/mc\/lhk3mc59ms-cjwlcsan1lcmufus.jpeg\" data-blurred=\"true\"\/><\/a><\/p>\n<p>  <\/p>\n<p><em>\u0418\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043a \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u044b \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c\u044e freepik.com.<\/em><\/p>\n<p>  <\/p>\n<p>\u0412 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/791562\/\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u043d\u0430\u0448\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c Wine \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Wayland \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0438\u0433\u0440\u0443 Overwatch 2. \u041d\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0433\u0435\u0439\u043c\u0435\u0440\u043e\u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <a href=\"https:\/\/timeweb.cloud\/blog\/v-marketplejse-po-poyavilis-kategorii\">\u0437\u0430\u043f\u0443\u0441\u043a \u0438\u0433\u0440<\/a> Steam, \u0438 \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u043c\u044b \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043c \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439. \u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u043d\u0430\u0448\u0435\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 Proton \u0431\u0443\u0434\u0435\u0442 \u0435\u0449\u0451 \u0438 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0438 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u043a\u043e\u0433\u0434\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 Proton \u0438 GE Proton Custom \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435, \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u044e\u0442 \u0441\u0432\u043e\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430. \u0422\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0447\u0443\u0442\u044c \u043b\u0443\u0447\u0448\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0438\u0437\u0431\u0430\u0432\u0438\u043c\u0441\u044f \u043e\u0442 \u0435\u0449\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0435\u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f.<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u0441 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0430 \u0441\u0442\u0430\u0442\u044c\u044f, \u0442\u043e \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 cut.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p>\u041c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 Proton, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 Proton \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0448\u0438\u0431\u043e\u043a \u0438\u0437-\u0437\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0433\u0440\u044f\u0437\u043d\u044b\u0445 \u0445\u0430\u043a\u043e\u0432 \u0432 \u043a\u043e\u0434\u0435 Wine. \u042d\u0442\u0438 \u0445\u0430\u043a\u0438 \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043e\u0434 Wine \u0438 \u043d\u0435 \u0440\u0435\u0434\u043a\u043e \u043e\u043d\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043e\u0447\u0435\u043d\u044c \u0431\u0435\u0437\u0430\u043b\u0430\u0431\u0435\u0440\u043d\u043e, \u0445\u0430\u043e\u0442\u0438\u0447\u043d\u043e \u0438 \u0433\u0434\u0435 \u043f\u043e\u043f\u0430\u043b\u043e \u0432 \u043a\u043e\u0434\u0435. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u044d\u0442\u0438\u0445 \u0445\u0430\u043a\u043e\u0432 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b, \u043d\u0435 \u043d\u0443\u0436\u043d\u044b \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0443 \u0438\u0433\u0440 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043b\u0438\u0448\u044c \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0445 \u0441\u0442\u0430\u0440\u044b\u0445 \u0438\u0433\u0440 \u0432 Steam.<\/p>\n<p>  <\/p>\n<h2 id=\"protoniruem-wine\">\u041f\u0440\u043e\u0442\u043e\u043d\u0438\u0440\u0443\u0435\u043c Wine<\/h2>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/qu\/-d\/ac\/qu-dac1_meebv4r-wrxndrgyum4.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/qu\/-d\/ac\/qu-dac1_meebv4r-wrxndrgyum4.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e Proton \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c Wine. \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u0438\u0441\u0442\u0435\u043c Steam \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0432\u043e\u0438 \u0444\u0430\u0439\u043b\u044b \u0432 <code>${HOME}\/.steam\/root<\/code>, \u043d\u043e \u0443 \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0431\u044b\u0442\u044c \u044d\u0442\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 <code>${HOME}\/.local\/share\/Steam<\/code>, \u0438\u043b\u0438 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0434\u0440\u0443\u0433\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0435 <code>STEAM_DIR<\/code> \u043d\u0430 \u0432\u0430\u0448 \u043f\u0443\u0442\u044c \u043a \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 Steam \u0432 bash \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 \u043d\u0438\u0436\u0435.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <a href=\"https:\/\/github.com\/ValveSoftware\/Proton\/blob\/proton_8.0\/toolmanifest_runtime.vdf\">\u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Proton<\/a> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"json\">\"manifest\" {   \"version\" \"2\"   \"commandline\" \"\/proton %verb%\"   \"require_tool_appid\" \"1628350\"   \"use_sessions\" \"1\"   \"compatmanager_layer_name\" \"proton\" }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0424\u0430\u0439\u043b \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c Steam \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Proton. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043f\u043e\u043b\u044f <code>require_tool_appid<\/code> \u0438 <code>use_sessions<\/code>, \u0442\u043e Proton \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 Steam. \u041c\u0438\u043d\u0443\u0441 \u0442\u0430\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 X11 \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u043d\u0430\u044e\u0442 \u043f\u0440\u043e Wayland. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u0430\u0448 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u0438\u0439\u0442\u0438 \u043a \u0432\u0438\u0434\u0443 \u043d\u0438\u0436\u0435, \u0447\u0442\u043e \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442 Steam \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043d\u0430\u0448\u0435\u0439 \u041e\u0421.<\/p>\n<p>  <\/p>\n<pre><code class=\"json\">\"manifest\" {   \"version\" \"2\"   \"commandline\" \"\/proton %verb%\" }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u0436\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 python \u0441\u043a\u0440\u0438\u043f\u0442 \u2014 <code>proton<\/code>, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c, \u0438 \u0431\u044b\u043b \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043c\u043d\u043e\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0432\u043e\u0435\u0433\u043e Proton \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Wayland, \u043f\u043b\u044e\u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u043f\u0446\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 Wine \u0441 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041e\u0442\u043b\u0438\u0447\u0438\u044f \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438, \u0441\u0440\u0430\u0432\u043d\u0438\u0432 \u0444\u0430\u0439\u043b\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u044b <code>diff<\/code>. \u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043e\u0442\u044b\u0449\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <a href=\"https:\/\/github.com\/ValveSoftware\/Proton\/blob\/proton_8.0\/proton\">proton<\/a>.<\/p>\n<p>  <\/p>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0441\u043a\u0440\u0438\u043f\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">#!\/usr\/bin\/bash  # \u0418\u043c\u044f \u043d\u0430\u0448\u0435\u0439 Proton \u0441\u0431\u043e\u0440\u043a\u0438. PROTON_NAME=\"ProtonWay-9.2\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b Steam. STEAM_DIR=\"${HOME:?}\/.steam\/root\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b. SOURCE_DIR=\"${HOME:?}\/code\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043d\u0430\u0448 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 Wine. WINE_DIR=\"${HOME:?}\/wine\"  # \u0415\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430, \u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434. set -euo pipefail  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e Proton, \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. if [ ! -d \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\" ]; then     mkdir -p \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\" fi  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e files \u0433\u0434\u0435 \u0431\u0443\u0434\u0443\u0442 \u0444\u0430\u0439\u043b\u044b \u043d\u0430\u0448\u0435\u0433\u043e Wine. if [ ! -d \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\" ]; then     mkdir -p \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\" fi  # \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b\u044b \u043d\u0430\u0448\u0435\u0433\u043e Wine. cp -rv \"${WINE_DIR:?}\/bin\" \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/bin\" cp -rv \"${WINE_DIR:?}\/lib\" \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib\" cp -rv \"${WINE_DIR:?}\/lib64\" \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib64\" cp -rv \"${WINE_DIR:?}\/share\" \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/share\"  # \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b \u0432\u0435\u0440\u0441\u0438\u0438 unix time + \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u043c\u044f. echo \"$(date +%s) ${PROTON_NAME:?}\" > \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/version\"  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442. cat &lt;&lt; EOF > \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/toolmanifest.vdf\" \"manifest\" {   \"version\" \"2\"   \"commandline\" \"\/proton %verb%\" }  EOF  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438. cat &lt;&lt; EOF > \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/compatibilitytool.vdf\" \"compatibilitytools\" {   \"compat_tools\"   {     \"###PROTON_NAME###\"     {       \"install_path\" \".\"       \"display_name\" \"###PROTON_NAME###\"       \"from_oslist\"  \"windows\"       \"to_oslist\"    \"linux\"     }   } }  EOF  sed -i \"s\/###PROTON_NAME###\/${PROTON_NAME:?}\/g\" \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/compatibilitytool.vdf\"  # \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c python \u0441\u043a\u0440\u0438\u043f\u0442\u044b Proton \u0438 \u043c\u0435\u043d\u044f\u0435\u043c \u0438\u043c\u044f \u0441\u0431\u043e\u0440\u043a\u0438. cp -vf \"${SOURCE_DIR:?}\/wine-wayland\/proton\/proton\" \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/proton\" cp -vf \"${SOURCE_DIR:?}\/wine-wayland\/proton\/settings.py\" \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/settings.py\" cp -vf \"${SOURCE_DIR:?}\/wine-wayland\/proton\/filelock.py\" \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/filelock.py\" sed -i \"s\/###PROTON_NAME###\/${PROTON_NAME:?}\/g\" \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/proton\" chmod +x \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/proton\"  # \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0430\u0448\u0438 dxvk, vkd3d-proton, nvapi. mkdir -p \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib\/wine\/dxvk\" mkdir -p \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib\/wine\/vkd3d-proton\" mkdir -p \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib\/wine\/nvapi\"  mkdir -p \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib64\/wine\/dxvk\" mkdir -p \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib64\/wine\/vkd3d-proton\" mkdir -p \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib64\/wine\/nvapi\"<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"ustanovka-dxvk-vkd3d-proton-nvapi\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 dxvk, vkd3d-proton, nvapi<\/h2>\n<p>  <\/p>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043c\u044b \u0441\u043a\u0430\u0447\u0430\u043b\u0438 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u0430\u043b\u0438 \u043d\u0443\u0436\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b\u044b <code>dxvk<\/code>, <code>vkd3d-proton<\/code>, <code>nvapi<\/code> \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0432\u0438\u0434\u0435\u043e\u043a\u0430\u0440\u0442\u044b Nvidia, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 <code>nvapi.dll<\/code>, <code>nvapi64.dll<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\"># \u0418\u043c\u044f \u043d\u0430\u0448\u0435\u0439 Proton \u0441\u0431\u043e\u0440\u043a\u0438. PROTON_NAME=\"ProtonWay-9.2\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b Steam. STEAM_DIR=\"${HOME:?}\/.steam\/root\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b. SOURCE_DIR=\"${HOME:?}\/code\"  # \u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c dxvk. cp -vf \"${SOURCE_DIR:?}\/dxvk-2.3\/x64\/\"*.dll \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib64\/wine\/dxvk\/\" cp -vf \"${SOURCE_DIR:?}\/dxvk-2.3\/x32\/\"*.dll \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib\/wine\/dxvk\/\" # \u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c vkd3d-proton. cp -vf \"${SOURCE_DIR:?}\/vkd3d-proton-2.11.1\/x64\/\"*.dll \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib64\/wine\/vkd3d-proton\/\" cp -vf \"${SOURCE_DIR:?}\/vkd3d-proton-2.11.1\/x86\/\"*.dll \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib\/wine\/vkd3d-proton\/\"  # \u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c dxvk-nvapi. cp -vf \"${SOURCE_DIR:?}\/dxvk-nvapi-v0.6.4\/x64\/\"*.dll \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib64\/wine\/nvapi\" cp -vf \"${SOURCE_DIR:?}\/dxvk-nvapi-v0.6.4\/x32\/\"*.dll \"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\/files\/lib\/wine\/nvapi\"<\/code><\/pre>\n<p>  <\/p>\n<h2 id=\"ustanovka-shriftov\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0448\u0440\u0438\u0444\u0442\u043e\u0432<\/h2>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b Proton \u043c\u043e\u0433 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0448\u0440\u0438\u0444\u0442\u044b \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0438\u0433\u0440, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0448\u0440\u0438\u0444\u0442\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <code>fonts<\/code> \u0432 <code>files\/share<\/code> \u043d\u0430\u0448\u0435\u0433\u043e Proton. \u0415\u0441\u043b\u0438 \u043c\u044b \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u044d\u0442\u0443 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0448\u0440\u0438\u0444\u0442\u0430\u043c\u0438, \u0442\u043e \u043d\u0430\u0448 Proton \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435. \u0422\u0430\u043a\u043e\u0432\u0430 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 Proton. \u0421\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u2014 \u044d\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u0448\u0440\u0438\u0444\u0442\u044b \u0438\u0437 GE Proton Custom, \u043d\u043e \u043c\u044b \u043d\u0435 \u0438\u0449\u0435\u043c \u043b\u0435\u0433\u043a\u0438\u0445 \u043f\u0443\u0442\u0435\u0439 \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0438\u0445 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u0414\u0430-\u0434\u0430, \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0438, \u043c\u044b \u0438\u043c\u0435\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0448\u0440\u0438\u0444\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0448\u0440\u0438\u0444\u0442\u043e\u0432: <code>Liberation Sans<\/code>, <code>Liberation Serif<\/code>, <code>Liberation Mono<\/code>, <code>Noto Sans<\/code>, \u0438\u0437\u043c\u0435\u043d\u044f\u044f \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0448\u0440\u0438\u0444\u0442\u043e\u0432. \u0414\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043d\u0435 \u0434\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 Windows \u0448\u0440\u0438\u0444\u0442\u044b, \u0438 \u043b\u0438\u0448\u044c \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0438\u0445 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c\u0438. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0431\u043e\u0439\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u044b, \u0438 \u0442\u0430\u043a\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Valve \u0432 <a href=\"https:\/\/github.com\/ValveSoftware\/Proton\/blob\/proton_8.0\/Makefile.in#L733\">Proton<\/a>. \u0412 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u043c\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u0445 \u0448\u0440\u0438\u0444\u0442\u043e\u0432 \u0434\u043b\u044f \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0433\u043e, \u044f\u043f\u043e\u043d\u0441\u043a\u043e\u0433\u043e, \u0438\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u0433\u043e, \u0430\u0440\u0430\u0431\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 Proton, \u043d\u043e \u0437\u0430\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0447\u0435\u0440\u0442\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0440\u0443\u0441\u0441\u043a\u043e-\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0445 \u0448\u0440\u0438\u0444\u0442\u043e\u0432, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a: \u0436\u0438\u0440\u043d\u044b\u0439, \u043a\u0443\u0440\u0441\u0438\u0432, \u0436\u0438\u0440\u043d\u044b\u0439-\u043a\u0443\u0440\u0441\u0438\u0432. Proton \u0438\u0445 \u043d\u0435 \u0432\u0441\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0438 \u0447\u0430\u0441\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c Regular \u0448\u0440\u0438\u0444\u0442\u043e\u043c. \u041d\u0430\u0448\u0438 \u0448\u0440\u0438\u0444\u0442\u044b \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0432\u0435\u0441\u0438\u0442\u044c \u0432 10 \u0440\u0430\u0437 \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c \u0432 Proton, \u0447\u0442\u043e \u0434\u0430\u0441\u0442 \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u0443\u044e \u0438\u0445 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0448\u0440\u0438\u0444\u0442\u043e\u0432 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 <code>fontforge<\/code> \u0438 python \u043c\u043e\u0434\u0443\u043b\u044c <code>fonttools<\/code>. \u0412 Fedora Linux \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo dnf install fontforge pip install fonttools<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0441\u043a\u0440\u0438\u043f\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">#!\/usr\/bin\/bash  # \u0418\u043c\u044f \u043d\u0430\u0448\u0435\u0439 Proton \u0441\u0431\u043e\u0440\u043a\u0438. PROTON_NAME=\"ProtonWay-9.2\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b Steam. STEAM_DIR=\"${HOME:?}\/.steam\/root\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b. SOURCE_DIR=\"${HOME:?}\/code\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0430 \u0448\u0440\u0438\u0444\u0442\u043e\u0432. BUILD_DIR=\"\/tmp\/build-fonts\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f Proton, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0448\u0440\u0438\u0444\u0442\u044b. INSTALL_DIR=\"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\"  FONTS_DIR=\"${SOURCE_DIR:?}\/proton\/fonts\" LIBERATION_SRCDIR=\"${FONTS_DIR:?}\/liberation-fonts\/src\" NOTO_SANS_SRCDIR=\"${FONTS_DIR:?}\/noto\"  # \u0415\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430, \u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434. set -euo pipefail  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0430, \u0435\u0441\u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0437\u0430\u043d\u043e\u0432\u043e. rm -fr \"${BUILD_DIR:?}\" mkdir -p \"${BUILD_DIR:?}\"  # \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0448\u0440\u0438\u0444\u0442\u044b: Arial, Times New Roman, Georgia, Courier New fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationSans-Regular.sfd\" \"Arial\" \"Arial\" \"Arial\" \"${BUILD_DIR:?}\/arial.ttf\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationSans-Bold.sfd\" \"Arial-Bold\" \"Arial\" \"Arial Bold\" \"${BUILD_DIR:?}\/arialbd.ttf\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationSans-Italic.sfd\" \"Arial-Italic\" \"Arial\" \"Arial Italic\" \"${BUILD_DIR:?}\/arialit.ttf\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationSans-BoldItalic.sfd\" \"Arial-BoldItalic\" \"Arial\" \"Arial Bold Italic\" \"${BUILD_DIR:?}\/arialbdit.ttf\"  fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationSerif-Regular.sfd\" \"TimesNewRoman\" \"Times New Roman\" \"Times New Roman\" \"${BUILD_DIR:?}\/times.ttf\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationSerif-Bold.sfd\" \"TimesNewRoman-Bold\" \"Times New Roman\" \"Times New Roman Bold\" \"${BUILD_DIR:?}\/timesbd.ttf\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationSerif-Italic.sfd\" \"TimesNewRoman-Italic\" \"Times New Roman\" \"Times New Roman Italic\" \"${BUILD_DIR:?}\/timesit.ttf\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationSerif-BoldItalic.sfd\" \"TimesNewRoman-BoldItalic\" \"Times New Roman\" \"Times New Roman Bold Italic\" \"${BUILD_DIR:?}\/timesbdit.ttf\"  fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationSerif-Regular.sfd\" \"Georgia\" \"Georgia\" \"Georgia\" \"${BUILD_DIR:?}\/georgia.ttf\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationSerif-Bold.sfd\" \"Georgia-Bold\" \"Georgia\" \"Georgia Bold\" \"${BUILD_DIR:?}\/georgiabd.ttf\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationSerif-Italic.sfd\" \"Georgia-Italic\" \"Georgia\" \"Georgia Italic\" \"${BUILD_DIR:?}\/georgiait.ttf\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationSerif-BoldItalic.sfd\" \"Georgia-BoldItalic\" \"Georgia\" \"Georgia Bold Italic\" \"${BUILD_DIR:?}\/georgiabdit.ttf\"  patch -Np1 -d \"${LIBERATION_SRCDIR:?}\" -i \"${FONTS_DIR:?}\/patches\/LiberationMono-Regular.patch\" -o \"${BUILD_DIR:?}\/LiberationMono-Regular.sfd\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${BUILD_DIR:?}\/LiberationMono-Regular.sfd\" \"CourierNew\" \"Courier New\" \"Courier New\" \"${BUILD_DIR:?}\/cour.ttf\" rm \"${BUILD_DIR:?}\/LiberationMono-Regular.sfd\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationMono-Bold.sfd\" \"CourierNew-Bold\" \"Courier New\" \"Courier New Bold\" \"${BUILD_DIR:?}\/courbd.ttf\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationMono-Italic.sfd\" \"CourierNew-Italic\" \"Courier New\" \"Courier New Italic\" \"${BUILD_DIR:?}\/courit.ttf\" fontforge -quiet -script \"${FONTS_DIR:?}\/scripts\/generatefont.pe\" \\     \"${LIBERATION_SRCDIR:?}\/LiberationMono-BoldItalic.sfd\" \"CourierNew-BoldItalic\" \"Courier New\" \"Courier New Bold Italic\" \"${BUILD_DIR:?}\/courbdit.ttf\"  # \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0448\u0440\u0438\u0444\u0442\u043e\u0432 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 Noto Sans \u0432 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b, \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 unicode \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u0448\u0440\u0438\u0444\u0442\u0430\u0445. cp -v \"${FONTS_DIR:?}\/scripts\/merge.py\" \"${BUILD_DIR:?}\/merge.py\" sed -i \"s\/ignore_missing_unicodes=False\/ignore_missing_unicodes=True\/\" \"${BUILD_DIR:?}\/merge.py\"  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0448\u0440\u0438\u0444\u0442 Microsoft Sans Serif \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Noto Sans. \"${BUILD_DIR:?}\/merge.py\" \\     \"${NOTO_SANS_SRCDIR:?}\/NotoSans-Regular.ttf\" \\     \"${NOTO_SANS_SRCDIR:?}\/NotoSansMath-Regular.ttf\" \\     \"${NOTO_SANS_SRCDIR:?}\/NotoSansMono-Regular.ttf\" \\     \"${NOTO_SANS_SRCDIR:?}\/NotoSansSymbols-Regular.ttf\" \\     \"${NOTO_SANS_SRCDIR:?}\/NotoSansSymbols2-Regular.ttf\" \\     \"MicrosoftSansSerif\" \"Microsoft Sans Serif\" \"Regular\" \\     \"${FONTS_DIR:?}\/ranges\/micross\" \"${BUILD_DIR:?}\/micross.ttf\"  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0448\u0440\u0438\u0444\u0442\u0430 Arial \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Noto Sans. mkdir -p \"${BUILD_DIR:?}\/alt\" \"${BUILD_DIR:?}\/merge.py\" \\     \"${NOTO_SANS_SRCDIR:?}\/NotoSans-Regular.ttf\" \\     \"${NOTO_SANS_SRCDIR:?}\/NotoSansMath-Regular.ttf\" \\     \"${NOTO_SANS_SRCDIR:?}\/NotoSansMono-Regular.ttf\" \\     \"${NOTO_SANS_SRCDIR:?}\/NotoSansSymbols-Regular.ttf\" \\     \"${NOTO_SANS_SRCDIR:?}\/NotoSansSymbols2-Regular.ttf\" \\     \"Arial\" \"Arial\" \"Regular\" \\     \"${FONTS_DIR:?}\/ranges\/arial\" \"${BUILD_DIR:?}\/alt\/arial.ttf\"  rm -vf \"${BUILD_DIR:?}\/merge.py\"  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0448\u0440\u0438\u0444\u0442\u043e\u0432 \u0432 \u043d\u0430\u0448\u0435\u043c Proton. if [ ! -d \"${INSTALL_DIR:?}\/files\/share\/fonts\" ]; then     mkdir -p \"${INSTALL_DIR:?}\/files\/share\/fonts\" fi  # \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448\u0438 \u0448\u0440\u0438\u0444\u0442\u044b. cp -rv ${BUILD_DIR:?}\/* \"${INSTALL_DIR:?}\/files\/share\/fonts\/\"  # \u041e\u0447\u0438\u0449\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441\u0431\u043e\u0440\u043a\u0438. rm -fr \"${BUILD_DIR:?}\"<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u0442\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u043d\u0430\u0448\u0438 \u0448\u0440\u0438\u0444\u0442\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 <code>files\/share\/fonts<\/code>.<\/p>\n<p>  <\/p>\n<h2 id=\"sborka-lsteamclient-i-steam_helper\">\u0421\u0431\u043e\u0440\u043a\u0430 lsteamclient \u0438 steam_helper<\/h2>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0434\u0435\u0440\u0435\u0432\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0444\u0430\u0439\u043b\u044b, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c <code>lsteamclient<\/code> \u0438 <code>steam_helper<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0433\u0440. \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043d\u0438\u0436\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">#!\/usr\/bin\/bash  # \u0418\u043c\u044f \u043d\u0430\u0448\u0435\u0439 Proton \u0441\u0431\u043e\u0440\u043a\u0438. PROTON_NAME=\"ProtonWay-9.2\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b Steam. STEAM_DIR=\"${HOME:?}\/.steam\/root\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043d\u0430\u0448 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 Wine. WINE_DIR=\"${HOME:?}\/wine\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b. SOURCE_DIR=\"${HOME:?}\/code\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0430. BUILD_DIR=\"\/tmp\/build-proton\" # \u0424\u043b\u0430\u0433\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 64 \u0431\u0438\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 lsteamclient \u0438 steam_helper. BUILD_CFLAGS=\"-march=native -mtune=native\" # \u0424\u043b\u0430\u0433\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 32 \u0431\u0438\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 lsteamclient \u0438 steam_helper. BUILD_CFLAGS_32=\"-mtune=native\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f Proton, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c lsteamclient \u0438 steam_helper. INSTALL_DIR=\"${STEAM_DIR:?}\/compatibilitytools.d\/${PROTON_NAME:?}\"  # \u0415\u0441\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430, \u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434. set -euo pipefail  # \u0421\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u0432\u0441\u0435 \u0444\u043b\u0430\u0433\u0438 \u0441\u0431\u043e\u0440\u043a\u0438, \u0435\u0441\u043b\u0438 \u043d\u0430\u0448\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b. unset CPPFLAGS unset CFLAGS unset CXXFLAGS unset LDFLAGS  # \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 PATH \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e bin \u043d\u0430\u0448\u0435\u0433\u043e Wine. \u042d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0431\u043e\u0440\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 Wine. export PATH=\"${WINE_DIR:?}\/bin:${PATH}\"  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0430, \u0435\u0441\u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u2014 \u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0437\u0430\u043d\u043e\u0432\u043e. rm -fr \"${BUILD_DIR:?}\" mkdir -p \"${BUILD_DIR:?}\"  # \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0444\u043b\u0430\u0433\u0438 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 32 \u0431\u0438\u0442\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. export CFLAGS=\"${BUILD_CFLAGS_32} -Wno-attributes\" export CXXFLAGS=\"${BUILD_CFLAGS_32} -fpermissive -Wno-attributes\" MAKEFLAGS=\"--nosource-fix --nolower-include --nodlls --nomsvcrt -I${SOURCE_DIR:?}\/wine\/include -I${SOURCE_DIR:?}\/wine\/include\/wine\"  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 32 \u0431\u0438\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 lsteamclient, \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0435\u0435. rm -fr \"${BUILD_DIR:?}\/lsteamclient.win32\" cp -r \"${SOURCE_DIR:?}\/proton\/lsteamclient\" \"${BUILD_DIR:?}\/lsteamclient.win32\" cd \"${BUILD_DIR:?}\/lsteamclient.win32\"  # \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c lsteamclient. winemaker --wine32 --dll ${MAKEFLAGS:?} \\     -DSTEAM_API_EXPORTS \\     -Dprivate=public \\     -Dprotected=public \\     .  sed -re 's@_LDFLAGS=@_LDFLAGS= -static-libgcc -static-libstdc++ -ldl @' -i Makefile make -e CC=\"winegcc -m32\" CXX=\"wineg++ -m32 -std=gnu++11\" -j$(nproc)  # \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c fake dll \u0434\u043b\u044f lsteamclient. winebuild --dll --fake-module -m32 -o lsteamclient.dll.fake -E lsteamclient.spec mv lsteamclient.dll.fake lsteamclient.dll  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 32 \u0431\u0438\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 steam_helper, \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0435\u0435. rm -fr \"${BUILD_DIR:?}\/steam.win32\" cp -r \"${SOURCE_DIR:?}\/proton\/steam_helper\" \"${BUILD_DIR:?}\/steam.win32\" cd \"${BUILD_DIR:?}\/steam.win32\"  # \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c steam_helper. winemaker --wine32 --guiexe ${MAKEFLAGS:?} \\     -I${SOURCE_DIR:?}\/proton\/openvr\/headers \\     -I${SOURCE_DIR:?}\/proton\/lsteamclient\/steamworks_sdk_142 \\     .  make -e CC=\"winegcc -m32\" CXX=\"wineg++ -m32\" LIBRARIES=\"-L${SOURCE_DIR:?}\/proton\/steam_helper\/32 -static-libgcc -static-libstdc++ -lsteam_api -lshlwapi -lmsi -lole32 -ldl\" -j$(nproc)  # \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c fake exe \u0434\u043b\u044f steam_helper touch steam.spec winebuild --exe --fake-module -m32 -o steam.exe -E steam.spec  # \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0444\u043b\u0430\u0433\u0438 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 64 \u0431\u0438\u0442\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. export CFLAGS=\"${BUILD_CFLAGS} -Wno-attributes\" export CXXFLAGS=\"${BUILD_CFLAGS} -fpermissive -Wno-attributes\"  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 32 \u0431\u0438\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 lsteamclient, \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0435\u0435. rm -fr \"${BUILD_DIR:?}\/lsteamclient.win64\" cp -r \"${SOURCE_DIR:?}\/proton\/lsteamclient\" \"${BUILD_DIR:?}\/lsteamclient.win64\" cd \"${BUILD_DIR:?}\/lsteamclient.win64\"  # \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c lsteamclient. winemaker --dll ${MAKEFLAGS:?} \\     -DSTEAM_API_EXPORTS \\     -Dprivate=public \\     -Dprotected=public \\     .  sed -re 's@_LDFLAGS=@_LDFLAGS= -static-libgcc -static-libstdc++ -ldl @' -i Makefile make -e CC=\"winegcc -m64\" CXX=\"wineg++ -m64 -std=gnu++11\" -j$(nproc)   # \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c fake dll \u0434\u043b\u044f lsteamclient. winebuild --dll --fake-module -m64 -o lsteamclient.dll.fake -E lsteamclient.spec mv lsteamclient.dll.fake lsteamclient.dll  # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 64 \u0431\u0438\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 steam_helper, \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0435\u0435. rm -fr \"${BUILD_DIR:?}\/steam.win64\" cp -r \"${SOURCE_DIR:?}\/proton\/steam_helper\" \"${BUILD_DIR:?}\/steam.win64\" cd \"${BUILD_DIR:?}\/steam.win64\"  # \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c steam_helper. winemaker --guiexe ${MAKEFLAGS:?} \\     -I${SOURCE_DIR:?}\/proton\/openvr\/headers \\     -I${SOURCE_DIR:?}\/proton\/lsteamclient\/steamworks_sdk_142 \\     .  make -e CC=\"winegcc -m64\" CXX=\"wineg++ -m64\" LIBRARIES=\"-L${SOURCE_DIR:?}\/proton\/steam_helper\/64 -static-libgcc -static-libstdc++ -lsteam_api -lshlwapi -lmsi -lole32 -ldl\" -j$(nproc)  # \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c fake exe \u0434\u043b\u044f steam_helper. touch steam.spec winebuild --exe --fake-module -m64 -o steam.exe -E steam.spec  # \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. cp -v \"${BUILD_DIR:?}\/lsteamclient.win32\/lsteamclient.dll.so\" \"${INSTALL_DIR}\/files\/lib\/wine\/i386-unix\/lsteamclient.dll.so\" cp -v \"${BUILD_DIR:?}\/lsteamclient.win32\/lsteamclient.dll\" \"${INSTALL_DIR}\/files\/lib\/wine\/i386-windows\/lsteamclient.dll\" cp -v \"${BUILD_DIR:?}\/steam.win32\/steam.exe.so\" \"${INSTALL_DIR}\/files\/lib\/wine\/i386-unix\/steam.exe.so\" cp -v \"${BUILD_DIR:?}\/steam.win32\/steam.exe\" \"${INSTALL_DIR}\/files\/lib\/wine\/i386-windows\/steam.exe\" cp -v \"${BUILD_DIR:?}\/steam.win32\/32\/libsteam_api.so\" \"${INSTALL_DIR}\/files\/lib\/libsteam_api.so\"  cp -v \"${BUILD_DIR:?}\/lsteamclient.win64\/lsteamclient.dll.so\" \"${INSTALL_DIR}\/files\/lib64\/wine\/x86_64-unix\/lsteamclient.dll.so\" cp -v \"${BUILD_DIR:?}\/lsteamclient.win64\/lsteamclient.dll\" \"${INSTALL_DIR}\/files\/lib64\/wine\/x86_64-windows\/lsteamclient.dll\" cp -v \"${BUILD_DIR:?}\/steam.win64\/steam.exe.so\" \"${INSTALL_DIR}\/files\/lib64\/wine\/x86_64-unix\/steam.exe.so\" cp -v \"${BUILD_DIR:?}\/steam.win64\/steam.exe\" \"${INSTALL_DIR}\/files\/lib64\/wine\/x86_64-windows\/steam.exe\" cp -v \"${BUILD_DIR:?}\/steam.win64\/64\/libsteam_api.so\" \"${INSTALL_DIR}\/files\/lib64\/libsteam_api.so\"  # \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441\u0431\u043e\u0440\u043a\u0438. rm -fr \"${BUILD_DIR:?}\/steam.win32\" rm -fr \"${BUILD_DIR:?}\/steam.win64\" rm -fr \"${BUILD_DIR:?}\/lsteamclient.win32\" rm -fr \"${BUILD_DIR:?}\/lsteamclient.win64\" rm -fr \"${BUILD_DIR:?}\"<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c Steam. \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043c\u0435\u043d\u044e <code>Steam->Settings<\/code>, \u043f\u0443\u043d\u043a\u0442 <code>Compatibility<\/code>.<br \/>  \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438 \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043d\u0430\u0448 Proton \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c Steam.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/49\/c6\/ao\/49c6aouiwhduizguvzwq3px5-vm.png\" data-src=\"https:\/\/habrastorage.org\/webt\/49\/c6\/ao\/49c6aouiwhduizguvzwq3px5-vm.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0438\u0433\u0440\u0443. \u041c\u043d\u043e\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b \u0438\u0433\u0440\u044b: Overwatch 2, Aimbeast, KovaaK&#8217;s, Apex Legends \u0438 \u044d\u0442\u043e \u0438\u0433\u0440\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0433\u0440\u0430\u044e \u0441\u0430\u043c.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438\u0433\u0440\u044b, \u0447\u0442\u043e\u0431\u044b Proton-Wine \u043c\u043e\u0433 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Wayland \u0434\u0440\u0430\u0439\u0432\u0435\u0440, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440. \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0437\u043d\u0430\u0442\u044c ID \u0438\u0433\u0440\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0436\u043c\u0435\u043c \u041f\u041a\u041c \u043f\u043e \u0438\u0433\u0440\u0435 \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c <code>Properties<\/code>, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0443\u043d\u043a\u0442 <code>Updates<\/code>, \u0441\u043c\u043e\u0442\u0440\u0438\u043c <code>App ID<\/code>. \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043d\u0430\u0448 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440. \u0414\u043b\u044f Aimbeast \u043e\u043d \u0440\u0430\u0432\u0435\u043d <code>1100990<\/code>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/lh\/4p\/71\/lh4p71i9zgyhkvk7yrxzzbchwss.png\" data-src=\"https:\/\/habrastorage.org\/webt\/lh\/4p\/71\/lh4p71i9zgyhkvk7yrxzzbchwss.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0432 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0435 \u0438\u0433\u0440\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>winecfg<\/code> \u0438\u043b\u0438 <code>regedit<\/code>, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>proton runinprefix<\/code>,<br \/>  \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u044c\u043c\u0435\u0442 \u043f\u0443\u0442\u0438 \u0438\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 <code>STEAM_COMPAT_DATA_PATH<\/code>, <code>STEAM_COMPAT_INSTALL_PATH<\/code>, <code>STEAM_COMPAT_LIBRARY_PATHS<\/code>, <code>STEAM_COMPAT_CLIENT_INSTALL_PATH<\/code> \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443.<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\"># \u041f\u0443\u0442\u044c \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f Wine \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u0438\u0433\u0440\u044b. export STEAM_COMPAT_DATA_PATH=\"${HOME:?}\/.local\/share\/Steam\/steamapps\/compatdata\/1100990\" # \u041f\u0443\u0442\u044c \u043a\u0443\u0434\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0438\u0433\u0440\u0430. export STEAM_COMPAT_INSTALL_PATH=\"${HOME:?}\/.local\/share\/Steam\/steamapps\/common\/Aimbeast\" # \u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f steamapps \u0432 Steam. export STEAM_COMPAT_LIBRARY_PATHS=\"${HOME:?}\/.local\/share\/Steam\/steamapps\" # \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f Steam. export STEAM_COMPAT_CLIENT_INSTALL_PATH=\"${HOME:?}\/.local\/share\/Steam\"  # \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u043d\u0430\u0448\u0435\u0433\u043e Proton. cd \"${HOME:?}\/.steam\/root\/compatibilitytools.d\/ProtonWay-9.2\"  # \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440. .\/proton runinprefix reg.exe add HKCU\\\\Software\\\\Wine\\\\Drivers \/v Graphics \/d x11,wayland .\/proton runinprefix reg.exe add HKCU\\\\Software\\\\Wine\\\\Wayland\\ Driver \/v unaccelerated_pointer \/t REG_DWORD \/d 1<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0438\u0433\u0440\u044b, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0434\u0435\u043b\u0430\u043b\u0438 \u044d\u0442\u043e \u0440\u0430\u043d\u0435\u0435.<\/p>\n<p>  <\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 <code>\"WAYLAND\": \"1\"<\/code> \u0432 <code>settings.py<\/code> \u043d\u0430\u0448\u0435\u0433\u043e Proton, \u0447\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442 Wayland \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0438\u0433\u0440, \u0438\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438\u0433\u0440\u044b <code>DISPLAY=\"\" %command%<\/code> \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0438\u0433\u0440\u044b. \u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a \u0438\u0433\u0440 \u0441 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 <code>\"REALTIME\": \"1\"<\/code> \u0438\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. \u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 <code>settings.py<\/code>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/wr\/bl\/3m\/wrbl3m6ineksr1azlvgk48vhpfy.png\" data-src=\"https:\/\/habrastorage.org\/webt\/wr\/bl\/3m\/wrbl3m6ineksr1azlvgk48vhpfy.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0438\u0433\u0440\u0443 \u0438 \u043d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u0435\u0439 \u0432 Wayland.<\/p>\n<p>  <\/p>\n<blockquote><p>\u0418\u0433\u0440\u0443 Apex Legends \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 Direct X 12, \u0442\u0430\u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0433\u0440\u044b \u043b\u0443\u0447\u0448\u0435. \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 <code>%command% -eac_launcher_settings SettingsDX12.json<\/code>. \u0422\u0430\u043a \u0436\u0435 \u044f \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0442\u0447\u0438 NtSync \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438.<\/p><\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/6r\/ev\/z5\/6revz5g7uufc-3o2okyzll1uuju.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/6r\/ev\/z5\/6revz5g7uufc-3o2okyzll1uuju.jpeg\" data-blurred=\"true\"\/><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u044e, \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 Wine \u0438 Proton. \u041c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0438\u0433\u0440\u044b, \u043d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u043f\u043b\u0430\u0432\u043d\u043e\u0439 \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u0432 Wayland. \u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u0430\u0448 \u043f\u0443\u0442\u044c \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0438 \u0432\u044b \u043f\u043e\u0439\u0434\u0435\u0442\u0435 \u0434\u0430\u043b\u044c\u0448\u0435, \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0435\u0448\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 Wine \u0438 Proton.<\/p>\n<p>  <\/p>\n<blockquote><p>P. S. \u0414\u043b\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0430 \u043e\u0433\u0440\u043e\u043c\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044e \u0440\u0430\u0431\u043e\u0442\u044b Proton, \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u0430\u0442\u0447\u0438 \u0432 Wine 9.0, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u044b. \u0422\u0430\u043a\u0436\u0435 \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u0443\u0442\u0438 \u0431\u044b\u043b\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0435\u043d\u043e \u043a\u0443\u0447\u0430 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0448\u043b\u043e \u043d\u0435 \u043c\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438 \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0447\u0435\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c, \u0433\u0434\u0435 \u0434\u0430\u043d\u044b \u0443\u0436\u0435 \u043f\u043e\u043b\u0443\u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0434\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435!<\/p><\/blockquote>\n<p>  <\/p>\n<hr\/>\n<p>  <\/p>\n<p><a href=\"https:\/\/timeweb.cloud\/?i=106909\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/b5\/pj\/of\/b5pjofdoxth14ro-rjsrn7sbmiy.png\" data-src=\"https:\/\/habrastorage.org\/webt\/b5\/pj\/of\/b5pjofdoxth14ro-rjsrn7sbmiy.png\"\/><\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/791570\/\"> https:\/\/habr.com\/ru\/articles\/791570\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/791570\/\" rel=\"Proton Wayland\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/lh\/k3\/mc\/lhk3mc59ms-cjwlcsan1lcmufus.jpeg\" alt=\"Proton Wayland\" data-src=\"https:\/\/habrastorage.org\/webt\/lh\/k3\/mc\/lhk3mc59ms-cjwlcsan1lcmufus.jpeg\" data-blurred=\"true\"\/><\/a><\/p>\n<p>  <\/p>\n<p><em>\u0418\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043a \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u044b \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c\u044e freepik.com.<\/em><\/p>\n<p>  <\/p>\n<p>\u0412 <a href=\"https:\/\/habr.com\/ru\/companies\/timeweb\/articles\/791562\/\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u043d\u0430\u0448\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c Wine \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Wayland \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0438\u0433\u0440\u0443 Overwatch 2. \u041d\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0433\u0435\u0439\u043c\u0435\u0440\u043e\u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <a href=\"https:\/\/timeweb.cloud\/blog\/v-marketplejse-po-poyavilis-kategorii\">\u0437\u0430\u043f\u0443\u0441\u043a \u0438\u0433\u0440<\/a> Steam, \u0438 \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u043c\u044b \u043d\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043c \u0441\u0442\u043e\u0440\u043e\u043d\u043e\u0439. \u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u043d\u0430\u0448\u0435\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 Proton \u0431\u0443\u0434\u0435\u0442 \u0435\u0449\u0451 \u0438 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0438 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u043a\u043e\u0433\u0434\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 Proton \u0438 GE Proton Custom \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435, \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u044e\u0442 \u0441\u0432\u043e\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430. \u0422\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0447\u0443\u0442\u044c \u043b\u0443\u0447\u0448\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0438\u0437\u0431\u0430\u0432\u0438\u043c\u0441\u044f \u043e\u0442 \u0435\u0449\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0435\u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0441\u043b\u043e\u044f.<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u0441 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0430 \u0441\u0442\u0430\u0442\u044c\u044f, \u0442\u043e \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 cut.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-367369","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/367369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=367369"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/367369\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=367369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=367369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=367369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}