From 01324836e84ea0b7c63800c4e080e4a968d58806 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年6月16日 01:38:08 +0800 Subject: [PATCH 01/34] TakoTakoo is coming. --- .gitignore | 1 + .vscode/settings.json | 4 + LICENSE | 427 ++++++++ README.md | 38 + docs/.nojekyll | 0 docs/README.md | 38 + docs/_404.md | 3 + docs/_navbar.md | 3 + docs/_sidebar.md | 33 + docs/about.md | 28 + docs/advanced/beAdmin.md | 184 ++++ docs/advanced/beauty.md | 98 ++ docs/advanced/transparentProxy.md | 117 +++ docs/advanced/troubleshooting.md | 69 ++ docs/advanced/undervoltage.md | 73 ++ docs/arch.png | Bin 0 -> 4144 bytes docs/arch.svg | 194 ++++ docs/arch_og.png | Bin 0 -> 2641 bytes docs/arch_seo.png | Bin 0 -> 67114 bytes docs/contribution.md | 36 + docs/exclusive/code.md | 53 + docs/exclusive/media.md | 72 ++ docs/index.html | 197 ++++ docs/play&office/android.md | 77 ++ docs/play&office/media.md | 36 + docs/play&office/office.md | 93 ++ docs/play&office/play.md | 175 ++++ docs/postscript.md | 43 + docs/rookie/DE&App.md | 214 ++++ docs/rookie/archlinux_pre_install.md | 45 + docs/rookie/basic_install.md | 280 ++++++ docs/rookie/fxckGFW.md | 100 ++ docs/rookie/graphic_driver.md | 163 ++++ docs/uk/README.md | 3 + docs/uk/_sidebar.md | 5 + docs/uk/rookie/basic_install.md | 1 + package.json | 17 + yarn.lock | 1343 ++++++++++++++++++++++++++ 38 files changed, 4263 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/settings.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 docs/.nojekyll create mode 100644 docs/README.md create mode 100644 docs/_404.md create mode 100644 docs/_navbar.md create mode 100644 docs/_sidebar.md create mode 100644 docs/about.md create mode 100644 docs/advanced/beAdmin.md create mode 100644 docs/advanced/beauty.md create mode 100644 docs/advanced/transparentProxy.md create mode 100644 docs/advanced/troubleshooting.md create mode 100644 docs/advanced/undervoltage.md create mode 100644 docs/arch.png create mode 100644 docs/arch.svg create mode 100644 docs/arch_og.png create mode 100644 docs/arch_seo.png create mode 100644 docs/contribution.md create mode 100644 docs/exclusive/code.md create mode 100644 docs/exclusive/media.md create mode 100644 docs/index.html create mode 100644 docs/play&office/android.md create mode 100644 docs/play&office/media.md create mode 100644 docs/play&office/office.md create mode 100644 docs/play&office/play.md create mode 100644 docs/postscript.md create mode 100644 docs/rookie/DE&App.md create mode 100644 docs/rookie/archlinux_pre_install.md create mode 100644 docs/rookie/basic_install.md create mode 100644 docs/rookie/fxckGFW.md create mode 100644 docs/rookie/graphic_driver.md create mode 100644 docs/uk/README.md create mode 100644 docs/uk/_sidebar.md create mode 100644 docs/uk/rookie/basic_install.md create mode 100644 package.json create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1b6457c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode" +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..cc3e245 --- /dev/null +++ b/LICENSE @@ -0,0 +1,427 @@ +Attribution-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-ShareAlike 4.0 International Public +License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License ("Public +License"). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and +conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + l. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + m. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + + including for purposes of Section 3(b); and + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the "Licensor." The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e708ea7 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +

+[画像:ArchLinuxStudio_ArchLinuxTutorial] +
+

Arch Linux 安装使用教程

+每月实时更新!本书包含从 archlinux安装,科学上网,翻墙,到显卡驱动,日常软件如 QQ 和微信,另附媒体制作,编程等你可能需要的全部内容。让 Arch Linux 成为你的常用系统吧! +
+提供在线网页文档,承诺健在即更新。 +

+ +[![Badge](https://img.shields.io/badge/link-ArchLinuxTutorial-%230088cc.svg)](https://archlinuxstudio.github.io/ArchLinuxTutorial) +[![Join telegram community and chat about arch linux](https://img.shields.io/discord/628978428019736619?label=&logo=telegram&logoColor=ffffff&color=7389D8&labelColor=6A7EC2&cacheSeconds=60)](https://t.me/kdwu1fan) +[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FArchLinuxStudio%2FArchLinuxTutorial&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com) +[![License: CC BY-SA 4.0](https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-sa/4.0/) +[![Lines](https://img.shields.io/tokei/lines/github/ArchLinuxStudio/ArchLinuxTutorial)](https://img.shields.io/tokei/lines/github/ArchLinuxStudio/ArchLinuxTutorial) +[![lastcommit](https://img.shields.io/github/last-commit/ArchLinuxStudio/ArchLinuxTutorial)](https://img.shields.io/github/last-commit/ArchLinuxStudio/ArchLinuxTutorial) + + + +## [阅读地址](https://ArchLinuxStudio.github.io/ArchLinuxTutorial/#/) + +为推动自由软件运动而撰写的 ArchLinux 中文教程。你可以通过本教程学会: + +- Linux 下的翻墙与科学上网设置 +- ArchLinux 的安装与 KDE 桌面环境的安装 +- Linux 的相关知识 +- 中国用户常用的软件安装与配置 +- 特定领域,如媒体制作、编程等软件与环境的配置 + +## 配套视频分 P 列表 WIP + +有第三方视频作者为本教程制作了讲解视频,欢迎与文档对照收看,效果更好,效率更高。视频可能出现更新不及时的情况,如果遇到分歧,请以文档为准。 + +- [1:GNU/Linux 与自由软件运动](https://www.bilibili.com/video/BV1dB4y1T7Zb/) +- [2:安装前的准备](https://www.bilibili.com/video/BV1V64y1d7N7/) + +## Star 历史 + +[![Stargazers over time](https://starchart.cc/ArchLinuxStudio/ArchLinuxTutorial.svg)](https://starchart.cc/ArchLinuxStudio/ArchLinuxTutorial) diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..f6086bc --- /dev/null +++ b/docs/README.md @@ -0,0 +1,38 @@ +# Arch Linux 安装使用教程 - ArchTutorial - Arch Linux Studio + +Arch Linux 安装使用教程,每月实时更新!包含从 archlinux 安装,科学上网,翻墙,显卡驱动,日常软件如 QQ 和微信,另附媒体制作,编程等你可能需要的全部内容。让 Arch Linux 成为你的常用系统吧! + +本书提供多年使用 Linux 的一些经验,并教与需要的人。与 Linux 密不可分的另一部分: [GNU](https://www.gnu.org/home.zh-cn.html) +新同学请确保你已经按照步骤完成了`新手上路`章节中的全部内容后再向下阅读,否则可能会出现问题。 + +- 本书特点 + - Linux 二次元电报交流群:[篝ノ雾枝的咕咕小屋](https://t.me/kdwu1fan)。 + - 无废话,只给出一套对于大多数人较为合适的路线,不会面面俱到。本书是 tutorial,不是 reference,定位与 wiki.archlinux.org 不同。 + - 本书使用 docsify 以及 gitalk 开发,并且网站源码全部开源,可放心留言讨论。 + - 本书会持续更新。每月随时根据最新 arch linux 动态更新。[鼓励志愿者提交更新](/contribution.md)。 + - 如有必要,相关位置都会贴上 arch linux 相关官方文档作为参考。 + +#### 为什么使用 Linux? + +简单来说,现在世界上流行的 PC 操作系统有三个,Windows,Linux 与 macOS。 + +如果你是计算机相关专业的学生或者从业者,非常建议你使用 Linux 作为自己的日常系统。在使用 Linux 系统的过程中,可以无形中接触到各个方面的计算机知识,并且在未来的工作中也会为你带来相关方面的优势。 macOS 在一些方面(即大致为 BSD 与 GNU/Linux 各方面的区别 )与 Linux 的操作并不同,并且由于其封闭的特性,个人不建议使用。Windows 在很多编程环境的配制过程中异常痛苦,且会出现各种各样的问题,强烈不建议使用 Windows 进行编程(除非你学的就是 Windows 系统编程)。 + +更重要的是,GNU/Linux 是自由软件运动的相关重要产物。[自由软件运动(free software movement)](https://zh.wikipedia.org/wiki/%E8%87%AA%E7%94%B1%E8%BD%AF%E4%BB%B6%E8%BF%90%E5%8A%A8)拒绝专有软件并推广自由软件,它的终极目标在于解放网络世界中的每个人——即每个电脑用户。每个人都应拥有完全掌控所运行软件的权利。[自由软件](https://www.gnu.org/philosophy/free-sw.zh-cn.html)有如下四项原则: + +- 自由度 0:无论用户出于何种目的,必须可以按照用户意愿,自由地运行该软件。 +- 自由度 1:用户可以自由地学习并修改该软件,以此来帮助用户完成用户自己的计算。作为前提,用户必须可以访问到该软件的源代码。 +- 自由度 2:用户可以自由地分发该软件的拷贝,这样就可以助人。 +- 自由度 3:用户可以自由地分发该软件修改后的拷贝。借此,用户可以把改进后的软件分享给整个社区令他人也从中受益。作为前提,用户必须可以访问到该软件的源代码。 + +如果你只是一个普通用户,你一定见识过没有经过你的授权,电脑被装上了成堆的流氓软件的类似经历。专有软件不仅在各个维度强奸着用户,更包含着难以想象的恶意功能。用户的数据,隐私等重要信息会轻而易举被大公司们收集走,并加以滥用,这成为业内公开的秘密已是不争的事实。在专用软件有同类的自由软件替代时,强烈建议你迁移至自由软件。本书会同时记录专有软件与自由软件,因为如果完全摒弃专有软件,一定会直接将很多人阻挡在 linux 之外,这不是我们所希望的,我们希望先将更多人接纳到 GNU/Linux 中,至少这是踏出的第一步。但这并不代表我们支持使用专有软件,我们希望你至少可以先踏入 linux,逐渐使用自由软件替代专有软件。专有软件在本书中仅作简要记录,不会详细描述,因为我们不希望你长期依赖于它。专有软件在本书中会被角标专有或描述额外标记。如果你是有能力的开发者,更希望你可以开发出替代某些专有软件的自由软件。 + +最后,如果你想尝试完全免费的系统,或是喜欢探索充满新鲜与挑战的事物,Linux 也是你不可错过的体验。 + +#### 为什么使用 Arch Linux? + +最重要的,Arch Linux 的软件包是最新的,这在日常使用中非常必要,你可以第一时间享受到新软件的特性,而不用烦心于升级软件时的过旧依赖的问题。其提供的软件包可以让你轻松安装使用,而不用自行编译。Arch Linux 在灵活与易用两方面达到了完美的平衡。 + +Arch Linux 可以以超高的自由度来定制自己的系统,并且其拥有最完善的[文档](https://wiki.archlinux.org/index.php/Main_page),使得绝大多数问题都可以通过查看官方文档的方式解决。正是由于其软件更新的策略的激进,就使得用户必须常常对系统进行更新,如果你不能经常照顾系统升级的话,也许你不应该使用 Arch Linux。较长时间段内没有升级可能会造成各种问题(俗称 `滚挂了`),虽然大多数问题可以通过救援手段事后补救,但还是常常更新得好。同时,关注 Arch Linux 的[新闻列表](https://archlinux.org/news/)可以帮助你得知最新的升级注意事项。 + + diff --git a/docs/_404.md b/docs/_404.md new file mode 100644 index 0000000..e596630 --- /dev/null +++ b/docs/_404.md @@ -0,0 +1,3 @@ +# 404 + +你所访问的页面目前并不存在,你可以尝试搜索相关内容。或者如果有必要,联系提交 PR 以创建这个页面。 diff --git a/docs/_navbar.md b/docs/_navbar.md new file mode 100644 index 0000000..594750e --- /dev/null +++ b/docs/_navbar.md @@ -0,0 +1,3 @@ +- Translations + - [:cn: 中文](/) + - [:uk: English](/uk/) diff --git a/docs/_sidebar.md b/docs/_sidebar.md new file mode 100644 index 0000000..a0f46b4 --- /dev/null +++ b/docs/_sidebar.md @@ -0,0 +1,33 @@ +- [**Arch Linux 安装使用教程 - ArchTutorial - Arch Linux Studio**](/) + +- 新手上路 + + - [安装前的准备](/rookie/archlinux_pre_install) + - [基础安装](/rookie/basic_install) + - [桌面环境与必要应用](/rookie/DE&App) + - [科学上网与翻墙](/rookie/fxckGFW) + - [显卡驱动](/rookie/graphic_driver) + +- 进阶 + + - [成为合格的系统管理员](/advanced/beAdmin) + - [全局代理](/advanced/transparentProxy) + - [功耗控制](/advanced/undervoltage) + - [系统美化](/advanced/beauty) + - [常见问题排除与解决](/advanced/troubleshooting) + +- 娱乐与办公 + + - [办公日常](/play&office/office) + - [视频影音](/play&office/media) + - [游戏娱乐](/play&office/play) + - [安卓刷机](/play&office/android) + +- 专有领域 + + - [直播与多媒体制作](/exclusive/media) + - [编程](/exclusive/code) + +- [贡献文档与代码](contribution.md) +- [关于&致谢](about.md) +- [后记](postscript.md) diff --git a/docs/about.md b/docs/about.md new file mode 100644 index 0000000..8c8b3eb --- /dev/null +++ b/docs/about.md @@ -0,0 +1,28 @@ +# 关于&致谢 + +## 补充解释 + +这里对本书做一些补充解释。 + +首先说明一下和官方文档的定位区别。官方中文文档确实很全,但它的定位是官方文档,这样的话已经就需要做到事无巨细。但是这种过于详细的文档,会使得新手在一个又一个链接中迷失方向,他们更需要的是指引,而不是字典。本文的定位是指引,以及群主个人认为的当前的较好的方案。另外,官方中文文档大多翻译自英文文档,存在翻译不及时的情况。少数还有翻译有误或者含义不清的情况。 + +网上类似的文档一大把,为何还要这样一份文档?技术的变更是日新月异的,不论是操作系统本身还是具有价值的软件,网上一些教程大多年久失修,大家都知道互联网知识时效性是很重要的。本书的 Flag 就是只要健在,就一直更新。并且立志做到中文社区中较好的位置。 + +许多人还在认为 Linux 不适合做日常使用的操作系统。说实在的,在本世纪的前十年,Linux 桌面确实不太堪用。但是现在时间已经是 2021 年后了,Linux 桌面与生态有了长足的进步。不论是办公,轻度娱乐还是编程,基本都可以满足需求。 + +关于本书存在的任何问题以及建议,均可以给群主发送邮件,也可以直接在本页下方留言。 + +Telegram 电报群: [篝之雾枝的咕咕小屋](https://t.me/kdwu1fan) + +## 更新日志 + +- 0.3.0 根据 2021 年的变更做出更新。 2021年5月15日 +- 0.2.0 全面的完善与修订 作为正式对外发布的首个版本。 2021年4月11日 +- 0.1.0 初步可用的第一个版本 由于事后重新整理过 commit 时间已不可考。 +- 0.0.0 项目启动。 2020年9月1日 + +## 致谢 + +最近几年,群主经历了很多事情,基本都不是什么好事。所以有了那么一丁点微小的感悟。 + +最后要感谢的就是各大开源社区所提供的资源,没有大家的一砖一瓦,就不会有 Linux 生态越来越好的今天,感谢大家。 diff --git a/docs/advanced/beAdmin.md b/docs/advanced/beAdmin.md new file mode 100644 index 0000000..8e1d10a --- /dev/null +++ b/docs/advanced/beAdmin.md @@ -0,0 +1,184 @@ +# Linux 日常操作与基础知识 + +阅读完`新手上路`章节,你的系统已完全可以使用,KDE 桌面环境提供了强大的 [GUI](https://zh.wikipedia.org/wiki/%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2) 以供普通用户使用。按`windows`键(Linux 下也常被叫做 Meta 键)呼出菜单栏,找到`设置`=>`系统设置`,可以找到绝大多数系统设置项。 + +但如果想要游刃有余的掌控你的系统,你还需要阅读掌握本文的内容。 +如果你想进一步详细了解本文各部分的详细知识,可以点击在各个小节给出的拓展链接进行学习。 +如果你不想详细了解,本章介绍的知识也足够你来应付日常的使用。 + +## 必须掌握的 Linux 知识 + +此处只介绍最基本的,最必要的 Linux 知识点与小技巧 。 + +1. 在 Linux 中,文件目录结构与 Windows 完全不同。Windows 存在 C 盘,D 盘等盘符,而在 Linux 中不存在这些划分,最上层的目录是根目录,路径为 _/_ ,并以一个树形结构从此向下一级一级区分。 +2. 对于 Linux 的树形文件结构,存在相对路径与绝对路径之分。绝对路径是代表从根路径 _/_ 开始的完整路径,如`/home/testuser/Download`。相对路径代表从当前目录,到目标目录的一个部分路径。比如当前你所在的目录为`/home/testuser`,那么切换到绝对路径`/home/testuser/Download`的相对路径即为`./Download`。其中`./`代表从当前目录,再向下寻找。另外,`..`这种两个句点代表的是向上层寻找,比如你当前所在的路径为`/home/testuser/Download`,向上寻找到`/home/testuser/Desktop`的相对路径即为`../Desktop`。 +3. 简单来说,Linux 中存在两类用户。第一类用户即为 root 用户,也成为超级用户,它拥有系统中最高的权限。第二类用户就是除了 root 用户的普通用户,他们可以拥有不同等级的权限。使用 root 权限时需要十分小心。 +4. 理论上来说,任何图形化界面中的操作都可以用对应的命令行命令完成。如果你打开某个程序报错,不妨试试找到它的对应启动命令,在终端中执行此命令,并观察它运行时的错误日志输出,查阅相关资料,解决问题。 + +## 终端操作基础 + +如果想要熟练掌握 Linux,就必须掌握终端的常见命令与使用方式。 + +```bash +ls /some_path # 查看某个文件夹下的文件与子文件夹 /代表根目录,是Linux最顶端的路径,是绝对路径 +pwd # 查看当前终端所在路径 +cd /home/testuser # 切换目录命令,将当前终端切换到某一个路径下 +cp ./a.cpp ./b.cpp # 复制命令 将当前路径下的a.cpp复制一份为b.cpp ./代表当前文件夹所在路径,是相对路径 +cp -r ./a ./b # 复制整体文件夹 +rm b.cpp # 删除命令 删除b.cpp +mv a.cpp b.cpp # 移动(重命名)命令 将a.cpp更名为b.cpp +mkdir new_folder # 新建文件夹new_folder +sudo some command # 使普通用户以root权限执行某些命令 +``` + +拓展链接:推荐阅读在线进阶书籍 [Linux 命令行与 Shell 脚本教程](https://archlinuxstudio.github.io/ShellTutorial/#/)。 随后也将提供与此书配套的教学视频 [Linux 命令行与 Shell 教程](https://bilibili.com)TODO。 + +## Pacman 包管理 + +在 Arch Linux 上安装的软件都通过 Pacman 来进行管理。你可以把它理解为一个软件管理器,可以进行软件的安装,删除,查询等。 + +```bash +sudo pacman -S package_name # 安装软件包 +sudo pacman -Syyu # 升级系统 yy标记强制刷新 u标记升级动作 +sudo pacman -R package_name # 删除软件包 +sudo pacman -Rs package_name # 删除软件包,及其所有没有被其他已安装软件包使用的依赖包 +sudo pacman -Qdt # 找出孤立包 Q为查询本地软件包数据库 d标记依赖包 t标记不需要的包 dt合并标记孤立包 +sudo pacman -Rs $(pacman -Qtdq) # 删除孤立软件包 +sudo pacman -Fy # 更新命令查询文件列表数据库 +sudo pacman -F xxx # 当不知道某个命令属于哪个包时,用来查询某个xxx命令属于哪个包 +``` + +一个好用的图形化包管理软件 + +```bash +yay -S octopi #包管理器前端界面 +``` + +拓展链接: [官方文档](https://wiki.archlinux.org/index.php/Pacman) + +## 终端编辑器的使用 + +你需要掌握一个能在终端中进行文本编辑的软件,这里介绍 vim。 + +```bash +vim 1.txt #创建并编辑名为1.txt的文件 +``` + +你可以看到进入了一个空的界面。此时你处在 vim 的`命令模式`。在`命令模式`下,可以用一些快捷指令来对文本进行操作。 +现在我们输入`a`进入 vim 的`编辑模式`,此时输入任意文本,即可进行编辑。 +在输入完成后,我们按下 Esc 键,即可从`编辑模式`退出到`命令模式`。此时输入`:wq`即可保存并退出 vim。 +下面介绍一些在命令模式下常用的命令 + +```bash +:wq # 保存退出 +:q! # 不保存,强制退出 +dd # 删除一行 +2dd # 删除两行 +gg # 回到文本第一行 +shift+g # 转到文本最后一行 +/xxx # 在文中搜索内容'xxx' 回车搜索,按n键转到下一个 +?xxx # 反向搜索 +``` + +拓展链接:需要完整教程的同学可以在终端中输入命令`vimtutor`来学习完整的 vim 教程。 + +## 系统服务的操作与介绍 + +Linux 系统中运行着各种服务,你需要掌握查询,变更服务状态的方式。同时对创建服务最好也有大致的了解。这里讲述命令`systemctl`的用法。以 dhcpcd 为例 + +```bash +systemctl start dhcpcd # 启动服务 +systemctl stop dhcpcd # 停止服务 +systemctl restart dhcpcd # 重启服务 +systemctl reload dhcpcd # 重新加载服务以及它的配置文件 +systemctl status dhcpcd # 查看服务状态 +systemctl enable dhcpcd # 设置开机启动服务 +systemctl enable --now dhcpcd # 设置服务为开机启动并立即启动这个单元: +systemctl disable dhcpcd # 取消开机自动启动 +systemctl daemon-reload dhcpcd # 重新载入 systemd 配置 扫描新增或变更的服务单元 不会重新加载变更的配置 加载变更的配置用 reload +``` + +拓展链接: [systemctl 官方文档](https://wiki.archlinux.org/index.php/Systemd#Basic_systemctl_usage) [systemd 配置文件样例解释](https://www.freedesktop.org/software/systemd/man/systemd.service.html#Examples) + +## 文件传输与系统备份 + +有一点 Linux 经验的同学应该知道[scp]()这个命令。它常被用来在服务器间传输文件。但是目前它应该被更现代的工具[rsync](https://wiki.archlinux.org/index.php/Rsync)替代,其拥有即时压缩,差量传输等新特性。同时,`rsync`也被用来进行备份操作。 + +```bash +rsync foo.txt me@server:/home/me/ # 最基础的复制文件 与scp的操作完全相同 +rsync -a bar/ me@server:/home/me/ # -a 标记实现目录复制等 比scp -r 能更好的处理符号链接等情况 +``` + +关于全盘备份,请阅读[官方文档](https://wiki.archlinux.org/index.php/Rsync#Full_system_backup)。如果你寻求一种图形化的操作方式,可以自行尝试[Timeshift](https://aur.archlinux.org/packages/timeshift/)AUR。 + +## 文件解压缩 + +除了众所周知的 tar 命令,我们在之前安装过的 [ark](https://archlinux.org/packages/extra/x86_64/ark/) 包可以配合 dolphin 文件管理器轻松的右键直接解压缩,其可选依赖提供了各个压缩格式的支持,可以自行选择安装。需要注意的是解压 windows 下的压缩包,可能会乱码,安装 ark 的可选依赖之一 unarchiver,使用 unar 可以避免这个问题。 + +```bash +sudo pacman -S unarchiver +unar xxx.zip +``` + +## 系统硬件信息检测 + +磁盘检测可使用 [smartmontools](https://archlinux.org/packages/extra/x86_64/smartmontools/) + +```bash +sudo smartctl -A /dev/sda #硬盘 +sudo smartctl -d sat -A /dev/sdc #usb设备 +``` + +磁盘空间分析可直接使用 dh 命令,也可使用 [Filelight](https://archlinux.org/packages/extra/x86_64/filelight/)图形化界面直观查看磁盘占用情况 + +```bash +df -h +``` + +cpu 与显卡的信息查看可使用如下两款软件 + +```bash +yay -S cpu-x +yay -S gpu-viewer +``` + +使用 [dmidecode](https://archlinux.org/packages/extra/x86_64/dmidecode/) 可以完整查看系统绝大部分硬件信息,包括较难得到的内存频率,主板 BIOS 等等。 + +```bash +sudo dmidecode +``` + +## 制作 windows10 启动盘 + +你可能在 linux 下,有时需要制作 win10 的启动盘。在以往,在 linux 下制作一个 win10 启动盘还是很简单的,但是随着近几年微软的更新,其 iso 安装镜像中存在一个名为`install.wim`的文件,其大小已经超出了 4GB,超出了 fat32 所要求的单个文件最大 4GB 的限制。这使得必须用额外的步骤才能制作一个启动盘。这里依旧使用 fat32 格式是因为其兼容性是最好的,ntfs 的 uefi 启动盘很多情况下不被识别。 + +首先和基础安装中的部分步骤类似,首先用 parted 命令创建 U 盘的分区 label 为 gpt。接下来用 cfdisk 命令创建新分区,在 Type 中选择 Microsoft basic data。接下来使用 mkfs.vfat 命令格式化所创建的分区。这样 U 盘就准备好了。 + +接下来下载 win10 的 iso 镜像并解压。在某些文件管理器中,你会得到如下错误。 + +```bash +This disc contains a "UDF" file system and requires an operating system +that supports the ISO-13346 "UDF" file system specification.w +``` + +这种情况下则需要手动挂载并复制出来 + +```bash +mount -o loop /path/of/windows10.iso /mnt/your/mountpoint +``` + +得到复制出来的文件后,最后要进行的就是压缩 install.wim 文件,这里需要首先安装一个包 + +```bash +sudo pacman -S wimlib +``` + +接下来进行压缩,这一步会持续较长时间,耐心等待。完成后可以看到文件已经被压缩到了 3.x GB。 + +```bash +sudo wimlib-imagex optimize install.wim --solid +``` + +最后把全部文件复制到 U 盘中即可。 + +Ref: [[1]](https://www.dedoimedo.com/computers/windows-10-usb-media-linux.html) diff --git a/docs/advanced/beauty.md b/docs/advanced/beauty.md new file mode 100644 index 0000000..b459347 --- /dev/null +++ b/docs/advanced/beauty.md @@ -0,0 +1,98 @@ +# 系统美化 + +本文讲述如何配置以让 KDE 桌面环境看起来更加拥有美感。[配套视频](https://www.bilibili.com/video/BV1Ua4y157Qa/) +原则:美化不应该付出大量的时间折腾,既没有实际用处,也没有意义。花最少的时间完成性价比最高的美化始终是第一原则。 +在美化部分,需要设置代理之后再使用`系统设置`的功能,如下载主题等。否则网速会非常慢,甚至无法使用。 +经测试,需通过 proxychains 或设置全局透明代理将网络连接重定向到代理。 + +```bash +proxychains systemsettings5 #通过代理打开系统设置 +``` + +> 在 KDE 相关软件更新前后,出现过第三方主题不稳定/卡顿的问题,再次强调不要美化魔改的太过,这会添加更多的不确定性,让你的桌面稳定性下降。 + +## 壁纸 + +在桌面右键,选择`配置桌面`。在新出现的窗口中右下角选择`添加图片`可以选择你想要的图片。其中`位置`一项选择'缩放,保持比例',`背景`一项选择'模糊'。这样你就可以拥有一个成比例,且边缘带有高斯模糊的漂亮的桌面壁纸。 + +## 系统主题 + +使用一个高质量的系统主题可以直线提升系统的美观程度。_系统设置_> _外观_> _全局主题_> _获取新的全局主题_ ,搜索主题 layan,进行设置即可。 顺便说一句,这个主题的作者 vinceliuice 是一位中国大佬,是一位设计师,他设计的主题以及图标的质量都很高,同学们可以去他的[主页](https://www.pling.com/u/vinceliuice/)为他打分和点赞。 + +> 如果切换主题后,windows 键不能呼出菜单,可在左下角右键,配置程序启动器,在键盘快捷键中重新设置`windows+F1`键,windows 键会显示为 Meta 键。 + +## 窗口装饰 + +在 _系统设置_> _外观_> _窗口装饰_ 中,获取新窗口装饰,搜索 layan,并应用即可。 + +## 系统图标 + +如果主题中的图标不能满足你,那么可以选择一些自定义的图标。_系统设置_> _外观_> _图标_> _获取新图标主题_ ,搜索图标名 Tela-icon-theme,进行安装设置即可。 + +## SDDM 主题 + +你应该注意得到,输入密码时默认的登录界面是很丑的,这里也可以替换掉。_系统设置_> _开机和关机_> _登录屏幕(SDDM)_> _获取新登录屏幕_ ,搜索 SDDM 主题 layan 并设置即可 + +## 欢迎屏幕(splashscreen) + +可以对在登录界面后的欢迎屏幕进行美化。 _系统设置_> _外观_> _欢迎屏幕_> _获取新欢迎屏幕_ ,搜索 miku 进行设置即可。这个`Snowy Night Miku`是群主搜索到的最好看的二刺猿属性的初始界面了,强烈建议安装。另外,还有一个大佬做了一些二次元主题的欢迎屏幕,但是质量一般,这里是他的[主页](https://www.pling.com/u/thevladsoft/)。 + +## 桌面插件 + +在任务栏空白处右键,选择编辑面板,添加部件。 + +- Netspeed widget 网速组件,这个很实用 +- simple monitor 系统信息 +- todolist 任务组件 + +然后把你经常使用的软件固定在任务栏即可。 + +## 混成器 + +_系统设置_> _显示和监控_> _混成器_ 开启混成器 + +## 终端样式设置 + +打开 konsole, _设置_> _编辑当前方案_> _外观_ ,选择`Red-Black` 应用确认即可。 + +## Kvantum Manager + +主题配合 Kvantum Manager 可以达到更好的效果。 + +```bash +sudo pacman -S kvantum-qt5 +``` + +在[这里](https://www.pling.com/p/1325246/)下载 Layan 的 Kvantum 主题,并解压。打开 Kvantum Manager,选择主题并安装,接下来在`Change/Delete Theme`中选择 Layan,Use this theme。最后在系统设置,外观中的应用程序风格中选择 kvantum 即可。 + +> 如果透明的效果没有显示,确保 KDE 的全局缩放比例为整数倍。或者尝试切换混成器中 openGL 的设置。 + +## GRUB 主题 + +[官方文档](https://wiki.archlinux.org/title/GRUB/Tips_and_tricks#Theme) + +在[pling](https://www.pling.com/browse/cat/109/order/latest/)选择下载你想要的 GRUB 主题,比如这个[二刺螈主题](https://www.pling.com/p/1526503/)。接下来 `cd` 进解压出来的文件夹,打开 konsole 输入 + +```bash +sudo cp -r . /usr/share/grub/themes/Nino +``` + +以将主题放置在系统的 GRUB 默认文件夹内。 +接着编辑 `/etc/default/grub` 文件,找到 `#GRUB_THEME=` 一行,将前面的注释去掉,并指向主题的 `theme.txt` 文件。即 + +```bash +#GRUB_THEME= +GRUB_THEME="/usr/share/grub/themes/Nino/theme.txt" #修改后 +``` + +然后再在终端输入 + +```bash +sudo grub-mkconfig -o /boot/grub/grub.cfg +``` + +更新 GRUB ,并重启即可。 + +--- + +其余 KDE 桌面有很多配置项,大家可以自行探索。 diff --git a/docs/advanced/transparentProxy.md b/docs/advanced/transparentProxy.md new file mode 100644 index 0000000..226ae6d --- /dev/null +++ b/docs/advanced/transparentProxy.md @@ -0,0 +1,117 @@ +# 使用 Qv2ray+cgproxy 配置透明代理 + +全局代理,也即透明代理。本节所述为真正的系统级别的代理,而不是仅仅针对浏览器中全部网址的"全局代理"。 + +本文原本收集自 [Qv2ray 用户组](https://t.me/qv2ray),`非群主书写`,群主仅在其基础上进行更新与修正。[项目源地址](https://github.com/springzfx/cgproxy)。 + +## 安装与设置 + +1. 在 Qv2ray 的"首选项-入站设置"的下方启用任意门设置选项。 + + - 监听 ipv4 地址可填`127.0.0.1` 或 `0.0.0.0`,建议前者。若需双栈代理,则在监听 ipv6 地址填上`::1`(如果监听 ipv4 填了 0.0.0.0 则可不填)。 + - 在"网络选项"中勾选需要透明代理的协议。 + - 模式选择"tproxy"。 + - 如果希望在透明代理环境里让 v2ray 的内置 dns 接管本地 dns,则勾选`连接设置`选项卡下的"dns 拦截"。这里建议勾选,因为你的网络环境很大可能性需要正确的 dns 解析,比如 github raw 在多数地区均不可访问。注意,在透明代理环境下,如果系统 dns 或 v2ray 的内置 dns 配置不当,可能导致系统无法解析域名从而无法正常上网。详见后文说明。 + + 如果是复杂配置,则需要手动添加相应的 dokodemo-door 入站。由于目前版本复杂配置并没有提供 tproxy 选项,因此 tproxy 模式需要通过编辑 json 来实现。 + +2. 安装`cgproxy`软件 + + - `cgproxy`软件已在 archlinux, fedora 32, ubuntu 18.04, ubuntu 20.04, deepin 15.11, deepin v20 beta 发行版中测试过。 + - Archlinux 用户可直接在 AUR 上安装,deb 或 rpm 系发行版用户可从[github](https://github.com/springzfx/cgproxy/releases)上下载安装包。非以上发行版用户,可自行从[github](https://github.com/springzfx/cgproxy)上获取代码自行编译。 + +3. 配置`cgproxy`,编辑`/etc/cgproxy/config.json`: + + - 在`cgroup_proxy`中括号里加上"/"(包含引号),`port`改为 Qv2ray 首选项里的透明代理的端口。 + - `cgproxy`默认配置是代理所有 tcp 和 udp,ipv4 和 ipv6 的流量,如果不希望代理其中的某种(些)流量,则将对应的`enable_xxx`改为 false。注意这里的配置要和 Qv2ray 选项里的配置一致(如,Qv2ray 选项里没有勾选 udp,则这里务必把`enable_udp`改为 false)。 + - 如果希望当本机作为网关设备时为连接到本机网关的其他设备(如连接到本机开设的 wifi 热点的设备)也提供透明代理,则把`enable_gateway`改为 true。 + +4. (重要)透明代理的基本原理是拦截系统发出的所有流量,并将这些流量转到代理工具里,从而实现让系统所有流量都走代理的目的。此时,为了避免流量出现死循环(即代理工具发出的流量又转回到代理工具里),需要将代理工具排除在透明代理环境外面。有两种方式可以实现这一点: + + - 通过`execsnoop`监控代理工具的启动,并自动将其移至透明代理环境外面: + + - `cgproxy`软件自带`execsnoop`支持,以上`cgproxy`测试过的发行版均可支持。 + - 编辑`/etc/cgproxy/config.json`,在`program_noproxy`中括号里加上"v2ray","qv2ray"(包含引号和逗号),以使`qv2ray`和`v2ray`发出的流量不经过透明代理。如果你的`v2ray`或`qv2ray`不在`PATH`里,则需要填写它们的绝对路径。 + + - 在每次连接代理节点时,让`qv2ray`自己把自己移到透明代理环境外面: + + - 安装 Qvplugin-Command 插件,在插件设置里的"pre-connection"栏里加上一句 + + ``` + sh -c "cgnoproxy --pid $(pgrep -x qv2ray)" + ``` + + 即可。 + +5. (重要)如果启用了 udp 的透明代理(dns 也是 udp),则给 v2ray 二进制文件加上相应的特权: + + ``` + sudo setcap "cap_net_admin,cap_net_bind_service=ep" /usr/bin/v2ray + ``` + + 否则 udp 的透明代理可能会出问题。 + +> 如果每次更新了 v2ray 二进制文件,都需要重新执行此命令。 + +6. 启动透明代理服务:`systemctl start cgproxy.service`或`systemctl enable --now cgproxy.service`。 + +以上步骤完成后,透明代理应该能正常使用了。 + +## dns 配置说明 + +如果勾选了"dns 拦截",且启用了 dns 和 udp 的透明代理,则 v2ray 会拦截对系统 dns 的请求,并将其转发到 v2ray 的内置 dns 里,即让 v2ray 内置 dns 接管系统 dns。但 v2ray 内置 dns 是会遵循路由规则的。 + +如果没勾选"dns 拦截",则 v2ray 虽然不会让内置 dns 接管系统 dns,但如果启用了 dns 和 udp 的透明代理,则系统 dns 也会走透明代理进 v2ray,并遵循 v2ray 的路由规则。 + +因此,在启用了 dns 和 udp 的透明代理时,若系统 dns 或 v2ray 的内置 dns 配置不当,可能导致 dns 请求发不出去,从而影响正常上网。 + +由于 qv2ray 默认的路由规则是绕过国内 ip,国外 ip 均走代理。在这个情形中,以下两个配置是典型的有问题的 dns 配置方式: + +- 配置了国外普通 dns 作为首选,但代理本身不支持 udp(此时 dns 查询的 udp 流量出不去,dns 无法查询) +- 配置了使用域名的 doh 作为首选(此时 doh 的域名无法解析,从而 doh 也无法使用) + +一般而言,如果并不在意将 dns 查询发给谁,那么,在绕过国内 ip 的情况下,只需要配置一个国内普通 dns 作为首选即可保证不会出问题。若代理本身不支持 udp,又希望使用国外 dns,则可以考虑使用使用 ip 的 doh(如`https://1.1.1.1/dns-query`等)。 + +如果需要更复杂的 dns 配置,建议参考[上游文档](https://www.v2ray.com/chapter_02/04_dns.html),并选择合适的不会影响正常上网的 dns 配置。 + +## 常见问题 + +- 启用透明代理后无法访问任何外网,且 v2ray 的 cpu 占用率飙升 + + 可能是流量陷入死循环了,检查第 4 步有没有正确配置。如果配置没问题,执行`systemctl status cgproxy.service`看下有没有诸如`info: process noproxy pid msg: xxx`之类的输出。如果没有,则说明 cgproxy 软件或 execsnoop 没有正常工作。注意 cgproxy 软件需要 cgroup v2。 + + 尝试退出 qv2ray,随后在终端里执行`cgnoproxy qv2ray`看是否恢复正常,如恢复正常,说明 cgproxy 正常工作,只是 execsnoop 没有正常工作。由于 execsnoop 一定程度上依赖于内核,非上述 cgproxy 测试过的发行版用户,建议使用第 4 步中的第 2 种方法。另外,对 kde 用户,5.19+版的 plasma 会给从 krunner 里启动的程序额外设置 cgroup,尽管 cgproxy 软件考虑到了这一点,但仍有极少数场合可能出现 plasma 设置的 cgroup 覆盖掉了 cgproxy 设置的 cgroup 的情况,此时通常重启一下 qv2ray 即可。 + +- 启用透明代理后,无法访问(部分)域名 + + 可能是 dns 无法解析(部分)域名。一般这种故障只发生在启用了 dns 及 udp 透明代理的时候。 + + 终端里执行`dig 无法访问的域名`看下报什么错: + + - 若出现类似`reply from unexpected source: 192.168.0.100#42050, expected 8.8.8.8#53`的报错,则检查第 5 步的有没有正确配置。 + + - 若出现类似`connection timed out; no servers could be reache`的报错,则说明 dns 查询的流量出不去,此时往往是系统 dns 或 v2ray 内置 dns 配置不当。请检查是否出现了前文提到的几种不当配置。如果没有勾选"dns 拦截",则此时 v2ray 虽然不会用内置 dns 接管系统 dns,但它仍然会让系统 dns 走透明代理,从而遵循 v2ray 的路由规则,此时需要检查系统 dns 是否是前文提到的那几种不当配置。 + +- 能不能分应用代理(如,下载 BT 时不能走代理) + + 对于本机的程序,可以,可通过两种方式实现: + + - 通过`cgnoproxy`实现:如,在命令行中执行`cgnoproxy qbittorrent`,启动的 qbittorrent 程序就不会走透明代理。又如,在命令行中执行`cgnoproxy --pid 12345`,执行之后 pid 为 12345 的程序就不再走透明代理。这种方式可支持任何应用。 + - 通过`/etc/cgproxy/config.json`实现:在配置里的`program_noproxy`中括号里加上相应的应用即可。这种方式只支持可执行文件,不支持各种脚本。如希望把 clash 与 kde connect 加入 noproxy 规则,则在把此字段补全成["v2ray", "qv2ray", "clash", "/usr/lib/kdeconnectd"]即可。注意修改`config.json`之后,需要重启 cgproxy 服务才能生效,执行`systemctl restart cgproxy.service`即可。 + + 对于当本机作为网关设备时为连接到本机网关的其他设备,不行,那些设备的所有流量(到本机的流量除外)都必然会走代理。 + +- 透明代理环境中响应速度变慢 + + 由于 iptables 是在域名解析成 ip 之后,才对相应的流量进行重定向。因此,在透明代理环境中,访问一个域名 s 可能会需要解析至少 2 次 dns(系统解析一次,重定向到 v2ray 之后 v2ray 分流模块再解析一次)。因此,响应理论上是会变慢一点的,变慢的幅度取决于系统 dns 及 v2ray 的 dns 的响应速度。 + +- 开启 UDP 支持后报错`too many open files` + + 核心问题是,Linux 系统定义了一系列限制,其中一种限制是最大打开文件数,并且有软限制和硬限制,具体的限制结果可以通过`ulimit -Sa`和`ulimit -Ha`查看。一般来说 arch 默认的软限制 open files 的值为 1024,这个数值太小。硬限制的 open files 的值为 524288,这个数值够大了。打开网页过多,或者开启 udp 加速的时候,连接数(打开的文件数)很容易超过 1024 这个数,所以就被限制住了。解决办法很简单,只需要修改系统级别的关于这个限制的配置文件,在/etc/security/limits.conf 文件的最末尾,加上下面这行,然后重启即可: + + ```bash + * soft nofile 8192 #不要落下了最前面的星号 + ``` + +- 终端 wget/curl/npm/yarn 访问被墙的 https 资源(如 github raw)报错 443 + DNS 的问题,打开 Qv2ray 的 DNS 拦截和 cgproxy 的 dns 选项。或者 export https_proxy 环境变量。 diff --git a/docs/advanced/troubleshooting.md b/docs/advanced/troubleshooting.md new file mode 100644 index 0000000..2dde16c --- /dev/null +++ b/docs/advanced/troubleshooting.md @@ -0,0 +1,69 @@ +# 常见问题排除与解决 + +本节描述一些在日常使用过程中你有很大概率可能遇到的问题,并提供解决方法。 + +### 关机时卡住很久才能关机 + +一般屏幕会出现形如`A stop job is running for...(1m30s)`的信息,这是经常会遇到的关机卡住 1 分 30 秒的问题,一般来说这种情况是出现了某个进程在关机时不愿停止,需要等到超时时间到达强行停止。通用的解决办法是调整缩短这个等待时间,建议从 1 分 30 秒调整至 30 秒,30 秒已经足够几乎所有进程正常结束。 + +编辑 `/etc/systemd/system.conf` + +```bash +sudo vim /etc/systemd/system.conf +``` + +找到其中`DefaultTimeoutStopSec`一项,将其前方的井号去掉,并赋值为 30s 即可。最后执行 daemon-reload 使其生效。 + +```bash +sudo systemctl daemon-reload +``` + +上述解决方案其实只是将这个等待时间缩小了,并没有解决实际问题。如果你想排查问题真正的原因所在,在关机时如果出现了`A stop job is running for...(1m30s)`的信息,耐心等待其结束关机,然后重新启动电脑,执行以下命令: + +```bash +journalctl -p5 +``` + +按/(斜杠键)搜索`Killing`关键字,找到你关机的时间附近所在的匹配行,你可以在附近看到到底是哪一个进程导致了 timeout,然后再去排查这个进程有什么问题即可。 + +ref: [[1](https://forum.manjaro.org/t/a-stop-job-is-running-for-user-manager-for-uid-1000-during-shutdown/37799)][[2](https://unix.stackexchange.com/questions/273876/a-stop-job-is-running-for-session-c2-of-user)] + +### 磁盘容量不足的处理方式 + +一般使用 LVM 安装 Linux 系统则不用担心这种情况发生。但是我们使用的是传统的 ext4 经典分区方式。这种情况下一般建议在安装的开始就将根目录设置的大一些,如 100G。如果/home 分区大小不够了,可以新安装一块硬盘,将其挂载到你想要的位置,再按照`基础安装`的步骤中重新 genfstab 一下就行了。 + +除此之外,如果根目录容量不足,可以不定期清理一下 pacman 的缓存,详见[archwiki](https://wiki.archlinux.org/title/Pacman#Cleaning_the_package_cache)。太长不看的可以直接用下面这一行命令清理没有安装的所有缓存的包,和没有被使用的同步数据库。 + +```bash +sudo pacman -Sc +``` + +### 软件的降级 + +在 archlinux 上 偶尔会出现某一个包的最新版本有各种问题的情况,此时需要降级该包以正常使用,包可以是普通软件,也可以是内核。 + +```bash +yay -S downgrade +``` + +安装此包即可,使用方法也很简单,downgrade 后加上需要降级的包名即可,随后会提示你选择需要降级到的版本,点选即可。 + +### 升级系统时出现形如 unable to lock database 的错误 + +可能存在升级系统时异常关机或程序异常退出的情况,或者多个 pacman 的相关程序在同时执行。移除 pacman 的 db 锁即可 + +```bash +sudo rm /var/lib/pacman/db.lck +``` + +### 手动开关混成器 + +有时混成器会因为某些原因需要手动开启或关闭,但是目前在 KDE 下混成器在设置里无法在不关机的情况下直接关闭,下面命令提供手动开关混成器的效果。[[1]](https://unix.stackexchange.com/questions/597736/disabling-kwin-compositor-from-command-line) + +```bash +qdbus org.kde.KWin /Compositor suspend #禁用 + +qdbus org.kde.KWin /Compositor resume #开启 + + +``` diff --git a/docs/advanced/undervoltage.md b/docs/advanced/undervoltage.md new file mode 100644 index 0000000..f1aeb3b --- /dev/null +++ b/docs/advanced/undervoltage.md @@ -0,0 +1,73 @@ +# 功耗控制 + +针对散热不好的设备,功耗控制显得非常必要。这里说的功耗控制不是指直接对处理器的频率做出限制,而是对处理器的电压进行最大限度的下探,在挖掘 cpu 体质的极限的同时,起到既能降低发热,又能最大限度保持性能的效果。除了电压的下探,同时也可以尝试对处理器的功率墙(又常被称为 TDP)做出降低的限制,比如考虑这种情况,在 cpu 满睿频时,其实不需要默认的那么多功耗来维持,也许在默认功耗的基础上减几瓦,也能维持满睿频,这样就又可以进一步降低温度。对功率墙进行限制不同于对电压进行下探,若限制功率墙的参数较低,这会不可避免的损失较多的性能,但是在散热过差的设备上这也是一个好办法。 + +## 电压下探 + +[官方参考文档](https://wiki.archlinux.org/index.php/Undervolting_CPU) + +如果正常操作,降低电压一般不会损害 cpu,一般建议从 50 毫伏进行尝试,每次降压尝试多增加 10 毫伏。只要确保在降低电压前,系统中任务均被正确保存即可。网络上传言的降低 cpu 电压会"缩肛"是谣言[[1]](https://www.zhihu.com/question/62335676)。 + +### 英特尔 四代酷睿 Haswell 及更新 cpu + +如文档中所说,使用 intel-undervolt 即可降压。对于其配置文件中降压部分的五个参数含义如下: + +- 0:cpu 核心电压 +- 1:cpu 核芯显卡电压 +- 2:cpu 缓存电压 +- 3:系统周边电压,与内存等设备相关 +- 4:模拟 I/O 电压 + +一般来说只调整 0 和 2 两项电压即可。 + +在调整完电压,apply 之后,可以尝试使用 [s-tui](https://archlinux.org/packages/community/any/s-tui/) 这个工具进行烤机测试,同时观察温度、频率、TDP 的数据。 + +在调整到一个合适的降压配置后,开启其对应 service 即可。 + +```bash +sudo systemctl enable --now intel-undervolt +``` + +### 英特尔 四代酷睿 Haswell 之前的 cpu + +arch 官方文档中提到,二代酷睿及以前的 cpu 可使用 PHC 的方式进行降压。经测试,在 i7-2760QM 上不能直接使用,需要在内核启动参数中加入`intel_pstate=disable`才能正确识别到 phc 的 driver,[参考 1](https://wiki.archlinux.org/index.php/CPU_frequency_scaling),可用命令`cpupower frequency-info`验证。接下来进行降压尝试,按照 archwiki 的操作始终不能更改 phc_vid 文件,其中内容始终为 0,即便已经用 vim 将其更改为其他值。也许是 cpu/主板 BIOS 不支持降频。翻阅了 phc-intel 的官方文档,其说明只支持酷睿,酷睿 2 及之前的 cpu 系列,不支持酷睿 i,这与 archwiki 的描述相矛盾。 + +对于夹在中间的三代酷睿 lvy bridge,[有项目](https://github.com/tiziw/iuvolt)称可以使用 intel-undervolt 的原理进行降压,但是经测试失败了,尝试用 PHC 的方式依旧失败。目前应该没有什么好的办法可以降压三代酷睿。 + +对于此范围内的老设备降压,我将不会花费更多时间探索。如果你知道有办法可以正确降压,欢迎提交 PR,或[进群讨论](https://t.me/kdwu1fan)。 + +ref: [[1]](https://www.reddit.com/r/intel/comments/8ubdsg/undervolting_intel_i5_3230m/) [[2]](https://forum.thinkpads.com/viewtopic.php?t=128707) + +### AMD + +我没有设备,未能验证。可按照 wiki 中使用 amdctl 尝试降压。 + +## 降低功率墙 + +对于功率墙的调整,有些主板在 BIOS 中提供了设置项可以直接调整。对于没有设置项的主板,有的主板是锁定了瞬时和长时功率墙,这种情况就无法调整功率墙了。有的主板 BIOS 随没有提供功率墙调整项,但依旧可以通过命令行设置。通过以下的命令可以查看主板是否可以调整功率墙。 + +```bash +grep . /sys/class/powercap/intel-rapl/intel-rapl:0/* +``` + +如果在输出中看到了如下的 enable 值为 1,即可以调整。第一行的代表现有的功率墙限制。 + +```bash +/sys/class/powercap/intel-rapl/intel-rapl:0/constraint_0_power_limit_uw:100000000 +/sys/class/powercap/intel-rapl/intel-rapl:0/enabled:1 +``` + +具体的调整步骤参考[这个链接](https://askubuntu.com/questions/1226254/set-max-tdp-of-intel-h-series-cpu)。有空的时候我再翻译整理。 + +Ref: [[1]](https://askubuntu.com/questions/1231091/tee-constraint-0-power-limit-uw-no-data-available),[[2]](https://miloserdov.org/?p=1932),[[3]](https://zhuanlan.zhihu.com/p/25537264) + +此外,intel-undervolt 也可直接进行功率墙限制。如看到`package power limit is locked`,则说明这台电脑不可更改功率墙。 + +## 使用 TLP 延长笔记本续航 + +TLP 包是一个开箱即用的,可以为笔记本节省电量的项目。更多细节可以参考 [archWiki](https://wiki.archlinux.org/title/TLP) 进行安装和相关配置。 + +```bash +sudo pacman -S tlp +sudo systemctl enable --now tlp +``` diff --git a/docs/arch.png b/docs/arch.png new file mode 100644 index 0000000000000000000000000000000000000000..21cc4ce3806021ee48df6104b26e9633bd2310a8 GIT binary patch literal 4144 zcmV-05YO+4P)-ByS`=|b;Jufm zNt&e#6k4FAMMP1=1s4>2@3n=NrC`}N*~;3Mesk`tskNj_k}t{kweOyD&+!OO122Bba`GaUmp@Dspz(I%^R%p zP`x03-c^7<#}gjioxv(utqtzqxssqm>3RA4t_u9Qh9Lb2j%>FFo}DdTtrz6d?gD(E zr=izud0@8#9>OI9FTbo8Jsdo%JXDFD3HbPr6j!4Wi#C%I zHEdxy@t!UV{Ph_X7qYxGo21iMviUG7+IX0(8-bT*L$a%Dz4g4*SI^5oko2Jkd)A}6 zvyF=0d!W!K=RK8o5(f- zL98T}gJ7_i_0tRTR?-tM?|r`)wI%a693nn(1m9SnQPQ8dlTQQqy{u(uS8ZLJ25`Ee z5nY#6LG-^N{?!tsF$%jiX`X(>y!oVG`+j}u!)>S|dGp&nM1!wQ5)|!Wvev}CT+ln_ z-ahFLUrSy2^RW&M0B#7lDM$w2uNtGRGJdlAiWtWE6;GIZ!v0}4j&E!ac{ z`2L9ドル)iXY7g&kIq57T4-me01MU}aI&VQRo{@&|-d@oDZ`BVN)at*X}HQwwUiJ!wKh*h+Ke``)9YG`ak;mB)W@1hEP#UDtr?&z6OijQLm z1Wp=Hzf(GZ!j+xJ>QL_pa|LjM->hbb11EKxI`-}WX9cP~a~9!{loi|Q0v~joP_IqR zzA1bI;KULdPyZX=>_)hx^57|SB~9S_9m3?yFTw&}ZcDSu2>FVTdJ$<2`}~?$@e6h%fjpfuz;d)6?~}n_ z|CD#>0`s?^@(@-7_qY?Zu#no-T+jq~cQvQzVlNyEi8LoV? z^(bB7`+b2FXJ&_?ADsi4Wc2;6<81;4ee`1lgxl)jdnizxgno1dm?d0jf!}ls*bxw| zoo!Dq)AQn8G=l$V8>hduoT@*I9O3~5ywy8u!!m&7?c4%Hg6~fZS=^7c$M$h{wbLI+ z&NMVCAtIED!>JYqx&=rEUs02zsO^SMvWGAR_4apGPS%HBF#5RFEkHc@&`&U)ukCOC z=%PTe|GhMxehB$uDSq-O4d6EuMpE3P0>%Ds(+2+7CDka_^69ptRDs__BX@WLrGD4Y zW&mqj#Qm|7s;Vk;GJI8GzBgH9&t~jHhk~ssCQOjR^3UE?tV=_AR8#03aH8F)y(t z+jj&_;9nUc)jJa4`}Hp`(RB-GEWT%`rF;K(`Oidw4>~i4u3JEt;`FvOfNy94A3Aq8 zA39AG_%>2@N)2j%82qQ(GvjGI%da0Fn%5;a^uTiNf% zyO9LGUx&Wtp~nw^DI-nWwdgQ_DPQa)8hlWD{$dnoq$CnZ^Ne9&wHgiJ_sJ|*20D@q zzF&vE;icmiFlW8Qz+M{~3}8A&o_{342hCbggyKz9WCUGI(^5sU!N1m3p)_jJ0KQ*G z&+w7&1EkoOGb|^qAl(4Cwfm?7A2erSF-jo)7BJb?FtARQWblE-6HduC7U28!@pp3w zHvsD<26p9=yyjei2ee?;baey_awi&9v_;v=t9b|3a)mfy<}y4?dqpyc`vffe_co3a znN;xa$g65|u5T!E@MJxDx{V$`DCyogH49}I7GpJnXJ_USYXDb_6OJ;!ZqX*v0AQsH zE`b4%x93!L$l<#>)s8ar7h^Mk!r~H?Xtt4g1B~ZSGAt+8kqAC;?{S^|6Ln|N-{x)X zG=a0P#g67KT7u08lDWC08bCcmDi7f6Fj>1T<%q381kk)s!vwg2c@lvm{ng4y8i1y? zPmu=x;~3k!#eF9N4tMAbjcclN0X8F;Y|kh3320h*-et)i&@UJ&b$if62P!SaV*n+k zrD)J32YF5)%ZYnPGJxb2HQ2!4cI3=Cr1ドルN%=X6g2wp-ve*8&2=K!WlBFxq81#&Ykh zANGaK+rM|32Wwb(%M=$`i68?neo0bqKTf&7U~||_8-`>nDlRF-W&rP!L?BgC!JNE^ zl(BBXPV{b1j-6>}Ui=U)Z~r~tLaes{Db%s1Vh|yOP#$x^=eu3Uv32Yi=gh@w0K(kG zNJqjAkm7WL0hnVA{t({=rE?djzFe$O!eHNDEW!VK{zinc z-qT#t9rJcJwhwjPL`O(heW{WFnvbqZwW9&)ndtdhc_??`Z^b5@zcC~qV3MmZ!(^cI zSWc{sl>tC=WhCnPBd6nIGz^Q-m4X;vgf_eiRqjK>TM*djy z=(t#sLLMoujtKam!!a7bRc1RD=Wm9$P$@JiojFN@;s-o9Jx0Dja^_DhTf@0nqm!TcU&O{7+&=>9Vv3;z&re4CQ%2?GFys2~RQf$BgbVxr;)49vpA@ox`&Z$UAd;=p$UjGEy? zo`T|t837PRa7Ha1JAh7i%7ドルsIoIc#(0|$SSJzq(@MDj|7aPYoq9+Ym)4ドル(vvoxshD z&X6dJ`=P*N;v!5Afd$TWVUB9`gAb`zaP)4T?2MTsb>n1*!urKYA_Zo0MBBoR!Z9YJ z@WM6*MasF6G=Snw;jw&Iixo;?X7FSOar7$qP4L@VX8J0#KU| zeoSz2Z9_vzlxZ|NtTMnI8=KmzN*wWb*z;CIL`5XDB zPvHx6WB}L;MX)f!lr^Yx%OZJsIW7Z$Cd~F^)1lMI_(_ej--our%i;J5P!V*^FN#`U zq0Z!374?;I{hbx)ms9ltfrncG>H)2R@9N;UHiQw=eF`}wkO3?#E>*Y$SPa1885Y#i zNS2qya1B6MxBndAch}aTi7R)sxsbWLfZzIQfa+yl03RV2ドルtPTbG1`M)9%#IB4h+NVEr3OIVj-41O5KvNue6*yrsUHD)6hlA#wz7~`$A(iMfK@7R_Lo&3L4VDy zq;9(wDGI%WZ@3E-ZsCwAp{2az&EApWt&a~OB5+Cv(CDJh?b%hq?^vOcWC9<&fqa){ z`8gA=TxlyG#By>&Fgtq#dG;#!;YSR?G?PH@zb@51n86_|FTamFJE(#m>2dH`RtA^! zbgsP==R!#p{0L71Hwrb0=>?ZCI0aX7NCiLgJA!rT-UpdTNVv2y75o^{y>JPzhV+75 zu7XeM77**kK2Q5DW+Ex<9bhtgltwdnlq-~5z<#xuig~`3V(#!VDnY^DGlh>C9jW z75pd;dWgCd7M`ychNkReg@>AC$iM%xY*sK{OW#GU-s68GZbL~XKAr2>Ze&`BVVI9_HwZS)7kUv=)y^GtPQi1vA*(zHm}w@jl0N z1&K?~zFljyZB>EotlBpxOw9i?)0G4=RywmYPX)K#axT)PIK9}}JcQi_qcuihw+eXc z_};c7A=NX2=?7`6}lY}(yEgF+!bvF+0R_Ri6 z2Q%GW;wJhY(->`)-KmNfpO*75qss4l5w&T)r?f`<#x4tdvsyo@lkn);y?win5ap|= zhc(I0)!-F(1%L4J{hYnj5*)!A)!R8GrPTz z-{^1t=pq%ND2rx_?`oaJH%^!0%GH?cWx$V*AQ|Jh&g77w$OU%E}P{0000 + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/arch_og.png b/docs/arch_og.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2a654330900ce3635a927aae0a3bf0e9359e77 GIT binary patch literal 2641 zcmbuB3pA8z7{}kqz0lZ8vQgr&%~~_=mryH&aml4ltRX3<BxP0Ti{@-^yZd<8fvl>$&k;?2?*HOmq>839rS;2tqchmv9BNM4 z`HR@zHE7y1s_Pw)X@ODHk)}z9#*BB5Fh;M*_^NveY;ug6Ra6uJud7iWeAkWwwsJsP z1E7h>CALLFv-bQHXp5(;w1jN>Q#N>CX;oB~!01Z|y&7mIahH``hy&{lwbZ)1zF5De zp>&8odb{W3d1jh2klzY4dB{aBmIBE_TQoFli-tt+#Z#bNp^LZ++*s2Pvghn1bjPk2 zx%+R+7wrfQgJgA;{fdznInNKu@3k1IN&{v>kjsF=y6ps=dbPxX%j&aGB%>~N%E>U0 zJ)D&lP1mdaOHSl-mdVl;cg)pLf+}`acqOhNKVh3H7i`!%%SQqXW^uHAs$qqhi@(n` zl4tpNQ%xRqKv6=_;%t|}Yz}x&2l)*-++v^gd+K0WQ8EV|B3Oh3Qf#LoNV4xzjTsI@ zGB)D5|AR0s0O9a`l~s{q5=(v3&+gN5AA#iFr+FmONIEU**-<4fb(?mlmffik%`8aj zdOU^RQq^E=ZH0qMVgJS<#-n{98+6@#sb@jyy>lT2ドル|K)QBxLp#-bTxgkv8ea8lpvU z!gMauvLP6=hC_HxPpt? zY~4ZMx{eH|UAgQUw~Z6Ad!{cx^NR6(5!Jr#*L`Z;C&*0(aV_3>%wSP>Fntp*F8Kp5Z zU;o{fK+%HMOatS3QObPeQ0L_QH+E4edbO!CEt8~vFLep}oNHL=wt}~eVJr7UYn%A< z#Rssgde?;MF`V6&Ja4@A8ドルX{&gB2xxGL3~(`;QDh$;@Mi&wO@_Ijyf0=6mP>@2;g5 zr~mi2Q(t^c(?Ao~b>Ar7`50v@hwqlZVY+^Cp{18_-dP$JYhzilWfN2kW8zgJC5SpI zhi!W@-$xg(Fkc0`DtSOaeEHj%@hFV)OnR1Y_yam$t7~-Ep@ycpE|%Sb!%3luvb_`v zN`5PGP(4>mU@D6y@~n9n?yK!4FvI?ZWObCE-}ZWZ|g!yi^cnENp{_VONk%)~PmOInlQxT!dA;bdJdOaD$bXR%PBSgQ0Mk z(`l1R^NyEjP}qWv3$g>luqH{PJ*rm-mm1)=Ep)qRMa60?%fEDjt3%IYiQcccr2R}tzg%2m;y!-V+O=x~ z6lf#k(Ub40d41bRf?gI%+=k~hFD|r!4lea}muf8`FD0S+IMTA`6e>LY7D|J>*)$dt zQJNKwZMLl=kmETck@%(9ドルh$IW_^vH7a}|vA`-K|?a&)zQ+=uVSP=BWH9?puZtYdg? zOuwJpSsgDR@S~`zT>SQZ@D%8NbjjsqTho@Yn2G4+ptm_?h zjIJN=SPxz%_z`qNLt86xf^myOFzJfoZ(P_+kkGKPCotvXS%ZP78dR-TtLY*PN&1gl-W|aW{Tp9r|<3d;e zw;4#2&J{SOR!C{`Y90MsP-vnjgmu)m)skD}ph0$+BJp~v^XvW;7`+04cB7GcsxdIa mlvItC;}pr}QXNDHUY}9RxZ06+tLp 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ドルO;oKJ#@jQzNOvam0;*52Vq7kl~ZulT@jd!JATlm zR_~f`vmB&P64F;MeBF6AE-E5YNcboBPhR~>9Ms-KNT9h|S1Z&Vs>+KvZ}ss6Rd;Y+ zJR7lK1O0k|!Sr$kZ@zRj&pXn7&Pf1kdA4Z29 z0ij6F9Y*MbCxdtQ60mFe1lBcw+ounQ7>*%GU@bUn_nSY9Ot)hH_!)-W{kfb%0NMT8 zpwma89(g=!|3vS6lSE5yikPXvcf;eRpddhsMEC)+JpRF(#L_v4j*OwR`39MK9@e%L z%1Y4Gdso=MJ-$#`jRrM}Ug#1OvK&Hz0}`6nCpDdR+#(!Gb_%#qx#Z728C6nBZ-5KU zJ=IRjk8y|Rxq|aj+9x=-ff?t6^Y|x9uDdO)oxB000M5g=*EupObDQW&P@+Z)0DP{_ zhVpw4m+AxbSvTjfVmLIlfHg}HBuK7CG+h!4|OvU%5gVXoq6gW zQD|wBWjPb4JMAcrGZO?s6irLla1>#)7z{OOK4(dNa0z9qRpt+h1Iq)+KDw6?{1glb zY!l`2H)Ou1$C@Ub323Si-?=3%+(?6iAUbWD)CiowtVT5%0px|xgeRP{U;n+( z`B{7~3@erjNElI~w3!~4ESB0!f$udvNRmpXwUjjf+OA2%O+YFcz@nmEXuEipst<3)l6omak9x zu)C&&6V1wwAl8B)qNGrFWy}b^#x`3~PYpdIW`xLE_xNa**^sv=SC`E=Cael)lh$xv z3~cvZRt9?#oG~CPOOXaI@H34X;|L$y{a*S#_X~isX(q*$WBI2xS?}NXc&6Z8YOd^s~omHXGu?3?0E9fZTcXnLC~>& zZ(8!8fSmL^bAi=N7RGODe#o1^bmLO;3E$xtVmwtP4m(L)g=teztF>6;e0-Xg&H9{W z$!(Df2GR$I&IcCuQj|_=dOsD`*(F@uov!o0ZQcW6M6nc)uf(J5GWX$Fj?vA2u_Z>K7wSm zP%)p!M8-wFLGZ{JE5KK}^HnzO0R{L!tid~j`?9V%74`?+LI+j7Ce%XLMSRrTwmaub z7<|ssa)b759@f6sg(w1r$o6(}hmf40_>Sx!wUS-<+s4ebv%s-au{<$w5^g&b=dx&v z8>r9vFBIs8c2#Cd%Z<2sem( z?4+s`s4+|csZT%poavU#CN8p*rfYSVDY`mGy<0fw!n}9l%d*)3li=d1r$bzlyc|rb zu-tLJ-IRDlj&6m94Jo@XlKC0+q3?wn`&oL??u-ms%x; z1~!^`ke6o2f-sAVYX?5h#CEW#l1s6++|WDTj4_UNK=QiC-pswB#|INuzTEn}f^V>r zM$g#EavD8FDU1aE-5P`B@rLcu8^n!PalK7i&EJAgx=t@809yZYzFA(z|nx{vp6@wy1TkuU}`a0#a;g{OJpoA+X;4-8gpRhlsC%Pz;dRFuu zBlBR4O9dy&mk>1DS*}wn&e6YFk%b0DZ5GHI6xSUed%YY`(sP$G_HC{4Cdc=UFBBJy z&g>M0?%xdEEmL;J@aAYPHi=_OAX4~u*Xpx{tOjQ^DfHz>#dIR``;P~|mejp&2=9#U z)VGmyKjk?&DD0Yl%T?F(YFip#(1++cGyz&e?EPZ%o*Dn%?~aPKK?Huy2QoSX!jfW} z9fu%UNU*|kXDD1X>0qp3xy8~nHff_r$UJQd#)i;0&}DE=PEiR2x3TA7Ac| zI&L(_K1#7qN~q|eW~V@zt5spq;+p1d)gIybxV8N1I7Vh42LL1xNe{T01p7qYHW<_z=ned>05NIg zo*8DRBYY(qCmD*D8~-EmE@n_hO1t{1i$hbqwU9ZpOtP-0v%;KR-TJhNI1f8Fh~j)n z02)XbTWo6zyvBl!aU8ko+%lp--7^dA*R6!df_93ZY|SR{wudNV`rpiUd^0r6ドル&52< zaJkRIe(|UuZ4qGP*=YZ5N5!BnoRQ%LrCN3cU@R>b%=;tCg7;vPNPN{ZduyfPM7h- z!cU}XQz324&?CY8gM6XP&o5ougRruWkC>$|WR5eRph#(kz>ae8o9)6p{c<{i)nb?i zVl)`2715;Fr~Siz@zz2{h&vsKdV2KB+n0+w22F*$JChE9pZpXfxYNdM;Y+t=(ncXx zEE}y#{p_mCTti4x=BAnRWXmG~t@r`ybK$;1sDQYE+YC+I`wtFcIz(e3zhH|)qGd^8 z??=?AD^614HzoIIMgz@(C9&IeL1F*{h04tB7SL(0ApC(oO(-_Zw-6-yOSRsw{zfDk z$jg=T+`k;7Kn=ASBq-u~)w=NmmFDZ?*|W4$?Cnoj_g0L3ml(N6>5R@Q_k2{~#8g0g zu!i2r8-#l;NX9Q9@01mE9`YCvZ2{MFX%cn|}E{_WTnA)?Ea`~wK~8+=vhArxqZTIj_FN8E_Y%FF+Ty-T) z?{{s|R!B@$RI)xtCk=euHw379cp2g{)(0Lgn>)Jc@oMgCDeQ_t2ZeDw)!T!uR{Nc& z_nhqW_tof^OR-`(>o(|!sMT+q_R=DTbzofJ-&ufJ%%PgYPNu)~(@|!%1x-3{4ph?J zGF)IQj-{F*+Iz2x-)i2cg5CI=&!R4GNU1DVIc+{D?R5G9a5W=^Fxh{(N`DKvGPm!s z^y8{&Vc!Fd<+crf${w}aci=apwmofjmmu2h{dijf6y=*6;&ud}tkuw)x7ax%r}kj^ zl7KmEBD3-GX4SD=zcZLf=4*MF@!5lm0woVd9>`w5u8q;vSY8B`+Z#RFb;&JnLaH)= z|0)4yW<_>rfY#Mp;))pXJ+FKSSb5q|*L;-zTHw1m>;-j!X}S*Ajhv z|5x?(5Cfj!%;=h4{d*Pq>h;L&x{yPcAUo#>a;ftMg)4n5&h`p-o5wq7x7ドル~#z)j!|-U0tzNMD+&x`_=qbP;o(* zDj8pLxV-0W&)&oORStsqHUV9-FM#b;`t3MCY@Vt@1wg1BFJ;Li==8P9gq3&{VN*4* zLn`F<$ zqy@uJ--Gq_V)jH18PJUs^A`W*0ceMH5v6hQ!bWm1D9y@M!&IIoyJ~+UjRWMO zl75$!x5sd&krXp{ntzrW-5dW-eLOQrLT>0`R7fY0X(dQQc=TyAnaeufU(wX~JKLh5 z`6?1ドルj|x6nm!Ex@`r{SE6Gf#8r$F%lNg+aCf9x>7Rcz8QyGf^7>TCiZBnl6Ep8CB& z1Qp6VNKsHLNUOQvs|XOlG#6aThZ6-d6Kl^2ta7vI%3~neO-Y7_HCi&POh80In}TaI z`Bu5#1ad&UAbhC;*U(pYi_nq}fHu!)mSpT0mUfn;tm+C- zvtFYF$|v0TT6E6j{RbC4aAG1M6BN4rx}gb0ww!7;VGIxB2GnT=iCKAg?L7tBp3?KI z_&5^x;PGg;h`8RtMby102Z}z2#TIGi8?_#`QM43(rm)K-d^6{6?(wm+YoFH(yE+*F zB=a)`O-Vlv^yn!s{oA3ffafn#>5;-CBUZ#|mGM*k9Q4|T5Zc-BiI4tVxG2l+K#4aTQmwzau|%YS*4 zMEc%+wp0nKEGa!OXAb`A;6i@m-(VJkwI!WP=}ceL3$#oo52`b>Uokm?RQ>?cmEOC_<8q%lfy7kal3}>1@dP( zQRvWV4fYjCM^a{4Bt?Y}U=aZi>-K)~SE1f=i|!l28~4PhM!AJzLl*==8DkK(FFjCT zN`yI?Cy@f3Jz*o015@k47PxQ(bWXOzN5g=Tnap#oQf`0RH1_OH1ohYyW*7#;tfcf& zzqr(_5R=7^&$kaNvMENu)P|kke95WiMzw(qcJ0M()zkh>sZXE^hvopfDHXG9M1{%> zi)}+Z>mvLUFqI&v{JRnm-o;By;?NKT+ukM!<_rq&ms=vozx0n?>2Fxep1>{x+i7Qf z<6l<@rp&xxxzqjrwxh#siF`zJT z_yc_!67pjJzoLHFJivGQT5M%VGlQzFTrsFu*2sT3bRzYE!1GAw{u2@a9GMdqkg@c4 z*93KuLM`yJa*JT5rQ|TC0t;e>lvruNx=O<`xe!dpm7`v5u^@a0eposi&fazc_gl2y za_Fj^?z$CVfS(4aboyaG4jQw!abr>d{TLnEOmNT%aM}gbiue8lg)dhCHNfZO+@#Dx9&{>shXErUJ0{Hk1 zU|?_zq5Cl11|B>LG*?nG;pk2j&-Q8Xj8Ht`KkI@+Hq!GsU8{?)S-{K^BIfc;*FN7@ zmGl>K14ドルON+6_T!oFCPx1b8XjsFjYkhqoQB*tVPsQ5-J>=fz!~a)-U?G;mo#JOzzk z(xLmFOu!TZ&4`3X0(;f}E(wc@Vf0{UlrrVmP`>4kJ)8nM9G$_tf*QZ%KlDbxMhcX( zgn4@YZ-wwR41X+8Fb`+s~vqI&3Gx9n&bn=WNa0_^WQl{i9Ai0IZHYrx=_e%tJ9Vp2v8dD*6 z)T_(jgW?#rk+oO<4hu5n1f{eqi1xk(?wl(m-?{sngdy+*q?fujqnnayiur~bezn>$ zg!1TNPWrRA0)`}kJbtBbJ$^&Hez*oIGIH+C;y6|EUD8Rv2$xzCXw_6@gJiKF2rw__ z2FM%gK&b(2!{Jnoi+#NpwLta9`WSfbpdAi37XD+IeJEg zD<)@{xZPE5st87DdYLwFv7oduFa5ドルgoaIt=eYU<4z(xk6*{vx{na z({L^Bw{mq698-b0Z!2g4rp$gx*jl+3z6zZeI{nP&&uUhJg215vT|AkN)4vVz79w%4 zNk7r!=TI~ZP6qJY=)TtVku%N!HTcoG&kYR!=z>D{cS$%l=QZ{$+-AmR1o9GPpmWw# z;Eg8cu%b2*B?ur7o-;;&Wj7Zpf+g^ycoC-PZL?r(8YDD?CH70%vtq|5#|{T1r~k4m zUVP>mT9OX5B-TLUYH|*2Nhtv=E2nQQ%+#Z(0M(JfbF**WE6EfXc<3v@wf~ljjh&}l z%I>aPIUYgedH`6%FS~GJuA_7S=>i)Wa6AoIXw4%Kji#+R`rWFpC{+LmB^Rp}a@#u} zXg3^z@oS5AZHita0qIm;$n=j)m^UuKm`=^+9Wn{F6Va1ty00l|hr$o6Cb6{h4+BpPCw<=lpuv&y~`>Ph#b@B4?&|sSq6A9ronE? zidvA@1l;%o-uRB$xJ2R*pyCB}YIE5RCr~7j;n#5I@x!rRg(_&e$p(dw-KJjx75Lv; z*Y?^7_P!yYhB)4!Py4?CKRCJKH+neNfD!<}5}$c5u3e+!0p>nKFbAV$tolp}MFn(m zE&EJtPJhv6I^g%xeV}h=M5LCxIeDe%tV?*+syept5v-Ra>Dms;N2Mf1Mez<3wqqtu-x zR6>nH2hC!fldh@M_6b=1Zi1OAQqc8ZfeOIa6CkL0uy7~Kew+9rE075KlhE;7x>7a^ zo)|kTSKlmdGIa)s?1$hbkR-uO$i&2Lc#-3gI_aF4!j5jJk!w({Qjp_R!-3e}Bz6WK z(vBKxp*&4uC+$yxvp}8eMEZzyeVfQ+SfjQ9eTcV9dQ+rp8`p%Ygvf-)Jq4-KH4LMe zG519AT)#_q8=w|CM|*%5bDOy_1!!uiqTNa#B} z0Avre;pLjUF3%>1VT(b>I(foz(wLEmS(L6Oo^4-YY>)1nk)Bd&>j?;BATTZ%dOT?S z^e>v1N2WD_QW@HU7A=Er8|JLffs zXGmi^bvL9ドルv|ySFJ@&RZg?_KuE>$vY>CRwfh)g%B2?=y&F zjod?E2B50Y-tx&>5HNx@cHkPa!(Fq~)eqX2cG>!@ZlEwvCX;r2zwsuyK0O-1HS2hX zzMtd6J+NzaST3}4aX^Bc2q4ZH11R~XaN6p64Kda6_Hovun`o@s-z2V+OktsXBP?Wp zM2^XjJ$&C4bYt5H+y8>wy?T%-#5sc5jlQ|zAy~Tnt5Q(OTR@+xXrS=fUYKfe!64{@ zg}=}Axuj$a(W3ZTNa^jgyebCS3>vv9kjeRFFekBkXr9ltuJp%NJU#d`UB2T2`Ver` z-p4#`OkB_OEIpWmO?5nZkLN5v$JV?cGqlcvNxS7${yj^DFWiH-G|NA0H#(Nstr}nq zB+_*gu4>CVU;M>Bf&B)Cl^9&ow|*TCT(bhLhF~v)>5f|c4-ZAVLHZDnyycmZ1;~d~ zTTc~*-Ay1!|1;t~FjF|3Yl^c3o$${LmekdZ^z}dit>#%9mQ{&<8)be}$rd7qt6%(= zq*^AJ)fP@F$IQ)vfjbJhMUa#EWf;6;C0m21z2Eh}Z82;-)^!?Kv;*-^fIIGZ`;`w9 zI(Hqg36KfA(}_~S@Q7jSnh zc`z{Q)Pkw;X=(A%1J?6#Ubto3Wy`uYGCK6U;NZ>0CVDG6%`T#88KvJ4NHm7A{Np78 z-h7FZJ2MZMJYO!)G|aOzR|+T%+%0=K6piu`26a0SBIOoA40clJzVkbofj$?^WwdWQ z6zV)%Pc%yM)g-+&%{xdsWlq2B1uizoJe4c8FAZGtvau)l2?8- zSCwzKV0c&wx^=qdmevbDuxmusOnkhKYIWZKP>!4HvX@EM<3b8u zeT>?-`w17NZ93~p{iy?n&d`?wnM4MBZl;CvRsZf1gP#JZ_C&X(6pts!RyfYh3C1i; zTO8WEP1Q0P`wr?7xyCuUa=ru_6dN8ドル;OiBOYn!*nG2kxK2#nQ1_c!lLg{L-5o^2F! z)X$8qEu>Pk_LDuk0mT#HeFTj@ZV5)nXgvSkCNjSoIL` zeR{#f+oHyF{tK5ドルe2wW^QpmA;XuaBFXN^r14Z;M3RcKzMd_4O1v74$~Cw7B!sB_8< ze-G-pnV3YG&?#^WM`}5QJxzT~piIYeyx*?EV6=>Diqhv>ye+F%y?2W*zh7Jpb9nb` z!YkplL|XV6&wO`fU*BokOJSvDR;NxbvICg;mJeuzU!r9sI&@q}-u(jiTw}?Z>YYui z$|tVV5w~@xn>N(S#L?9MScR3G!AJpPxL^PxGa@JqemsN)BK^FY^zO|7Ft49vE6fyJk3-WO&6!3jJ5a&lb)5nY+HvaRm93TC|^9tSlh|&Kddi zsIQ%l^*MuRpR0mtzTm3`xeo=!Z4C$N)5j6HJvgZM#B9;t#(hejujz+zY_??iY6qV6 z-MftCOo2$!CKTf2#(VM7z{^ltzhR-W#;s7Dxaku?OEdVKJe5J6k*g_qYVi4Muki}= z8>PWQlUf?oPrj;8y#fsV&6Pw2D9V5b*kf-D3HCfsHPSjTcI&ftudjZ!P@~~eeCGgf zKYIO9l;*`yf@?Ql!p_}k@ClyJ2xRFE`>!FGdJlgWCz910{ijVW(r4F|dHgkQK6?B? z$Hw{a5pc?S_x)auiHJIZ6UvxPaal=T=|N9OQm4$N9(^F+n=OJ*Djmd5gJe23ドル~DLH zvf`6RRl1M7d&+((Ns@zRYLKyvvOM!KPVJKY$-(Efe>!!R>*c|i-V6;;(BWs6Q!6_v zqbsygKRx)W#n4CHhTZ|2xm+ErWi$ij0xj-){mG;@?>95 z8#TB_il9E096Q$tRQ8SK*~D*vh|}=>D-_Rfd z@b~C7p9kGfx8>zQoqYyYiiS0HoR?Kq)Zsgcj3n`uAw2z++`NoYk%*+@fNtejoi_X_ zlc(<_k@(&1e!=az}=nkg&t2e7u=etnjw3rlno$!;9})w-x7 znyFCbeW)x~xGc!4xreNPWjXxxfI9u=g`2$tqJ7bO+SAAH#(20ドルsNet--u{u{a;E`k z_@fE@;jrP(Du$y+8=UdCgWBWCR3R;cH0k+j=T6zc1-TdR*b^Dgd+JZ0MC4#Sz>msp zSl_oeuup)pL)^{=)X(|-XX z;GwrWX2V-@X%oR)wu^6xUa0tStT&U>M-b4I$sH6N>krSRg6IDI-bQ{g;x{n6*P|=H zWdlOx?5_5ドルa4K@{K2>vYGKFLwcH57~WLrm&2zW;2bFueAHwq3eqp59wDtG?Ds2VbW z&F0|-j{on+NMBvNEQ&M?9(69Vin)wJltK|I8ta6_Q`8cA>$O#+&h;0-26rzXF$Z(@`1-{ac*~kxFz{k>hfUL z(COe*Nv(KaOn38*^0lAfE}r;EMzsSID6e%$?h$*Rfh{9o81El-hRKVj6d62`{cF(g zQm~ASU2hO~D)`#13l1Hrj5(b9rFP5eLg|O)E$UQet$tNpp3$XeK&_(N`9d?>=}ds} z2+**CZvbW2vLl6pkA zSB@C!CkRyYp{f39K?$(ezIyk%`M9=<*kn|)3mc;`pn4y*ni15v=43qwepj$~gkx@t z;2#tf-`%M4b8Ud-vOr)d62P}#xCo86zeND>>@jb~*a7XJ9~m!IG%^)Y1jFAvee5VN z)Pk&+z&HH!p*JHz@Dq&0^To4m3*N%$qccA_rdYo<;>>{O$uA{28dBYJ3s^vqyAbVN zs(Hi7Ygx8i0hoCs*7sZ)#X4uio<4}pre}vaykm~h_jhtui3`!fb2hbqw4ml@hf6+9 zO+)*buS-AS`)PSFD$N5&b7zd33DMMQZuh2Xh5hbV|CQ(`(SDXH=)YNjZz}G}OmvCQ z$AdY_g+YNSB_F&mrA;y15ドルclba6Z9Ceq=e+OWrD_>Wn~x41e)=K$J|RX@86ドル+7{xH z34k`_SnU|kOKDsm`kFR6Ao9^P7{3hY5=l(O-%Aa)S zpVhquPHcjMIx`(B6Wp%lQfMkBB_0cRU}8R=Pg?2e8VW9=shR5L2=_Y!VUYdz66ドルUq z)6|z*0hS2J+s=#GVFR&HqRTFCKy&YKK*j17Y zFfwj5^^8HqbuIa)fE6qQz{M_rl4Dt!1YN4Tp8GW&mRyW6czx89^p$$Y+hsl zwL>i#U^-e#K+uKn(Etbw$GxMVDaWOYv6oStvU0hWf9MaR;0Gta>4SrlBMPj*kIr{W zr=Hd#Zgl+i;tT=0^3wSL-|~FqCuC^TAwv}=$*HmNYpHlvYbmzO1sb4<8&2)tjv^gz z0mNwVgqpX3-s>yqI6bvjcrS?rw#ofuWH+haz}!;0K#?G{{dcWd@i^5KbenTBz#V<0 z%vK8w3t#I2ynpMP3k{q@>)=kAESi!@=gfQl6Cj5DfsR0nnlDI@ZqTppF~Lz@^aA7P z6<;y5{em@kdpefq<4h6bsv{9?mhik3hdtembmrbvuh928rv`xia_{6xrcpnicuw`i zp!~HUy{BQ%@zTLf72MvqXZ*OR>gYcYRM>1@dnUHaAX@cXoU};cm(8Mrco}vH%2Rx! zC;6i4)3Fqv|JsP^_2@#pK$P3U_4HP}lTo&WN2ksP5lLYh(H`pIU?j44g%I{rL8 zCjmYT^sz5Zr7PJ6m@UP*bgrOdArx~0m~q3}M2~75TUna(pGpCf-GKx4Hsi!(+sJtj zcT8HksH%jNvDwp7(({hO*|6a%UqtJ$Z+?5;eSSW&K0ZU{g3SS*-`Y6*LmK<6gbf(? zZ%NGussvtnci|MXxc+)2Pl^2N{1rJ(MaM`|?xjkNcH_`@#t!VeBfobkTmBCM(-9Xhzy?j zrMKKS*44*IZiy8IEe6JX&@Z@6Gawg~gh*iQw7K5pzVl4?_=^x@Ff!vHY3uV8>=6&VO-Lu z8bky)TJ6C{SGeiy1>c}_^SkZI9Cw(b2nj!Wdpq#lh~Mk6e{LZkui2~JW4qGx0?+EF zVl0ErcOix2Pi;kBZj>2~VRD#f-j!S*D*EYV7J`17!$g`X$-*Z}3xtlzPn6wX@h*JS z+*BCLkSIh!k)AW}dQe+19oM`8Odw!b5?Bf^;vQ0fT#&XAdnG1ih=UPOBwv=<;&)5=l{hc9?pfl+n`! z$+Yu3X{pR#O#++OD(_(SxrAbASw%Y74J*ZVYOLL-Cj1wkl)qoSuHTN$O~u*9{{-5z_N?cCP;`Hv>scBhr~r?SG6 zLe+p~|CBy!!D(`F`{!AnL7xn|mKkOV5YUhZkG9?(MMOS`h;H3(90IW0BgUZC&ws`6 zD#n;_I#p=t11h%dj);gfzFTxHue9=WocqSH+wC^&JRs{dm|l<)vyf;~*h_!p&-ut* zULwYf9+G(tzM3XRQ1gASNUD(El*@J*KyGZJ%j3nKBYn*i`q}SIch&6#Fc|~xq{f$@ z%k$mC+$?18-S4R~W7)Rjtkx!UTI39J3RG5RJ5HQP1z*Ao!jCg;<%~w&3ul+&e+9$g zA!^69eYN=(vhP{l>1)4Z*1SeH*zLLJR4-7imHW%?oZEf{ez5exmuKEZ~T zCjGVdApP)TC|1KLQXo<72?o$xhx!r`v`ppd{57uc`%if4vmusl3ydh!lxj#1{tfhk zn1#4SC*uXoh^sSP&C4&Ktn~7?_=LQ|(tVnj<0p9oj2h|mwr*n0dur(ollko}5w86?Z7%Tk9N31#_j|u3D_QsP(+3+0)Qt$e*)7Hh*h% z6dUuAKsxGYZyR*}tCm}yo%}RaRG8Z8cv&TXY_*Nsflp`idYRq1HdaPxEN`C;Pq;KccBn!se{?$j~fZ#-Q}@=;_j zw{lOqSE6o}pv|-PxY}&Gtt1ドル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ドルl>1$H(}gG#uw1Ne`{>%Ht@0#X#B@L==pcbdHzISn&0L)W zGjAECVU!GCZ7+v*zmeoasSfyJQk1$(bO4?55G zR1S3=Ir4IO7I{E-dty0@c1}e5t5IRDHm311l`&)YU-)Sc{~DBdW(x4ons3j&{wBWv_5+5cUY&^T0FvK+I-pb25ドルvPnQtRVyV zp5GVOCWaKZYHn^<2_k@crlxq$uooxyo6=p+&o~duxre2xG{aCL+@uORZVn=i!6gCxYQUm+fMs2RXhSLj#D*o>56#qexY z<{)zG%D%exq-1S`T>~j z3*^l8jWG9IK0Ujn_fT3aXU#d;`MOpc>Ard??QsiA_xcx~hIRY(tX2~dgM(6`ef>aj zxC#y)*&NJD6|!p%B(ELEb8&aD4k#G#T1Dqz!;Vt<}cym=kvdek%k`*p&g&d^7ke1tzzagcdduvqqmu-zizfj9kx z(*4yae`)vi!AEXObg>?FC!3Enc-hY;l$iZ8GnM#f?~V8Io|qFx9B`=Ii}F8eC{d{X zJz&;)=mk#U=yYkuN>>p`*zlQI--__ zvskv0>}g$Q=cMWZAVa6N5hJ8g4q#Lo03Qjlr7mEk^JM?|bNX37)+Z!ReQ`EDtL31wZ&*E??qiwvr_Ind16OEbtoOypas%JR>IYS!UWcVle)b^ zP&)@YM03(p(Tys2E8#%|sE|;xFrGw!*;;?BFI-h>envJ|52pBOWU!w59U4)K z<3cc7btk7ri9f_~m_cbf$q9eh=5cpv=c<%drmmh1#lvvh+d8md%|m6sfb7ah`amvv z5-#Mf*|X}>!k&G!s=9Jk=WB14A>rFS){zM4FBPB(H&0qu9uhP5hQ*X){o|m9=fK5U z^_vTk9YNA5%MkJHsEeoWjm++zS6Vfn|0?f9ZO#cxrEtn0q2wcRdV5{KgsfRh9Hj7c ztWdw7vl$VYx(P=%2|&PuN(FIkZIzVjDjFA?)^noBKu2yZ*Js5!Eor*`%YBcI>dC&S z+zHwvG8KEnx;+a}W}fb~JcaDBK^#nsfmiRqk&MYlK_aytjoJDnV4k?E9v31YjR4@P z-#}p+pqa*powv94f~L~FjHHcUJ>&gse)Jwcs};)pl%h zrLR~O_iM#Yf+TmNmyX%5Uu~%8A!tT`F2ekKuzTsrW5*3=T}arQWvBMIXT~Fp=}Nhx z!lZGaQN84eq&r21|GkkeEdOP1--J#4uKj=XrdzVe19aN%uge4UhJpL`{NpCtY^BC8 zT{@U@`SS+Br3ajmbtJaGZ>N9s;YZzJP~EgIv*l6(Us{1wrI<$>5XXzHs`Ua^@^3;~ ze^1ドルjR6q!k)qs~-wW+(;1IOCu{xufy8ドルFwY!A^hGS}R#1oN5LYqEy@Y*fx|J=0Y-7 zRg-jD&vYwD^9$ioS@p~;cLt{!+tJD7xv42b7xVd(PFkoc2sx%o&WOJ9l%R*wt#flY zcS4!86cW+iJWJJ=p#TXcEZv8j7L>3+iM=|vZbfZlr|3<;-kh#81owv3mlg4xg+@)9 z7rd|`Gd3E)LP(7@Oq7uuhG6ドルF|FVY{YYKewpskqJ>G^Ce%m^^c$`GH1R2HwZG4?y;k0D4~%Lo%QJmguu!mvt)vHf5l z0N5!q?m-rrNUIG5z`khx#k{=tuZVLE(AeQ&j&7*C^Z=x z;8BoCJPWd_a|I;8AnT?SUk0Jiq%TaLtZjc&w4nuA0F23j!eEl3ZHSerQTNsryt7vm z$a;b6B_v#u5nzah?SjOB!B-^+RTF9In9-wYJtlJi&v}07GoY4zLBQ2Og9F(YXC{e$ z5>|vr7&s?_ssO4is}1_>X7M~Yv&1ce$KN*WuSIN4P#~fwh{INzC!b{4*AE7{84{)q zLB?thkXT3p@FnRJ4AEN8y%P=c*~mDK7s`T z`OG15Ka8WUz7xxas>1y=KVH#Tg?BlA|LnOQPhKbPY}Eiv_o~Qn;&gv#dvo`N@4IZ$ z3}22-X3M^|5IOMZBjlsMH~`LtTJ)vTS{N=x?17=vSUfJdRT>h{gt}P)Nw=4ドルW@orz zkejspK4~7IX`|gX9Y85s@IXbFU%cF-3;&V930nP{>=mrNo83`4nE%MvcY*RTY>$n} zTxiCdv#gg6-d|o>F{jzukmLk;c>@vfXJ5JxmSx!1)iNZyJ5q&CL7Q2;L+T!QFFJiA zZIuR{e^5_Jgoo=|vcRWBHfj65AFtkl6))5R4b}Q7N0R7RdG?Z91FddC|tZF14~YAxvAub+-BmhyxHkY5>{`18*8g$Nj&k zP`UeN^UT4=q2e&}4?HL!?RoCS(`-I;p&NDiHQQq?HRV7%u#aK1(o~>K&x5MrrRkLOLWhLvmaz?%T1JyB}bsLpK50$y^PL>*nKA2LlKqP&h zbTpCbbr$@R&!a;j;UL{Ajd~rJ(XlTCL9v4(rF(YaSp%x#>>fSnp>ZObi4`~C9RbSV zgcus0>@t^ms=(xEh9Jv=_qNYQARRVt7FASY6gZ z$hzkha8NM7&(Kpho?kHJIe)PhM#I**IU+cg+f)Z=&IX|Lfd*d+)Mi98UB6YQ$uRa> zC=gSnYXHRQNI(ar1k^s*r-_}ZY1VL2jYe}&R~lD8jqW*5>_{s1S!$?7+^7gs>T~5h2+)OF36|D zR=Yu4>x+t4u{yajc$ac2`2^$oU%=Ax1}Z9qq(@kbT6TSc7kG@kL*hQ=v1(^tT^G?v zN(8`L07vcKKg{6S>x^C>CU6vFpVhesPl{#-pe^bAz_!@x!HI_J=yO1nGQO;-4RFlP z+aCvmgYHrLrip)Z=4l?&d3v_q8m-Ecs*jDg@&TM^*<6#cngk%44adcm}*dac9fvowkbogoh_my8mmd@xu=xi zfgHWFQ)fZ*>w5z#;%wS&t_=Gvl1Pf>;4X>~J&@7z5aN-I&y{mm`D5ulvRd=_M7;)^ z!?&jng|8ivHVi7~?4ドルrW%*Q>mNCcO7p6TYwB!&9ドルr7A@TGDp z_}mjjX$CTEDP6bS*YVQ18`5Qehrsz0LVx6elE=FV5anH<7pbjauj_^&vkmg=4>P)>3ecQofqf2YLLiP}WP@{R z@z*M|OvWE9_pdbLx$kZgq)&7JxC{X?Io}1@AThZrz@@WMu))JcjL{jbZC{Xq4l~qJ z9mA*!G|V30j&qSWOC&rnqry}KW{a>>Q_G@1NqB&gU-=$Mey#}A4CE&{ZV4hj1`YZ|%((%wfc z1(>TN$~|qprHxhqZwInttBCuWa64SoyZ+)??GeW{@dfAm?fz!&YXoY`HBf`n9PvroRF;noliUkEunL2pGFM<8k_gi1p2-bdrxt7u{cnu z3z?pisMZ$}C4(bw4ix5hz-_#P$m0ag1%=FwIiGobfv-2-mT^RFL4F%+;uR7*BAjI| zsK74~`BRLiH12)z&WD?)6#*QY1#0!xgFPdaEo+~yaq_wf8TJtel$QO!Byy0%SI>u6 zE|uqtqq;U;ks=QL0FY&A2blnDg9GGMMxazuhI2>gv9+p!mS-{(N;>1oGO9&huTk|g z)#pX)4^%3=cbUIE0DLvs(C0`J1P4#*&hY!FqlwXRxAl~)*~y(4{#y_eu)_%z_|-+n z^4TWOm6)g<76|4~d=UV>L(zs{xLh-TMRKc`#0^$!q-_;AWDPfqPp$@TFAr|BIqlWLC z9C5#Bc2?^ud5vt<=+%mgxj?aknr)eoy{&?|uvx2tbx+xqzyccv2ドルy}8ih*#z4p>ds zjyIb!J6eDm;Q=ZmucGm+>UDWelf;^o z9fNxnT4ZCz=jEXEd{Tv+>US%^*R-nB9PX*v=U#M+@oxiM4!U9+a+uX07QhY4_ni7$ zUn6KnYTYdynn%d#;W^U@3UFx909R^qXTTs{+GO}ySL#fAjgX?-uHfi4K#f89Zc%^J zZV($gfT^4}E~s6na;!IuhEx!u;{fL-t1F!JSW3Zp~ z`pzzF9=2LH;i{!#ELGyVOwN1tZOnQs&*i~=a{+iUJ{cxGKZtZKB2{Lh$z>iF5hlJW zXIa^5xP6P`4&N_!2c5v$@|}!#!mIR#dzje64pxNmDz1se@MLL_2mYq5*qaTC*#(w| z6ドルjk^NYuyd;({CQlpS6f1U*MwmSq~G>6h%E-f7`MUL9cb@OpuPy@pre(Lq@US@k@5 z9ag?|UYftp{=~$@g-(G-QTF`oiyrQIf?4pTEACfER|eZdS^z<4bcf-d^-~3yp0=-k zP99#s_^t^2)f!p)Sn`W*cC2sbI5u8I*^44BbFcHWW8f;oq)~TEiS!Vjt#G#G68E+e zb`S4V@H7Z11%4Ggo0}t^7&piN{@RWKB2s=ofho!_bcxfY=y3HMosQb`vZ%0VA$Np9 zRo_mD8Rg&4NVKhZ&7d}oY0^zcav$C-J@HTlSu?k9yx+P82W|cxCbTFNZ9eUb9$r5f zib|y^G-EFqO^GIcBw;3IP)Zs6*khVXFR6zq84t7#8yqBrqfSnUrc$!uD9VQtw#iXpSHB2*I?kEmk zEj}wx8H}$Ki(5%2&8wF%!_7xVY6U#V!Q4#2+F%MBTU(*q4g3AC1{wn%7wAn5T^7O; ziDEyIcRTJ1UXMFp`iAxl={ke9p~UPVsfw>^l!>omIbGixourqO{_4A@2%x850bT?# z{lH;OF71#$-*iu|rz7v!E%ToB9Oukpo2pMdE)f{xk9lWkpEpo7RXrt+R*1xQFKlNI z_#0i}f_=)hm+62YZuyYBhWrOQD(G(^IRg1=c`05~2Ra1@qFPbY+q9jV-*vBPwl(}+ua$ykZ;?NTFS z2dA&M$rIp2ieJBtt1{sXD}FV~iGYk^nWLBHRxhrUOWCbe1O|HDca|E=OB(E3mugw3 z`x;kM-Dy|YRSP7c2+1gH0nF({|F?d+Z-n>as_yN}b04D!IneP+Bs<1z*iqju7#am3 zN;!PTVF)B*Bw~8QjQnHMm-yIX+Uq`X3g&{MNVq4 zXrIKwKXMNW+i30S;aZl4eaTx%-@q3gDZ3dy)h$!+V#-ebU_i>8; zOy$<%1m_(#bv8mzc?l_xlwu`4157~uR_n_;{h>Zk|O6ドルHPMqY(qiYj z)C5}8W6oDqJ=SgDxa$aQJdqqW1FG6>1LU9Y9+MK==IKkF4>w z2OiwRc7@EjUtB#$awz5RfQuDiDyVAM;5k2(4D>PL-k^`2FeAb^*Lu(IwNwamDbd#n znoJ8QwHkqI1F^+aERbtTG>Bv74rKHzDntz_pOO>%U40nDrX|(dGDI0)_5H+ici2-` zsF)qBA{dH7j{|>XBgo|VgY8r;+@5fjitwZ!5MVctHVXv2l|1}8F+Fx2K+dg|~W8 z{4ドル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ドルpiO}@Y)Ab&LptGqusck!l2$)zc^( zyniWaHXlzOA0JQWG<_rt@nc94ob)(wpd{8nba7ichxyiv`rdihw0}3qduyzhz08}2 zB8EO!B%GjfJF@se-!Uh5$W1&2l9})Lg}3`abh14N>|h4haGO) z`l{RoB_%FGGzlu|-DB~R*k-7R^d4ドルU!=#k{#KFAJjrCrXufN26wi$KU`leXN*l^L9 zTw_=9{rTE-5<%~n5ivqu%ajc^^g-m3*jdh4VHOE0?%kX6SzH6ドル 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ドルUsV(dnF zypH?Cjx{lrbrSq|GyWY)v{Ode>nn2SE;q1YrX5BWoz&^1MH11 zNMher?e6r~$}Q&yaNwee=7O@{<;l%@tla1t99q(pxq}4dhc`a&#bew>eG0MK%ZuY%t+SN=w^|3DE@3to{}+DvrLxb+MN+93 zh+rZ1K;2xfH8W`k|fRC!c6$C6JCdAJ`ihtHMm zzm)UpH{K^R-I~491T|Ym(%DGJ9Eoj}&#{e0iFwdcPCOBWP{sS1qN1V*y&-yu!E@Gv zi_eu52*QoI!(&4J#dZ_jmC{_13H0=GHDGypDsf0 zVHH5wrP^7vS$DnhDGHxVx)Z>0QH8)I7l}+`ku+VjG8w}e754s0^88%Cn{%3Qq{Y+b zBPA?wN-Cv`N%&vWYBu7FK=aQr-eT98+tRM0h|wEM^HFcsFuL4*`>FbeAeDQrz5P!= z5O?9Fnfm>zx27ドルca$M=N5gxiz_ch4?-Jb(Fdr6ljTgE$B4zQbp)m*c}^-Sn%MoH37 z21hk*?$a`>O&Q|^4|j3PTG)kwFPnTgR-zftbn%F?SnIXe#2#Ct`xueL%mXC`_vxcVO6HE5ON}eczZGY> zh5#Q@C8o!lWhs2<6@^0h;`fGAO7l=KvM=8ABBZp3jq1ip#c>S&| zjqDzjIGnDQ1{bh~A}3r0e4ldl*Dq)^;nnq2N~^V7S?!Mo&&`ppC3B_qR~5{!o0J?7 zo3?Si*(Ni-9ドル@v%^1mDGAIDjYTm|SgC>_->zb_R~PPt7?E3&hW4#I5|%&@dtD+WvR zIX8FV8<_kqt(1`tnex{(fcf37yf`o@rj;j2rb68e^6@okcfo@!ym7#a+g>)v{iC*z zNB579wgk7CnGbVrF`@T8L`u_~v8AOY9bSaJ@R5tRadY|{;~qU=$w4wPej7;k&G z(0$b8JJ3_OyHe})^MG``&i&Sr6Y7z1{njoWg|7MY<{jk%k^tkat|qbzrxijoipb&hz@uhy(rqx7ci z;mDT7YIxx&)XsmL-@?!X^V;7vxGyN6`kx^e{pAB@Zy=e&p1b%Q*-~&qB*R$VX+q3MHFg~!9ZOyme%W4(Vx9wZy)zI#9g_7_ zp=a`t+rE*-ZG1dDDu+!NGrjop`|ocBKZ@3U%Wr^-TWqA?zB*Yz}xD$F{iQn(qAZ(gh`q zlk@67$GQr2^Mc+YbneCc4pB8~o6Et5nou&$*5F*bkne~8^KA_(UlaGz;55a#vmXC4 z1;$bT>3U*AjX2fQgB3PN&c^xtQ`y_5ua%nEjo4JTNk|}>?Dt(&=xxnrJ@9M&c!^~T zyv2t=QW?)Hp^%|}I7m;tpo=t}uXok^^_7^_I}qFnn%9YZ)qKuXhR^!}Oj!srn2+ zz&JJG9Td9dL^v~apUaVk#2~?a;TTEuwZ5wApqVAu;_7X5_U_h}OmSWw>w5ho%a%Z& z`&6-6nHq&gXz5lm*^pl`7^#>V&RA5)jIb`PPp&FTB$V&}QdJ+_JZxcq#!LC+84&^nT*G*Qw*K%ILI+fjFIqzgz|ekQ>gz50 z`sN><#z&es8x%auewy;0yar-k2-czdmojzia@36wfn5`b&v-2x+tekzsvq?ao{z_a zAZ`23|9W$;$kD~o(;_RSOW5sYExt_es{NzNyZb=4qUfBOAXt32E4uhOPRT9Ifif4s z=YmyBv+Cj0t=1Bm?}gKuHXhYfbn9%Q2Y)T@(Xvn(!Zweso<4m_+vva`al{wcu?$(epfxn%m!d*d_do(rym|9x3v8ec zk<1+v*x-~rk!<&wln(w}n&&czt(_M2<*qgypa>7LJkThSUaujp6kBvTJfpA|KqiypTOii>^oMvKuhEfXZ} z3sc{*^ML_B2e4}E6ZO|*FRmE!$%Q9}o(8tt^H!m33&lIL-~|yLBRQOtW~$)f&Ic4; zWv+_I6Kw?y)aT?*j}zbHRdR)BgrUqP>zNefclu}aSaLT@rp~4 z>Ocw^vufI}l!6wg-TlT|Zo~EVbV|w(LVsnf8;~D>hhR1ZeJYTpTKn)nfOJb$CUlfYkc#@a3E-+^Y>=-_N_yt2Wu^Wk=RL22 zEgtZtX%RvN_9_>+J>njJylnb3IPv6|;5~-XZE$a84=)5KLTR1NFLdAc9D0It} zE(hy+|4}k!BS~XZG>+E~ev?z}a_196N;B59P(pa!m=7|vDq#5cI=B*+gOgAh@-IUz zfwcr!P+z-Fy90(%#akqp!Uk&sB4E8{49pkAHh{TmX%?8)4H>EaI;a@S;LK_cAe5UB zV`r;St&I#;R`jQ*JmRtmY8#HcI0ZoL;g32ドルRTD;zQiw5b$F9|Mw;5sT%Ej?t7A1fn*V0~=AqLd z)f)DwMF;1DCgQ)1l|ElA_CZ*Enqk@z{$Igd#fRS-Zv+u*ZIAk{mOa0UXXSbIx8l5W zyWy-eN`|sL{Bv@%lH+LMMIw~V@Pc8zN{#(*5}-?3zW4P)f~n|qr=U+!edC3CCE~zX zf^5E&7df&gSB&YiTKlZR_S97-K16!EtTqyQ_I6WBtg*PXbUXRt;zCjzdkGtSLjij^ zbW~AG^9nHlW6zFz-O?dKP9yBgJrOr-`RD)s{R_Xb{{lq9B;>v@qbf^P5iKmzk5wf@ z(yb`6fq4C@&w`$utUN`3TeQA)0^Kxw4^O~pqP1B*w93@ELkm;rJVE*R;d>lMvKk-H zO?~+1k>;{~s#*EFEh}ExWW1bOCQF)oJKV@^Q|f%w^+{xUk6Gmh84TP>-rb%?X#U~R zt#J!|{=W*AQ}kYXGpxUv+h@;55rqtE^H83xaFX(?b0*0PF?Qdqtgq+b=AyhAGWfLF z$1@AU1B!Di>kf8OTr7{Jpr1zI( zO*ZO{3R@1igPiO`=}>&+!e{2J2#)yWnFlX#g0tGVJD9UU#tw6liEgdpE1mHs$e2k~ zW2aIYG+6lnGyzE}DynQK+;FgI4qK=RP&={hRWI6g*e>EXS%TO2N1;3K>`ZYaO;@C|QKBX#+_SNtm_FFB4?@(RWC__(D~bM)eEuK} zLk3s96JwuuNR}+>tkZRDAm_P-7qK4GJlX=hzjw@~g3sd1ZCZ?MkLh1-x;PzAhIL`K zKs40mq>LNF;`h{4Ms%0;_v`BNuR{wV<356arkr|t%&hh|&6_kmk5nw7yHK#mW-19#1ドルEYt?s47A^xD{qT-ocGC%7*pNH?8W*(Iix()WY{ z^(9???fp_g>m}qFYbkHu5KS@q`=Mq=X`=Pty>j{RFr840iO#Fxsn&P*;Y}oa6?ZgA zmlX5R4Bfydf^mtQVxNA?jxYV|qz4>X&SX{f(NUJAUj6NN=B;mD>+!w}>+5~ZR45aq zoTY%(8WJS?(xTW!WUgqzJd8TjaIK92A*(xX9CB~58^-CVW_~!hVREDej58nPs-kQK12CpRmAZezWbG^ zaCJSXt`d~_Z{jPl-)!CXRdBBky}Ks6cUwrp5R*KB8ANxXk>-1QHna!_H_yw+e~s z(*^a8Q6Td$PPNN&k%{ysd8!XmkFHQU1p%xSRi=Oy(#c>ONnkrUZF|?MRjz!NqYt3i*U+>rPfB2icCjLlXXvDdf?ug?bsj1Xh(&^0T#2jG^!N7odDVD)nnz!R2Bq6*%|J@LsXk~p<%6w5hgrjaPDniur~vfUJzVF(9N)&)LCYsk+iw!+$r!jNr4yTsoTZxx)bb$nJMYA$Mj zMg&Tdv6P@h*yewYf_)eMK%K0*Mwwc8u@cY)hp8`^kp^Gn+T@uH&1dT%DC*b3B}S zz?SH>V0mU8)pqS+F^(;~<-}@wtoto`;yhi@l1kezt4gf;!grt>U@7t^e}{7(U*;c& z97Lho0FKO+`R9t0uq!d=Svt}WPsux` zPvN&a>SX~apwL8~pF%ht->PDm7p+IZQYj0lItBoENCScdB&-w&YRpE4hN~;gexy== zy&9-1wttNmxxcWXR^n|jQtN$!pSMN}bEO+6Lr=9dyys&p8CGaeycUN6taYzyl&1zb z1XeBa7X>ma(`V3re617ggBbu%=*f-cm_mSn$;ez5s za@T1~fE?#MUjO7NCnO|n^qcq@Nj3^S)(3fD@)qwR_1^+lL8ZL+`)v|(C1j%`N;n|3 zT{ynqqh$zRbplFTuKu{G^}@(3>FBRPH~hSTPHf0~&`*PNLo0H9isW?mi(#q(`Lbny zFB1ドル|pt&58YUT;hz zRAhs@1f#;syQ(lqN73>IG27=zc0w%jXD=(St7Eg|!DY9)LvGtIHhWCt?x5|CMP*`t zze;QXC1Qce)##a_zDUH|L<#gw080msq!qc4sf|uq?x<9_!<`{y$w2+mq!m2sa0$gb z>0fciB_1gZH9;vBOU6#QZWXpOmgbMQG46_gKn=qmbnbyC57`!y^< z?alC9CNgviytL^}qO{Y|_kw69mc;;m{yH_2DRS~NzD_M=;spK;0pF;hhjrTVXQ=+9 z>&r0{OdQC4YHS2H;)M_AcP}q2Blo+GEsS_ake%P(1khF2{Z?kfXWy{g*^Y^{K*x+) zsil_p9n??luAq84+ef%B?qt4-ZGk8P7wUZ7SFo78WIR)}?F7JM^n;NclQqm=x@_+3 z9A9H*>6+qvnK^#HXc30{VQk&X%(eh6R#tOfyLhK>2Sl)IoymxRNmth2526TdSA8#$ z&#Hgm@r^%GlAoTUN^8bjdo)GO*~eo!68xw8HV5gldV`08#i?3Z|0{fHkm@qjP&5%P z5ドルkcaHsddf&=;kN{RtgWqH62ドルPT!=t2#*eRlEF&w2~`u?N!jUa^wSIb*rnh%=PWbfb7GHnyK6Qe|t#tzzEC4 zCwojP1@8;$?)$g1F+HE2f{at04;i6Jb=nsFNl> zb}1TLYP~ug_ls*!9(7Z^7A_>x@A^g!&nZ(&;4;f3Xs|hFeKVX>)VXq}1(>_WZz}fl z&o^~IN3aP@jVftHnK0HN-!T)1YZDpV*g{D~155iir1u`L^bt0wY6ZY?1x;n?9HJN# zt{B7d_+Z3*FBO;uyFwz6{BT->J;+BVDYuycs4jg*U;s332Na|Y&* zcLd#Y4RRrTH${;N8=_p;ZFIy0nBtQgMWOfcVzOlJ6r{Zeb1$n;I0kn>VS z-fl}GLbzwRBV9;GT5;=t*t*MoZ+``>BR3ByP;$koT@`eQga@zIUSB6 zsnYLOSUoOZMgLG=7lHvh!LvfIDi~3>CHkeq zc!h=UJOPntEEAdWt-n6p=NESs%^C$vj+@OC0k`bLza;!LjLTrmk-Yn3#V8-dY zecqV*{411r!FVK~VBw}7)2=O9hi!c0R5K9JvY3#)KDYo?F9Jq>S|`pT`LM?!e~f5tp`jd3k7WJPtdTSH3>6DptGsm5bJk{YXVqGCSUB@wG6R z@(!rHTVyZCPR02k_6bGy7vmT`;^PlK7I>03Q^>&!W6P_+P4*WFp@Q#03I8`-lsZzg zE0N=Dacy3N;65)eBSi5jT)ZROnd;@zC0iUt(COZnOM8~jChhOnKQ&-e1@U(7&I_)F z*}386`I8Q#L0C?VP;}?FC)nm;cK9$d8duf5K7Qh|x#k!DdKlHq1<@v9djd8{uovgh z1!ORjR9=uJeWDL>KiTpoPpUwfHh zQfp2&_)L)v7hF$Tm9d4tZ5+1?gBQd8uJMk)I_aaT(h7o0*GD`-`^W^lFX(^|gH&Bd z@(hx13Tmz&GF@ejo$CXU;ZeoNI;M!A;QnKXs)H1@Ce?d4bQ_TP$lZ0G5i487+{EBZ z4Xt{V5jxQt(zNf6D%3vH{YCHoBtWs_a@vgEVD4#<9ucs8`fgfVQ-4T-&5mj>*US3{&Xdn5{u0%}7 z^4+C!?9GUwCx9=rDe7ドル;0?`WaQX)Xr|8PdI71?z!2*Kf>|K zafa8Q@?Rskze+EyEuq5DjnTNtes)>Yl9Ycjgcsu43%nn&s&XuUmO9XGy&0QJSs|(( z64KJLNRRNpfqLOHZQ}Yfg+!U^xF-mEN|vC|TozH-RbRb?kH+~WN>TYw_UI6r9V<`i z$MK6?MY< zlsX^5B}nyu=!OrYY9p%~3@NI<V@nmDHVwQ{ENuL3y$ifn!&T(VP}D1rV6s)1)QysII@aKwh%#*>zQC=Rh-?w`4zdJI=)+6?8~I` z+k1ZQqQ@b@7B~A;<)yuwzxsdzad7wyz*oed$;ki-1n#se1+mwv(edj6>uQ*djAUKl zzbzw3FN7~sE+o*gFI_kX%Y#tV81hqdz5ZIMk=nhlh$+^TC@Q+|xV#`|#Upl*O0y9+ z_piw4#C6iEhm^jFkvq?W7ur@7m6TrK@%0lC$o5&C+rXh{##(mo*^>BQ_q>)Rek8PB zOijdCg;ypw;ro5XICfj&8DqpHP49RnAi4Ef*fQuVkdwb zAtFU$t+EaaBDlF2j$BftqdT(=OUf!ZS2zyQX zGI^`LX!CV^RheatK%g!Z+@a`zR?n024C(w_ z=`g%7Ki0z`(}%a`o|9Db!_U!mBVNCK8UL0J4&4~>3}V7Vsr;x|7hKs-Y|XyR=y+<= z21Tu8$m{eO*U##uesMlwAxA@if{?f99+4gboM+?+XJDl19f>)96cTbR0Gao)IJIQE zV76~Hkl`9Fm`0C9@^H&(zAL47l(On3qI>hdrdtIzhTChyBm3*pr z*xAcw&gX~qplDB|t{|~*Bopz4CE8PpsLp5`q_g%2Tl3de(K zlzc4ks)}AbMN9baYh9`~MhI!eS96_YVEjS+DO=cW)f?!v$kf+9%Z+y2rO|P@pw{=b8F*N4?|u>?{)%9cnA(!dh$UJHx0;K^N~Vj6j3f-+c0BWAfML@p0p$ zDh(TSe@o0o70Ztf%CjGDnrm78!4BgDmmFIS|7)se*4i`wtpY+C$+7Fa-EzbDf^!cJ z0Gv_SDmmI8rHOKsh$=VIVNe-5@gWU)J+~9}G0lZWv+uOsETNJ4?6_hmIw$>|^Wm>{ zw6Ul{a#|vlV{dMXjCxSy-=?`PVt)5|0O_5BaZu$g5UIAk1Snuqm@( zR(RJ4b$zrvi|=iL0Vg7mZ8g!~eR(=eEntO>_oaoCuk5rhG{|i3&EGkB8@{ra!d0=}xzFJZlS)ov>4w+4u z*i%v}QK-=hQE2oAP&6Drs;Q$VkTIjM6djE%x=M^E$hCeFoVJXHPlfFL z)71n}LlYC}H^_G>I=0bQ<+-`=f;h*rti1{k1}fm+z!u00!7$rsdth!xa``zca$k^= z7a|2jktlB>WfWBvUu$PQ2~qT{JP!`?7-ju!N!{TFru!0GGY~$>^LkP(7Z2v*k7os- z-rcrH5Ec{-x+1a}(WRG1y?sPGHKU@+wfCrMEY~D%Yhy!-vR%Yu9{65n!0$#MiAgU4 zYAS@ZA9|4CEs#26Gu!BM3Bg$M0s(-E*#=*%q*^yoKUX~y^w{JNOze?u|A%6;`HX9Z z`injrt3$m0QGs>B1Amd%!hI5~LHIb?Wy@r2&maDP9+EwDArbv)Tliy7*U=6w*TF=( zuD<;w9cvs0h{y2x)n4?`einvos%{w0a{-&`s%|w-z+e7~6mzk-{9lbamwl@@6bx%q zWMG1!FKyF%Zt}eTASNB6<%yntx()oj5mc|)fv>ay7^<0bv!ovt{kmn^julxpw)q@r z0e8zUkqvF}cMe`^L#1aN5|X^? z9eYb%MNpp&g?yX}6xD!J!q#|7CdD$tG9x5%bk##{J^da&<*p0sbz_b9rxy!it^ato zO*h#^9s$R?B*ZqZJB>rA`Tl?B;H4?JEmu9tVlELNxS(~zp_+QvNgj>O*NlA9ErYqY z?{kTfg_9ドルjr$KsfMbNkx7G_uZO^KUE4_<8uhou+k@pewxx&1u{){c)-y?nqsn#)i3 zg|_%vSLHUIA@D_$@9tEVig&R$lX6%6AO<~kpt?*ht4eko+w*#?a}twb^|dmf3x1yz zYDB6t>u;Hrr(qn%XHT)ra6k_6FlGo^nZpw{nDCU`FNg@wN-OM9Jr1t@3-2XMNGQpi zLCSBJ4E`(?fsYUd{;W)hJ>4LUIw9H%1)x6izxE zb=Rj!bKR=?_y^UYz76H`5@9J{#)6eMT&7(uUtERlB4V11rl^Qt(|)TQT0ZOxW}R4( z#sR1Q`^3K)s*c040ドルl_2q&Jf+Nm66bQhusJG@^zSGgm<-cx6lnm{}k}9c;lhwtvrc z0N4v``_M;V&Lm@|x@kHciJn)MEPsPS^I;LD&$R;Q-@`9WTYVq$sHqL1<7ab@g2&jk zI*%w8JM4H}Or?~{%|v4W?VzgaWU(1#U;SMd3b*cGx#h0W5=LTsUoV*H+3KFa%0|kk@QJ6SOYb)vg))tu?tJpf|obn}ePs9Ho zDpAxkO8sA~AzVFa=b#9Sos`_qW^@~3h9djE@P*ys-QsIzcgAv@-i7ahnB;Q$dgI<% z-b~-3_wivW3ドルr89n#&^rI5l{3ZHxPH7R{KMEkUPp*lHQ;M1*XO9>DFS=ontVf@5SQ zc6Z5kegN&Q?pI08e?-9ドル>YTMbL_g)^h%dVTSa5pu(m)lI_v zM8iTL>ov#6vkNaf*=(%NyQ3sgjAG-K#x#1k*^eH(f+yd%_69pKiG_dG-w0iU0x@Au z&+7u!B(TYjl$MF80tGx?1i@V%6X<;p(nsirol5-mh>U+bmM1M7`Vx6)2X$xan;5|$ zreR=dHfqnXK9CVNc1+cQN1O9!A-Z0?Coo43kFPv^cTAxK*nq@cXDcIci2Gh?z#l{i zWvZ>MV(Nz3Y0uQ6g+Cwo5Okn#KJ71piq-Ds$TyoR{WUJUp^5c9d$`(R@FneA2U^JL zX>k|uDO7@8MJOtNFY7zJn*X(l;t(Ee6ez++q?_z~R47Yy?6Asx=>p+z9w~g;j;q>X z9L`H_e`x?GCD6|I)zYfwWKE;~jj;a4LD zww$dc1r<)ich|?uxz8@`mowl6{atpx{xof8#u|-(sxngl7ドルcj&c&%(oj;wgfo3lm* zTYOl_;pNR!jh>7KXRjMgQ;!#vwUWeqROVIHikMVC507Mhbr!y*-xrP;T9Hn7?jmMx z@3az4xZ;-(*7kImD~HIrNbN{0bvDn*M=zuLA(kQ(IqB!?TzqadtH?0p?1+1$B&lseueodth)ke~?Ght<5ld%l!rqk=n*<4eur_;tqddbvfyv zPn#k=k9+bBQG{$giTzE+-O8g|GuUzJ?fGv~j!T5%buadkJI%HY6Ip_f_46i z&>9No?E*zl|Km%f4 z6C^GSJVTQjbA0mS_Dh>#>Il5W)nW6U!dX&@HrX&^((_CmQOdy=?5%=ur*hro0Yy4C zI>Ea=x+^*vrnlt@J{S}V6A8KSt|X7*OSK|L^t6slbQ2ドルijkCbc#rz}Rr>=|d(bMs+ zXGw7cXl71Qo31s*sY0HT8(|!qTn=HRq*$w{Q~Rg8Yn2f1yy4upj4?vbVz!`f8vYb0 z(>;S!jSi)%vZGG5E8KcSDF$EAfRT_s9nht|m(RAzaP>;ubC96#iW-cgCwcgz>O42N z9g3?l%YNU5yKtLvMZWd0!j!N1P>hz3$%^+vdTijEk?KL>o@oatkqIS7eAuh>Ew*1< zHn6&eZ^;UNbVR+NliAk_-j_B)f}tNj@Az2LIA7meDBE3Lo|gnm!Tl!M1=_nV?C5i2_e0&gGMfBHV+($PRL;#69kTH(>eKvcq&y!)2N+}87nCw{l@Ds{9^=Q}1 zZU9}=sT7s?xO!PTh5xU#h)l!~5g7@5B1ドルFDLP3YOzP+z4_(AU|xK(2-2uhLuwih*M zN}XCk`zy$_^cNGTL)Dii*;tDakINCF9Q@0q;XDgq$Nlv4SLPBgKvjhiL=J!tcy;X8 zQ=C9vQquC&0ju=4kb~Il!T7Gkr!Mq9&tHXFXgx4lYFqI?MzN8Zd)FGm?Z|h0gkGr$ z|1oFHtZg`3bns5|iY$S3PL`sk;zDk}qbR;x-OgoGGaE@p`hIYRJap$KRwWIcx6yGI zjt1tu!Xz3*OnG@ZwHg;|*N-^*UbxOHI)4{@tF<9h>@T24{kr`1@#vosbqrFlOn?@G z1Y1C!Y79s{z&W!BW)rG~yQ6)T9*Yb3+LwNITSYa7vyin^kX_I8iB_U+0mUVW?Yw;^Y^jmU$gG9~N% z+Q;M*I%-p2XNefQhy`RXW~tmyCOmxnTRiwXZziS&ezKUpL>)G@hKe9r#1G)mvD!3$ z^`-@@=*K=DUtzLi=$nUus{dY*#ZTl%$=)!sOZmh$-}ep7tFwv4?(heX1*hkhy1la& zeGeCwN*i`5Lp(|j!7Eeu`|<&@7sylyhepr>b)KJwvn%=G97DM9gSnL0S^m=059hwF z+E2~R&BkEuFwy{zbQwOPZkqw>f#O;7OAC%@@aiLkf<9gn?xr&h$q*bbvt5l5h~j>; zvV8jVsewj;AMr7IL$_i(R70ki#kw*KJuyW$QG4;*YzZ}JWBuyyS{SA@xnJ#8n#vge z!|+IBOe%~D69Rx85Fc@WnBwHs?gV*Fig4wTwPAYH^;BV86}eiSGi!G~pFJNtge}awY45frgVLBnYA@K1TOP z`OM;u#GE04q0_1F%DMUUHz1lQ!8px@%5M&W!hY_btJ|FF-q+GW-Q)j+`YUlx_}(B6 zhG`_xJ{PjeE~onA%_lOvnhy?>B2n-v1c&tddxR8ULKZmD2E-Xo3J03~Q>q>RtaE%| z2L)V%PdXFSu}^a^bS?3>sG9x4f**^;Dx&&wvP2zp2DI4A{*xWtHP?j=$}SdUYpk9n zCnuMoS6RpqztiH(j{<~rw+7deytz5=z4cy(u@?r^b_(b%ygtuj%h^mz?x&slc?!^q z8F5aJV-R*SzLV2qe<0ltj7i%znp_h#vxs|hx;uz}?(fm05pb~yuc;703*x9j`76xz zSbF{u<7&ubf(rihe8)_4hpyry??_vl!i83(yoz5{2i0*gi6%$}i66vj-w)baxro_{ zalJM(rD{%{226hBr zHhkTf;*cQeP)bv4=AC7Y6(7&_14xmf+AU~)RX6FO1yOJ|+-!l|fB~0xeTf^(|9%f! z@I8ON2|+e-Je~NK>WF$lCiu?0$a8#vh4~;uqo%2Z!F=-a@)E$%CJeSg81OI>A$%b5 zbPI*|kl(C87oMB}1=H~MaZHj@ltx?@i0vPL;ZuD;6hFLQg+YnUNm3ドル|N(uYxFX}mt zwrln{WCGkGKdhDpX$aFf?l(4990)=_xQKDv*iFA0q5CLI{82Qo5*_|a)Li&rdwI{1 z)`8nnCm(`9W)_gs@~L=(Gh?j2o*;17qkEuFK54+FVWP|IWEk|1pdgjy&x&Flz>oU= zvh{2!_FaOG3K?)dae=pNJr1{6?$wPAgWj<8a)nlzcu{;0804p-sv6}i%9ntn!m9br z0Pf_@1S?pNX>;an5=lBM3LHzh*j zyVbLP;^9APM6qV8Ug+k^a{X+fHe8H?~YR8?>B1f zBD{npc7&mVLuxi=eEQ0BgvIlZMik5g4Bk7I*LI+5ZdUO#;e2c^r9*dJ%I4q7%0;PX zLzB9R+fRjgEoYA9IA`pn%CJVoD=nX0)Gs!K)U0#au7 z)r}c}`cws3;Vm?>(xGZY<(8a=06z(yll7aimpk!%2{j+xkr zU#!4IB%u(md*}l+*Fmkd0mZ5nmBAThr^YdFEk-zT*&SE#VI>d|H|0lia9#g-L{;kt zLv(#}XE`KWggPNj=hJlX=WqVszBf@?+lMNNBv=WV@_hN>GmE0n`&MzO4w{#tlbqET zc?-@Z>luY{C;<8o3h@kewv)y9`1=r;10rrrsz0on&*qty2y%vc;thruuaov>^YNA; zg|f2mcihVVl7n>6ioTwtW1B)r+Zxb3pR#c{{<)toSl(YL(`}5O2PHX z)V1sA*6J>V&>!y8-~+LCEQ9)1@VhX!{al@tSOs**ihJqj`=V!7lOkT2+YF1d z_yu}ff{8H%NeK`p;7NRzs$<&#i?bl#n6qmn%23c0p^x%y^;y(iqd^-2ドルg~aaapw#x zxok2(Kf~&Z?VCiTvFMQ}mhw6jw$`}Efn`HP^^95}SuZR^F9R2xxaZ9}``d9V7!ND) z_{vud?%58hy`2Av9%kWhkN>6_*&u3nV{Tj3Lsj<_%f>{H1kECLk#|O)^yhwmVup4t z^eXBO%d!422Nb#_o!|Sq*(dc8NOv*Hceu=gP7ih;6fLddwcx{u@4@6?*tq1wdgDIM zMY=h12D;S3V3nnTk!MxK0Gov`>m5(o1xpa1Ri+^`_p($oxJOOh0RRr7Huq>(+q5N6 z02?14+>L|K2CU6*d3fk&;K-*Hv--mSLt!mlBc2SyR|cv6a7>f1Rq@lg*JKg(2#&YL z&%VJG`0Mu8^|{n<$m z!CO$LET)MM1WzJ`l@e7fZj6I+K-R5;Mpo4Cv-5SQK-?ctH6Op`CB3Fo@XU~;Mmw0k z^M7Z2C8xQv%uR@7rwWI5Y+yWWr&8MgF=_gu-M$QwGXIU&1Aoxvdnw%$TeJ`DZ1>T* zI_4e}XSF=Pb%4IrRdrE9CHM9fcw6IYQR~K})(dc3xQeX_4eM<1lz%2k^a=j;;>v?Y zYfqZX)(`Lt1aCq zD>=3h8BroTdq21D@Ao|aJzZCq>pGWnj`KP9=f2Mp|P0w$CaIcL_zV3?9Ubdh?QB%=pfA9Hk}WE%jEHcr+S2U);5v z4`so*Nqzx**_T>~U5B@G?{)m)BovvwNF+=otSJ0(L+Vf>TzjH>E-&P8dd|ibrbhdF zv^!gW7&7AVDv!%79|5|JA3e1DQ~ z*u1bhJMXVl|GOvXH+&@EWNY6PKvEK`;3k-M@~BLa_!gFSQPQbBkgxeBCnpDt5gbrf z(MPR%+CH~h3$Oaw#?62dOHt5yf*?Z6tVs!@Bcr(fwrr(<3*x3g#u80=wv8na!u<6x z(C=5l35(=0ZC`xnGQ*m-88+^F$OT^9ZGQJoVgIjK223>x zCO(TW>~8dNcnn$#mw@P}o@hsoWuu!#_uRX|iKwwa{py`5f7$nQE9=vQ(Y!EeRjQ0L z`EO?rV|x!CpS==c#$D#u+l}&c1ntpqW=!fJqgRNFgM&X4S~ko}Xz&Ky{0A^>ezo30 zbUpqRY2J0N{v@^m?q=|HJyFzx(qfTZl8_XhrQt;n-A*vUR~d{k5Fd)Mp4R#>(f#sa zZD|D-a7Ew%-#+WyK!AOl(?DN8@Dq5D9U6dT31m~W$Y%QKgU8GskgHaxo*<{oec}%d z8R0F(PFkZ105O-)i#H@N+0I~;?BJfu9nBqv6njyv_PPvw(0LmGp6PV&H}1Q!(-KxJ zZ}}IziQbCvbhke}0>yfVrC2dt*7>n3lyjddUhaP4mXlCFw)waU+$I}chqmx`WY$c1FWJF? z(*bMa$X1DvOiAx3YjpE8^YaF4V2ZzO=kx3SfA)hJzSehdos_S)1OwMEJNP9GT0ry* z?U8~T(ENdTLhp3W^#rjNr#&f6&vLVf{}Cy#d*Z@lqMKB#HaHb>ybtPcv&M65VQp4) z!0ドル(Qu3h3YcJEfR4hFrWB*QUamHKxRN+gM_bT`p%neb4zamf^S?SQvqb#0jb4Sko$ zv&*2*kgb^E%jl^?3W^V4)AZr!pcM&5ui;P1!mHNZ*b8Wp_c7;3hP+L|A0J&ywF8CI zrQ)Mx4)({jhHq7ドルTB72!F{aUON_{n7!lEB0P+6(!Sy%+;fjbTkH|NMkk=bEPQ`9+v z!FphTn6P*JfiuJUmjt4ドル;7@(DuLL%I{K^Bo+kKLe>9R3fnOX}}?{#-7!G(S0AeymK z^7gVzlSQ4x&!W3%d^J^@>+Z|*G)CG}dJ^A4ドルfMK!CCQb9GXSwA*$@D|hpBI%6C(pw z0O~MpBk@b+y6l;FZkEnH?ns1OYNa2BmKoOOBp&a;1FxK=}jH_Zp=1VidB;DooW?(BpjMPgD5JvVJuTxwEipbo!Nv4A%Vu4SJ zyJvvdVfyZ7z!7mci4!xxxw<8>&>4!E*8LHJOCM=o zpZmDSJYHmE#7d;T&zw7Pni|p7o9}sYT_xHtrhXm2G+4Xcvz#G=Eo{5idF<9-pb_6n zl>3%%Qd4IAt*}DWkeE=O#KX2tkU6?w7vehakAj(y8b1)o`yf5jmfS*@qf1V=@P{jk2Ds zYQH2t%c6*=x=&5p1Yn|B!L;|U7sdA?ZJLF&oTi^UY>r~_H6!+aD*`{Dna8eiwBHm|7guS-!V5B{Xn92U=wWha%U+Na#pxedOXL0 zgWKuh0mF?fXEC1tq2a)7igT|~qfl5PU;Os72fKQqyLA!z7Gtts45_JAsez>B2Sv0Z z9G13xKTY>5|Gd|02hkRM^piCy-uB`;u;c!`Zu}E8@6JtAH^Ttig31LGOyKWbK3$*^ zz}rpU-$?fPg{2);g;d5zHGfOVpT(kK?03(%Ie+hq`i?fjfHot!p+n zK*?U?Y8>8y{A)R{)+oSxX5ph{E!uNmsWG;Bj7r?$l+SV#G&giD7bd($gya_>ql7O9 zFczYsuyoeoVwGi00MT(^LW->^^0u%10Cx8y*A>Cxt?q5U7eT|rc-IJ<@h459us%yw zuCH!I^VEQ$yvwV`5B)i}HY>mv=7zJXu^bZJ?lqB}87Isnt|C#iauRqqKoUtI(rk8^ zAAP3d=k_2bZ!7eBzI#UJv*)>2ol1$`*yvs-t{c44O~tzsdb@QYK^=ut)fTyT3bx_G zbZRS>E6hw;WMWPer98CsFP&)IBj12^LLb|dKl|l}pG6(Dg=d`Z-)Kqi6-I&V1ドルVST z;V+4PUS6Cj#WUNZPWxYs^Usb0aJ^^V)w}{5?f@m=;A13?H%1h zQy!;fuApAfmy_G-H2TyJZRXKi$-n5aBO76g8?$V?sTHLY!E+EHrT0A7j)?OqP?2qobiUq;A?!lrcL5} z3vxppm(`xxLtGDII4c^!v06vSiy}|^#I4wn79v)yrKWHBv(|SwPD^FOrTAmj8UrzL zQSv$@*E;AjXF(biv!2n8zvI$nmFq;r*={dUOgsDjt9Z!T8LmQ5Md4;cCP^=mDEI$d zM#w`i!mHLc;$?|u_6zA36OVvRfvlB>mtqSIC*YSasAoSoFu^b;4|OfQyj0>ocq~TW zI*X;@RH0(%G@XT)vKnMy9B}$DiQ1I~6T@0ighyyj!~$u{mneV$x#hP%4sso1vXd!+ z0W$@9T+Xr97$wI5|xMkGNc% znn4ドルDskVYXOiWE>zI}Fv+wtLx>arhBHW<+w%0y;mb{x7}!tgcesy|adk7||i!@thk zDoCq{O$>XAdP+1WJ8s%Y>HhnInO>zkOyzGmLdY)2BF^(0Zt<;l3|x;}(>AIIUW?MD zMpwJFw(qki3L!dwH22#^3E=IdN$vYB01`eswTPv2LJS|V=~oN zsy3xa_Koz5W@IQ&-1YF2 zpWySnCo#&Ke!3fVrJm@s)##;R~=cgPd416a87A{AT|yn;T`; zf&z43Wd{Q}pf{h3wlA}G?h)T9W!dq&*`7m}OTVA$!%KZeg-rS;gc2}HROhHJudWV0 zTAC7pZDg)Z8}ie*@lSwJey^@k>BupU z;`jfu{7anOX~}JcmTVR)h51gktErbBe(h#NfAy;x8M9rw<0qb*d+6oxvqdonr6-|7 zQ9~tBo@+a-BY!ua{?2T)o(N+t@BYy}atQkUjT{DLsjjd!6`%+C67-;W-Dt6I~Cw zVqTWvD;^4{;ga*U9oUf33jVoDagkubdhebdtUr8trS1HQ7UqiA$QR#f4GfE}ecV%T zjfO)1iuP)w{^^3~0}n8>HJ_#W-&wez2*vjS|6sCdp26ドル#1IvV0k;ZPOob{H3`E5?0 zv14JWaidjrgB3u3Pxsm`r58?Ref9Xl7^NN7KpyRvuS ziiCGMtKPp?lo?Et_r=zbBd`(iXf2`VHSh1u0AL0Np1(jj{vypmk5kv;~(;bxPUw?DcOCdU|>TicuWs@bMpO^5r5RxbDBE zu&Hsrb^C8U%YdPfYO!)x#to%HBh*@o4Y%Yth4?i_mHp|EpDZh6jzd|3RmDX`EAVzg zt?V58@f91MgS{zLz^rBejb|Z%EDTv&qz7l4aCisEfj4yrR}nw%8wy>k0hYFObq@O~ zqxu!!HAUf&{{|y~@^|MRp`kgVknuKQd-Ow9W^5v;rf-?M68-r{vnt#?X{C};DG7v7 z!{0fEx-ICLj{67Lzs<#2hic1p$kvcjob=tt#raon?ul}om;9`$uxk2q?-igrn2r0; zLA1DCyhJ`u%E3Ql`(ylpp2OHSvgRhbzi&b`*Y|k4@0*k)ZW!GibAp3;dM`t9TD=m@ zN{)hxY+5pp$<6sst;1rssx<40?{0vrd+7hwru?s1l6zwvkkbb{ohcp`!pjfbv;@fd zJI*Ud!HR0xXHCdt`i^@wg)H7Uyx*HR0myGwE^`JR>o#k}r4AEHj)yL#zvGN09h~DlQcb@J zo7`{P_EnZ_!iwyV$MSb*;ci@2-_P0fUuNF@`wZ+1lHgN%(j{D$G*3#HkGAKXe~3IU zeR)L}u&Vi`4NEO{qm2Q5rqO%1SA2#>GvJ3U=1v{r@)r$lV0Lp<;0r0yx?a;zjqs5e zMzjo9%SM!#eDMIR;lrl?S^m5%(_xR}HCHU{JI>CMhmGOue;(in$pSMcHjehE`ubT| zci7%}CH5DZwHfKw0qFwpNN3!)nY8aGY6ドル*4pOyD^_!A2Y8yE6mIWU{oFenXfqh68^ z&lWzJnqn|%NPKE}g5%B?CX>$by~*a!CrEf#E=tbFdH1+Dxo=XGDK%u%E{wp>O#&2G zyZl8IgAk8ZmG(u`yDo9Y%dUR^-Y+-g@9goQ!HG9a5=>~*AvM!dzaLE8N6foPG!Wbu zhW8rhuBo2s2T50^skOq*lsW`diM?E?ipnTvJU<~owywzv1_~cg%50n8z7lyks5w9; zz?`d2v!;lW02*ULd(5+IcuIP#O-}Q+6yty46MPqd2Qv$Di8!GfhtVNL?okc_KvMaA z)WIjyhyNCk%Q#i^Um$Ijh*+fNEw&c6qZ-IGgWz>#7o>p49MoyT(uqgN3#}TV=N>Gs zW5`v>8Y#csH&6X+`u%!~Eo&=hwag}{cM_jkTO>|CkNs}9VJu%E{G5;b zdI$g&lT3c#OgIlB5~p;=0Yrgo^hMT7B}8>QLeXd4_&9!9W=+kO32`m(XCV5Vfj_^3Fk-I5}2ドルnK`(j| zYMJ@*sKC|AXrk1~M$VsDh?-{V{)Ml##xkey2Qzm@Kb3)xOEZH+YEBH|Je6YPqk+(h z^egob&ViQ9knUaq|93Lwx7&FBuRBZC6`ySy`WtA?x*k0dRUUv}1)tDv+6OxJ0_!0bT%$GfhLcn8 z-$z)nqD^S=J4QNa-3?blt4IDNKw||28!Ob=mY})Dn^*r~boN(*C%cVF?q!7dnUK=4 zny1DxTaT}Xca2MW=WsOL6DKiE-ZJO5y27U25PykUl016NKiGlA!LKLT+9wyPDe|## zsSMK{ZTPkbgK5xUPI9;Sp$Sb=l^C5!CMb^%xhP&Y8VLUs0k8SAc*!niOH953Yv(c= zC6>%=aejfP` zHXYmTw!A4_MvYG2#-SlBZK7NnE?$)#R&oR|WW3OQKrU+um`0!rlB+8SA9;`Eys=fw zsuWr{1gIjvNw*74`}S5VvLB{WgW`^{0`8gEB$xZi<~wmtonbz8&f61 zDB^KzBca*6u5_~&iecbogTB@lYf+V)A5k^|A=G{a*m7cPM=8($Eu9%)PY*1jsK%-8 zw2jGJVK~oTRMrv@;H~N0Ff-QC*}V|v+cjzIN&T>;3&|t7cL{d zRY)yAAP8(H;>|reaqI!-KQJ=gU7o&5k9v3mzG4F6`%>=g#YnDUDLio@m%Wd1Inr{% z@V+P{=}u=PzIum7G!oms(#a}W68!eb!2}-x)A=$mg?myFzH=x4xV^f&i%k~l;#d`yJFNU;PNy-P^+xkMk**e+Y-u(C2<}uxya^%%k zapT>bx0Vf&aSCSR(NHV|+eU;&1tv3Eu1d~QYtnhp+p?A^Xnq;_EtT!034g-x)WU$i z+m%o~D--;WD8dHL=RPF6_r0K{H<+{6t7hl)qq-a{6t%wtju)fu`vrzugm4$vi0qu( z;)1ry#v28Hfn=!7mMx0as#WSD$A`_m8Q|m}t~P5u+`Kdgy{{>>fU(q!wETugO|gI6 zf~W*guOH^z+eg-{{x~#3k=1h!Fu^w#<78?8|a{q2>3&60n$fO)Yn)KG zZ(-a&!@yw(<9ig*mfxlajyyi-zm)|{;gvry%?zom%gmhibfao57-)@!wk+n18;;~7 z7p2u+t@1tM(G-II<^ja;vvr9jd3;?c4e)hi5efj_`pb&9gb<lIGln z;rt^q9s7TJP#N%78n;Q!wRLA3ih*f2y~wUGG|Jo=C<%?-jo+w!uublj3e__i-u2t9 zA}#TLC@Ghf-a(D(frAhJ+&)+!1B}Je6@8d*JawP!z98G+8Ds;to7~hW#Orif(#890 zfnHggP!(81RX`dMf1g_`c5-HFss}t<^^g7egij8;vqfpww^?zwkpw~r^atyggq##| zHvney5id2i-E7!s@?`jwczdVu?g%HzBMnp+GC$Jrx$)aA<*1XvB?3kvf<3s%ncixjpxdzo4s}a0zz8z+km

)NPiP~I{)^u7j?-=`aH#a6n%8#>DNitvg+QHK?3rYH@(hI;TbBOCMj@Cr2~GmWcE}(Dc1*wUizG zD51v2@<7a&z#7;zt!dy`dpk6lds!(wf`-vw?=3qrc1slx!em;|ab2{ugjni@;@g(n zM2((A_N6TpA_HQUoiE$BD5u1UJB z!MdRQXvWc^H`a{6sx3KFYo?Y5+VRQ?ycAhWt=#v8!zTDI$IYL%$E6M9*+lyAheWJy zjY=*35HJ54v3XRc3RKkTh&%a@Z_6EJj8j&JQ{)T4%a!A7g(B&o4o&;Yh79ob4waxNBRgIw>04tP3`;d5;IgP^ad6uM8ドル(T0D`Ay zQil9%mJiB@k90+<{4d@ort|<)%~z?q6nfv~q8{75^ju_es?w)cph_|hsb?(8vin+w zv4iuwxa$|iiZi(t74f8K$oX`&u}6jNCy$cFm9ドル_O1-x@kuNi0Lb2lt+BBj1##^f19u0Raz6fTA~KmchEYY^NMQEce(%(B0xF~oS7 zuUT@6xa&W0wO-MH#6Uuf)Pi@8ap2H@q>dU|v^C(X%K2q(vO_~5760@z=72aAxuBUT zwkZ($^rf+G0jw>|jUBGXMMW{=xSk8TinuZ5ZWVg;bBd4%k_3?-ZWgy(Scnss zY3njog&i`Z<*0}kc`ugru>%%9xXw3RKvg_tvuzpaLAaJ#KAJK`MBN{>{O_G#r2Osg zWqRy9c5@oD37-j^E+1BFfLY{zEZrS`vMdg9+!XqpJBzwJu~>UNIEGEmx&6Z@_MLZHe8}lKE!ut>IzZcIX+PN(cior?a4qb`?VZJ8_EKOGQ0ci(}od!BSkfEw# z#~cuN%p9ywp;Uk2bq2A%pq3lx491+R^HRUW`FtsYQFruzaYZlU{@1Jm+&Gh&d}^zb zDSlWVy#aH8{Rww!lqr;ptId^ZraVosNX}}UlbhR7r*aSz5rO-&0jqy@)xb(j$Xf*2 z3ksVQ-}TAw38SIik%SeuS7nM#(gKJeAthHt8JLC#3vO5?+@B}2G4TGe)(yO1O9nmYQ6x2wm7$ZChu5bU1X z?Jn}0y?yc?PIMm)A23@yI!^5Jxd8SECbPtmD}`R_mB!KICW>=19UJ)oBOSOcafE&R zD{sDgIst!=>box4uE;~Tj6=Am*?20t&3bjac#hcgdwY!!?e>8{JFn&KLY3@>8|b%8 zR6TzneJm~&L48UBC|+a_0VWdzAdCItxrjG37gKIOVpiy6wUR=LSXHRDEfZG2_P?~O zB}8+;=fVD4@!c+NWW4;02n4+CvQJVeWqkw^Cy5+fT`z?^G?eNMJc zRWdFAvJ<42q&25u(mol2m`c{ytgjfe+1~(cev@oem7qz12wamiix3zqc;o=is{(|~ zqZ5~b58>sPd7WkE^SJ)latvt!3Q=7QO>=@q`#%#5;uQKj=P!4NR=EvX6oaqD_0q9r zMiIjvfZGU(IXWc5r&u=({U^nsRLUvWIAj?vx_?ZPV4S$Xy>U=hB!hq1lVkHuevuPL zOzA`FoJNv?lx&N!=QDn^fegCU^>k>Og_f!xny_IqSE47+sHg7p(Jk$Nq2}yQbpf>4 z<_30-uxc>AUenPz4ドルAGTPGzGpzu#YK4a(S}Mf80ドルjJ=~muFq~=4(e73Kdan&OsB(EXmx2Ud>EaZtjAig@t<`kqhew^fs8ad1giz z**FzpVq!ATFv-kP5T7^ua9#h{;v^lap+kePvt18~^Doze!r-p#M>8*I${|tU7ドル~Ol z_;Nq`+nBgw;kaq2dO>SZeRNclpf~U#a$%D6`h^M-`1LmdkFw>nz|R`_c=Sk5wkvLmW$_k&XmmGWQ03tIr#t+ z7R(b{0=*y{(TZK5n|G-z!jLxbak;0N&egf~9Un^}-LS#TNH4+>cRAAaq1siH)7ax> zTHZ)Tm6vB#HXP@Pv|8R$z|(yY45$niXM65z$jVzMLl91|s^TO4VA$^V$kmC?xWQBE zfybIDM-pgpZSF06!mm2M9VOR+|PhF!z& zrlGE-;iDvyuD^e;8VxarYyJ%$GB{zV>qhr9hVaUA2RAZ{#NADHSyDf7 zJ9#cYY}w&pi~E$?_k)N`xm>)PiDAoAevyHiQaFz2K_m6_%@IA~3qMGUO5$%BfN>G6 zM?`^agQDtMI#o@_oUwlI$SiO@uxU97N|Fs|k5Sf$m+PPZeOuEty&VT<`bwv(yl9xy zadQkt7+OAhFAs&=Z)@tk;C6h^gRli0DX$`mBiOP2_5yj0BW3)@Z}Sp%IZY;C4{v)v z8>cefrC42Hlj`jL&?Las!Is!;2e4|Q2o1nza)9R$FCr9uSVeLt_7*5c&2(;J(|#MC z^~-Pll)B-oOUgU2kfXYV1-yQ*#f4QS(AXVfDf?dEvzYgpLi+;)YiI& z1+MsZ-pkLwgW&U(Ni(5tPe-0Z52IE!;6b&(U0;d0iN&6A$~PCsV+Im|sIc@$`>9cOoRm?4_&FppY+vmb$#zXZqlo_WBAT zd?j%;!W0*L8ozMAP=7X2X`Dswu+?qXsni)O20WuC47cM2T1h>SPwo#JEj3@Ll|a;% zjS^}WR8ZXG3`QyeeY_giIRkC#yViH?4jY`7Bos^|lupw!7F7r*(0~nd#ooWu z_8E<99yklt_a7e{|eh5|hn{y$2^0=fLf#KW#DNv~wklpKmIq8dJlNGf2d5^^P!^Nz^vU8J>smFi5q11!gn>vVjVh;b*(ryy zzWzyZ(Wuwm|DiFpkfTR2Z4OIAJJ0F|>jkKqkahsCr$(`}U2`L@ZOT30zpXdqO|caG z*=M2>sqBNu3h{%zlUIzbV96 zvn{;|y6*ZV!B+r&4CHa0I(iF*@6%PBP?F7;$dw3=@803Z6@<+(*I+=}es8Tp5zKwr=^KxBcID|Ns1;ykf4*CbH00QMQM`KUF17#VUErSN{i`$NXym literal 0 HcmV?d00001 diff --git a/docs/contribution.md b/docs/contribution.md new file mode 100644 index 0000000..7e7dea2 --- /dev/null +++ b/docs/contribution.md @@ -0,0 +1,36 @@ +# 贡献文档与代码 + +点击本文右上角的 github 图标,即可查看本工程。在每一页的最下方也有`编辑本文`的链接,点击即可跳转到 github 编辑。 + +本书的大纲目录由群主把控,文章内容可自由编辑。本书主线内容以实用为主旨,只提供一条当前较优的、简洁的安装主线。冗余且无意义的内容不被接受。 + +所有显示或隐式 fork 派生于本项目的副本,应该遵守本项目的许可证协议。任何副本做出的修改不代表其得到了原项目作者的认可。 + +## 文档贡献 + +文档贡献非常简单,你只需要拥有一个编辑器,将工程 fork,修改,提交 pull request 即可。 + +## 格式约定 + +本系列文档的理念是不必过于苛求格式,因为内容才是真正重要的东西。但是也有少量规范必需遵守,否则会影响阅读。 + +- 使用 OSS code 进行开发,配合 Prettier 插件默认配置进行格式化代码,写完部分文档后使用 ctrl+s 自动格式化保存。 +- 每个 md 文档标题按层级编排内容,大标题为#,其次##,再次###,以此类推。 +- 代表片段需用 markdown 语法包裹,并指定代码类型,如 bash。 +- 一般情况下,请尽量正常使用句号、顿号、引号、冒号等标点符号。 +- 需要引起注意的部分可使用 markdown 引用语法。 +- 专有名词可使用行内代码``语法进行提示,其比加粗更为明显。 +- 行内代码请使用行内代码进行提示。 + +## 代码贡献 + +本工程使用 [docsify](https://docsify.js.org/#/) 编写而成。如果想贡献相关代码请先阅读 docsify 的项目文档。 + +本工程使用 yarn 管理依赖,结构非常简单。如果没有接触过,你可能需要简单了解一下[yarn](https://classic.yarnpkg.com/en/) + +本地调试 + +```bash +yarn install +yarn start +``` diff --git a/docs/exclusive/code.md b/docs/exclusive/code.md new file mode 100644 index 0000000..b3b434e --- /dev/null +++ b/docs/exclusive/code.md @@ -0,0 +1,53 @@ +# 编程软件 + +很多人不清楚的是,Linux 几乎是最适合编程的操作系统,其对于各个方向的编程支持非常到位(微软与苹果的专有系统编程除外),可以为你省去很多痛苦。本文介绍各个编程方向优质的软件介绍。 + +## 前端编程 + +对于前端来说,一般需要浏览器以及 IDE 即可,附加一些网络工具。 + +关于 IDE(或编辑器),可以使用 [OSS code](https://www.archlinux.org/packages/community/x86_64/code/) (微软 [Visual Studio Code](https://aur.archlinux.org/packages/visual-studio-code-bin/)AUR 的开源版本),[webstrom](https://aur.archlinux.org/packages/webstorm/)AUR 或者 [atom](https://archlinux.org/packages/community/x86_64/atom/)。 + +浏览器方面有 [firefox](https://archlinux.org/packages/extra/x86_64/firefox/),[chromium](https://archlinux.org/packages/extra/x86_64/chromium/), [opera](https://archlinux.org/packages/community/x86_64/opera/) ,[vivaldi](https://archlinux.org/packages/community/x86_64/vivaldi/),[firefox-developer-edition](https://www.archlinux.org/packages/community/x86_64/firefox-developer-edition/),[Edge](https://aur.archlinux.org/packages/microsoft-edge-dev-bin/)AUR,以及[google-chrome](https://aur.archlinux.org/packages/google-chrome/)AUR等众多软件可供选择。 + +网络工具常使用 [charles](https://aur.archlinux.org/packages/charles/)AUR,[postman](https://aur.archlinux.org/packages/postman-bin/)AUR以及 [wireshark-qt](https://archlinux.org/packages/community/x86_64/wireshark-qt/)。 + +至于 [yarn](https://www.archlinux.org/packages/community/any/yarn/)、[npm](https://www.archlinux.org/packages/community/any/npm/) 等前端常用工具,也均可用 pacman 安装。 + +> OSS code 存在的问题:[官方 wiki](https://wiki.archlinux.org/index.php/Visual_Studio_Code)。一个普遍问题是删文件 UI 会卡住很久,原因是 electron 在 linux 下默认使用 `gio` 删除,但是 KDE 用户一般都不装这个。解决办法是把 `ELECTRON_TRASH=kioclient5` 环境变量加在~/.pam_environment 里。 + +## 后端编程 + +Jetbrains 家的全家桶基本都有支持可以在源中或 AUR 中自行搜索,如[IntelliJ Idea](https://www.archlinux.org/packages/community/x86_64/intellij-idea-community-edition/),[PyCharm](https://www.archlinux.org/packages/community/x86_64/pycharm-community-edition/),[GoLand](https://aur.archlinux.org/packages/goland/)AUR等。 +较为老式的 IDE 有 [Netbeans](https://www.archlinux.org/packages/community/any/netbeans/) 以及 eclipse,eclipse 有多种版本,可在 AUR 中自行搜索。 + +关于编程语言自身,更是不必多说,除了 c 语言和 c++自身即支持外,java, node,等都可以被轻易安装。 + +关于数据库相关软件,也有多种选择。 + +- [Mysql Workbench](https://www.archlinux.org/packages/community/x86_64/mysql-workbench/) +- [pgadmin4](https://www.archlinux.org/packages/community/x86_64/pgadmin4/) +- [dbeaver](https://www.archlinux.org/packages/community/x86_64/dbeaver/) +- [robo3t](https://aur.archlinux.org/packages/robo3t-bin/)AUR +- [redis-desktop-manager](https://aur.archlinux.org/packages/redis-desktop-manager/)AUR +- [rdm-bin](https://aur.archlinux.org/packages/rdm-bin/)AUR 如果上面的编译有问题,可用这个 bin 版本 + +针对大数据方面,可安装[hadoop](https://aur.archlinux.org/packages/hadoop/)AUR等包。如有包长期没有更新或包不存在,如 hbase 和 hive,则只能去官网自行下载并配置。 + +关于软件测试,[junit](https://archlinux.org/packages/extra/any/junit/)等常见软件也可轻松安装,配合你喜欢的 IDE 来使用。 + +## 安卓客户端编程 + +目前来说,安卓开发已经统一到了 [Android Studio](https://aur.archlinux.org/packages/android-studio/)AUR 进行开发。当然老式的 Eclipse 也可以用来使用。常用的安卓模拟器则也可使用[genymotion](https://aur.archlinux.org/packages/genymotion/)AUR。 + +## 桌面应用编程 + +目前桌面开发较为流行的是 [electron](https://archlinux.org/packages/community/x86_64/electron/) 和 [Qt](https://archlinux.org/packages/extra/x86_64/qt6-base/) 应用。electron 可直接用 OSS Code 进行开发,Qt 应用使用 [Qt Creator](https://www.archlinux.org/packages/extra/x86_64/qtcreator/) 进行开发。 + +## 机器学习与深度学习 + +针对机器学习方面的编程,IDE 可使用同后端编程中一样的软件。机器学习常用的[jupyter-notebook](https://archlinux.org/packages/community/any/jupyter-notebook/) 以及所需要的相关库如[numpy](https://archlinux.org/packages/extra/x86_64/python-numpy/)、[sklearn](https://archlinux.org/packages/community/x86_64/python-scikit-learn/)、[pandas](https://archlinux.org/packages/community/x86_64/python-pandas/)等,也均可在源中找到。同时,[tensorflow](https://archlinux.org/packages/community/x86_64/tensorflow/)、[pytorch](https://archlinux.org/packages/?sort=&q=python-pytorch&maintainer=&flagged=)以及其相关的 cuda 支持包等深度学习相关的包也均可安装使用。 + +## 逆向工程 + +逆向工程中很知名的软件 IDA 也可安装,分为[免费版](https://aur.archlinux.org/packages/ida-free/)AUR与[收费版](https://aur.archlinux.org/packages/ida-pro/)AUR。除此之外再介绍一个好用的十六进制编辑器[Bless](https://archlinux.org/packages/community/any/bless/)。 diff --git a/docs/exclusive/media.md b/docs/exclusive/media.md new file mode 100644 index 0000000..7b6a01c --- /dev/null +++ b/docs/exclusive/media.md @@ -0,0 +1,72 @@ +# 直播与多媒体制作 + +本节将列出多媒体制作方向的各类优质软件,包括做直播,视频剪辑,图像编辑与绘制等方向所需的软件。 + +## 直播推流及弹幕姬辅助软件 + +直播以及录制在 linux 上使用[obs-studio](https://www.archlinux.org/packages/community/x86_64/obs-studio/)完成,用法与 windows 下基本一致。 + +b 站直播时的弹幕可以使用[弹幕库](https://www.danmaku.live/),这个历史比较复杂,v1 版本的仓库在[这里](https://github.com/pandaGao/bilibili-live-helper),但是作者说不更新了。v2 版本的作者目前没有开源,并且说以后[也不会更新了](https://t.bilibili.com/378501835576827480)。AUR:[bilibili-live-helper-bin](https://aur.archlinux.org/packages/bilibili-live-helper-bin/)。 + +除此之外还有一个[bilibili-live-chat](https://github.com/Tsuk1ko/bilibili-live-chat),这是一个浏览器的弹幕实现,风格仿照 youtube 的弹幕风格,也是很多弹幕软件的基础,直接在 web 上使用。除了 B 站直播,twitch 等其他平台的直播方式大同小异,只不过你需要寻找不同的弹幕插件,如在 twitch 上可参考[这篇文章](https://www.bilibili.com/read/cv10092277/)。 + +> bilibili-live-chat 等基于浏览器的弹幕姬实现需要使用有浏览器插件集成的 obs, arch 官方仓库中默认的 obs-studio 是无此功能的,如需使用 bilibili-live-chat,请安装 AUR 中的[obs-studio-browser](https://aur.archlinux.org/packages/obs-studio-browser/) + +如果你使用较新的英伟达显卡,可以使用 NVENC 编码器,这将大大降低直播或录制过程中 cpu 的压力,详情可见[NVIDIA NVENC OBS 指南](https://www.nvidia.cn/geforce/guides/broadcasting-guide/) + +注意,如果你使用 qv2ray+cgproxy 开启了透明代理,那么需要将 obs 加入到/etc/cgproxy/config.json 的 program_noproxy 的值中。 + +## 视频制作剪辑与特效 + +视频剪辑与制作推荐使用自由软件[shotcut](https://www.archlinux.org/packages/community/x86_64/shotcut/)。它可以满足大多数的视频剪辑制作需求,可以收看[简明视频教程](https://www.bilibili.com/video/BV1zb411H7J5/)。同类的软件还有[kdenlive](https://www.archlinux.org/packages/extra/x86_64/kdenlive/)以及[mkvtoolnix](https://archlinux.org/packages/extra/x86_64/mkvtoolnix-gui/)。 + +如果你需要功能更加强大的软件,可以尝试免费使用的专有软件[davinci-resolve](https://aur.archlinux.org/packages/davinci-resolve/)AUR或者其收费版[davinci-resolve-studio](https://aur.archlinux.org/packages/davinci-resolve-studio/)AUR。达芬奇是一个特效、剪辑、调色、配音的综合体软件。需要注意的是,Linux 下免费版达芬奇支持的编解码格式有限[[1]](https://documents.blackmagicdesign.com/SupportNotes/DaVinci_Resolve_15_Supported_Codec_List.pdf)。 + +> 因为达芬奇没有编译入 fcitx 模块,所以无法输入中文。正常来说只能等待新版达芬奇加入这个模块。喜欢折腾的可以尝试下老 K 给出的[魔改解决方案](https://www.csslayer.info/wordpress/fcitx-dev/a-case-study-how-to-compile-a-fcitx-platforminputcontext-plugin-for-a-proprietary-software-that-uses-qt-5/) + +在视频录制时,一些 KDE 的辅助功能非常实用。在 KDE 的系统设置中,找到工作区行为->桌面特效,在无障碍功能中勾选`鼠标定位`与`鼠标点击动效`两项,并使用。这两项设置在视频制作中可以突出的显示鼠标位置与点击效果,对于视频制作来说相当有用。 + +对于键盘的输入,可以安装包[screenkey](https://archlinux.org/packages/community/any/screenkey/),它可以将键盘的键入显示在显示屏上,对于视频的制作同样相当有用。 + +## 绘图、制图与修饰 + +在 linux 上的修饰图片可用[gimp](https://www.archlinux.org/packages/extra/x86_64/gimp/)。如果你需要配合数位板绘图,可使用[krita](https://www.archlinux.org/packages/extra/x86_64/krita/),krita 同时也提供一定的制图功能。矢量图片操作可使用 [inkscape](https://www.archlinux.org/packages/extra/x86_64/inkscape/) + +## 建模 + +可使用强大的 3D 建模软件[blender](https://archlinux.org/packages/community/x86_64/blender/) + +## 音频 + +专业的音频制作可使用如下软件。 + +- [Kwave](https://archlinux.org/packages/extra/x86_64/kwave/) +- [audacity](https://archlinux.org/packages/community/x86_64/audacity/) +- [lmms](https://archlinux.org/packages/community/x86_64/lmms/) +- [carla](https://archlinux.org/packages/community/x86_64/carla/) + +## UI/UX 设计 + +可使用 figma 在线版,或者使用一个非官方的 Linux figma 桌面端软件[figma-linux](https://github.com/Figma-Linux/figma-linux) + +## 字幕制作 + +一般情况来讲,一个视频加上外带的 srt 字幕是较为普遍的情况。这里描述如何为 youtube 视频加入字幕。 +首先要进行视频字幕的下载,这里可以使用一个 chrome 拓展:[YouTubeTM 双字幕](https://chrome.google.com/webstore/detail/youtube-dual-subtitles/hkbdddpiemdeibjoknnofflfgbgnebcm),即可下载你所需要的字幕文件。如果你有更方便的下载方式,欢迎告诉群主。 +接下来进行字幕与视频的重新烧录。MKVToolNix 只能做那种分离的字幕,但是 B 站要上传烧录好的,为了更好的兼容性,建议始终将视频和文件重新烧录。使用 ffmpeg 进行操作: + +```bash +ffmpeg -i input.mp4 -vf subtitles=input.srt output.mp4 +``` + +如果需要制作双语字幕(同时显示,而不是分字幕轨道),在 youtube 选择自动翻译后,点击中文,如视频支持,会出现双语字幕的文件下载。如视频不支持双语字幕下载,可以使用两次 ffmpeg 命令,第一次添加主字幕,第二次添加副字幕。第一次操作使用 MarginV 进行垂直方向的区分。更多参数可以自行参考 ffmpeg 文档。 + +```bash +ffmpeg -i hack.mp4 -strict -2 -vf subtitles=hack_zh.srt:force_style='Fontsize=20,円Fontname=FZYBKSJW--GB1-0,円MarginV=30,円Bold=-1,円BorderStyle=1' -qscale:v 3 hack_with_zh.mp4 +ffmpeg -i hack_with_zh.mp4 -strict -2 -vf subtitles=hack_en.srt:force_style +='Fontsize=15,円Fontname=FZYBKSJW--GB1-0,円Bold=-1,円BorderStyle=1' -qscale:v 3 hack_with_double_subtitles.mp4 +``` + +## 视觉小说的素材提取 + +目前一般常用的为 [GARbro](https://github.com/morkt/GARbro),但是其在 linux 下通过 wine 无法正常使用。这里提供一个跨平台的 gal game 内容提取工具[arc_unpacker](https://aur.archlinux.org/packages/arc_unpacker-git/)。详细用法可自行查看其 github。 diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..0a7685e --- /dev/null +++ b/docs/index.html @@ -0,0 +1,197 @@ + + + + + + Arch Linux安装使用教程 - ArchTutorial - Arch Linux Studio + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ Arch Linux安装使用教程 +
加载中...
+ + + + + + + + + + + + +

AltStyle によって変換されたページ (->オリジナル) /

+ diff --git a/docs/play&office/android.md b/docs/play&office/android.md new file mode 100644 index 0000000..e136784 --- /dev/null +++ b/docs/play&office/android.md @@ -0,0 +1,77 @@ +# 安卓刷机 + +[官方文档](https://wiki.archlinux.org/index.php/android) + +前排提示:买手机最好买知名度大的品牌,较热门的机型,这样在刷机时可以方便的找到官方的 twrp 和知名的 ROM 包,如魔趣,lineageOS,crDroid, Resurrection Remix. 等。如果是较冷门的品牌,官方可能没有提供 ROM,只能在网上自行寻找个人改造过的 twrp 和上述 ROM 包的 unofficial ROM(比如乐视的[这个](https://forum.xda-developers.com/t/rom-7-1-2-mtk-x620-unofficial-beta-lineageos-14-1-leeco-le2-pro-02-april-2019.3724749/)和[这个](https://github.com/zaoqi-android/Le_X62X_AOSP6.0))。这种个人改造版本的安全性比较难说,而且还可能有更多的 bug。也有可能你翻遍全网,也找不到冷门机型能用(指好用的、非硬件提供商的官方 ROM)的 twrp 和 ROM。硬件方面,一般推荐买高通骁龙的 cpu,不要买联发科的,因为更多 ROM 的版本都是适配高通硬件的。 + +首先需要安装 linux 上的安卓工具包 + +```bash +sudo pacman -S android-tools +``` + +## 解锁 bootloader + +再次提醒要购买或使用有可能解锁 bootloader 的手机品牌。华为,vivo 等这类官方就不给解锁的手机品牌,就无需再往下看了。 + +一般来说像小米这种品牌,官方会提供解锁 bootloader 的途径和工具,但是这些工具基本只能在 windows 下用。这时候你就只能用一台 windows 操作,或者使用虚拟机。 + +除此之外,如果你能获取,或通过很 hack 的方式拿到 bootloader 的解锁码,那么也可以使用 adb 在 fastboot 模式下进行解锁。 + +```bash +$ adb reboot bootloader #手机先链接电脑,重启到fastboot +$ fastboot oem unlock xxxxxxx #在fastboot模式下解锁,要加上正确的bl码才能解锁,否则会报错 +FAILED (remote: 'check password failed!') +fastboot: error: Command failed +``` + +## 刷入 twrp 并进行刷机 + +没有官方 twrp 的设备,可以在[unofficialtwrp](https://unofficialtwrp.com/devices/)查看下是否有。 + +如果没有相关信息有几个论坛和网站可以看看 + +- xda https://forum.xda-developers.com/ +- https://forum.cusrom.com/categories/vivo-y85/ +- https://androidfilehost.com/ 搜索 开发代号 + 你想要的系统名字 + +一般 twrp 的版本和 ROM 包有对应关系,刷机前先确认你的两个版本是兼容的,否则刷机过程可能报奇怪的错误,如 unable to mount /system + +去下载你机型对应的 twrp。在[官网](https://twrp.me/Devices/)搜索你的机型,下载。如果没有看到你的机型说明官方不支持,你需要自行搜索别人修改的版本。将手机连接电脑,注意要连到 USB2.0 的接口,否则可能有兼容性问题。 + +让手机进入 fastboot 模式,在电脑打开终端,执行 + +```bash +fastboot flash recovery ./path/of/your-twrp.img +``` + +看到终端执行完毕的时候,就可以让手机重启了。这里注意,执行`fastboot reboot`可以重启,但是许多设备会在首次启动时自动覆盖替换你刷入的自定义 recovery,如乐视的 le2 x620 这样直接重启会报错不是官方系统什么的。为防止这种情况,在手机上通过硬件按键重启进入 recovery,TWRP 将给 ROM 打 patch,以防止 ROM 替换 TWRP。[[1]](https://twrp.me/xiaomi/xiaomimi5.html) + +剩下的步骤就是普通的进入 twrp,双清,刷机即可。 + +> 有时双清或者进入 twrp 可能看到报错,用高级清理,从 ext4 改一下格式,再改回 ext4 可能就解决了 + +更多命令: + +```bash +$ adb shell #打开adb shell +$ adb root #在手机已经root的情况下打开root权限的adb shell +``` + +## 有关华为设备 + +如果你没有在 18 年华为关闭 bl 锁码申请前拿到密码,那刷机在现在将变得基本不可能,尤其是近一年左右的新设备。 + +老一些的设备可以尝试一下如下方法。 + +下载 DC-unlocker 花四欧元,下载到电脑上检测设备,登陆,然后尝试解锁读取 bl 码。不是所有设备都能成功,我的机型虽然在其支持列表里,也没有成功。流程大致是[这个](https://www.forece.net/post/4886.htm)。查到的原因是安卓 8 之后某个安全补丁后,DC unlocker 已经不能读到 bl 码。看 DC 之后的更新能否解决这个问题吧。还有另一个办法是先降级,然后在用 DC 解锁。通过 Firmware Finder 降级的方式,但是我试了也不行,拿不到检测的更新了,据说是 **EMUI8.0.0.129** 后封死了其他渠道回滚。[资料 1](https://club.huawei.com/thread-15361104-1-1.html)[资料 2](https://cn.ui.vmall.com/thread-19813753-1-1.html)[资料 3](https://www.cnblogs.com/lsgxeva/p/13469490.html) + +淘宝卖码的反馈 nova3e 机型无法解锁拿到 BL。 + +还有一个自行拿十六进制里 bl 码的[教程](https://www.52pojie.cn/thread-816065-1-1.html),前提是必须先拿到 root,这在新机型上基本也不可能了。旧机型可以尝试。在 linux 上检查十六进制可用这个软件[Bless](https://www.archlinux.org/packages/community/any/bless/) + +所以华为的机器解锁基本是不可能的了,除非华为重新开放 bl 申请。 + +--- + +Ref: [小米刷机教程](http://www.romleyuan.com/news/readnews?newsid=938) diff --git a/docs/play&office/media.md b/docs/play&office/media.md new file mode 100644 index 0000000..bc1e225 --- /dev/null +++ b/docs/play&office/media.md @@ -0,0 +1,36 @@ +# 视频影音 + +本节记录在 arch linux 上观看影视,收听音乐等相关信息。 + +## 在线听歌与音频播放器 + +网络音乐收听可以使用网易或腾讯出品的[网易云音乐](https://aur.archlinux.org/packages/netease-cloud-music/),[qq 音乐](https://aur.archlinux.org/packages/qqmusic-bin/),但它们都年久失修,或者质量惨不忍睹。显然这些大公司是不会愿意向 Linux 桌面投放精力的,我们更推荐你来使用维护更到位的自由软件。 + +yesplaymusic 是一款全平台的开源听歌软件,颜值高、无社交功能,并且是全网资源整合,推荐使用 + +```bash +yay -S yesplaymusic +``` + +listen1 是一款老牌的听歌软件,功能完善,同样资源全网整合,推荐使用 + +```bash +yay -S listen1-desktop-appimage +``` + +[Electron Netease Cloud Music](https://github.com/Rocket1184/electron-netease-cloud-music) 是一款用 Electron 和 Vue 编写的网易云音乐 Linux 客户端,支持歌曲下载,这是它的优势,但是曲库没有前两款软件齐全。 + +```bash +sudo pacman -S electron-netease-cloud-music +``` + +## 视频播放器 + +本地音视频播放一般使用 vlc 或 mpv + +```bash +sudo pacman -S vlc #VLC 播放器 +sudo pacman -S mpv #MPV 播放器 +``` + +除此之外,如果你想收看在线影视资源,[zy-player](https://aur.archlinux.org/packages/zy-player-bin/)是一个很好的选择,它是一个跨平台视频资源播放器, 整合全网资源,可以播放一些电影。 diff --git a/docs/play&office/office.md b/docs/play&office/office.md new file mode 100644 index 0000000..fac0573 --- /dev/null +++ b/docs/play&office/office.md @@ -0,0 +1,93 @@ +# 办公日常 + +本章记录日常办公需要用到的软件及配置。同时包括 QQ 等即时通讯软件和网盘、远程协助等软件的配置与使用。 + +> QQ 与微信等中国国内知名闭源专有 IM 软件均存在不同程度的间谍行为(实际上不仅仅是 IM 软件,几乎所有你能见到的中国国内大型互联网 APP 均有间谍行为,美其名曰:用户行为监测或用户画像描述)。收集用户信息,扫描用户手机存储内容,监控粘贴版内容,记录手机安装 APP 列表等无耻行为几乎已经成为业内公开的秘密。 + +> 欧盟与近些年出台了[GDPR 通用数据保护条例](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation),国内各大知名互联网软件公司在开发海外版软件时均需严格遵守上传数据、用户隐私等规定。然而在开发中国国内版时,则尽可能上传其能获取到的全部用户个人隐私数据,这是无耻且邪恶的。我们希望尽可能多的人抵制使用这种专有软件。 + +> 希望所有人抵制或放弃此类恶意专有软件是不现实的,如果你不能舍弃使用这些软件,我们只能希望你可以在一个较为安全的隔离环境中使用它们,如一个不存在任何敏感个人信息的隔离物理设备中使用。使用开源的,注重隐私的通讯软件始终是正确的选择。 + +## 即时通讯 + +我们强烈建议你使用开源的通讯软件,这是为了你自身的自由,也是为了身边人的自由。telegram,中文名一般称为电报,是一个在世界广泛应用的开源通讯软件,注重隐私保护和单人通讯加密。 + +```bash +sudo pacman -S telegram-desktop +``` + +中国常见的通讯软件在 ArchLinux 下也可使用。qq 轻聊版,qq 正式版,微信等可按如下安装。使用前先确保[字体](https://wiki.archlinux.org/index.php/Localization/Chinese#Fonts)的安装,否则汉字均为方块。一般 qq 安装文泉驿字体([wqy-microhei](https://archlinux.org/packages/?name=wqy-microhei))即可解决方块问题。深度于 2020 下半年放出了 deepin-wine5,基于这个最新版的 deepinwine 的 AUR 包一般都比原有的稳定。再次提醒,**我们不建议你使用 QQ 或微信这类专有间谍通讯软件作为你的主要通讯方式。** + +```bash +yay -S slack-desktop #常见的团队合作交流软件 +yay -S deepin.com.qq.im.light #基于deepin wine5的qq轻聊版 +yay -S linuxqq #腾讯官方出版的辣鸡linuxqq 疯狂闪退 网上方式均无效 不建议安装 +yay -S com.qq.im.deepin #基于deepin wine5的qq +yay -S com.qq.weixin.deepin #基于deepin wine5的wechat +yay -S wechat-uos #2020年末最新的uos版本原生微信的arch移植版本 +``` + +除此之外 对于另外一些手机通讯软件在电脑上的投屏可以尝试使用[scrcpy](https://aur.archlinux.org/packages/scrcpy/)AUR。 + +## 办公套件 + +主要两个选择是 [WPS]()AUR 与 [LibreOffice](https://wiki.archlinux.org/index.php/LibreOffice)。我们建议你使用开源的 LibreOffice, 其目前的安装已经非常简单。 + +```bash +sudo pacman -S libreoffice-still #稳定版 +sudo pacman -S libreoffice-fresh #尝鲜版 +``` + +WPS 请按官方文档安装。需要注意的是,由于分发问题,2020 下半年 WPS 已从 archlinuxcn 移除,安装请务必从 AUR 安装。 + +## 电子书 + +pdf 可直接用浏览器打开,也可选用其他专用的阅读软件,如[okular](https://archlinux.org/packages/extra/x86_64/okular/)或者[calibre](https://archlinux.org/packages/community/x86_64/calibre/)。okular 在打开大型 epub 时会非常卡顿。 + +## 截图 + +推荐使用 flameshot[火焰截图](https://www.bilibili.com/video/BV1LK4y1s7wX/) + +``` +sudo pacman -S flameshot +``` + +快捷键的命令是`flameshot gui`,可在 KDE 设置中加入设置快捷键为你所熟悉的键位。或者尝试另一种流行的 KDE 出品的截图软件 [spectacle](https://archlinux.org/packages/extra/x86_64/spectacle/) + +## 网盘存储 + +> 不要使用任何中国国内的网盘存储你的个人数据,他们可以根据"相关条款与规定",或者"自我阉割"的精神觉悟随意处置你的所有数据,在仔细阅读过他们的用户协议后,你会觉得毛骨悚然。只推荐用国内网盘存储无关紧要的数据。 + +- [Mega](https://aur.archlinux.org/packages/megasync/)AUR 国外注重隐私的老牌网盘,也可直接使用 [web 版本](https://mega.nz/fm/dashboard) +- [onedrive](https://aur.archlinux.org/packages/onedrive-abraunegg/)AUR 微软创办的网盘业务,linux 下存在一个命令行客户端 +- [超星网盘](http://i.mooc.chaoxing.com/space/index?t=1600061701200) 高校网盘,据说免费 100G 未验证 +- [稳定版坚果云](https://aur.archlinux.org/packages/nutstore/)AUR,也可直接使用 [web 版本](https://www.jianguoyun.com/d/home#/)。如果稳定版的界面存在问题,可使用[最新实验版坚果云](https://aur.archlinux.org/packages/nutstore-experimental/)AUR +- [百度网盘](https://aur.archlinux.org/packages/baidunetdisk-bin/)AUR 臭名昭著的百度网盘 + +## 图片浏览 + +在桌面环境与必要应用一节中已经安装了 [gwenview](https://archlinux.org/packages/extra/x86_64/gwenview/),它基本可以满足日常看图的需求。如果另需快速看图软件,可以尝试以下软件。 + +- [feh](https://www.archlinux.org/packages/extra/x86_64/feh/) +- [nomacs](https://www.archlinux.org/packages/community/x86_64/nomacs/) + +## 常用系统组件 + +日常办公中所需要用到的各类小工具有很多实现,其中 KDE 的套件中就有很多,可以自行查询,此处仅列出几个常用的例子。 + +- [Kcalc](https://archlinux.org/packages/extra/x86_64/kcalc/) 计算器 +- [Kamoso](https://archlinux.org/packages/extra/x86_64/kamoso/) 相机 +- [Cheese](https://archlinux.org/packages/extra/x86_64/kamoso/) 茄子相机 +- [KTimer](https://archlinux.org/packages/extra/x86_64/ktimer/) 倒计时执行器 + +## 远程协助 + +如需连接 windows 远程机器,你可以使用开源的[freerdp](https://archlinux.org/packages/community/x86_64/freerdp/)协议,配合开源实现[Xrdp](https://wiki.archlinux.org/title/Xrdp),或者[Rdesktop](https://wiki.archlinux.org/title/Rdesktop)即可。 + +如需链接 Linux 服务器,大多数场景使用 ssh 即可。 + +如果以上解决方案不能满足你,那么可以尝试免费使用的专有软件[teamviewer](https://aur.archlinux.org/packages/teamviewer/)AUR,其完善的功能基本可以满足全部需求。需要注意安装后需按照提示启动服务。 + +```bash +sudo systemctl enable --now teamviewerd +``` diff --git a/docs/play&office/play.md b/docs/play&office/play.md new file mode 100644 index 0000000..874d45b --- /dev/null +++ b/docs/play&office/play.md @@ -0,0 +1,175 @@ +# 娱乐软件 + +群主的电脑配置如下,供参考,本节中所有主观的体验均以此配置为准。 + +```bash +CPU: Intel i7-6700K (8) @ 4.200GHz +GPU: NVIDIA GeForce GTX 1070 +Memory: 32GB 2666 +Disk: PLEXTOR PX-1TM9PeG +``` + +## 性能提升 + +在游戏之前,如果有强烈的性能需要,可先确保 cpu 处于性能模式。注意此模式会让 cpu 处于最高性能状态,风扇狂转,如果你的散热撑不住甚至会降频,得不偿失,斟酌使用。在终端中,输入下列代码: + +```bash +echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +``` + +现在电源应该处于 High Performance 模式了。 + +如果希望将设置改回 Power Save 模式,那么只需要输入下列代码即可 + +```bash +echo powersave | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor +``` + +## 网游网络加速 + +对于在 linux 上玩网游,网络加速一直是一个难题,尤其是在玩一些外服网游的时候。这里提供一些思路来在 linux 下对网游加速。 + +- 一些机场会提供网游游戏节点,这些节点专门为游戏优化,限制流量并且提高倍率,一般可以得到较好的加速效果。在 linux 中配合[透明代理](/advanced/transparentProxy),同时开启对 UDP 流量的代理加速,即可以得到优化网游网速的效果。 +- 一些中端或者高端的路由器,会内置一些市面上常见的网游加速器,如果你的路由器有这个功能,那可以直接使用路由器内置的加速器加速本机的网游流量。 +- 据网友说,wine 运行的网游加速器也能加速 linux 中运行的网游,此条我未成功,未验证。 + +## 我的世界 + +注意,如果不进行代理设置,启动器的下载速度将很慢。推荐使用全局透明代理。在安装使用中若出现问题可自行查看[AUR 仓库地址](https://aur.archlinux.org/packages/minecraft-launcher)下的评论。 + +```bash +sudo pacman -S minecraft-launcher #我的世界官服启动器(ArchLinuxCN) +``` + +除了官方启动器,还有一部分人使用[HMCL](https://hmcl.huangyuhui.net/)(Hello Minecraft! Launcher)第三方启动器。[GitHub 地址](https://github.com/huanghongxun/HMCL) [MC BBS](https://www.mcbbs.net/thread-142335-1-1.html) + +```bash +yay -S hmcl +``` + +## Steam + +群主的 SteamID: 144736794 。由于游戏实在太多,个人肯定无法完成购买全部。如有需要可以进行联络,群主可以测试在 Linux 上的可运行性。 + +[官方文档](https://wiki.archlinux.org/index.php/Steam) +一些字体和驱动已经在`新手上路`章节中配置完成。若有安装问题请自查。 + +此外,如果某些游戏启动或者游玩有问题,可以用终端使用`steam`命令启动 steam 客户端,并观察游戏崩溃时的终端报错。一般都是缺少某种依赖造成的,可以根据具体情况自行安装依赖。同时,archlinux 官方文档也提供了一个[查错页面](https://wiki.archlinux.org/index.php/Steam/Game-specific_troubleshooting),记录了一些游戏崩溃(如骑马与砍杀等)的解决方式。 + +```bash +sudo pacman -S steam +``` + +下面的清单是群主自身测试过,或者玩过的,在 Linux 下拥有`完美体验或者表现良好`的游戏列表,分为原生组和 [Steam Play](https://wiki.archlinux.org/index.php/Steam#Proton_Steam-Play) 组两类。关于非 Linux 平台的游戏,通过 Steam Play 运行的可玩程度,可通过[protondb](https://www.protondb.com/)这个网站进行查询。如果玩某个游戏出现问题,在这个网站里你也可以找到玩家 post 的各个游戏的修正方式。有时最新版 Proton 可能存在问题,这时自行尝试其他版本即可。 + +另外,github 上还存在一些官方 proton 的 fork 版本,如 [GE proton](https://github.com/GloriousEggroll/proton-ge-custom),可以支持一些额外的,官方暂不支持或支持不完善的游戏。使用方式也很简单,根据官方文档,下载 release 的压缩包到指定位置,重启 steam 后即可选择特定版本的 GE proton。 + +只列出大作以及较好玩的精品,不会列举全部。 + +> 游戏锁区解决办法:让你的 steam 处于一个国家的代理下,如日本。先随便加一个游戏到购物车,在购物车右上角国家地区改成日本,再去访问已锁区的游戏,就可以浏览购买了。 + +### 原生游戏组 + +- [武装突袭 3](https://store.steampowered.com/app/107410/Arma_3/) 完美运行。 +- [CS GO](https://store.steampowered.com/app/730/CounterStrike_Global_Offensive/) 不用介绍了吧? +- [十字军之王 3](https://store.steampowered.com/app/1158310/Crusader_Kings_III/) 经典的中世纪模拟器 第三部已经有官方中文了。若启动器闪退启动不了游戏,可以执行游戏目录的./binary/ck3 启动游戏。 +- [Dota2](https://store.steampowered.com/app/570/Dota_2/) 完美运行,提供 openGL 与 Vulkan 两种方案。目前已经可以输入中文。 +- [巫师 3](https://store.steampowered.com/app/292030/_3/) 完美运行。 +- [RimWorld](https://store.steampowered.com/app/294100/RimWorld/) 一款非常好玩的生存建设类游戏。 +- [欧陆风云 4](https://store.steampowered.com/app/236850/Europa_Universalis_IV/) 没有官中。linux 双字节补丁暂无。 +- [Kingdom: Classic](https://store.steampowered.com/app/368230/Kingdom_Classic/) 挺好玩的一个像素风横版闯关类小游戏。同系列还有几个新作。 +- [地铁 2033 Redux](https://store.steampowered.com/app/286690/Metro_2033_Redux/) 经典的地铁系列。 +- [地铁 Last Light Redux](https://store.steampowered.com/app/287390/Metro_Last_Light_Redux/) 经典的地铁系列。 +- [星露谷物语](https://store.steampowered.com/app/413150/Stardew_Valley/) 二次元像素风农场模拟器。 +- [饥荒](https://store.steampowered.com/app/219740/Dont_Starve/) 中文显示有问题,需要订阅并启用中文 mod,如[这个](https://steamcommunity.com/sharedfiles/filedetails/?id=874857181&searchtext=%E4%B8%AD%E6%96%87) +- [Oxygen Not Included(缺氧)](https://store.steampowered.com/app/457140/Oxygen_Not_Included/) 同样是 Klei 出品,2D 模拟经营类游戏。 +- [泰拉瑞亚](https://store.steampowered.com/app/105600/Terraria/) 不用介绍了吧? +- [全战三国](https://store.steampowered.com/app/779340/Total_War_THREE_KINGDOMS/) 全战系列的三国篇。 +- [骑马与砍杀](https://store.steampowered.com/app/22100/Mount__Blade/) 最爱骑砍。 +- [骑马与砍杀:战团](https://store.steampowered.com/app/48700/Mount__Blade_Warband/) +- [武装突袭 1(闪点行动)](https://store.steampowered.com/app/594550/Arma_Cold_War_Assault_MacLinux/) 血统上为武装突袭第一代。 +- [中土世界 暗影摩多](https://store.steampowered.com/app/241930/Middleearth_Shadow_of_Mordor/) 兽人养成器。 +- [Portal 系列](https://store.steampowered.com/app/400/Portal/) V 社著名解谜游戏。 +- [监狱建造师](https://store.steampowered.com/app/233450/Prison_Architect/) 好玩的坐牢游戏。 +- [Surviving Mars](https://store.steampowered.com/app/464920/Surviving_Mars/) 好玩的火星生存游戏。 +- [Factorio(异星工厂)](https://store.steampowered.com/app/427520/Factorio/) 模拟经营,策略类游戏,自带 100%汉化。喜欢自动化的玩家可以一试。(并且对显卡要求不高,该条目的贡献者用着 UHD630 如是说道) +- [Rise to Ruins](https://store.steampowered.com/app/328080/Rise_to_Ruins/) 类似 RimWorld 模式的像素风模拟经营游戏。 + +### Steam Play 组 + +默认使用最新的 Steam 官方 Pronton 版本即可。如果不行,可尝试使用其他版本的 Proton 或者 GE Pronton。 + +- [赛博朋克 2077](https://store.steampowered.com/app/1091500/_2077/) 可玩,基本无闪退发生。 +- [荒野大镖客 2](https://store.steampowered.com/app/1174180/Red_Dead_Redemption_2/) 完美运行。 +- [骑马与砍杀 2](https://store.steampowered.com/app/261550/Mount__Blade_II_Bannerlord/) 略有卡顿,启动器存在 bug,无法启动游戏,需要进行一点修改。进入游戏文件夹的./bin/Win64_Shipping_Client 文件夹中,执行如下命令 + ```bash + mv TaleWorlds.MountAndBlade.Launcher.exe TaleWorlds.MountAndBlade.Launcher.exe.bak #备份源文件 + ln -s Bannerlord.Native.exe TaleWorlds.MountAndBlade.Launcher.exe #通过符号链接让启动器直接指向Bannerlord.Native.exe + ``` + [相关 issue 讨论](https://github.com/ValveSoftware/Proton/issues/3706) +- [只狼](https://store.steampowered.com/app/814380/Sekiro_Shadows_Die_Twice__GOTY_Edition/) 完美运行。 +- [上古卷轴 5](https://store.steampowered.com/app/489830/The_Elder_Scrolls_V_Skyrim_Special_Edition/) 完美运行。 +- [ATRI -My Dear Moments-](https://store.steampowered.com/app/1230140/ATRI_My_Dear_Moments/) 可爱的あとり 第一时间预购了 但始终没时间玩。 可使用 Proton 4.11-13 版本。 +- [cute honey](https://store.steampowered.com/app/1347430/Cute_Honey/) 已锁国区。一款社保黄油。可使用 Proton 5.0-10 版本。 +- [LOVE3 -爱立方-](https://store.steampowered.com/app/939600/LOVE/) 一款社保黄油。steam dlc 有社保补丁 dlc。可使用 Proton 5.0-10 版本。 +- [三国志 11](https://store.steampowered.com/app/628070/Romance_of_the_Three_Kingdoms_XI_with_Power_Up_Kit/) 可使用 Proton 5.0-10 版本。 +- [Kenshi](https://store.steampowered.com/app/233860/Kenshi/) 废土生存类游戏,非常好玩。可使用 Proton 5.0-10 版本。 +- [光环士官长合集](https://store.steampowered.com/app/976730/Halo_The_Master_Chief_Collection/) 大名鼎鼎的光环系列。启动时需要在启动参数中加入`-windowed`,否则会报错 fatal error。可在进入游戏后自行调整分辨率。可使用 Proton 5.0-10 版本。 +- [Stronghold HD](https://store.steampowered.com/app/40950/Stronghold_HD/) 要塞 1 重制版,近乎完美,只是不能 Alt+Tab 切换,会卡死。 +- [Stronghold Crusader (Extreme) HD](https://store.steampowered.com/app/40970/Stronghold_Crusader_HD/) 要塞 1 十字军重制版,近乎完美,只是不能 Alt+Tab 切换,会卡死。 +- [Stronghold 2](https://store.steampowered.com/app/40960/Stronghold_2_Steam_Edition/) 要塞 2。完美运行。 +- [Stronghold Legends](https://store.steampowered.com/app/40980/Stronghold_Legends_Steam_Edition/) 要塞传奇。完美运行。 +- [战意](https://store.steampowered.com/app/835570/_/) 中世纪网游。注意需要使用 GE Proton 的新版本。 +- [Just Cause](https://store.steampowered.com/app/6880/Just_Cause/) +- [侠盗猎车手圣安地列斯](https://store.steampowered.com/app/12120/Grand_Theft_Auto_San_Andreas/) +- [Seek girl 系列黄油](https://store.steampowered.com/app/998930/Seek_Girl/) 好玩的 🐍 击游戏。玩之前记得先去装社保补丁 + +## Lutris + +Lutris 基于 wine,提供了大量游戏在 Linux 下的解决方案。其为你已经配置好了 wine 相关的一切配置,你只需要安装游玩即可。一般极少需要额外配置。进入[官网](https://lutris.net/)在右上角搜索你想玩的游戏。点击进入游戏页面后,可以看到在相应版本右侧有一个 install 按钮,点击后即可拉起 Lurtis 进行安装。玩游戏前要先装好[驱动](https://github.com/lutris/docs/blob/master/InstallingDrivers.md)和[依赖](https://github.com/lutris/docs/blob/master/WineDependencies.md)。下面针对一些群主玩的游戏进行一些额外说明。 + +### 暴雪战网 + +[暴雪战网](https://lutris.net/games/battlenet/) 直接安装后可能无法登录,这是因为缺乏某些库。阅读历史 Issue,安装如下库后解决问题。 + +```bash +sudo pacman -S giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo libxcomposite lib32-libxcomposite libxinerama lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader cups samba dosbox +``` + +> 如果你发现还是无法登陆,检查你的代理设置。比如你是国服的帐号,但是代理挂的是日本的,那是无法登陆的,可以换一个香港的代理再尝试。 + +### WargamingGameCenter(坦克世界、战舰世界等) + +[WargamingGameCenter(坦克世界、战舰世界等)](https://lutris.net/games/wargaming-game-center/) 在页面上选择亚服即可进行安装(如果你玩亚服,则需要使用[透明代理](/advanced/transparentProxy)对 UDP 流量进行加速)。注意安装结束后,会卡在 wargaming 启动器,整个启动器会黑掉,在右下角托盘右键关闭就可以继续安装流程。 + +如果无法更新游戏,在需要更新游戏的时候,将 wine 版本设置为系统的 wine staging 版本,如果最新的 wine-staging 版本仍然闪退,可以退回到 5.19 版本,这是最新的可用版本。如果依旧无法更新,可以尝试重新安装启动器(安装前先删除容器内 wgc 的文件夹,注意不是游戏本体的文件夹,无需重新下游戏本体)。在更新完毕后,需要启动游戏时,将 wine 版本设置为 lutris 自带的版本。 + +如遇到无法启动闪退的情况,可以尝试在命令行启动 Lutris,再启动坦克世界即可,玄学,不知道原因。如果启动器中启动游戏还是闪退,可以尝试把 lutris 容器的启动文件从启动器改到 WOT 游戏本体的可执行文件。这个方法在外服可以,国服就不行,因为启动游戏本体后要输入帐号密码,我试了旧的空中网帐密,新的 360 帐密都不行,提示帐号密码错误或已过期。想了想原因可能是 360 在启动器做了套娃,有自身的验证登陆手段。这时候就需要用另一个更通用的方式,可以使用 lutris 的功能`Run EXE inside wine prefix`,然后选择坦克世界游戏本体就可以通过验证玩游戏了。`Run EXE inside wine prefix`的位置在 lutris 下方,点击小酒杯,最后一个。 + +如果你玩国服,群主在 lutris 上传了国服的安装脚本,目前还没通过审核。 + +关于插件,可以在官方的 [Mod Hub](https://wgmods.net/) 下载,使用方式和 windows 上是相同的,个人习惯更换背景音乐为 Old Memories。如果习惯使用坦克世界盒子,也可以安装在同一个容器里,经过测试,除了没有效率值之外,其他功能是可以正常使用的。 + +## 原生 wine + +安装使用原生 [wine](https://wiki.archlinux.org/index.php/Wine) 也可运行 windows 游戏,但是很多情况下需要你自行处理 windows 下的依赖问题,常用的工具是[winetricks](https://archlinux.org/packages/multilib/x86_64/winetricks/)。这种方式费时费力,只运行无需处理依赖的小游戏或者 gal 还好。 + +## 性能监控 + +和微星的 Afterburner 软件中性能显示的部分类似,linux 上也有一款同类软件可以监控游戏中的电脑性能,名为[MangoHud](https://github.com/flightlessmango/MangoHud)。使用方式可参见此项目的 readme。此外,官方提供图形化的参数设置软件 [GOverlay](https://github.com/benjamimgois/goverlay#arch--manjaro--other-arch-derivatives),可以自行选择安装。 + +## 可选内核更换 + +一般来说,采用了 fsync 的 patch 的内核游戏性能会更好。尤其在一些采用.Net 的 wine 游戏中,fsync 会有明显的性能提升[[1]](https://github.com/ValveSoftware/Proton/issues/3706#issuecomment-636632984)。目前 Linux 内核并没有加入 fsync 功能,可以更换 zen 内核。 + +```bash +sudo pacman -S linux-zen linux-zen-headers +``` + +安装完毕后重新更新一下 grub 即可。 + +```bash +sudo grub-mkconfig -o /boot/grub/grub.cfg +``` + +> 如果你使用英伟达显卡,记得更换驱动为相应的 dkms 版本。一般来说较新的显卡安装 nvidia-dkms 即可。 diff --git a/docs/postscript.md b/docs/postscript.md new file mode 100644 index 0000000..941654f --- /dev/null +++ b/docs/postscript.md @@ -0,0 +1,43 @@ +# 后记 + +最近这些日子,"内卷"、"躺平"这些词又被一些群体炒的沸沸扬扬,想着之前一直想写的话,正好也该补上了。 + +我硕士毕业于中国一线 985 高校软件工程专业,某省优秀硕士毕业生,毕业后即拿到了中国某超一线城市的户口。后实习、工作于各个大型互联网公司共有几年的时间。于近几个月辞去了超一线城市待遇优厚的工作回到了家里。很多人表示不理解,觉得我是一个啥比。我对此没有任何反应,接下来我来给你讲一讲我最近几年的一点经历和感悟。 + +就像很多人说的一样,互联网公司的程序员是很累的,其实无论大小公司,都会很累。在大公司,你是螺丝钉,有不停的螺丝需要你来拧,同时大公司往往除了 KPI 之外,还会有 OKR 之类的东西存在,这些名义上不计入绩效考核的东西实际是干什么的,懂的人都懂,无需我多说。小公司更是,如果你是一个能力较强的人,那么你是需要担任多面手的角色的。 + +讲到这里,会有一些人开始用"你不够努力!"来指责我这种人了。或者是什么"你父辈比你吃的苦比你多多了,你这累一点算什么?"。其实说这种话的人无非两种,一种是身居高位或者已经家境殷实,没什么顾虑的人。一种是真正的啥比,没有经历过就开始指点江山了。下面我从两个方面开始讲,一个方面是单纯的工作方面,另一个方面是个人生活方面,来讲述我经历的事情。 + +--- + +在工作上,我相信大多数像我一样的平庸之辈,进入大型互联网公司之后干的活都是非常无聊的工作,我不否认可以提升你所从事的方向的相关方面技术,但重要的是,你做的这些事情是否真的有意义?网络上流行过的带有戏谑成分的一句话可以从一定程度反应我的想法:"做 app 救不了中国"。当然,重点是"做 app 救不了...",而不是"救中国",没法救,我也根本救不了。一旦你进入工作后,会发现很多事情都是无用功,比如原来的某个领导喜欢一套东西,大家辛辛苦苦搞起来。然后后来哪天又来了个新领导,他觉得原来的东西,不行!他认为的东西,行!结果原来做好的一切都被推倒重来,又要加班暴肝好久。结果其实根本本质上是一个东西,甚至没有原来的好。类似的政治工作太多了,这些都让我觉得恶心。 + +再来说说同事关系,其实很简单,就是一切向钱看,所有人的一切动作,言语,都是为了绩效,为了钱,他们可以做出任何事情,你要有这种心里准备,一个一直和你相处很好的同事,可能随时做好向你的上级领导打小报告的准备。再举几个例子,某同事请病假,前一天晚上保证第二天请假时通信 IM 会全天在线。然后第二天他请病假时,我不仅发现他在线,而且还在家提交代码哦〜〜〜还有一件事,与同事在会前商量好一个需求的开发方案,会上我做汇报,结果我刚汇报完气还没喘一口,他紧接着就来了一句:我有一个方案更好。我:????? 再有一同事,全年基本一个假都不请,这个我觉得不用再说什么了。。。再有就是最极品的前端组长了,与后端业务组强抢 api 层的建设到自己组内来搞,后端不管是出于私心还是真的为了业务本身健康发展,自然都是不同意的,但是架不住组长的"强烈攻势",最终在撕比一个多月后终于妥协。 + +互联网公司的绩效基本都是半年制,也就是说每半年你都要对其余人评价,其余人也会评价你。看似时间很长,其实很短暂,这就造成很多人要抓住一切机会来提升自己的绩效,拉低别人的绩效,这是保证自己收入的必须要做的事情。半年很短,工作上能**真正**做出的成果一定是极为有限的,其余人对你的了解也是极为有限的,因为不可能所有人都对你的工作都了解,那么造成的必然结果就是,这种绩效考核在很大程度上,人情考核以及日常的"谋略"与表演都是需要重点关注,大下功夫的。 + +以上几点都是冰山一角而已,我真的不想回忆太多了。从这些事情来看,它根本就不是什么奋斗与不奋斗的问题,而是已经到了一个极为病态的程度,每个人在这个环境中人格,精神,都是不正常的。因为所有人做出的行为都是有原因的,那就是为了钱。这是无可否认的事实。 + +讲到这里,还会有一类自觉满腹经纶的人用"存在即合理"这句话来反驳我。"存在即合理"这句被很多人奉为圭臬的话其实是一句不知道是哪个带文豪"浓缩"来的"精华"。每个人都追求钱,这是正常的吗?明显是不正常的,但是是谁造成的呢?反正不是我。 + +--- + +工作部分讲完,再来说说生活部分。工作的时间基本是一周六天,然后每天晚上九点到十点下班,如果你家离得远,那么恭喜你,到家洗漱完已经快十二点了。早上基本是睡到不能再睡的最后一刻再去上班,一般是九点左右。我觉得这也不用我再说什么了。。。因为事实就在这里,没什么好说的,这种作息,你基本除了工作啥也干不成。谈恋爱?别闹了。休息那天睡到自然醒,洗衣服,收拾屋子,吃饭,躺尸一会,一天就这么过去了,非常快啊〜〜〜 + +就像知乎某热帖一样,如果你只有一级,每天能拿 500 点经验,升级要 100000000 点经验,这个游戏你还会不会玩下去了,我想是个脑子正常的人的反应都是:老子不玩了,你爱咋咋地吧。像我这种普通家庭在中国某超一线城市如果想扎根生活下去,面临的感受是极为类似的。理论上来说,如果掏空家中所有的积蓄,再加上我的收入,再贷款个三十年,还是可以在这个城市买一套 60 平米左右的房子的,也即:可以扎根了。但是我真的不想这么做,原因主要有几点。第一,这样风险实在太大了,全部家当外加半辈子都投到一个房子里,风险有多大不用我多说。第二,这样的话,我的一辈子就都被绑定在这个房子上了,我没有任何机会做我想做的事情了,这值得吗?第三,我的家距离这个城市非常远,这就意味这我与家人相聚的时间还能有几个月?用手指都能数过来。 + +还有人会说,你可以去一个房价没那么离谱的城市生活啊,这点我确实想过。但还是放弃了,因为就算换个城市,工作还是那个环境,房价会好一些,但也不会好多少,而且在那种城市,你想找到一个你薪资满意,同时工作合适的机会,还是挺难的,互联网行业,好的工作都集中在超一线城市,大家都知道的。 + +这种生活是我想要的吗?我在数不清的深夜无数次的问过自己,答案现在已经一目了然了。 + +--- + +在这个已经被资本牢牢统治的世界,《钱》早已被奉为成功与否的唯一标准。这样的世界人是否还应有除了赚钱以外的其他理想?是否还能有除了赚钱以外的其他理想?我想当然是有的,尽管很多人认为我这种想法与做法就是一个纯粹的啥比。别的行业我不懂,我只懂计算机软件。我的理想就是每个人都应该有自由使用软件的权利,直到我几年前接触到自由软件运动,这与我之前的想法不谋而合。捧着手机刷抖音的你,不会知道这些软件在背后做了多少令人作呕的事情。这些专有软件也同时将无数人牢牢绑定在了他们的系统中,成为他们手中的资本。另外提一点,有趣的是,我在提到类似事情的时候,总会有人说到,你看美国也是怎样怎样的。。。我也没说美国好呀,您急什么?我是不是某些人口中的"心怀叵测的境外势力"? + +专有软件作恶、审计与监控,与冠绝全球的 Great Firewall 并驾齐驱,我们赢了! + +这本 ArchLinux 安装使用教程是我真正自己想做的第一件事情,我一定会将其做好,随后也会有其他教程与各位见面,同时我也会继续开发各类自由软件,以及能够做到"Equal Internet access for all."的各类工具。士不可以不弘毅,任重而道远,你的志向是赚钱,我不是。 + +--- + +萧瑟秋风今又是,换了人间。 diff --git a/docs/rookie/DE&App.md b/docs/rookie/DE&App.md new file mode 100644 index 0000000..620a9e6 --- /dev/null +++ b/docs/rookie/DE&App.md @@ -0,0 +1,214 @@ +# 桌面环境与常用应用 + +官方文档: [安装后的工作](https://wiki.archlinux.org/index.php/General_recommendations) +本节只介绍最基本的,能使系统真正意义上可用所需的组件 +相关视频链接: [2020ArchLinux 安装 KDE 桌面&Fcitx5 输入法配置](https://www.bilibili.com/video/BV1Vk4y117jc) 视频文字结合效果更好 +注: 文档中带有 AUR 角标的软件代表是用户自行打包的第三方软件[AUR](https://aur.archlinux.org/),不在 Arch 官方支持范围内,可能会出现更新不及时、无法安装、使用出错等各种问题。如果不是实在没有官方支持的同类软件,则不建议使用。 + +## 1.确保系统为最新 + +如果你在做完上一节的内容后,重启并放置过一段时间,那需要先按照上节末尾处的方式重新连接网络,然后更新系统。 + +```bash +pacman -Syyu #升级系统中全部包 +``` + +## 2.准备非 root 用户 + +添加用户,比如新增加的用户叫 testuser + +```bash +useradd -m -G wheel -s /bin/bash testuser #wheel附加组可sudo进行提权 -m同时创建用户家目录 +``` + +设置新用户 testuser 的密码 + +```bash +passwd testuser +``` + +编辑 sudo 文件 + +```bash +EDITOR=vim visudo +``` + +找到这样的一行,把前面的注释符号#去掉,`:wq`保存并退出即可。 + +```bash +#%wheel ALL=(ALL) ALL +``` + +这里稍微解释一下 +%wheel 代表是 wheel 组,百分号是前缀 +ALL= 代表在所有主机上都生效(如果把同样的`sudoers`文件下发到了多个主机上) +(ALL) 代表可以成为任意目标用户 +ALL 代表可以执行任意命令 +一个更详细的例子: + +```bash +%mailadmin snow,rain=(root) /usr/sbin/postfix, /usr/sbin/postsuper, /usr/bin/doveadm +nobody ALL=(root) NOPASSWD: /usr/sbin/rndc reload +``` + +组 mailadmin 可以作为 root 用户,执行一些邮件服务器控制命令。可以在 "snow" 和 "rain"这两台主机上执行 +用户 nobody 可以以 root 用户执行`rndc reload`命令。可以在所有主机上执行。同时可以不输入密码。(正常来说 sudo 都是要求输入调用方的密码的) + +## 3.安装 KDE Plasma 桌面环境 + +```bash +pacman -S plasma-meta konsole dolphin #安装plasma-meta元软件包以及终端和文件管理器 +``` + +## 4.配置 greeter sddm + + + +``` +systemctl enable sddm +``` + +## 5.设置交换文件 swap + +在桌面环境中,交换分区或文件用来实现休眠(hibernate)的功能,即将当前环境保存在磁盘的交换文件或分区部分。除此之外,某些特定软件需要 swap 才可以正确运行。交换文件与分区性能相同,且交换文件更为灵活,可随时变更大小,增加与删除。[[1]](https://wiki.archlinux.org/title/Swap#Swap_file) + +```bash +dd if=/dev/zero of=/swapfile bs=1M count=16384 status=progress #创建16G的交换空间 大小根据需要自定 +chmod 600 /swapfile #设置正确的权限 +mkswap /swapfile #格式化swap文件 +swapon /swapfile #启用swap文件 +``` + +最后,向/etc/fstab 中追加如下内容: + +```bash +/swapfile none swap defaults 0 0 +``` + +KDE 自身提供开箱即用的睡眠功能(suspend),即将系统挂起到内存,消耗少量的电量。休眠(hibernate)会将系统挂起到交换分区或文件,几乎不消耗电量。sleep 睡眠功能已可满足绝大多数人的需求,如果你一定需要休眠功能,可以参考[官方文档](https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate)设置休眠相关步骤。 + +## 6.开启 32 位支持库与 ArchLinuxCN 支持库 + +```bash +vim /etc/pacman.conf +``` + +去掉[multilib]一节中两行的注释,来开启 32 位库支持。 +在文档结尾处加入下面的文字,来开启 ArchLinuxCN 源。 + +```bash +[archlinuxcn] +Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch +``` + +上面服务器的地址是中科大的,也可用下面清华的。 + +```bash +Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch +``` + +[此处](https://github.com/archlinuxcn/mirrorlist-repo#arch-linux-cn-community-repo-mirrors-list)为 archlinuxcn 全部仓库地址 可以根据自己实际情况另行选择。 + +最后:wq 保存退出,刷新 pacman 数据库 + +```bash +pacman -Syyu +``` + +重启电脑,即可看到欢迎界面,输入新用户的密码即可登录桌面 + +## 7.安装基础功能包 + +进入桌面后,搜索 konsole。它是 KDE 桌面环境默认的命令行终端。 + +首先先进行桌面环境中的网络设置: + +```bash +sudo systemctl disable iwd #确保iwd开机处于关闭状态,其无线连接会与NetworkManager冲突 +sudo systemctl stop iwd #同上,立即关闭iwd +sudo systemctl enable --now NetworkManager #确保先启动NetworkManager,并进行网络连接 若iwd已经与NetworkManager冲突 则执行完上一步重启一下电脑即可。 +``` + +接下来安装一些基础功能包。 + +```bash +sudo pacman -S ntfs-3g #识别NTFS格式的硬盘 +sudo pacman -S adobe-source-han-serif-cn-fonts wqy-zenhei #安装几个开源中文字体 一般装上文泉驿就能解决大多wine应用中文方块的问题 +sudo pacman -S noto-fonts-cjk noto-fonts-emoji noto-fonts-extra #安装谷歌开源字体及表情 +sudo pacman -S firefox chromium #安装常用的火狐、谷歌浏览器 +sudo pacman -S ark #与dolphin同用右键解压 注意可同时安装可选解压支持项 +sudo pacman -S packagekit-qt5 packagekit appstream-qt appstream #确保Discover(软件中心)可用 需重启 +sudo pacman -S gwenview #图片查看器 +sudo pacman -S steam #稍后看完显卡驱动再使用 专有软件 +``` + +最后要安装 archlinuxcn 源的相关步骤。 + +```bash +sudo pacman -S archlinuxcn-keyring #cn源中的签名(archlinuxcn-keyring在archLinuxCn) +sudo pacman -S yay #yay命令可以让用户安装AUR中的软件(yay在archLinuxCn) +``` + +若安装 archlinuxcn-keyring 时报错,是由于密钥环的问题,可先按照[此链接](https://www.archlinuxcn.org/gnupg-2-1-and-the-pacman-keyring/)执行其中的命令,再安装 archlinuxcn-keyring + +## 8.设置系统为中文 + +打开 _System Settings_> _Regional Settings_> _Language_ -> _Add languages_ 中选择中文加入,再拖拽到第一位,Apply。 + +再将*System Settings*> _Regional Settings_> _Formats_ 中的值设为`中文-简体中文(zh_CN)` + +最后重新登陆即可。 + +> 很多人会错误的更改 _System Settings_> _Regional Settings_> _Formats_ 中的值为中文蒙古(mn_CN),默认,或者其他值,这会导致系统中一半英文一般中文。这里的值要保持默认的 en_US 或 zh_CN,或者改为你在 locale.gen 中添加的任意一种语言。 + +## 9.安装输入法 + +[Fcitx5 官方文档]() +中文及日文输入法均体验良好。 + +```bash +sudo pacman -S fcitx5-im #基础包组 +sudo pacman -S fcitx5-chinese-addons #官方中文输入引擎 +sudo pacman -S fcitx5-anthy #日文输入引擎 +sudo pacman -S fcitx5-pinyin-moegirl #萌娘百科词库 二刺猿必备(ArchLinuxCn) +sudo pacman -S fcitx5-material-color #主题 +``` + +设置环境变量 编辑文件 `sudo vim /etc/environment` 加入以下内容。konsole 以及 dophin 都需要这些环境变量,倒是 chrome 和 firefox 都不需要就可以输入中文 + +```bash +GTK_IM_MODULE=fcitx +QT_IM_MODULE=fcitx +XMODIFIERS=@im=fcitx +SDL_IM_MODULE=fcitx +``` + +打开 _系统设置_> _区域设置_> _输入法_,先点击`运行Fcitx`即可,拼音为默认添加项。如你还需要更多输入法如五笔,则再点击`添加输入法`,找到简体中文下的五笔 ,点击添加即可加入五笔输入法。 + +接下来点击 _拼音_ 右侧的配置按钮,点选`云拼音`和`在程序中显示预编辑文本` 最后应用。 + +回到输入法设置,点击`配置附加组件`,找到 _经典用户界面_ 在主题里选择一个你喜欢的颜色 最后应用。 + +注销,重新登陆,就可以发现已经可以在各个软件中输入中文了 + +## 10.配置系统默认编辑器 + +默认情况下,Arch Linux 在一些终端编辑场景使用 vi 编辑器,但是我们使用 vim。如果不做一个额外配置,在 git 等场景下,在终端调用编辑器会出错。编辑~/.bashrc 文件,加入如下内容,将 vim 设置为默认 EDITOR + +```bash +export EDITOR='vim' +``` + +## 11.启动蓝牙(若有) + +如果你有蓝牙设备,需要启用蓝牙服务。随后在系统设置中进行添加设备与连接即可。 + +```bash +sudo systemctl enable --now bluetooth +``` + + diff --git a/docs/rookie/archlinux_pre_install.md b/docs/rookie/archlinux_pre_install.md new file mode 100644 index 0000000..8c3f57a --- /dev/null +++ b/docs/rookie/archlinux_pre_install.md @@ -0,0 +1,45 @@ +# 安装前的准备 + +由于当前 UEFI 已普及十余年,安装将全部以 UEFI+GPT 的形式进行,传统 BIOS 方式不再赘述。 + +## 1.确保网络环境 + +如果你可以使用路由器分接出来的网线,以 dhcp 的方式直接上网,那么不用准备什么。如果你的环境只能使用无线网络安装,需要事先把自己所用的 wifi 名称改成自己能记住的英文名称。因为**安装时无法显示和输入中文名的 wifi**,你会看到一堆不知道是什么的方块,并且在安装过程中你将没有办法输入中文的无线名称进行连接。 + +其次,有些笔记本电脑上存在无线网卡的硬件开关或者键盘控制,开机后安装前需要**确保你的无线网卡硬件开关处于打开状态**。 + +## 2.刻录启动优盘 + +准备一个 2G 以上的优盘,刻录一个安装启动盘。安装镜像 iso 在[下载页面](https://archlinux.org/download/)下载,建议通过磁力链接或 torrent 下载。 + +Windows 下推荐使用[ventoy](https://www.ventoy.net/cn/doc_start.html)或者[Rufus](https://rufus.ie/)或者[Power ISO](https://www.poweriso.com/download.php)专有进行优盘刻录。三者皆为免费使用的软件。具体操作请自行查阅,都非常简单。 + +Linux 下可以直接用 dd 命令进行刻录。注意 of 的参数为 sdx,不是 sdx1 sdx2 等。 + +```bash +sudo dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync +``` + +> bs=4M 指定一个较为合理的文件输入输出块大小。 +> status=progress 用来输出刻录过程总的信息。 +> oflag=sync 用来控制写入数据时的行为特征。确保命令结束时数据及元数据真正写入磁盘,而不是刚写入缓存就返回。 + +## 3.进入主板 BIOS 进行设置 + +插入优盘并开机。在开机的时候,按下 F2/F8/F10/DEL 等(取决与你的主板型号,具体请查阅你主板的相关信息)按键,进入主板的 BIOS 设置界面。 + +## 4.关闭主板设置中的 Secure Boot + +在类似名为 `security` 的选项卡中,找到一项名为 Secure Boot(名称可能略有差异)的选项,选择 Disable 将其禁用。 + +## 5.调整启动方式为 UEFI + +在某些旧的主板里,需要调整启动模式为 UEFI,而非传统的 BIOS/CSM。在类似名为 `boot` 的选项卡中,找到类似名为 Boot Mode 的选项,确保将其调整为 UEFI only,而非 legacy/CSM。 + +## 6.调整硬盘启动顺序 + +在类似名为 `boot` 的选项卡中,找到类似名为 Boot Options(名称可能略有差异)的设置选项,将 USB 优盘的启动顺序调至首位。 + +## 7.准备安装 + +最后保存 BIOS 设置并退出,一般的按键是 F10。此时系统重启,不出意外你应该已经进入 archlinux 的安装界面。 diff --git a/docs/rookie/basic_install.md b/docs/rookie/basic_install.md new file mode 100644 index 0000000..137bc8a --- /dev/null +++ b/docs/rookie/basic_install.md @@ -0,0 +1,280 @@ +# Arch Linux 基础安装 + +本节从安装最基础的无图形化 ArchLinux 系统开始。[官方安装指南](https://wiki.archlinux.org/index.php/Installation_guide) +相关视频链接: [2020ArchLinux 安装教程](https://www.bilibili.com/video/BV1qf4y1D7Da/) 视频中可看到全部操作步骤 强烈建议观看视频配合文字学习。 + +## 1.禁用 reflector + +2020 年新版 archliveiso 加入了 reflector 服务,它会自己更新 mirrorlist。在特定情况下,它会误删某些有用的源信息。这里启动后的第一件事就是将其禁用。也许它是一个好用的工具,但是很明显,它并不适合在安装的时候面向新手启用,尤其在中国。 + +```bash +systemctl stop reflector.service +``` + +## 2.再次确保是否为 UEFI 模式 + +在一系列的信息刷屏后,可以看到已经以 root 登陆安装系统了,此时可以执行的命令: + +```bash +ls /sys/firmware/efi/efivars +``` + +若输出了一堆东西,即 efi 变量,则说明已在 UEFI 模式。否则请确认你的启动方式是否为 UEFI。 + +## 3.连接网络 + +### 无线连接: + +无线连接使用 iwctl 进行: + +```bash +iwctl #进入交互式命令行 +device list #列出设备名,比如无线网卡看到叫 wlan0 +station wlan0 scan #扫描网络 +station wlan0 get-networks #列出网络 比如想连接CMCC-5AQ7这个无线 +station wlan0 connect CMCC-5AQ7 #进行连接 输入密码即可 +exit #成功后exit退出 +``` + +### 有线连接: + +正常来说,只要插上一个已经联网的路由器分出的网线(DHCP),直接就能联网。 + +可以等待几秒等网络建立链接后再进行下步测试网络的操作。 + +## 4.测试网络 + +```bash +ping www.gnu.org +``` + +稍等片刻,若能看到数据返回,即说明已经联网,ctrl+c 终止退出当前命令。如果还是无法连接,使用 `ip link set xxx up` 命令确认你已经激活了对应的网卡,再重新继续网络链接与测试。若看到类似`Operation not possible due to RF-kill`的报错,继续尝试`rfkill unblock wifi`来解锁无线网卡。[[1]](https://wiki.archlinux.org/index.php/Network_configuration/Wireless#Check_the_driver_status) + +## 5.更新系统时钟 + +```bash +timedatectl set-ntp true #将系统时间与网络时间进行同步 +timedatectl status #检查服务状态 +``` + +## 6.更换国内镜像源加快下载速度 + +```bash +vim /etc/pacman.d/mirrorlist #不会vim的同学,此处注意视频中的vim操作步骤 +``` + +放在最上面的是会使用的更新源,把中科大 ustc 的或者清华的放在最上面。 + +## 7.分区 + +这里总共设置三个分区,可以满足绝大多数人的需求。此步骤会清除磁盘中全部内容,请事先确认。 + +- EFI 分区: `/efi` 800M +- 根目录: `/` 100G +- 用户主目录: `/home` 剩余全部 越大越好 + +> 这里根目录的大小仅为参考,一般来说个人日常使用的 linux 分配 100G 已经够用了。根目录最小建议不小于 50G,根目录过小会造成无法更新系统软件包等问题。 + +首先将磁盘转换为 gpt 类型 + +```bash +lsblk #显示分区情况 +parted /dev/sdx #执行parted,进行磁盘类型变更 +(parted)mktable #输入mktable +New disk label type? gpt #输入gpt 将磁盘类型转换为gpt 如磁盘有数据会警告,输入yes即可 +quit #最后quit退出parted命令行交互 + +``` + +接下来使用 cfdisk 命令对磁盘分区 + +```bash +cfdisk /dev/sdx #来执行分区操作,分配各个分区大小,类型 +fdisk -l #复查磁盘情况 +``` + +cfdisk 分区的详细操作见视频中的操作。一般建议将 EFI 分区设置为磁盘的第一个分区,据说有些主板如果不将 EFI 设置为第一个分区,可能有不兼容的问题。 + +## 8.格式化 + +这里的 sdax 只是例子,具体根据你的实际情况来,请注意视频中的操作。 + +```bash +#磁盘若有数据会问 'proceed any way?' y回车 即可 +mkfs.ext4 /dev/sdax #格式化根目录和home目录的两个分区 +mkfs.vfat /dev/sdax #格式化efi分区 +``` + +## 9.挂载 + +在挂载时,挂载是有顺序的,需要从根目录开始挂载 +这里的 sdax 只是例子,具体根据你的实际情况来,请注意视频中的操作。 + +```bash +mount /dev/sdax /mnt +mkdir /mnt/home +mount /dev/sdax /mnt/home +mkdir /mnt/efi +mount /dev/sdax /mnt/efi +``` + +## 10.安装系统 + +基础包 + +```bash +pacstrap /mnt base base-devel linux linux-firmware #base-devel在AUR包的安装是必须的 +``` + +功能性软件 + +```bash +pacstrap /mnt dhcpcd iwd vim sudo bash-completion #一个有线所需 一个无线所需 一个编辑器 一个提权工具 一个补全工具 iwd也需要dhcpcd +``` + +## 11.生成 fstab 文件 + +fstab 用来定义磁盘分区 + +```bash +genfstab -U /mnt>> /mnt/etc/fstab +``` + +复查一下 /mnt/etc/fstab 确保没有错误 + +```bash +cat /mnt/etc/fstab +``` + +## 12.change root + +把环境切换到新系统的/mnt 下 + +```bash +arch-chroot /mnt +``` + +## 13.设置主机名与时区 + +首先在`/etc/hostname`设置主机名 + +```bash +vim /etc/hostname +``` + +加入你想为主机取的主机名,这里比如叫 myarch。 + +接下来在`/etc/hosts`设置与其匹配的条目。 + +``` +vim /etc/hosts +``` + +加入如下内容 + +```bash +127.0.0.1 localhost +::1 localhost +127.0.1.1 myarch.localdomain myarch +``` + +> 某些情况下如不设置主机名,在 KDE 下可能会存在网络情况变更时无法启动 GUI 应用的问题,在终端中出现形如`No protocol specified qt.qpa.xcb: could not connect to display`的错误。这种情况极为少见,群主只遇到过一次网友反馈。相关参考链接:[[1]](https://bbs.archlinux.org/viewtopic.php?id=241338),[[2]](https://bbs.archlinux.org/viewtopic.php?id=243674) + +--- + +随后设置时区,在/etc/localtime 下用/usr 中合适的时区创建符号连接。 + +```bash +ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime +``` + +## 14.硬件时间设置 + +将系统时间同步到硬件时间 + +```bash +hwclock --systohc +``` + +## 15.设置 Locale + +Locale 决定了软件使用的语言、书写习惯和字符集。 + +编辑 /etc/locale.gen,去掉 en_US.UTF-8 行以及 zh_CN.UTF-8 的注释符号(#)。 + +然后使用如下命令生成 locale。 + +```bash +locale-gen +``` + +向 /etc/locale.conf 输入内容 + +```bash +echo 'LANG=en_US.UTF-8'> /etc/locale.conf +``` + +## 16.为 root 用户设置密码 + +```bash +passwd root +``` + +## 17.安装微码 + +```bash +pacman -S intel-ucode #Intel +pacman -S amd-ucode #AMD +``` + +## 18.安装引导程序 + +```bash +pacman -S grub efibootmgr #grub是启动引导器,efibootmgr被 grub 脚本用来将启动项写入 NVRAM。 +grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB #取名为GRUB 并将grubx64.efi安装到之前的指定位置 +``` + +接下来编辑/etc/default/grub 文件,去掉`GRUB_CMDLINE_LINUX_DEFAULT`一行中最后的 quiet 参数,同时把 log level 的数值从 3 改成 5。这样是为了后续如果出现系统错误,方便排错。同时加入 nowatchdog 参数,这可以显著提高开关机速度。不会 vim 的同学注意视频中的操作。 + +```bash +vim /etc/default/grub +``` + +最后生成 GRUB 所需的配置文件 + +```bash +grub-mkconfig -o /boot/grub/grub.cfg +``` + +> 在某些主板安装完成后,你会发现没有启动条目。这是因为某些主板的 UEFI 固件在显示 UEFI NVRAM 引导条目之前,需要在特定的位置存放可引导文件,不支持自定义存放 efi 文件(如微星 Z170-A Gaming PRO)。解决方案是在默认启动路径下安装 GRUB。重新插入安装优盘,挂载目录,chroot 到/mnt,然后你可以直接把已经生成好的 efi 文件移动到默认目录下,如下代码所示。只有安装完成后你的主板不出现启动条目才需要尝试如下命令,正常安装无需执行。[官方参考文档](https://wiki.archlinux.org/index.php/GRUB#Default/fallback_boot_path) + +```bash +mkdir -p /efi/EFI/BOOT +mv /efi/EFI/GRUB/grubx64.efi /efi/EFI/BOOT/BOOTX64.EFI +``` + +## 19.完成安装 + +```bash +exit # 退回安装环境# +umount -R /mnt # 卸载新分区 +reboot # 重启 +``` + +注意,重启前要先拔掉优盘,否则你重启后还是进安装程序而不是安装好的系统。重启后,开启 dhcp 服务,即可连接网络 + +```bash +systemctl start dhcpcd #立即启动dhcp +ping www.gnu.org #测试网络连接 +``` + +若为无线链接,则还需要启动 iwd 才可以使用 iwctl 连接网络 + +```bash +systemctl start iwd #立即启动iwd +iwctl #和之前的方式一样,连接无线网络 +``` + +到此为止,一个基础的,无 UI 界面的 Arch Linux 已经安装完成了。紧接着下一节,我们来安装图形界面。 + +> archlinux 在 2021 年 4 月在安装镜像中内置了一个[安装脚本](https://archlinux.org/packages/extra/any/archinstall/),其就是类似一个一键安装脚本,提供一些选项,即可快速安装。其和所有一键安装脚本类似,提供自动化,且不灵活的安装过程。缺陷为:只提供有限的文件系统格式、只可限定在一个磁盘、不能指定源、只提供有限的桌面选择、自动分区不可手动干预、输入错误直接崩溃退出、仅支持 UEFI 等。不建议使用这种安装脚本,除了以上各种原因,初学者也无法在这种安装过程中学到任何东西。如果你因为任何原因需要快速启动一个基础的 archlinux 环境,那么可以尝试此脚本。 diff --git a/docs/rookie/fxckGFW.md b/docs/rookie/fxckGFW.md new file mode 100644 index 0000000..677ff94 --- /dev/null +++ b/docs/rookie/fxckGFW.md @@ -0,0 +1,100 @@ +# 科学上网与翻墙 + +> 为了你的人身安全,不要在任何装有具有间谍性质的专有软件的设备上使用翻墙客户端。这些设备可以是手机,PC 等。在手机上,大表哥可以轻易得到你所安装的应用列表,并可以查询到你所做的事和发表的言论,并采取进一步控制,这是有先例的。理论上,在 PC 设备上也完全存在这种可能。如果你必须要使用微信,QQ 等具有间谍性质的专有软件,请在完全隔离的物理设备中使用。 + +本节描述如何在 linux 下进行科学上网。不论你是否是程序员,你肯定需要这个东西。如果没有配置好科学上网,那么你在日常使用中会遇到各种问题,因为只要是境外或者被墙的资源或代码等,你都有可能都无法下载下来,或者下载速度慢的让人难以接受。所有人必须配置好科学上网再继续。 + +> DO NOT USE XRAY 不要使用 XRAY + +> Xray 是 V2ray 社区分裂的产物,其主要开发者在各个渠道发表过众多令人不适的言论。很明显其并不认可自由软件运动所倡导的理念,同时其在 Qv2ray 主要开发者退出开发后,Xray 的 Telegram 频道发布的公告明显带有严重的主观感情色彩,没有客观的描述事件本身,顺便借题发挥式的中伤开源软件。即使 Xray-core 是开源的,但这并不能说明什么。Xray 最新的客户端已经宣布为闭源软件。 + +## 已有科学上网的节点的情况 + +此处提供一个机场推荐,机场用于获得节点。可以点击[此处](https://foxicloud.com/#/register?code=cLoCawdD)注册后可直接购买。如果你尚无翻墙手段,可以访问此[墙内链接](https://geilicloud.com/#/register?code=cLoCawdD)进行购买 + +不论你是从机场处获得节点或者任何其他地方获得,如果你已经有了形如`vmess://`或`ss://`前缀的节点,那么可以直接使用 linux 上非常好用的 [Qv2ray](https://qv2ray.net/) 进行科学上网。它是跨平台的,你在 Windows 与 macOS 上均可使用。安装如下几个包: + +```bash +sudo pacman -S qv2ray-dev-git v2ray +``` + +你需要按照官方文档导入已有的链接,其余细节请详细阅读 Qv2ray 的文档。 + +> 需要注意的是,最新的 qv2ray 已经将机场的默认订阅类型改为规范:SIP008。如果你的机场订阅类型为 base64,则需要在分组->订阅设置->订阅类型 中,将 SIP008 改为 base64,否则你将拿不到任何订阅链接中的节点。 + +如果你不使用原生 shadowsocks/v2ray 而是其余方式,请在 AUR 搜索关键字 qv2ray-plugin,在[结果](https://aur.archlinux.org/packages/?O=0&K=qv2ray-plugin)中选取你所需要的对应插件进行安装。 + +在节点链接后,Qv2ray 会自行为你设置系统代理。注意,`系统设置`中的代理配置在 KDE 桌面环境中并不是所有应用都会遵守,经过测试,chrome/chromium 浏览器与 steam 会遵循 KDE 的系统代理设置。没有遵循系统设置代理的应用还需要单独进行代理配置。下面说明几种常用的软件中配置代理的方式。 + +- Firefox 浏览器 + 火狐浏览器自身的设置选项中存在代理配置,进行配置即可。 + +- 终端 + 可以通过 export 命令设置当前终端的代理方式。比如使用 tldr 或 github raw 等资源需要设置 https 代理。 + + ```bash + export https_proxy=http://127.0.0.1:8889 + export http_proxy=http://127.0.0.1:8889 + export all_proxy=http://127.0.0.1:8889 + ``` + +> 不同终端命令所识别的环境变量名不同,如 all_proxy 对 curl 生效,而对 wget 则不生效,具体可查看各个命令的 man page。 + +- code OSS + File => Preference => Settings + 搜索 proxy,在其中填入 http 代理地址即可 + +- proxychains-ng + 如果对于一个应用,KDE 的全局代理不生效,在终端 export 了 ALL_PROXY 变量再用终端启动此应用代理也不生效,并且这个应用自身也没有配置代理的选项,此时可以尝试使用 proxychains-ng,它可以为单行命令配置代理。它是一个预加载的 hook,允许通过一个或多个 SOCKS 或 HTTP 代理重定向现有动态链接程序的 TCP 流量。 + + ```bash + sudo pacman -S proxychains-ng + sudo vim /etc/proxychains.conf + ``` + + 把配置文件中最后一行改为本地代理的 ip 和端口,如`socks5 127.0.0.1 1089` + 同时搜索`proxy_dns`, 在这一行前添加#注释掉此行,否则使用 proxychains 启动 yay 会报错 + 使用代理方式为在单一命令前添加 proxychains + + ```bash + proxychains yay -S crossover + ``` + + 拓展链接: [windows 版本 proxychains 的自述文档](https://github.com/shunf4/proxychains-windows/blob/master/README_zh-Hans.md) + +## 没有节点,需要自建的节点的情况 + +这种情况下,你则需要自行购买服务器进行节点搭建,本节不进行教学,仅提供三篇 GFW Report 的高质量文章作为参考。 + +- [如何部署一台抗封锁的 Shadowsocks-libev 服务器](https://gfw.report/blog/ss_tutorial/zh/) +- [防御 GFW 主动探测的实用指南](https://gfw.report/blog/ss_advise/zh/) +- [Shadowsocks 是如何被检测和封锁的](https://gfw.report/talks/imc20/zh/) + +备用手段:建议自建备用,或持有多个机场。不想花钱的或者自备一下[lantern](https://aur.archlinux.org/packages/lantern-bin/)这类软件以防万一。还有一些电报群组有共享的链接资源,如[这个](https://t.me/wtovpn)或者[这个](https://t.me/TG_Mtproxy_1)。 + +## 有关 qv2ray 的替代 + +2021 年 4 月 28 日,qv2ray 迄今为止的代码量最大贡献者 gcc 宣布退出开发。 + +起因在于其意在取消对 xray 的支持,并在检测到 xray 时导致程序崩溃。xray 从诞生起始终在社区中存在争议。而社区中另外一位仓库 owner 认为这种处理方式太过偏激,不同意这种举措。在交流无果后此 owner 取消了其仓库权限,并将其移除 qv2ray workgroup。这种做法显然是其在感情上无法接受的,随后其注销了 github 帐号并宣布退出开发。而随后 xray 频道发表的公告明显带有严重的主观感情色彩,没有客观的描述事件本身,顺便借题发挥式的中伤开源软件。此公告没有任何实际意义,只会加剧误解的程度。 + +这种结果是任何一个 linux 用户都不愿看到的,希望 qv2ray 开发组可以重新开启交流,得出一个折中的方案。以防万一,这里也记录一种 qv2ray 的替代方案。 + +V2rayA 是一个浏览器客户端,在 linux 下支持全局代理,非常方便。可以直接在 AUR 进行安装。安装后需启动服务 + +```bash +yay -S v2raya v2ray +sudo systemctl enable --now v2raya +``` + +随后在菜单中搜索 v2raya,点击即可打开浏览器页面。在其中加入订阅即可使用。在设置中建议开启全局透明代理,同时开始防止 DNS 劫持功能,否则可能会拿不到被 dns 污染的资源(如 github raw)。 + +更多使用方法请看[官方文档](https://github.com/v2rayA/v2rayA/wiki)与[项目地址](https://github.com/v2rayA/v2rayA) + +更新: + +在五月,Qv2ray 原主要开发者在 Shadowsocks-NET 组织下开始了[新的 Qv2ray 分支](https://github.com/Shadowsocks-NET/Qv2ray)并继续维护,至于哪个分支后续的维护更佳,可以静观其变。 + +## 更加全面的系统级全局代理 + +由以上各部分可以看到,为各个软件单独设置代理还是较为麻烦。如果这种方式可以满足你的需求,那么你可以到此为止。如果你把 Linux 作为主力使用,那么强烈建议你配置透明代理,可以阅读进阶章节中的[透明代理](advanced/transparentProxy)一文。 diff --git a/docs/rookie/graphic_driver.md b/docs/rookie/graphic_driver.md new file mode 100644 index 0000000..b9ad65c --- /dev/null +++ b/docs/rookie/graphic_driver.md @@ -0,0 +1,163 @@ +# 显卡驱动 + +结合[视频](https://www.bilibili.com/video/BV1vK4y187Ww/)食用更佳。 + +现在是 2021 年,显卡驱动的安装在 Arch Linux 上已经变得非常容易。本文区分核芯显卡和独立显卡两大类描述显卡驱动的安装。**注意,确保你已经按照本教程之前的章节安装配置好系统再向下进行,不要多个教程混着看,你可能漏掉了本教程前置步骤中的某些操作,从而造成问题。** + +> 所有 AMD 显卡建议使用开源驱动。英伟达显卡建议使用闭源驱动,因为逆向工程的开源驱动性能过于着急,本文也只描述英伟达闭源驱动安装。如果你支持自由软件运动,请尽可能使用具有官方支持开源驱动的英特尔和 AMD 显卡。 + +## 核芯显卡 + +### 英特尔核芯显卡 + +[官网文档](https://wiki.archlinux.org/index.php/Intel_graphics) + +英特尔核心显卡安装如下几个包即可。 + +```bash +sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel +``` + +> `xf86-video-intel`arch wiki 里写的很多发行版不建议安装它,而应使用 xorg 的 modesetting 驱动(也就是什么都不用装的意思)。个人测试下来目前确实是默认 modesetting 驱动较为稳定。 + +注意,只有 Intel HD 4000 及以上的核显才支持 vulkan。 + +### AMD 核芯显卡 + +对于具有核芯显卡的 AMD 处理器,需要先确定核显架构(Architecture)是什么,再决定安装什么驱动。推荐在 [techpowerup 网站](https://www.techpowerup.com/)进行查询,信息非常全面。在确定了显卡架构后,再根据架构对照[这个文档](https://wiki.archlinux.org/index.php/Xorg#AMD)决定安装什么驱动。**对于 GCN2.0 及以下架构的老显卡,直接安装开源 ATI 驱动即可,原本闭源的老旧的 Catalyst 驱动在 2021 年已被废弃。GCN2.0 及以下架构的老显卡也不要使用开源的 AMPGPU 驱动,因为其仅处于实验性质,需要各种自定义内核编译选项与配置,非常麻烦,得不偿失。**对于新型号,即 GCN3 架构及更新型的核心显卡,直接安装开源驱动 AMDGPU 即可。 + +- 比如你的笔记本 cpu 是目前常见的 AMD R7 4800U,那么它的核显为 Vega 8。通过查询,可知其为 GCN 5.0 架构,那么对照 arch 官方文档,你可选择安装 AMDGPU 开源驱动。 +- 再比如你的台式机 cpu 是目前常见的 锐龙 5 3400G,那么它的核显为 Vega 11。通过查询,可知其为 GCN 5.0 架构,那么对照 arch 官方文档,你可选择安装 AMDGPU 开源驱动。 +- 再老一些的 apu A10-9700 处理器 ,它的核显为 Radeon R7。通过查询,可知其为 GCN 2.0 架构,那么对照 arch 官方文档,你选择安装 ATI 开源驱动。 + +## 独立显卡 + +这部分会分为仅有独立显卡(无核显)与同时拥有独立显卡和核芯显卡两种情况进行讲解。 + +### 英伟达独立显卡 + +较新型号的独立显卡直接安装如下几个包即可。[官方文档](https://wiki.archlinux.org/index.php/NVIDIA) + +```bash +sudo pacman -S nvidia nvidia-settings lib32-nvidia-utils #必须安装 +``` + +如果是 GeForce 630 以下到 GeForce 400 系列的老卡,安装 [nvidia-390xx-dkms](https://aur.archlinux.org/packages/nvidia-390xx-dkms/)AUR及其 32 位支持包。 + +```bash +yay -S nvidia-390xx-dkms nvidia-settings lib32-nvidia-390xx-utils +``` + +再老的显卡直接使用[开源驱动](https://wiki.archlinux.org/index.php/Nouveau)即可。 + +```bash +sudo pacman -S mesa lib32-mesa xf86-video-nouveau +``` + +--- + +**在同时拥有核芯显卡和英伟达独立显卡的笔记本上安装驱动是大多数人关注的事情,这里着重讲述。** + +> 再次提醒请按照本书前置章节配置好系统后再进行,不要多个教程混看,**尤其是一些过时的教程**。尤其需要注意的是确保 base-devel 包的安装以及配置好科学上网的翻墙软件,以及使用 X11 模式。 + +[英伟达双显卡模式官方文档](https://wiki.archlinux.org/index.php/NVIDIA_Optimus) /// [optimus-manager 官方文档](https://github.com/Askannz/optimus-manager/wiki) + +若为同时拥有核芯显卡与英伟达独显的笔记本电脑,同样需要按照上述步骤先安装各个软件包。除此之外还需要安装 optimus-manager。可以在核芯显卡和独立显卡间轻松切换。optimus-manager 提供三种模式,分别为仅用独显,仅用核显,和 hybrid 动态切换模式。 + +```bash +yay -S optimus-manager optimus-manager-qt +``` + +安装完成后重启即可使用。optimus-manager 安装完成后会默认 enable optimus-manager 的服务,你可在重启前检查其状态,若没有 enable 则手动将其 enable。重启后在菜单栏搜索 optimus-manager 点击即可使用。可在其设置中设置开机自动启动。 + +```bash +sudo systemctl enable optimus-manager +``` + +此时你应该已经可以进行显卡切换了,如果有问题,请详细阅读 optimus-manager 的文档,里面有详细的描述。由于各类问题太多,本文不进行描述,optimus-manager 的文档很详尽,请自行查看。此处仅列出几项较为重要的注意事项: + +- 如果需要在独显和核显模式间切换,要注意你没安装各类 GPU 监控插件,它们会阻止显卡切换,导致不可预料的错误。 +- 不要使用 Nvidia Control Panel 中的`Save to X Configuration file`按钮。会导致配置冲突。 +- 在显卡之间的切换时,重新登陆后如在 splash screen 卡住或者黑屏,可以尝试在 tty1 tty2 之间进行切换。 +- 如果你在安装 optimus manager 并重启后,直接黑屏卡死,不能进入系统,很有可能是遇到了常见的"ACPI ISSUE",简单来说,这是笔记本制造商的实现问题。可以尝试在内核启动参数中加入`acpi_osi=! acpi_osi="Windows 2009"` 后再尝试。[[1]](https://github.com/Askannz/optimus-manager/wiki/FAQ,-common-issues,-troubleshooting#when-i-switch-gpus-my-system-completely-locks-up-i-cannot-even-switch-to-a-tty-with-ctrlaltfx) + +最后详细说下动态切换模式。本质上其还是使用官方的 [PRIME](https://wiki.archlinux.org/index.php/PRIME#PRIME_render_offload)对闭源驱动的方法进行切换。需要设置三个环境变量,或者用 nvidia-prime 包提供的命令 prime-run,二者本质也是一样的,都是设置三个环境变量。 + +```bash +sudo pacman -S nvidia-prime +prime-run some_program #使用prime-run前缀来用独显运行某些程序 +``` + +对于 AMD 核显+N 卡独显的同学,optimus-manager 对于这套组合的支持目前已经发布,最新可用版本为 1.4。 + +--- + +**如果你不是强烈追求能效控制以及注重电池寿命的用户,那么可以不用往下看了,如果你是,那么需要针对你的硬件以及笔记本型号尝试正确的电源管理方式。此部分的设置可能导致黑屏,并且尝试过程可能较长,也会遇到各类问题,请根据你个人的操作水平自行斟酌是否操作** + +电源控制做的事情是,在只用核显的模式下,确保正确关闭独立显卡。而在混合模式下,绝大多数情况下 Nvidia 模块实际是始终开启的,电源控制并不生效。这件事情其实很复杂,因为对于不同的显卡型号,以及笔记本型号的组合,可行的方案都是不同的。笼统来说,最广泛适用的办法是 bbswitch。但仍不建议上来就按照此方式安装使用,因为某些特定的硬件就是会出问题,也就是黑屏。这里建议按照 optimus-manager 官方的文档一步一步来,按步骤尝试,最后找到属于你自己的电脑合适的电源管理方式。**此[文档](https://github.com/Askannz/optimus-manager/wiki/A-guide--to-power-management-options)必须详细阅读!** + +针对大多数笔记本适用的 Bbswitch,此处进行安装使用的讲解。首先安装包 bbswitch。 + +```bash +sudo pacman -S bbswitch #安装 bbswitch 切换方式 +``` + +接下来右键点击 optimus-manager 的托盘设置,在 Optimus 选项卡中的 switch method 选择 Bbswitch 即可。 + +### AMD 独立显卡 + +AMD 独立显卡的驱动安装步骤实际上 AMD 核芯显卡是相同的,都需要先确定架构,然后选定正确的驱动安装即可。真正需要关注的是如何在核芯显卡和独立显卡间进行切换。可以使用 [PRIME](https://wiki.archlinux.org/title/PRIME#For_open_source_drivers_-_PRIME) 对开源驱动的双显卡切换方式。 + +此外,可以使用 `glmark2`,`DRI_PRIME=1 glmark2` 分别对核显和独显进行测试,选择分数更高的一个进行使用。可以在 steam 游戏的启动前缀中加入`DRI_PRIME=1 mangohud %command%`来使用独显。(关于 [mangohud](/play/software?id=性能监控))。 + +笔记本上使用独立显卡运行 steam 游戏的另一个例子。 + +```bash +DRI_PRIME=1 steam steam://rungameid/570 #运行dota2 +DRI_PRIME=1 steam steam://rungameid/730 #运行cs go +``` + +## 性能测试 + +[官方文档](https://wiki.archlinux.org/index.php/benchmarking)。 + +最传统和广为人知的方式为使用`glxgears`命令进行测试,其属于[mesa-demos](https://www.archlinux.org/packages/extra/x86_64/mesa-demos/)包。但其仅仅只能提供简单的测试场景及帧数显示,只测试了当前 OpenGL 功能的一小部分,功能明显不足。群主推荐如下两种工具。 + +### glmark2 + +glmark 提供了一系列丰富的测试,涉及图形单元性能(缓冲,建筑,照明,纹理等)的不同方面,允许进行更全面和有意义的测试。 每次测试单独计算帧速率。 最终,用户根据以前的所有测试获得了一个成绩分数。在 archlinux 上属于包[glmark2](https://aur.archlinux.org/packages/glmark2/)AUR + +### Unigine benchmark + +Unigine 3D 引擎是一个更全面的基准测试工具。 截止目前有五个版本,从旧到新分别是 + +- sanctuary(2007) +- tropics(2008) +- heaven(2009) +- valley(2013) +- superposition(2017) + +可从[AUR](https://aur.archlinux.org/packages/?O=0&K=Unigine)下载全部版本。它们均为专有软件。 + +## 显卡信息查看 + +对于英伟达显卡,nvidia-settings 这个包即可全面的展示显卡相关信息。 + +对于 AMD 显卡,稍微麻烦一些,通过 yay 安装 radeon-profile-git 这个包,同时安装其依赖 radeon-profile-daemon,最后启动这个进程。即可以图形化的方式查看 amd 显卡信息。[github 项目地址](https://github.com/marazmista/radeon-profile) + +```bash +sudo systemctl enable --now radeon-profile-daemon.service +``` + +注意,不要对左下角的 auto low high 进行更改 有 bug 会卡死。同时,显存占用在某些型号显卡上展示可能有误。 + +## 后续 + +如果作为一个普通使用者,到这里你的系统已经配置完毕了。不会命令行也没太大关系,你可以慢慢探索 KDE 这个桌面环境,记住时常用如下命令或 Discover 软件更新系统即可。 + +```bash +sudo pacman -Syyu #更新官方仓库 +yay -Syyu #同时更新官方仓库与AUR +``` + +接下来你可以查阅娱乐、办公、多媒体等章节了解更多使用软件的安装与使用。如果你需要成为一名较为专业的人员,那么请阅读进阶、以及编程等章节。 diff --git a/docs/uk/README.md b/docs/uk/README.md new file mode 100644 index 0000000..0737f76 --- /dev/null +++ b/docs/uk/README.md @@ -0,0 +1,3 @@ +# ArchTutorial - Arch Linux Studio + +If you think english version is necessary, please let me know. Pull request is welcome. diff --git a/docs/uk/_sidebar.md b/docs/uk/_sidebar.md new file mode 100644 index 0000000..ca40410 --- /dev/null +++ b/docs/uk/_sidebar.md @@ -0,0 +1,5 @@ +- [**ArchTutorial - Arch Linux Studio**](uk/) + +- rookie + + - [basic install](uk/rookie/basic_install) diff --git a/docs/uk/rookie/basic_install.md b/docs/uk/rookie/basic_install.md new file mode 100644 index 0000000..a74c1b3 --- /dev/null +++ b/docs/uk/rookie/basic_install.md @@ -0,0 +1 @@ +# Arch Linux basic install diff --git a/package.json b/package.json new file mode 100644 index 0000000..b074eec --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "arch_linux_tutorial", + "author": { + "name": "KagarinoKiriee", + "url": "https://github.com/KagarinoKiriee" + }, + "version": "0.3.0", + "private": false, + "dependencies": { + "docsify-cli": "^4.4.3" + }, + "devDependencies": {}, + "scripts": { + "start": "docsify serve docs" + }, + "license": "CC-BY-SA-4.0" +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..2083462 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,1343 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +boxen@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" + integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^3.0.0" + cli-boxes "^2.2.0" + string-width "^4.1.0" + term-size "^2.1.0" + type-fest "^0.8.1" + widest-line "^3.1.0" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +chalk@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@^3.3.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cli-boxes@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +clipboard@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" + integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +connect-livereload@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/connect-livereload/-/connect-livereload-0.6.1.tgz#1ac0c8bb9d9cfd5b28b629987a56a9239db9baaa" + integrity sha512-3R0kMOdL7CjJpU66fzAkCe6HNtd3AavCS4m+uW4KtJjrdGPT0SQEZieAYd+cm+lJoBznNQ4lqipYWkhBMgk00g== + +connect@^3.6.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +cp-file@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-7.0.0.tgz#b9454cfd07fe3b974ab9ea0e5f29655791a9b8cd" + integrity sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw== + dependencies: + graceful-fs "^4.1.2" + make-dir "^3.0.0" + nested-error-stacks "^2.0.0" + p-event "^4.1.0" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +docsify-cli@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/docsify-cli/-/docsify-cli-4.4.3.tgz#5f75d9478d7da27ac1c129d446bf0d4fe70c93d9" + integrity sha512-oI/cD04b+hklNd9yKiN9p9EqGx9UKL6p4D0J3fS9L5fpwOti1F8p2rshGJTyArxUlw6EeEBtaJd4rzPzBkK+Lw== + dependencies: + chalk "^2.4.2" + connect "^3.6.0" + connect-livereload "^0.6.0" + cp-file "^7.0.0" + docsify "^4.12.1" + docsify-server-renderer ">=4.10.0" + enquirer "^2.3.6" + fs-extra "^8.1.0" + get-port "^5.0.0" + livereload "^0.9.1" + lru-cache "^5.1.1" + open "^6.4.0" + serve-static "^1.12.1" + update-notifier "^4.1.0" + yargonaut "^1.1.2" + yargs "^14.2.0" + +docsify-server-renderer@>=4.10.0: + version "4.12.1" + resolved "https://registry.yarnpkg.com/docsify-server-renderer/-/docsify-server-renderer-4.12.1.tgz#f1d5ca156d4352ae78e64cf2243e98da3c249485" + integrity sha512-IYakkc+UxPS89N/Mq8MF4SKTQ1gtxN5nDEFAnJPf5TvQO+1fuxszHgv/hMprG5z/ms7PJb1w4nMykUfRW36+/A== + dependencies: + debug "^4.3.2" + docsify "^4.12.0" + dompurify "^2.2.6" + node-fetch "^2.6.0" + resolve-pathname "^3.0.0" + +docsify@^4.12.0, docsify@^4.12.1: + version "4.12.1" + resolved "https://registry.yarnpkg.com/docsify/-/docsify-4.12.1.tgz#46c15a4c101397185835f7e6bdad7bd6cd02896b" + integrity sha512-7v4UlCYLTmb83leJLIlheQlQ8kDTbTxcpMttRg0Uf92Nl//m0AcKFHoLLo5HHS4UhnO0KhDV8SKCdTR279zI9A== + dependencies: + dompurify "^2.2.6" + marked "^1.2.9" + medium-zoom "^1.0.6" + opencollective-postinstall "^2.0.2" + prismjs "^1.23.0" + strip-indent "^3.0.0" + tinydate "^1.3.0" + tweezer.js "^1.4.0" + +dompurify@^2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.6.tgz#54945dc5c0b45ce5ae228705777e8e59d7b2edc4" + integrity sha512-7b7ZArhhH0SP6W2R9cqK6RjaU82FZ2UPM7RO8qN1b1wyvC/NY1FNWcX1Pu00fFOAnzEORtwXe4bPaClg6pUybQ== + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enquirer@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +figlet@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.5.0.tgz#2db4d00a584e5155a96080632db919213c3e003c" + integrity sha512-ZQJM4aifMpz6H19AW1VqvZ7l4pOE9p7i/3LyxgO2kp+PO/VcDYNqIHEMtkccqIhTXMKci4kjueJr/iCQEaT/Ww== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fsevents@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f" + integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-port@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +global-dirs@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" + integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== + dependencies: + ini "1.3.7" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inherits@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-installed-globally@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" + integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== + dependencies: + global-dirs "^2.0.1" + is-path-inside "^3.0.1" + +is-npm@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" + integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" + integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +latest-version@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +livereload-js@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-3.3.1.tgz#61f887468086762e61fb2987412cf9d1dda99202" + integrity sha512-CBu1gTEfzVhlOK1WASKAAJ9Qx1fHECTq0SUB67sfxwQssopTyvzqTlgl+c0h9pZ6V+Fzd2rc510ppuNusg9teQ== + +livereload@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/livereload/-/livereload-0.9.1.tgz#65125dabdf2db4fd3f1169e953fe56e3bcc6f477" + integrity sha512-9g7sua11kkyZNo2hLRCG3LuZZwqexoyEyecSlV8cAsfAVVCZqLzVir6XDqmH0r+Vzgnd5LrdHDMyjtFnJQLAYw== + dependencies: + chokidar "^3.3.0" + livereload-js "^3.1.0" + opts ">= 1.2.0" + ws "^6.2.1" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +marked@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/marked/-/marked-1.2.9.tgz#53786f8b05d4c01a2a5a76b7d1ec9943d29d72dc" + integrity sha512-H8lIX2SvyitGX+TRdtS06m1jHMijKN/XjfH6Ooii9fvxMlh8QdqBfBDkGUpMWH2kQNrtixjzYUa3SH8ROTgRRw== + +medium-zoom@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.0.6.tgz#9247f21ca9313d8bbe9420aca153a410df08d027" + integrity sha512-UdiUWfvz9fZMg1pzf4dcuqA0W079o0mpqbTnOz5ip4VGYX96QjmbM+OgOU/0uOzAytxC0Ny4z+VcYQnhdifimg== + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimist@^1.2.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nested-error-stacks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" + integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== + +node-fetch@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +open@^6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" + integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== + dependencies: + is-wsl "^1.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== + +"opts@>= 1.2.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/opts/-/opts-2.0.2.tgz#a17e189fbbfee171da559edd8a42423bc5993ce1" + integrity sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-event@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-timeout@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +parent-require@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977" + integrity sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc= + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +prismjs@^1.23.0: + version "1.23.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" + integrity sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA== + optionalDependencies: + clipboard "^2.0.0" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pupa@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +registry-auth-token@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@^1.12.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.0.0, string-width@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +term-size@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" + integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tinydate@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/tinydate/-/tinydate-1.3.0.tgz#e6ca8e5a22b51bb4ea1c3a2a4fd1352dbd4c57fb" + integrity sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w== + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tweezer.js@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/tweezer.js/-/tweezer.js-1.5.0.tgz#ca50ac5215022203fd3be4d28617e8e2305f5c0c" + integrity sha512-aSiJz7rGWNAQq7hjMK9ZYDuEawXupcCWgl3woQQSoDP2Oh8O4srWb/uO1PzzHIsrPEOqrjJ2sUb9FERfzuBabQ== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +update-notifier@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" + integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== + dependencies: + boxen "^4.2.0" + chalk "^3.0.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.3.1" + is-npm "^4.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.0.0" + pupa "^2.0.1" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +y18n@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yargonaut@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/yargonaut/-/yargonaut-1.1.4.tgz#c64f56432c7465271221f53f5cc517890c3d6e0c" + integrity sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA== + dependencies: + chalk "^1.1.1" + figlet "^1.1.1" + parent-require "^1.0.0" + +yargs-parser@^15.0.1: + version "15.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" + integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^14.2.0: + version "14.2.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== + dependencies: + cliui "^5.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^15.0.1" From 2c3234a656f9f0676bc717c45481cfb2e862c868 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年6月17日 20:50:40 +0800 Subject: [PATCH 02/34] add pixel experience --- docs/play&office/android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/play&office/android.md b/docs/play&office/android.md index e136784..53a5856 100644 --- a/docs/play&office/android.md +++ b/docs/play&office/android.md @@ -2,7 +2,7 @@ [官方文档](https://wiki.archlinux.org/index.php/android) -前排提示:买手机最好买知名度大的品牌,较热门的机型,这样在刷机时可以方便的找到官方的 twrp 和知名的 ROM 包,如魔趣,lineageOS,crDroid, Resurrection Remix. 等。如果是较冷门的品牌,官方可能没有提供 ROM,只能在网上自行寻找个人改造过的 twrp 和上述 ROM 包的 unofficial ROM(比如乐视的[这个](https://forum.xda-developers.com/t/rom-7-1-2-mtk-x620-unofficial-beta-lineageos-14-1-leeco-le2-pro-02-april-2019.3724749/)和[这个](https://github.com/zaoqi-android/Le_X62X_AOSP6.0))。这种个人改造版本的安全性比较难说,而且还可能有更多的 bug。也有可能你翻遍全网,也找不到冷门机型能用(指好用的、非硬件提供商的官方 ROM)的 twrp 和 ROM。硬件方面,一般推荐买高通骁龙的 cpu,不要买联发科的,因为更多 ROM 的版本都是适配高通硬件的。 +前排提示:买手机最好买知名度大的品牌,较热门的机型,这样在刷机时可以方便的找到官方的 twrp 和知名的 ROM 包,如魔趣,lineageOS,crDroid, Resurrection Remix,[pixelexperience](https://download.pixelexperience.org/devices)等。如果是较冷门的品牌,官方可能没有提供 ROM,只能在网上自行寻找个人改造过的 twrp 和上述 ROM 包的 unofficial ROM(比如乐视的[这个](https://forum.xda-developers.com/t/rom-7-1-2-mtk-x620-unofficial-beta-lineageos-14-1-leeco-le2-pro-02-april-2019.3724749/)和[这个](https://github.com/zaoqi-android/Le_X62X_AOSP6.0))。这种个人改造版本的安全性比较难说,而且还可能有更多的 bug。也有可能你翻遍全网,也找不到冷门机型能用(指好用的、非硬件提供商的官方 ROM)的 twrp 和 ROM。硬件方面,一般推荐买高通骁龙的 cpu,不要买联发科的,因为更多 ROM 的版本都是适配高通硬件的。 首先需要安装 linux 上的安卓工具包 From e5eb58420491965b44075b347e7940a1e88a702b Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年6月18日 22:40:04 +0800 Subject: [PATCH 03/34] add tips for desktop widgets not work under new version 5.22.1 plasma --- docs/advanced/beauty.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/advanced/beauty.md b/docs/advanced/beauty.md index b459347..f4c707c 100644 --- a/docs/advanced/beauty.md +++ b/docs/advanced/beauty.md @@ -47,6 +47,8 @@ proxychains systemsettings5 #通过代理打开系统设置 然后把你经常使用的软件固定在任务栏即可。 +KDE Plasma 5.22.1 更新后,需要额外安装 ksysguard 才能确保桌面插件的正常运行。[[1]](https://github.com/dfaust/plasma-applet-netspeed-widget/issues/28) + ## 混成器 _系统设置_> _显示和监控_> _混成器_ 开启混成器 From 3a9a33ddb969a92eed446b182cb5450e6cdb420f Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年6月19日 16:26:00 +0800 Subject: [PATCH 04/34] update desc of none conf of hostname --- docs/rookie/basic_install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/rookie/basic_install.md b/docs/rookie/basic_install.md index 137bc8a..666d535 100644 --- a/docs/rookie/basic_install.md +++ b/docs/rookie/basic_install.md @@ -178,7 +178,7 @@ vim /etc/hosts 127.0.1.1 myarch.localdomain myarch ``` -> 某些情况下如不设置主机名,在 KDE 下可能会存在网络情况变更时无法启动 GUI 应用的问题,在终端中出现形如`No protocol specified qt.qpa.xcb: could not connect to display`的错误。这种情况极为少见,群主只遇到过一次网友反馈。相关参考链接:[[1]](https://bbs.archlinux.org/viewtopic.php?id=241338),[[2]](https://bbs.archlinux.org/viewtopic.php?id=243674) +> 某些情况下如不设置主机名,在 KDE 下可能会存在网络情况变更时无法启动 GUI 应用的问题,在终端中出现形如`No protocol specified qt.qpa.xcb: could not connect to display`的错误,这种情况较为少见。相关参考链接:[[1]](https://bbs.archlinux.org/viewtopic.php?id=241338),[[2]](https://bbs.archlinux.org/viewtopic.php?id=243674) --- From 055fc1cf6b1b6911499a9872bdae4e673ad56b8e Mon Sep 17 00:00:00 2001 From: icekylin Date: 2021年6月22日 00:31:17 +0800 Subject: [PATCH 05/34] update --- docs/advanced/beAdmin.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/advanced/beAdmin.md b/docs/advanced/beAdmin.md index 8e1d10a..cb8e711 100644 --- a/docs/advanced/beAdmin.md +++ b/docs/advanced/beAdmin.md @@ -1,6 +1,6 @@ # Linux 日常操作与基础知识 -阅读完`新手上路`章节,你的系统已完全可以使用,KDE 桌面环境提供了强大的 [GUI](https://zh.wikipedia.org/wiki/%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2) 以供普通用户使用。按`windows`键(Linux 下也常被叫做 Meta 键)呼出菜单栏,找到`设置`=>`系统设置`,可以找到绝大多数系统设置项。 +阅读完`新手上路`章节,你的系统已完全可以使用,KDE 桌面环境提供了强大的 [GUI](https://zh.wikipedia.org/wiki/%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2) 以供普通用户使用。按 `Windows` 键(Linux 下也常被叫做 Meta 键)呼出菜单栏,找到`设置`=>`系统设置`,可以找到绝大多数系统设置项。 但如果想要游刃有余的掌控你的系统,你还需要阅读掌握本文的内容。 如果你想进一步详细了解本文各部分的详细知识,可以点击在各个小节给出的拓展链接进行学习。 @@ -10,9 +10,9 @@ 此处只介绍最基本的,最必要的 Linux 知识点与小技巧 。 -1. 在 Linux 中,文件目录结构与 Windows 完全不同。Windows 存在 C 盘,D 盘等盘符,而在 Linux 中不存在这些划分,最上层的目录是根目录,路径为 _/_ ,并以一个树形结构从此向下一级一级区分。 +1. 在 Linux 中,文件目录结构与 Windows 完全不同。Windows 存在 C 盘、D 盘等盘符,而在 Linux 中不存在这些划分,最上层的目录是根目录,路径为 _/_ ,并以一个树形结构从此向下一级一级区分。 2. 对于 Linux 的树形文件结构,存在相对路径与绝对路径之分。绝对路径是代表从根路径 _/_ 开始的完整路径,如`/home/testuser/Download`。相对路径代表从当前目录,到目标目录的一个部分路径。比如当前你所在的目录为`/home/testuser`,那么切换到绝对路径`/home/testuser/Download`的相对路径即为`./Download`。其中`./`代表从当前目录,再向下寻找。另外,`..`这种两个句点代表的是向上层寻找,比如你当前所在的路径为`/home/testuser/Download`,向上寻找到`/home/testuser/Desktop`的相对路径即为`../Desktop`。 -3. 简单来说,Linux 中存在两类用户。第一类用户即为 root 用户,也成为超级用户,它拥有系统中最高的权限。第二类用户就是除了 root 用户的普通用户,他们可以拥有不同等级的权限。使用 root 权限时需要十分小心。 +3. 简单来说,Linux 中存在两类用户。第一类用户即为 root 用户,也称为超级用户,它拥有系统中最高的权限。第二类用户就是除了 root 用户的普通用户,他们可以拥有不同等级的权限。使用 root 权限时需要十分小心。 4. 理论上来说,任何图形化界面中的操作都可以用对应的命令行命令完成。如果你打开某个程序报错,不妨试试找到它的对应启动命令,在终端中执行此命令,并观察它运行时的错误日志输出,查阅相关资料,解决问题。 ## 终端操作基础 @@ -150,7 +150,7 @@ sudo dmidecode ## 制作 windows10 启动盘 -你可能在 linux 下,有时需要制作 win10 的启动盘。在以往,在 linux 下制作一个 win10 启动盘还是很简单的,但是随着近几年微软的更新,其 iso 安装镜像中存在一个名为`install.wim`的文件,其大小已经超出了 4GB,超出了 fat32 所要求的单个文件最大 4GB 的限制。这使得必须用额外的步骤才能制作一个启动盘。这里依旧使用 fat32 格式是因为其兼容性是最好的,ntfs 的 uefi 启动盘很多情况下不被识别。 +你可能在 linux 下,有时需要制作 win10 的启动盘。在以往,在 linux 下制作一个 win10 启动盘还是很简单的,但是随着近几年微软的更新,其 iso 安装镜像中存在一个名为`install.wim`的文件,其大小已经超出了 4GB,超出了 fat32 所要求的单个文件最大 4GB 的限制。这使得必须用额外的步骤才能制作一个启动盘。这里依旧使用 fat32 格式是因为其兼容性是最好的,ntfs 的 uefi 启动盘很多情况下不被识别。 首先和基础安装中的部分步骤类似,首先用 parted 命令创建 U 盘的分区 label 为 gpt。接下来用 cfdisk 命令创建新分区,在 Type 中选择 Microsoft basic data。接下来使用 mkfs.vfat 命令格式化所创建的分区。这样 U 盘就准备好了。 From cfe1b47a06c5248ba2d592a67ba3dbda4be78137 Mon Sep 17 00:00:00 2001 From: wjw233 <53000648+wjw233@users.noreply.github.com> Date: 2021年6月22日 12:37:04 +0800 Subject: [PATCH 06/34] Update android.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加一些网址 --- docs/play&office/android.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/play&office/android.md b/docs/play&office/android.md index 53a5856..2085f9a 100644 --- a/docs/play&office/android.md +++ b/docs/play&office/android.md @@ -2,7 +2,7 @@ [官方文档](https://wiki.archlinux.org/index.php/android) -前排提示:买手机最好买知名度大的品牌,较热门的机型,这样在刷机时可以方便的找到官方的 twrp 和知名的 ROM 包,如魔趣,lineageOS,crDroid, Resurrection Remix,[pixelexperience](https://download.pixelexperience.org/devices)等。如果是较冷门的品牌,官方可能没有提供 ROM,只能在网上自行寻找个人改造过的 twrp 和上述 ROM 包的 unofficial ROM(比如乐视的[这个](https://forum.xda-developers.com/t/rom-7-1-2-mtk-x620-unofficial-beta-lineageos-14-1-leeco-le2-pro-02-april-2019.3724749/)和[这个](https://github.com/zaoqi-android/Le_X62X_AOSP6.0))。这种个人改造版本的安全性比较难说,而且还可能有更多的 bug。也有可能你翻遍全网,也找不到冷门机型能用(指好用的、非硬件提供商的官方 ROM)的 twrp 和 ROM。硬件方面,一般推荐买高通骁龙的 cpu,不要买联发科的,因为更多 ROM 的版本都是适配高通硬件的。 +前排提示:买手机最好买知名度大的品牌,较热门的机型,这样在刷机时可以方便的找到官方的 twrp 和知名的 ROM 包,如[魔趣](https://download.mokeedev.com/),[LineageOS](https://lineageos.org/),[crDroid](https://crdroid.net/), [Resurrection Remix](https://resurrectionremix.com/),[PixelExperience](https://download.pixelexperience.org/devices)等。如果是较冷门的品牌,官方可能没有提供 ROM,只能在网上自行寻找个人改造过的 twrp 和上述 ROM 包的 unofficial ROM(比如乐视的[这个](https://forum.xda-developers.com/t/rom-7-1-2-mtk-x620-unofficial-beta-lineageos-14-1-leeco-le2-pro-02-april-2019.3724749/)和[这个](https://github.com/zaoqi-android/Le_X62X_AOSP6.0))。这种个人改造版本的安全性比较难说,而且还可能有更多的 bug。也有可能你翻遍全网,也找不到冷门机型能用(指好用的、非硬件提供商的官方 ROM)的 twrp 和 ROM。硬件方面,一般推荐买高通骁龙的 cpu,不要买联发科的,因为更多 ROM 的版本都是适配高通硬件的。 首先需要安装 linux 上的安卓工具包 From 05b35f89f084faf22e6f84f4dfc017dac7e4e3fe Mon Sep 17 00:00:00 2001 From: livrth Date: 2021年6月28日 17:58:22 +0800 Subject: [PATCH 07/34] init --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index e708ea7..76244f0 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,9 @@ - [1:GNU/Linux 与自由软件运动](https://www.bilibili.com/video/BV1dB4y1T7Zb/) - [2:安装前的准备](https://www.bilibili.com/video/BV1V64y1d7N7/) +- [3:ArchLinux 基础安装](https://www.bilibili.com/video/BV1Jy4y1M74E) +- [4:安装 KDE 与常用软件](https://www.bilibili.com/video/BV1Fv411H7x2) +- [5:科学上网与翻墙](https://www.youtube.com/watch?v=HNfT8uz7qEM) ## Star 历史 From 9d838af56e1fb14309668e422b98a911c2bf0fef Mon Sep 17 00:00:00 2001 From: livrth Date: 2021年6月30日 17:41:32 +0800 Subject: [PATCH 08/34] Add vedio link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 76244f0..1ddc867 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ - [3:ArchLinux 基础安装](https://www.bilibili.com/video/BV1Jy4y1M74E) - [4:安装 KDE 与常用软件](https://www.bilibili.com/video/BV1Fv411H7x2) - [5:科学上网与翻墙](https://www.youtube.com/watch?v=HNfT8uz7qEM) +- [6:显卡驱动安装综述](https://www.bilibili.com/video/BV1p44y1q746) ## Star 历史 From 75982e28cca6b214d2a2db7fa2b424cade65c621 Mon Sep 17 00:00:00 2001 From: livrth Date: Thu, 1 Jul 2021 09:40:36 +0800 Subject: [PATCH 09/34] Add vedio link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1ddc867..f5bf833 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ - [4:安装 KDE 与常用软件](https://www.bilibili.com/video/BV1Fv411H7x2) - [5:科学上网与翻墙](https://www.youtube.com/watch?v=HNfT8uz7qEM) - [6:显卡驱动安装综述](https://www.bilibili.com/video/BV1p44y1q746) +- [7:成为合格的系统管理员](https://www.bilibili.com/video/BV1N64y1b73Z) ## Star 历史 From ce36443a09038a707f7353935547edccba0d1b62 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: Fri, 2 Jul 2021 16:22:56 +0800 Subject: [PATCH 10/34] sick IS bad --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f5bf833..b317b1d 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ - [5:科学上网与翻墙](https://www.youtube.com/watch?v=HNfT8uz7qEM) - [6:显卡驱动安装综述](https://www.bilibili.com/video/BV1p44y1q746) - [7:成为合格的系统管理员](https://www.bilibili.com/video/BV1N64y1b73Z) +- [8:配置全局代理 翻墙更轻松](https://www.youtube.com/watch?v=m0ctfPF-2_I) ## Star 历史 From d5e7fbc85f2d9161bf42cfb258b982f6e6c681d3 Mon Sep 17 00:00:00 2001 From: livrth Date: Sat, 3 Jul 2021 22:44:57 +0800 Subject: [PATCH 11/34] Add vedio link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b317b1d..a14d6ed 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ - [6:显卡驱动安装综述](https://www.bilibili.com/video/BV1p44y1q746) - [7:成为合格的系统管理员](https://www.bilibili.com/video/BV1N64y1b73Z) - [8:配置全局代理 翻墙更轻松](https://www.youtube.com/watch?v=m0ctfPF-2_I) +- [9:功耗控制](https://www.bilibili.com/video/BV1664y1Q7cS) ## Star 历史 From 23b93bb98560d6c08b8a660157e3dbaa4625f42c Mon Sep 17 00:00:00 2001 From: icekylin Date: Sat, 3 Jul 2021 22:57:37 +0800 Subject: [PATCH 12/34] update --- docs/play&office/play.md | 81 +++++++++++++++++++++++++++------------- 1 file changed, 55 insertions(+), 26 deletions(-) diff --git a/docs/play&office/play.md b/docs/play&office/play.md index 874d45b..a45b38f 100644 --- a/docs/play&office/play.md +++ b/docs/play&office/play.md @@ -11,7 +11,7 @@ Disk: PLEXTOR PX-1TM9PeG ## 性能提升 -在游戏之前,如果有强烈的性能需要,可先确保 cpu 处于性能模式。注意此模式会让 cpu 处于最高性能状态,风扇狂转,如果你的散热撑不住甚至会降频,得不偿失,斟酌使用。在终端中,输入下列代码: +在游戏之前,如果有强烈的性能需要,可先确保 cpu 处于性能模式。注意此模式会让 cpu 处于最高性能状态、风扇狂转,如果你的散热撑不住甚至会降频,得不偿失,斟酌使用。在终端中,输入下列代码: ```bash echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor @@ -19,7 +19,7 @@ echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governo 现在电源应该处于 High Performance 模式了。 -如果希望将设置改回 Power Save 模式,那么只需要输入下列代码即可 +如果希望将设置改回 Power Save 模式,那么只需要输入下列代码即可: ```bash echo powersave | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor @@ -27,21 +27,21 @@ echo powersave | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor ## 网游网络加速 -对于在 linux 上玩网游,网络加速一直是一个难题,尤其是在玩一些外服网游的时候。这里提供一些思路来在 linux 下对网游加速。 +对于在 Linux 上玩网游,网络加速一直是一个难题,尤其是在玩一些外服网游的时候。这里提供一些思路来在 Linux 下对网游加速。 -- 一些机场会提供网游游戏节点,这些节点专门为游戏优化,限制流量并且提高倍率,一般可以得到较好的加速效果。在 linux 中配合[透明代理](/advanced/transparentProxy),同时开启对 UDP 流量的代理加速,即可以得到优化网游网速的效果。 +- 一些机场会提供网游游戏节点,这些节点专门为游戏优化,限制流量并且提高倍率,一般可以得到较好的加速效果。在 Linux 中配合 [透明代理](/advanced/transparentProxy),同时开启对 UDP 流量的代理加速,即可以得到优化网游网速的效果。 - 一些中端或者高端的路由器,会内置一些市面上常见的网游加速器,如果你的路由器有这个功能,那可以直接使用路由器内置的加速器加速本机的网游流量。 -- 据网友说,wine 运行的网游加速器也能加速 linux 中运行的网游,此条我未成功,未验证。 +- 据网友说,wine 运行的网游加速器也能加速 Linux 中运行的网游,此条我未成功,未验证。 ## 我的世界 -注意,如果不进行代理设置,启动器的下载速度将很慢。推荐使用全局透明代理。在安装使用中若出现问题可自行查看[AUR 仓库地址](https://aur.archlinux.org/packages/minecraft-launcher)下的评论。 +注意,如果不进行代理设置,启动器的下载速度将很慢。推荐使用全局透明代理。在安装使用中若出现问题可自行查看 [AUR 仓库地址](https://aur.archlinux.org/packages/minecraft-launcher) 下的评论。 ```bash -sudo pacman -S minecraft-launcher #我的世界官服启动器(ArchLinuxCN) +sudo pacman -S minecraft-launcher #我的世界官服启动器(ArchLinuxCN) ``` -除了官方启动器,还有一部分人使用[HMCL](https://hmcl.huangyuhui.net/)(Hello Minecraft! Launcher)第三方启动器。[GitHub 地址](https://github.com/huanghongxun/HMCL) [MC BBS](https://www.mcbbs.net/thread-142335-1-1.html) +除了官方启动器,还有一部分人使用 [HMCL](https://hmcl.huangyuhui.net/)(Hello Minecraft! Launcher)第三方启动器。[GitHub 地址](https://github.com/huanghongxun/HMCL) [MC BBS](https://www.mcbbs.net/thread-142335-1-1.html) ```bash yay -S hmcl @@ -51,10 +51,13 @@ yay -S hmcl 群主的 SteamID: 144736794 。由于游戏实在太多,个人肯定无法完成购买全部。如有需要可以进行联络,群主可以测试在 Linux 上的可运行性。 -[官方文档](https://wiki.archlinux.org/index.php/Steam) +[官方文档](https://wiki.archlinux.org/index.php/Steam) + 一些字体和驱动已经在`新手上路`章节中配置完成。若有安装问题请自查。 -此外,如果某些游戏启动或者游玩有问题,可以用终端使用`steam`命令启动 steam 客户端,并观察游戏崩溃时的终端报错。一般都是缺少某种依赖造成的,可以根据具体情况自行安装依赖。同时,archlinux 官方文档也提供了一个[查错页面](https://wiki.archlinux.org/index.php/Steam/Game-specific_troubleshooting),记录了一些游戏崩溃(如骑马与砍杀等)的解决方式。 +此外,如果某些游戏启动或者游玩有问题,可以用终端使用`steam`命令启动 steam 客户端,并观察游戏崩溃时的终端报错。一般都是缺少某种依赖造成的,可以根据具体情况自行安装依赖。同时,archlinux 官方文档也提供了一个 [查错页面](https://wiki.archlinux.org/index.php/Steam/Game-specific_troubleshooting),记录了一些游戏崩溃(如骑马与砍杀等)的解决方式。 + +安装 Steam专有: ```bash sudo pacman -S steam @@ -62,7 +65,7 @@ sudo pacman -S steam 下面的清单是群主自身测试过,或者玩过的,在 Linux 下拥有`完美体验或者表现良好`的游戏列表,分为原生组和 [Steam Play](https://wiki.archlinux.org/index.php/Steam#Proton_Steam-Play) 组两类。关于非 Linux 平台的游戏,通过 Steam Play 运行的可玩程度,可通过[protondb](https://www.protondb.com/)这个网站进行查询。如果玩某个游戏出现问题,在这个网站里你也可以找到玩家 post 的各个游戏的修正方式。有时最新版 Proton 可能存在问题,这时自行尝试其他版本即可。 -另外,github 上还存在一些官方 proton 的 fork 版本,如 [GE proton](https://github.com/GloriousEggroll/proton-ge-custom),可以支持一些额外的,官方暂不支持或支持不完善的游戏。使用方式也很简单,根据官方文档,下载 release 的压缩包到指定位置,重启 steam 后即可选择特定版本的 GE proton。 +另外,github 上还存在一些官方 proton 的 fork 版本,如 [Proton GE](https://github.com/GloriousEggroll/proton-ge-custom),可以支持一些额外的,官方暂不支持或支持不完善的游戏。使用方式也很简单,根据官方文档,下载 release 的压缩包到指定位置,重启 steam 后即可选择特定版本的 GE proton。 只列出大作以及较好玩的精品,不会列举全部。 @@ -76,12 +79,12 @@ sudo pacman -S steam - [Dota2](https://store.steampowered.com/app/570/Dota_2/) 完美运行,提供 openGL 与 Vulkan 两种方案。目前已经可以输入中文。 - [巫师 3](https://store.steampowered.com/app/292030/_3/) 完美运行。 - [RimWorld](https://store.steampowered.com/app/294100/RimWorld/) 一款非常好玩的生存建设类游戏。 -- [欧陆风云 4](https://store.steampowered.com/app/236850/Europa_Universalis_IV/) 没有官中。linux 双字节补丁暂无。 +- [欧陆风云 4](https://store.steampowered.com/app/236850/Europa_Universalis_IV/) 没有官中。Linux 双字节补丁暂无。 - [Kingdom: Classic](https://store.steampowered.com/app/368230/Kingdom_Classic/) 挺好玩的一个像素风横版闯关类小游戏。同系列还有几个新作。 - [地铁 2033 Redux](https://store.steampowered.com/app/286690/Metro_2033_Redux/) 经典的地铁系列。 - [地铁 Last Light Redux](https://store.steampowered.com/app/287390/Metro_Last_Light_Redux/) 经典的地铁系列。 - [星露谷物语](https://store.steampowered.com/app/413150/Stardew_Valley/) 二次元像素风农场模拟器。 -- [饥荒](https://store.steampowered.com/app/219740/Dont_Starve/) 中文显示有问题,需要订阅并启用中文 mod,如[这个](https://steamcommunity.com/sharedfiles/filedetails/?id=874857181&searchtext=%E4%B8%AD%E6%96%87) +- [饥荒](https://store.steampowered.com/app/219740/Dont_Starve/) 中文显示有问题,需要订阅并启用中文 mod,如[这个](https://steamcommunity.com/sharedfiles/filedetails/?id=874857181&searchtext=%E4%B8%AD%E6%96%87) - [Oxygen Not Included(缺氧)](https://store.steampowered.com/app/457140/Oxygen_Not_Included/) 同样是 Klei 出品,2D 模拟经营类游戏。 - [泰拉瑞亚](https://store.steampowered.com/app/105600/Terraria/) 不用介绍了吧? - [全战三国](https://store.steampowered.com/app/779340/Total_War_THREE_KINGDOMS/) 全战系列的三国篇。 @@ -103,8 +106,8 @@ sudo pacman -S steam - [荒野大镖客 2](https://store.steampowered.com/app/1174180/Red_Dead_Redemption_2/) 完美运行。 - [骑马与砍杀 2](https://store.steampowered.com/app/261550/Mount__Blade_II_Bannerlord/) 略有卡顿,启动器存在 bug,无法启动游戏,需要进行一点修改。进入游戏文件夹的./bin/Win64_Shipping_Client 文件夹中,执行如下命令 ```bash - mv TaleWorlds.MountAndBlade.Launcher.exe TaleWorlds.MountAndBlade.Launcher.exe.bak #备份源文件 - ln -s Bannerlord.Native.exe TaleWorlds.MountAndBlade.Launcher.exe #通过符号链接让启动器直接指向Bannerlord.Native.exe + mv TaleWorlds.MountAndBlade.Launcher.exe TaleWorlds.MountAndBlade.Launcher.exe.bak # 备份源文件 + ln -s Bannerlord.Native.exe TaleWorlds.MountAndBlade.Launcher.exe # 通过符号链接让启动器直接指向Bannerlord.Native.exe ``` [相关 issue 讨论](https://github.com/ValveSoftware/Proton/issues/3706) - [只狼](https://store.steampowered.com/app/814380/Sekiro_Shadows_Die_Twice__GOTY_Edition/) 完美运行。 @@ -126,11 +129,11 @@ sudo pacman -S steam ## Lutris -Lutris 基于 wine,提供了大量游戏在 Linux 下的解决方案。其为你已经配置好了 wine 相关的一切配置,你只需要安装游玩即可。一般极少需要额外配置。进入[官网](https://lutris.net/)在右上角搜索你想玩的游戏。点击进入游戏页面后,可以看到在相应版本右侧有一个 install 按钮,点击后即可拉起 Lurtis 进行安装。玩游戏前要先装好[驱动](https://github.com/lutris/docs/blob/master/InstallingDrivers.md)和[依赖](https://github.com/lutris/docs/blob/master/WineDependencies.md)。下面针对一些群主玩的游戏进行一些额外说明。 +Lutris 基于 Wine,提供了大量游戏在 Linux 下的解决方案。其为你已经配置好了 Wine 相关的一切配置,你只需要安装游玩即可。一般极少需要额外配置。进入 [官网](https://lutris.net/) 在右上角搜索你想玩的游戏。点击进入游戏页面后,可以看到在相应版本右侧有一个 install 按钮,点击后即可拉起 Lurtis 进行安装。玩游戏前要先装好 [驱动](https://github.com/lutris/docs/blob/master/InstallingDrivers.md) 和 [依赖](https://github.com/lutris/docs/blob/master/WineDependencies.md)。下面针对一些群主玩的游戏进行一些额外说明。 ### 暴雪战网 -[暴雪战网](https://lutris.net/games/battlenet/) 直接安装后可能无法登录,这是因为缺乏某些库。阅读历史 Issue,安装如下库后解决问题。 +[暴雪战网](https://lutris.net/games/battlenet/) 直接安装后可能无法登录,这是因为缺乏某些库。阅读历史 Issue,安装如下库后解决问题。 ```bash sudo pacman -S giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo libxcomposite lib32-libxcomposite libxinerama lib32-libxinerama ncurses lib32-ncurses opencl-icd-loader lib32-opencl-icd-loader libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader cups samba dosbox @@ -138,25 +141,51 @@ sudo pacman -S giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnu > 如果你发现还是无法登陆,检查你的代理设置。比如你是国服的帐号,但是代理挂的是日本的,那是无法登陆的,可以换一个香港的代理再尝试。 -### WargamingGameCenter(坦克世界、战舰世界等) +### WargamingGameCenter(坦克世界、战舰世界等)) + +[WargamingGameCenter(坦克世界、战舰世界等)](https://lutris.net/games/wargaming-game-center/) 在页面上选择亚服即可进行安装(如果你玩亚服,则需要使用[透明代理](/advanced/transparentProxy)对 UDP 流量进行加速)。注意安装结束后,会卡在 wargaming 启动器,整个启动器会黑掉,在右下角托盘右键关闭就可以继续安装流程。 + +如果无法更新游戏,在需要更新游戏的时候,将 Wine 版本设置为系统的 Wine staging 版本,如果最新的 wine-staging 版本仍然闪退,可以退回到 5.19 版本,这是最新的可用版本。如果依旧无法更新,可以尝试重新安装启动器(安装前先删除容器内 wgc 的文件夹,注意不是游戏本体的文件夹,无需重新下游戏本体)。在更新完毕后,需要启动游戏时,将 wine 版本设置为 Lutris 自带的版本。 + +如遇到无法启动闪退的情况,可以尝试在命令行启动 Lutris,再启动坦克世界即可,玄学、不知道原因。如果启动器中启动游戏还是闪退,可以尝试把 Lutris 容器的启动文件从启动器改到 WOT 游戏本体的可执行文件。这个方法在外服可以,国服就不行,因为启动游戏本体后要输入帐号密码,我试了旧的空中网帐密、新的 360 帐密都不行,提示帐号密码错误或已过期。想了想原因可能是 360 在启动器做了套娃,有自身的验证登陆手段。这时候就需要用另一个更通用的方式,可以使用 Lutris 的功能 `Run EXE inside wine prefix`,然后选择坦克世界游戏本体就可以通过验证玩游戏了。`Run EXE inside wine prefix` 的位置在 Lutris 下方,点击小酒杯,最后一个。 + +如果你玩国服,群主在 Lutris 上传了国服的安装脚本,目前还没通过审核。 + +关于插件,可以在官方的 [Mod Hub](https://wgmods.net/) 下载,使用方式和 Windows 上是相同的,个人习惯更换背景音乐为 Old Memories。如果习惯使用坦克世界盒子,也可以安装在同一个容器里,经过测试,除了没有效率值之外,其他功能是可以正常使用的。 + +## 原生 Wine + +安装使用原生 [Wine](https://wiki.archlinux.org/index.php/Wine) 也可运行 windows 游戏,但是很多情况下需要你自行处理 Windows 下的依赖问题,常用的工具是 [winetricks](https://archlinux.org/packages/multilib/x86_64/winetricks/)。这种方式费时费力,只运行无需处理依赖的小游戏或者 gal 还好。 + +## 游戏手柄 + +一般情况下手柄通过数据线连接计算机即可直接使用。支持无线的手柄(DUALSHOCK® 3、DUALSHOCK® 4、Xbox 360、Xbox One、8BitDo 等)也可以通过蓝牙直接连接,无需额外操作。 + +### Xbox 无线适配器 + +虽然无线手柄一般情况下可以通过蓝牙直连,但是通常这样会有较大的延迟。推荐使用 [Xbox 无线适配器](https://www.microsoftstore.com.cn/accessories/microsoft-xbox-wireless-adapter) 以获得近乎有线的低延迟体验。 -[WargamingGameCenter(坦克世界、战舰世界等)](https://lutris.net/games/wargaming-game-center/) 在页面上选择亚服即可进行安装(如果你玩亚服,则需要使用[透明代理](/advanced/transparentProxy)对 UDP 流量进行加速)。注意安装结束后,会卡在 wargaming 启动器,整个启动器会黑掉,在右下角托盘右键关闭就可以继续安装流程。 +为了在 Arch Linux 下使用 Xbox 无线适配器,需要安装第三方开源驱动 [xow](https://github.com/medusalix/xow)。 -如果无法更新游戏,在需要更新游戏的时候,将 wine 版本设置为系统的 wine staging 版本,如果最新的 wine-staging 版本仍然闪退,可以退回到 5.19 版本,这是最新的可用版本。如果依旧无法更新,可以尝试重新安装启动器(安装前先删除容器内 wgc 的文件夹,注意不是游戏本体的文件夹,无需重新下游戏本体)。在更新完毕后,需要启动游戏时,将 wine 版本设置为 lutris 自带的版本。 +1. 安装 [xow](https://aur.archlinux.org/packages/xow-git/)AUR: -如遇到无法启动闪退的情况,可以尝试在命令行启动 Lutris,再启动坦克世界即可,玄学,不知道原因。如果启动器中启动游戏还是闪退,可以尝试把 lutris 容器的启动文件从启动器改到 WOT 游戏本体的可执行文件。这个方法在外服可以,国服就不行,因为启动游戏本体后要输入帐号密码,我试了旧的空中网帐密,新的 360 帐密都不行,提示帐号密码错误或已过期。想了想原因可能是 360 在启动器做了套娃,有自身的验证登陆手段。这时候就需要用另一个更通用的方式,可以使用 lutris 的功能`Run EXE inside wine prefix`,然后选择坦克世界游戏本体就可以通过验证玩游戏了。`Run EXE inside wine prefix`的位置在 lutris 下方,点击小酒杯,最后一个。 + ```sh + yay -S xow + ``` -如果你玩国服,群主在 lutris 上传了国服的安装脚本,目前还没通过审核。 +2. 启动 `xcow` 服务: -关于插件,可以在官方的 [Mod Hub](https://wgmods.net/) 下载,使用方式和 windows 上是相同的,个人习惯更换背景音乐为 Old Memories。如果习惯使用坦克世界盒子,也可以安装在同一个容器里,经过测试,除了没有效率值之外,其他功能是可以正常使用的。 + ```sh + sudo systemctl enable xow.service + ``` -## 原生 wine +3. 重启计算机,插入 Xbox 无线适配器并和 Xbox 手柄配对即可 -安装使用原生 [wine](https://wiki.archlinux.org/index.php/Wine) 也可运行 windows 游戏,但是很多情况下需要你自行处理 windows 下的依赖问题,常用的工具是[winetricks](https://archlinux.org/packages/multilib/x86_64/winetricks/)。这种方式费时费力,只运行无需处理依赖的小游戏或者 gal 还好。 +实际体验和 Windows 下并无差异。对延迟敏感的音游(如 [喵斯快跑](https://store.steampowered.com/app/774171/Muse_Dash/))在游戏设置中微调偏移值即可。 ## 性能监控 -和微星的 Afterburner 软件中性能显示的部分类似,linux 上也有一款同类软件可以监控游戏中的电脑性能,名为[MangoHud](https://github.com/flightlessmango/MangoHud)。使用方式可参见此项目的 readme。此外,官方提供图形化的参数设置软件 [GOverlay](https://github.com/benjamimgois/goverlay#arch--manjaro--other-arch-derivatives),可以自行选择安装。 +和微星的 Afterburner 软件中性能显示的部分类似,Linux 上也有一款同类软件可以监控游戏中的电脑性能,名为[MangoHud](https://github.com/flightlessmango/MangoHud)。使用方式可参见此项目的 readme。此外,官方提供图形化的参数设置软件 [GOverlay](https://github.com/benjamimgois/goverlay#arch--manjaro--other-arch-derivatives),可以自行选择安装。 ## 可选内核更换 From 58eb369c0da776269ce5c1ac47c8d99afa460901 Mon Sep 17 00:00:00 2001 From: livrth Date: Sun, 4 Jul 2021 12:40:33 +0800 Subject: [PATCH 13/34] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a14d6ed..4d86d31 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ - [7:成为合格的系统管理员](https://www.bilibili.com/video/BV1N64y1b73Z) - [8:配置全局代理 翻墙更轻松](https://www.youtube.com/watch?v=m0ctfPF-2_I) - [9:功耗控制](https://www.bilibili.com/video/BV1664y1Q7cS) +- [10:系统美化](https://www.bilibili.com/video/BV1GX4y1w748) ## Star 历史 From e8389870047f48d3fa706964f02c1e643afb784d Mon Sep 17 00:00:00 2001 From: livrth Date: Sun, 4 Jul 2021 18:04:52 +0800 Subject: [PATCH 14/34] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4d86d31..66c29a7 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ - [8:配置全局代理 翻墙更轻松](https://www.youtube.com/watch?v=m0ctfPF-2_I) - [9:功耗控制](https://www.bilibili.com/video/BV1664y1Q7cS) - [10:系统美化](https://www.bilibili.com/video/BV1GX4y1w748) - +- [11:故障排除](https://www.bilibili.com/video/BV1PM4y1M75j) ## Star 历史 [![Stargazers over time](https://starchart.cc/ArchLinuxStudio/ArchLinuxTutorial.svg)](https://starchart.cc/ArchLinuxStudio/ArchLinuxTutorial) From 042993757ca1967094c2ae168a1eb1631a4aa941 Mon Sep 17 00:00:00 2001 From: livrth Date: Mon, 5 Jul 2021 12:27:48 +0800 Subject: [PATCH 15/34] Add video link --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 66c29a7..404c1bb 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ - [9:功耗控制](https://www.bilibili.com/video/BV1664y1Q7cS) - [10:系统美化](https://www.bilibili.com/video/BV1GX4y1w748) - [11:故障排除](https://www.bilibili.com/video/BV1PM4y1M75j) +- [12:办公日常](https://www.bilibili.com/video/BV1xv411H7DY) ## Star 历史 [![Stargazers over time](https://starchart.cc/ArchLinuxStudio/ArchLinuxTutorial.svg)](https://starchart.cc/ArchLinuxStudio/ArchLinuxTutorial) From fb1d68eb0b1c528f7b78ecbf8ea26e81480e01be Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: Wed, 7 Jul 2021 11:16:39 +0800 Subject: [PATCH 16/34] add onlyoffice --- docs/play&office/office.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/play&office/office.md b/docs/play&office/office.md index fac0573..23f112a 100644 --- a/docs/play&office/office.md +++ b/docs/play&office/office.md @@ -31,11 +31,12 @@ yay -S wechat-uos #2020年末最新的uos版本原生微信的arch ## 办公套件 -主要两个选择是 [WPS]()AUR 与 [LibreOffice](https://wiki.archlinux.org/index.php/LibreOffice)。我们建议你使用开源的 LibreOffice, 其目前的安装已经非常简单。 +主要三个选择是 [WPS]()AUR 与 [LibreOffice](https://wiki.archlinux.org/index.php/LibreOffice)以及[onlyoffice]()AUR 我们建议你使用开源的 LibreOffice 以及 onlyoffice 其目前的安装已经非常简单。 ```bash sudo pacman -S libreoffice-still #稳定版 sudo pacman -S libreoffice-fresh #尝鲜版 +yay -S onlyoffice-bin ``` WPS 请按官方文档安装。需要注意的是,由于分发问题,2020 下半年 WPS 已从 archlinuxcn 移除,安装请务必从 AUR 安装。 From 1131241b2d645cfb84a1fdac5fb93b6e1cfdbe9b Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: Wed, 7 Jul 2021 11:33:12 +0800 Subject: [PATCH 17/34] update video link --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 404c1bb..a38f01e 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,10 @@ - [10:系统美化](https://www.bilibili.com/video/BV1GX4y1w748) - [11:故障排除](https://www.bilibili.com/video/BV1PM4y1M75j) - [12:办公日常](https://www.bilibili.com/video/BV1xv411H7DY) +- [13:视频影音](https://www.bilibili.com/video/BV11M4y1M7tf/) +- [14:游戏娱乐](https://www.bilibili.com/video/BV16g411u7WQ/) +- [15:安卓刷机](https://www.bilibili.com/video/BV1jw411d7g2/) + ## Star 历史 [![Stargazers over time](https://starchart.cc/ArchLinuxStudio/ArchLinuxTutorial.svg)](https://starchart.cc/ArchLinuxStudio/ArchLinuxTutorial) From 8a0d630637b1989da2d46302e7570d612409511e Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月10日 01:04:50 +0800 Subject: [PATCH 18/34] add new video --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a38f01e..f05f9e4 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,8 @@ - [13:视频影音](https://www.bilibili.com/video/BV11M4y1M7tf/) - [14:游戏娱乐](https://www.bilibili.com/video/BV16g411u7WQ/) - [15:安卓刷机](https://www.bilibili.com/video/BV1jw411d7g2/) +- [16:直播与多媒体](https://www.bilibili.com/video/BV1854y1n7zS/) +- [17:編程軟件](https://www.bilibili.com/video/BV1164y1b7kC/) ## Star 历史 From 3c0993bac6f7f377682e86bdf60e279729db8e88 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月10日 10:09:54 +0800 Subject: [PATCH 19/34] add Qv2ray3.0 aka QvPersonal --- docs/rookie/fxckGFW.md | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/docs/rookie/fxckGFW.md b/docs/rookie/fxckGFW.md index 677ff94..3877094 100644 --- a/docs/rookie/fxckGFW.md +++ b/docs/rookie/fxckGFW.md @@ -93,8 +93,39 @@ sudo systemctl enable --now v2raya 更新: -在五月,Qv2ray 原主要开发者在 Shadowsocks-NET 组织下开始了[新的 Qv2ray 分支](https://github.com/Shadowsocks-NET/Qv2ray)并继续维护,至于哪个分支后续的维护更佳,可以静观其变。 +在五月,Qv2ray 原主要开发者在 Shadowsocks-NET 组织下开始了[新的 Qv2ray 分支](https://github.com/Shadowsocks-NET/Qv2ray)并继续维护,至于哪个分支后续的维护更佳,可以静观其变。在七月,最新开发已转至一个[个人分支](https://github.com/moodyhunter/QvPersonal)。 + +## 编译安装 QvPersonal3.0 + +最新 3.0 版本的 Qv2ray pre release 已经发布,可以编译安装。由于其为 pre release,请谨慎酌情使用。编译前先按照 readme 安装好所需依赖。 + +首先删除旧版 qv2ray 以及不兼容的配置 + +```bash +rm -rf ~/.config/qv2ray +sudo pacman -R qv2ray-dev-git +``` + +接下来进行编译安装 + +```bash +git clone git@github.com:moodyhunter/QvPersonal.git --recursive +cd QvPersonal +mkdir build +cd build/ +cmake -DCMAKE_INSTALL_PREFIX=/usr .. +cmake --build . --parallel 8 +sudo cmake --install . +``` + +在 Plugins 中,选择 V2ray Core Plugin,并进行 V2ray 的设置。现在你已经可以使用。 ## 更加全面的系统级全局代理 由以上各部分可以看到,为各个软件单独设置代理还是较为麻烦。如果这种方式可以满足你的需求,那么你可以到此为止。如果你把 Linux 作为主力使用,那么强烈建议你配置透明代理,可以阅读进阶章节中的[透明代理](advanced/transparentProxy)一文。 + +--- + +Ref: + +1. [CMake_package_guidelines](https://wiki.archlinux.org/title/CMake_package_guidelines#Prefix_and_library_install_directories) From 0efa6d04a39f6f2d21b58ffbe1803a84cce76403 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月10日 15:01:07 +0800 Subject: [PATCH 20/34] VmessAEAD in Qv2ray3.0 now --- docs/rookie/fxckGFW.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/rookie/fxckGFW.md b/docs/rookie/fxckGFW.md index 3877094..5ba28df 100644 --- a/docs/rookie/fxckGFW.md +++ b/docs/rookie/fxckGFW.md @@ -120,6 +120,8 @@ sudo cmake --install . 在 Plugins 中,选择 V2ray Core Plugin,并进行 V2ray 的设置。现在你已经可以使用。 +> 在 Qv2ray3.0 中 VMESS MD5 与非 0 的 AlterID 的形式已不被支持,若你的机场或节点下发的 AlterID 是非 0 是无法使用的。如果服务端支持,你可将 AlterID 改为 0 来使用 VMessAEAD 形式。 + ## 更加全面的系统级全局代理 由以上各部分可以看到,为各个软件单独设置代理还是较为麻烦。如果这种方式可以满足你的需求,那么你可以到此为止。如果你把 Linux 作为主力使用,那么强烈建议你配置透明代理,可以阅读进阶章节中的[透明代理](advanced/transparentProxy)一文。 From fac0a8f9a2173fcbaad6b028f0ba7a62b0e44d04 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月10日 15:30:55 +0800 Subject: [PATCH 21/34] update desc of xray --- docs/rookie/fxckGFW.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/rookie/fxckGFW.md b/docs/rookie/fxckGFW.md index 5ba28df..52454d2 100644 --- a/docs/rookie/fxckGFW.md +++ b/docs/rookie/fxckGFW.md @@ -76,7 +76,7 @@ sudo pacman -S qv2ray-dev-git v2ray 2021 年 4 月 28 日,qv2ray 迄今为止的代码量最大贡献者 gcc 宣布退出开发。 -起因在于其意在取消对 xray 的支持,并在检测到 xray 时导致程序崩溃。xray 从诞生起始终在社区中存在争议。而社区中另外一位仓库 owner 认为这种处理方式太过偏激,不同意这种举措。在交流无果后此 owner 取消了其仓库权限,并将其移除 qv2ray workgroup。这种做法显然是其在感情上无法接受的,随后其注销了 github 帐号并宣布退出开发。而随后 xray 频道发表的公告明显带有严重的主观感情色彩,没有客观的描述事件本身,顺便借题发挥式的中伤开源软件。此公告没有任何实际意义,只会加剧误解的程度。 +起因在于其意在取消对 xray 的支持,并在检测到错误配置的 xray 时导致程序崩溃。xray 从诞生起始终在社区中存在争议。而社区中另外一位仓库 owner 认为这种处理方式太过偏激,不同意这种举措。在交流无果后此 owner 取消了其仓库权限,并将其移除 qv2ray workgroup。这种做法显然是其在感情上无法接受的,随后其注销了 github 帐号并宣布退出开发。而随后 xray 频道发表的公告明显带有严重的主观感情色彩,没有客观的描述事件本身,顺便借题发挥式的中伤开源软件。此公告没有任何实际意义,只会加剧误解的程度。 这种结果是任何一个 linux 用户都不愿看到的,希望 qv2ray 开发组可以重新开启交流,得出一个折中的方案。以防万一,这里也记录一种 qv2ray 的替代方案。 From aab807f52548410879ab82bf05fdf76826946a87 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月10日 21:51:28 +0800 Subject: [PATCH 22/34] add ghidra --- docs/exclusive/code.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/exclusive/code.md b/docs/exclusive/code.md index b3b434e..bb4f400 100644 --- a/docs/exclusive/code.md +++ b/docs/exclusive/code.md @@ -50,4 +50,4 @@ Jetbrains 家的全家桶基本都有支持可以在源中或 AUR 中自行搜 ## 逆向工程 -逆向工程中很知名的软件 IDA 也可安装,分为[免费版](https://aur.archlinux.org/packages/ida-free/)AUR与[收费版](https://aur.archlinux.org/packages/ida-pro/)AUR。除此之外再介绍一个好用的十六进制编辑器[Bless](https://archlinux.org/packages/community/any/bless/)。 +逆向工程中很知名的软件 IDA 也可安装,分为[免费版](https://aur.archlinux.org/packages/ida-free/)AUR与[收费版](https://aur.archlinux.org/packages/ida-pro/)AUR。另外也可安装知名的[ghidra](https://archlinux.org/packages/community/x86_64/ghidra/)。除此之外再介绍一个好用的十六进制编辑器[Bless](https://archlinux.org/packages/community/any/bless/)。 From 6449d68f7c83aa9d9c0c415abcb5e37d8c1e3e06 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月10日 22:18:07 +0800 Subject: [PATCH 23/34] add ref of DNS --- docs/advanced/transparentProxy.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/advanced/transparentProxy.md b/docs/advanced/transparentProxy.md index 226ae6d..362419a 100644 --- a/docs/advanced/transparentProxy.md +++ b/docs/advanced/transparentProxy.md @@ -115,3 +115,9 @@ - 终端 wget/curl/npm/yarn 访问被墙的 https 资源(如 github raw)报错 443 DNS 的问题,打开 Qv2ray 的 DNS 拦截和 cgproxy 的 dns 选项。或者 export https_proxy 环境变量。 + +--- + +Ref: + +1. [漫谈各种黑科技式 DNS 技术在代理环境中的应用](https://tachyondevel.medium.com/%E6%BC%AB%E8%B0%88%E5%90%84%E7%A7%8D%E9%BB%91%E7%A7%91%E6%8A%80%E5%BC%8F-dns-%E6%8A%80%E6%9C%AF%E5%9C%A8%E4%BB%A3%E7%90%86%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8-62c50e58cbd0) From d7d44e77e05eecd32eede372cd0b02d6f0284759 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月11日 10:29:15 +0800 Subject: [PATCH 24/34] add uninstall qv3.0 --- docs/rookie/fxckGFW.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/rookie/fxckGFW.md b/docs/rookie/fxckGFW.md index 52454d2..48e4197 100644 --- a/docs/rookie/fxckGFW.md +++ b/docs/rookie/fxckGFW.md @@ -122,6 +122,13 @@ sudo cmake --install . > 在 Qv2ray3.0 中 VMESS MD5 与非 0 的 AlterID 的形式已不被支持,若你的机场或节点下发的 AlterID 是非 0 是无法使用的。如果服务端支持,你可将 AlterID 改为 0 来使用 VMessAEAD 形式。 +卸载 Qv 3.0 + +```bash +cd QvPersonal/build +sudo xargs rm < install_manifest.txt +``` + ## 更加全面的系统级全局代理 由以上各部分可以看到,为各个软件单独设置代理还是较为麻烦。如果这种方式可以满足你的需求,那么你可以到此为止。如果你把 Linux 作为主力使用,那么强烈建议你配置透明代理,可以阅读进阶章节中的[透明代理](advanced/transparentProxy)一文。 From 80e0d76add1823f49a902bdf5b338edecd8ecf4e Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月12日 08:16:45 +0800 Subject: [PATCH 25/34] update video link --- README.md | 2 +- docs/README.md | 22 ++++++++++++++++++++++ docs/advanced/beauty.md | 2 +- docs/rookie/DE&App.md | 2 +- docs/rookie/basic_install.md | 2 +- docs/rookie/graphic_driver.md | 2 +- 6 files changed, 27 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f05f9e4..81da55c 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ - 中国用户常用的软件安装与配置 - 特定领域,如媒体制作、编程等软件与环境的配置 -## 配套视频分 P 列表 WIP +## 配套视频分 P 列表 有第三方视频作者为本教程制作了讲解视频,欢迎与文档对照收看,效果更好,效率更高。视频可能出现更新不及时的情况,如果遇到分歧,请以文档为准。 diff --git a/docs/README.md b/docs/README.md index f6086bc..68d01d4 100644 --- a/docs/README.md +++ b/docs/README.md @@ -35,4 +35,26 @@ Arch Linux 安装使用教程,每月实时更新!包含从 archlinux 安装 Arch Linux 可以以超高的自由度来定制自己的系统,并且其拥有最完善的[文档](https://wiki.archlinux.org/index.php/Main_page),使得绝大多数问题都可以通过查看官方文档的方式解决。正是由于其软件更新的策略的激进,就使得用户必须常常对系统进行更新,如果你不能经常照顾系统升级的话,也许你不应该使用 Arch Linux。较长时间段内没有升级可能会造成各种问题(俗称 `滚挂了`),虽然大多数问题可以通过救援手段事后补救,但还是常常更新得好。同时,关注 Arch Linux 的[新闻列表](https://archlinux.org/news/)可以帮助你得知最新的升级注意事项。 +## 配套视频分 P 列表 + +有第三方视频作者为本教程制作了讲解视频,欢迎与文档对照收看,效果更好,效率更高。视频可能出现更新不及时的情况,如果遇到分歧,请以文档为准。 + +- [1:GNU/Linux 与自由软件运动](https://www.bilibili.com/video/BV1dB4y1T7Zb/) +- [2:安装前的准备](https://www.bilibili.com/video/BV1V64y1d7N7/) +- [3:ArchLinux 基础安装](https://www.bilibili.com/video/BV1Jy4y1M74E) +- [4:安装 KDE 与常用软件](https://www.bilibili.com/video/BV1Fv411H7x2) +- [5:科学上网与翻墙](https://www.youtube.com/watch?v=HNfT8uz7qEM) +- [6:显卡驱动安装综述](https://www.bilibili.com/video/BV1p44y1q746) +- [7:成为合格的系统管理员](https://www.bilibili.com/video/BV1N64y1b73Z) +- [8:配置全局代理 翻墙更轻松](https://www.youtube.com/watch?v=m0ctfPF-2_I) +- [9:功耗控制](https://www.bilibili.com/video/BV1664y1Q7cS) +- [10:系统美化](https://www.bilibili.com/video/BV1GX4y1w748) +- [11:故障排除](https://www.bilibili.com/video/BV1PM4y1M75j) +- [12:办公日常](https://www.bilibili.com/video/BV1xv411H7DY) +- [13:视频影音](https://www.bilibili.com/video/BV11M4y1M7tf/) +- [14:游戏娱乐](https://www.bilibili.com/video/BV16g411u7WQ/) +- [15:安卓刷机](https://www.bilibili.com/video/BV1jw411d7g2/) +- [16:直播与多媒体](https://www.bilibili.com/video/BV1854y1n7zS/) +- [17:編程軟件](https://www.bilibili.com/video/BV1164y1b7kC/) + diff --git a/docs/advanced/beauty.md b/docs/advanced/beauty.md index f4c707c..1c9ff79 100644 --- a/docs/advanced/beauty.md +++ b/docs/advanced/beauty.md @@ -1,6 +1,6 @@ # 系统美化 -本文讲述如何配置以让 KDE 桌面环境看起来更加拥有美感。[配套视频](https://www.bilibili.com/video/BV1Ua4y157Qa/) +本文讲述如何配置以让 KDE 桌面环境看起来更加拥有美感。[配套视频](https://www.bilibili.com/video/BV1GX4y1w748) 原则:美化不应该付出大量的时间折腾,既没有实际用处,也没有意义。花最少的时间完成性价比最高的美化始终是第一原则。 在美化部分,需要设置代理之后再使用`系统设置`的功能,如下载主题等。否则网速会非常慢,甚至无法使用。 经测试,需通过 proxychains 或设置全局透明代理将网络连接重定向到代理。 diff --git a/docs/rookie/DE&App.md b/docs/rookie/DE&App.md index 620a9e6..2d87193 100644 --- a/docs/rookie/DE&App.md +++ b/docs/rookie/DE&App.md @@ -2,7 +2,7 @@ 官方文档: [安装后的工作](https://wiki.archlinux.org/index.php/General_recommendations) 本节只介绍最基本的,能使系统真正意义上可用所需的组件 -相关视频链接: [2020ArchLinux 安装 KDE 桌面&Fcitx5 输入法配置](https://www.bilibili.com/video/BV1Vk4y117jc) 视频文字结合效果更好 +相关视频链接: [安装 KDE 与常用软件](https://www.bilibili.com/video/BV1Fv411H7x2) 视频文字结合效果更好 注: 文档中带有 AUR 角标的软件代表是用户自行打包的第三方软件[AUR](https://aur.archlinux.org/),不在 Arch 官方支持范围内,可能会出现更新不及时、无法安装、使用出错等各种问题。如果不是实在没有官方支持的同类软件,则不建议使用。 ## 1.确保系统为最新 diff --git a/docs/rookie/basic_install.md b/docs/rookie/basic_install.md index 666d535..9ebb253 100644 --- a/docs/rookie/basic_install.md +++ b/docs/rookie/basic_install.md @@ -1,7 +1,7 @@ # Arch Linux 基础安装 本节从安装最基础的无图形化 ArchLinux 系统开始。[官方安装指南](https://wiki.archlinux.org/index.php/Installation_guide) -相关视频链接: [2020ArchLinux 安装教程](https://www.bilibili.com/video/BV1qf4y1D7Da/) 视频中可看到全部操作步骤 强烈建议观看视频配合文字学习。 +相关视频链接: [ArchLinux 安装使用教程](https://www.bilibili.com/video/BV1Jy4y1M74E) 视频中可看到全部操作步骤 强烈建议观看视频配合文字学习。 ## 1.禁用 reflector diff --git a/docs/rookie/graphic_driver.md b/docs/rookie/graphic_driver.md index b9ad65c..492d015 100644 --- a/docs/rookie/graphic_driver.md +++ b/docs/rookie/graphic_driver.md @@ -1,6 +1,6 @@ # 显卡驱动 -结合[视频](https://www.bilibili.com/video/BV1vK4y187Ww/)食用更佳。 +结合[视频](https://www.bilibili.com/video/BV1p44y1q746)食用更佳。 现在是 2021 年,显卡驱动的安装在 Arch Linux 上已经变得非常容易。本文区分核芯显卡和独立显卡两大类描述显卡驱动的安装。**注意,确保你已经按照本教程之前的章节安装配置好系统再向下进行,不要多个教程混着看,你可能漏掉了本教程前置步骤中的某些操作,从而造成问题。** From eb7498e7f47eefd86d5e90232d0d3d4dceddf91a Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月13日 10:48:47 +0800 Subject: [PATCH 26/34] remove proprietary software in frontend part --- docs/README.md | 2 +- docs/exclusive/code.md | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/README.md b/docs/README.md index 68d01d4..1c86312 100644 --- a/docs/README.md +++ b/docs/README.md @@ -25,7 +25,7 @@ Arch Linux 安装使用教程,每月实时更新!包含从 archlinux 安装 - 自由度 2:用户可以自由地分发该软件的拷贝,这样就可以助人。 - 自由度 3:用户可以自由地分发该软件修改后的拷贝。借此,用户可以把改进后的软件分享给整个社区令他人也从中受益。作为前提,用户必须可以访问到该软件的源代码。 -如果你只是一个普通用户,你一定见识过没有经过你的授权,电脑被装上了成堆的流氓软件的类似经历。专有软件不仅在各个维度强奸着用户,更包含着难以想象的恶意功能。用户的数据,隐私等重要信息会轻而易举被大公司们收集走,并加以滥用,这成为业内公开的秘密已是不争的事实。在专用软件有同类的自由软件替代时,强烈建议你迁移至自由软件。本书会同时记录专有软件与自由软件,因为如果完全摒弃专有软件,一定会直接将很多人阻挡在 linux 之外,这不是我们所希望的,我们希望先将更多人接纳到 GNU/Linux 中,至少这是踏出的第一步。但这并不代表我们支持使用专有软件,我们希望你至少可以先踏入 linux,逐渐使用自由软件替代专有软件。专有软件在本书中仅作简要记录,不会详细描述,因为我们不希望你长期依赖于它。专有软件在本书中会被角标专有或描述额外标记。如果你是有能力的开发者,更希望你可以开发出替代某些专有软件的自由软件。 +如果你只是一个普通用户,你一定见识过没有经过你的授权,电脑被装上了成堆的流氓软件的类似经历。专有软件不仅在各个维度强奸着用户,更包含着难以想象的恶意功能。用户的数据,隐私等重要信息会轻而易举被大公司们收集走,并加以滥用,这成为业内公开的秘密已是不争的事实。在专用软件有同类的自由软件替代时,强烈建议你迁移至自由软件。本书会同时记录专有软件与自由软件,因为如果完全摒弃专有软件,一定会直接将很多人阻挡在 linux 之外,这不是我们所希望的,我们希望先将更多人接纳到 GNU/Linux 中,至少这是踏出的第一步。但这并不代表我们支持使用专有软件,我们希望你至少可以先踏入 linux,逐渐使用自由软件替代专有软件。专有软件在本书中仅作简要记录,不会详细描述,因为我们不希望你长期依赖于它,我们会逐步移除本教程中的专有软件。专有软件在本书中会被角标专有或描述额外标记。如果你是有能力的开发者,更希望你可以开发出替代某些专有软件的自由软件。 最后,如果你想尝试完全免费的系统,或是喜欢探索充满新鲜与挑战的事物,Linux 也是你不可错过的体验。 diff --git a/docs/exclusive/code.md b/docs/exclusive/code.md index bb4f400..88ac8e1 100644 --- a/docs/exclusive/code.md +++ b/docs/exclusive/code.md @@ -6,11 +6,13 @@ 对于前端来说,一般需要浏览器以及 IDE 即可,附加一些网络工具。 -关于 IDE(或编辑器),可以使用 [OSS code](https://www.archlinux.org/packages/community/x86_64/code/) (微软 [Visual Studio Code](https://aur.archlinux.org/packages/visual-studio-code-bin/)AUR 的开源版本),[webstrom](https://aur.archlinux.org/packages/webstorm/)AUR 或者 [atom](https://archlinux.org/packages/community/x86_64/atom/)。 +关于 IDE(或编辑器),可以使用 [OSS code](https://www.archlinux.org/packages/community/x86_64/code/),[vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/),或者 [atom](https://archlinux.org/packages/community/x86_64/atom/)。 -浏览器方面有 [firefox](https://archlinux.org/packages/extra/x86_64/firefox/),[chromium](https://archlinux.org/packages/extra/x86_64/chromium/), [opera](https://archlinux.org/packages/community/x86_64/opera/) ,[vivaldi](https://archlinux.org/packages/community/x86_64/vivaldi/),[firefox-developer-edition](https://www.archlinux.org/packages/community/x86_64/firefox-developer-edition/),[Edge](https://aur.archlinux.org/packages/microsoft-edge-dev-bin/)AUR,以及[google-chrome](https://aur.archlinux.org/packages/google-chrome/)AUR等众多软件可供选择。 +> 微软公司 Visual Studio Code 的二进制构建实际为专有软件。很多人在此存在误解。如此偷梁换柱的手段越来越被更多公司发掘使用。 -网络工具常使用 [charles](https://aur.archlinux.org/packages/charles/)AUR,[postman](https://aur.archlinux.org/packages/postman-bin/)AUR以及 [wireshark-qt](https://archlinux.org/packages/community/x86_64/wireshark-qt/)。 +浏览器方面有 [firefox](https://archlinux.org/packages/extra/x86_64/firefox/),[chromium](https://archlinux.org/packages/extra/x86_64/chromium/),[firefox-developer-edition](https://www.archlinux.org/packages/community/x86_64/firefox-developer-edition/),等众多软件可供选择。 + +网络工具常使用 [charles](https://aur.archlinux.org/packages/charles/)AUR,以及 [wireshark-qt](https://archlinux.org/packages/community/x86_64/wireshark-qt/)。 至于 [yarn](https://www.archlinux.org/packages/community/any/yarn/)、[npm](https://www.archlinux.org/packages/community/any/npm/) 等前端常用工具,也均可用 pacman 安装。 From 5479a03df79f4f34577e5ae6af261d54d607fea9 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月13日 23:49:18 +0800 Subject: [PATCH 27/34] add reference for performance in cpu scaling_governor --- docs/play&office/play.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/play&office/play.md b/docs/play&office/play.md index a45b38f..54f38da 100644 --- a/docs/play&office/play.md +++ b/docs/play&office/play.md @@ -11,7 +11,7 @@ Disk: PLEXTOR PX-1TM9PeG ## 性能提升 -在游戏之前,如果有强烈的性能需要,可先确保 cpu 处于性能模式。注意此模式会让 cpu 处于最高性能状态、风扇狂转,如果你的散热撑不住甚至会降频,得不偿失,斟酌使用。在终端中,输入下列代码: +在游戏之前,如果有强烈的性能需要,可先确保 cpu 处于性能模式[[1]](https://support.feralinteractive.com/docs/zh_cn/threekingdomstw/1.0.15/linux/faqs/?access=zooevrj6xb&utm_source=game_linux&utm_medium=link&utm_campaign=game_linux_threekingdomstw_support#i_linux_cpu_governor)。注意此模式会让 cpu 处于最高性能状态、风扇狂转,如果你的散热撑不住甚至会降频,得不偿失,斟酌使用。在终端中,输入下列代码: ```bash echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor From d700f6444410ef366e526b4735f7dcacd9480ae9 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月23日 11:47:22 +0800 Subject: [PATCH 28/34] update game part & add cs go issue --- docs/play&office/play.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/play&office/play.md b/docs/play&office/play.md index 54f38da..aaeafaa 100644 --- a/docs/play&office/play.md +++ b/docs/play&office/play.md @@ -74,10 +74,10 @@ sudo pacman -S steam ### 原生游戏组 - [武装突袭 3](https://store.steampowered.com/app/107410/Arma_3/) 完美运行。 -- [CS GO](https://store.steampowered.com/app/730/CounterStrike_Global_Offensive/) 不用介绍了吧? +- [CS GO](https://store.steampowered.com/app/730/CounterStrike_Global_Offensive/) + 在 2021 年 gperftools 更新后,始终无法正常运行。可以尝试添加`-nojoy`参数或者拷贝系统 libtcmalloc_minimal.so 到游戏目录下[1](https://github.com/ValveSoftware/csgo-osx-linux/issues/2659#issuecomment-869013496)。这两种方式也有可能无效,依然无法运行,需要等 Steam 修复。 - [十字军之王 3](https://store.steampowered.com/app/1158310/Crusader_Kings_III/) 经典的中世纪模拟器 第三部已经有官方中文了。若启动器闪退启动不了游戏,可以执行游戏目录的./binary/ck3 启动游戏。 - [Dota2](https://store.steampowered.com/app/570/Dota_2/) 完美运行,提供 openGL 与 Vulkan 两种方案。目前已经可以输入中文。 -- [巫师 3](https://store.steampowered.com/app/292030/_3/) 完美运行。 - [RimWorld](https://store.steampowered.com/app/294100/RimWorld/) 一款非常好玩的生存建设类游戏。 - [欧陆风云 4](https://store.steampowered.com/app/236850/Europa_Universalis_IV/) 没有官中。Linux 双字节补丁暂无。 - [Kingdom: Classic](https://store.steampowered.com/app/368230/Kingdom_Classic/) 挺好玩的一个像素风横版闯关类小游戏。同系列还有几个新作。 @@ -102,6 +102,7 @@ sudo pacman -S steam 默认使用最新的 Steam 官方 Pronton 版本即可。如果不行,可尝试使用其他版本的 Proton 或者 GE Pronton。 +- [巫师 3](https://store.steampowered.com/app/292030/_3/) 完美运行。 - [赛博朋克 2077](https://store.steampowered.com/app/1091500/_2077/) 可玩,基本无闪退发生。 - [荒野大镖客 2](https://store.steampowered.com/app/1174180/Red_Dead_Redemption_2/) 完美运行。 - [骑马与砍杀 2](https://store.steampowered.com/app/261550/Mount__Blade_II_Bannerlord/) 略有卡顿,启动器存在 bug,无法启动游戏,需要进行一点修改。进入游戏文件夹的./bin/Win64_Shipping_Client 文件夹中,执行如下命令 From 7476846374831d42e3e88b48c0c4d14a9d5d4e71 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月25日 11:30:08 +0800 Subject: [PATCH 29/34] add tips for steam proton for fsync --- docs/play&office/play.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/play&office/play.md b/docs/play&office/play.md index aaeafaa..868336e 100644 --- a/docs/play&office/play.md +++ b/docs/play&office/play.md @@ -203,3 +203,5 @@ sudo grub-mkconfig -o /boot/grub/grub.cfg ``` > 如果你使用英伟达显卡,记得更换驱动为相应的 dkms 版本。一般来说较新的显卡安装 nvidia-dkms 即可。 + +最近的 steam 官方的 proton 不能正确检测系统的 fsync,依然以 esync 模式启动游戏。更换 GE 版本的 proton 可以正确检测并使用 fsync 模式启动游戏。 From 17a913143df5ae08ee2c16eff3fc345f15943238 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月26日 06:59:10 +0800 Subject: [PATCH 30/34] remove fucking idiot tencent qq --- README.md | 2 +- docs/README.md | 2 +- docs/index.html | 2 +- docs/play&office/office.md | 7 +------ 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 81da55c..b3b6bdf 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [画像:ArchLinuxStudio_ArchLinuxTutorial]

Arch Linux 安装使用教程

-每月实时更新!本书包含从 archlinux安装,科学上网,翻墙,到显卡驱动,日常软件如 QQ 和微信,另附媒体制作,编程等你可能需要的全部内容。让 Arch Linux 成为你的常用系统吧! +每月实时更新!本书包含从 archlinux安装,科学上网,翻墙,到显卡驱动,日常软件如微信,另附媒体制作,编程等你可能需要的全部内容。让 Arch Linux 成为你的常用系统吧!
提供在线网页文档,承诺健在即更新。

diff --git a/docs/README.md b/docs/README.md index 1c86312..b44521a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ # Arch Linux 安装使用教程 - ArchTutorial - Arch Linux Studio -Arch Linux 安装使用教程,每月实时更新!包含从 archlinux 安装,科学上网,翻墙,显卡驱动,日常软件如 QQ 和微信,另附媒体制作,编程等你可能需要的全部内容。让 Arch Linux 成为你的常用系统吧! +Arch Linux 安装使用教程,每月实时更新!包含从 archlinux 安装,科学上网,翻墙,显卡驱动,日常软件如微信,另附媒体制作,编程等你可能需要的全部内容。让 Arch Linux 成为你的常用系统吧! 本书提供多年使用 Linux 的一些经验,并教与需要的人。与 Linux 密不可分的另一部分: [GNU](https://www.gnu.org/home.zh-cn.html) 新同学请确保你已经按照步骤完成了`新手上路`章节中的全部内容后再向下阅读,否则可能会出现问题。 diff --git a/docs/index.html b/docs/index.html index 0a7685e..3eb18d9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -7,7 +7,7 @@ diff --git a/docs/play&office/office.md b/docs/play&office/office.md index 23f112a..b5a85e3 100644 --- a/docs/play&office/office.md +++ b/docs/play&office/office.md @@ -2,7 +2,7 @@ 本章记录日常办公需要用到的软件及配置。同时包括 QQ 等即时通讯软件和网盘、远程协助等软件的配置与使用。 -> QQ 与微信等中国国内知名闭源专有 IM 软件均存在不同程度的间谍行为(实际上不仅仅是 IM 软件,几乎所有你能见到的中国国内大型互联网 APP 均有间谍行为,美其名曰:用户行为监测或用户画像描述)。收集用户信息,扫描用户手机存储内容,监控粘贴版内容,记录手机安装 APP 列表等无耻行为几乎已经成为业内公开的秘密。 +> QQ 与微信等中国国内知名闭源专有 IM 软件均存在不同程度的间谍行为(实际上不仅仅是 IM 软件,几乎所有你能见到的中国国内大型互联网 APP 均有间谍行为,美其名曰:用户行为监测或用户画像描述)。收集用户信息,扫描用户手机存储内容,监控粘贴版内容,记录手机安装 APP 列表等无耻行为几乎已经成为业内公开的秘密。同时,腾讯一直以来不遗余力的封杀第三方客户端,导致始终没有一个稳定可用的版本。腾讯与 2020 年出品了官方版本 LinuxQQ,其品质可以用惨不忍睹形容。**我们不建议你使用 QQ 或微信这类专有间谍通讯软件作为你的主要通讯方式。本教程亦不提供任何支持。** > 欧盟与近些年出台了[GDPR 通用数据保护条例](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation),国内各大知名互联网软件公司在开发海外版软件时均需严格遵守上传数据、用户隐私等规定。然而在开发中国国内版时,则尽可能上传其能获取到的全部用户个人隐私数据,这是无耻且邪恶的。我们希望尽可能多的人抵制使用这种专有软件。 @@ -16,13 +16,8 @@ sudo pacman -S telegram-desktop ``` -中国常见的通讯软件在 ArchLinux 下也可使用。qq 轻聊版,qq 正式版,微信等可按如下安装。使用前先确保[字体](https://wiki.archlinux.org/index.php/Localization/Chinese#Fonts)的安装,否则汉字均为方块。一般 qq 安装文泉驿字体([wqy-microhei](https://archlinux.org/packages/?name=wqy-microhei))即可解决方块问题。深度于 2020 下半年放出了 deepin-wine5,基于这个最新版的 deepinwine 的 AUR 包一般都比原有的稳定。再次提醒,**我们不建议你使用 QQ 或微信这类专有间谍通讯软件作为你的主要通讯方式。** - ```bash yay -S slack-desktop #常见的团队合作交流软件 -yay -S deepin.com.qq.im.light #基于deepin wine5的qq轻聊版 -yay -S linuxqq #腾讯官方出版的辣鸡linuxqq 疯狂闪退 网上方式均无效 不建议安装 -yay -S com.qq.im.deepin #基于deepin wine5的qq yay -S com.qq.weixin.deepin #基于deepin wine5的wechat yay -S wechat-uos #2020年末最新的uos版本原生微信的arch移植版本 ``` From 27c16ce88d61df670dc145c3e0da9180402ac68b Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月26日 22:52:12 +0800 Subject: [PATCH 31/34] dont use netease uu --- docs/play&office/play.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/play&office/play.md b/docs/play&office/play.md index 868336e..87bcd37 100644 --- a/docs/play&office/play.md +++ b/docs/play&office/play.md @@ -30,7 +30,7 @@ echo powersave | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor 对于在 Linux 上玩网游,网络加速一直是一个难题,尤其是在玩一些外服网游的时候。这里提供一些思路来在 Linux 下对网游加速。 - 一些机场会提供网游游戏节点,这些节点专门为游戏优化,限制流量并且提高倍率,一般可以得到较好的加速效果。在 Linux 中配合 [透明代理](/advanced/transparentProxy),同时开启对 UDP 流量的代理加速,即可以得到优化网游网速的效果。 -- 一些中端或者高端的路由器,会内置一些市面上常见的网游加速器,如果你的路由器有这个功能,那可以直接使用路由器内置的加速器加速本机的网游流量。 +- 一些中端或者高端的路由器,会内置一些市面上常见的网游加速器,如果你的路由器有这个功能,那可以直接使用路由器内置的加速器加速本机的网游流量。不要使用网易 uu 路由器加速插件,它会错误的将 Linux PC 识别为安卓手机,根据它的逻辑,如果设备被识别为手机,那只能加速手游。 - 据网友说,wine 运行的网游加速器也能加速 Linux 中运行的网游,此条我未成功,未验证。 ## 我的世界 From 439948d2a4bb656e978c2f34981c576e8053b103 Mon Sep 17 00:00:00 2001 From: TakoTakoo <85894051+takotakoo@users.noreply.github.com> Date: 2021年7月30日 10:20:17 +0800 Subject: [PATCH 32/34] add snap ra2 cncnet --- docs/play&office/play.md | 48 ++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/docs/play&office/play.md b/docs/play&office/play.md index 87bcd37..80e95d4 100644 --- a/docs/play&office/play.md +++ b/docs/play&office/play.md @@ -158,6 +158,32 @@ sudo pacman -S giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnu 安装使用原生 [Wine](https://wiki.archlinux.org/index.php/Wine) 也可运行 windows 游戏,但是很多情况下需要你自行处理 Windows 下的依赖问题,常用的工具是 [winetricks](https://archlinux.org/packages/multilib/x86_64/winetricks/)。这种方式费时费力,只运行无需处理依赖的小游戏或者 gal 还好。 +## 性能监控 + +和微星的 Afterburner 软件中性能显示的部分类似,Linux 上也有一款同类软件可以监控游戏中的电脑性能,名为[MangoHud](https://github.com/flightlessmango/MangoHud)。使用方式可参见此项目的 readme。此外,官方提供图形化的参数设置软件 [GOverlay](https://github.com/benjamimgois/goverlay#arch--manjaro--other-arch-derivatives),可以自行选择安装。 + +## 可选内核更换 + +一般来说,采用了 fsync 的 patch 的内核游戏性能会更好。尤其在一些采用.Net 的 wine 游戏中,fsync 会有明显的性能提升[[1]](https://github.com/ValveSoftware/Proton/issues/3706#issuecomment-636632984)。目前 Linux 内核并没有加入 fsync 功能,可以更换 zen 内核。 + +```bash +sudo pacman -S linux-zen linux-zen-headers +``` + +安装完毕后重新更新一下 grub 即可。 + +```bash +sudo grub-mkconfig -o /boot/grub/grub.cfg +``` + +> 如果你使用英伟达显卡,记得更换驱动为相应的 dkms 版本。一般来说较新的显卡安装 nvidia-dkms 即可。 + +最近的 steam 官方的 proton 不能正确检测系统的 fsync,依然以 esync 模式启动游戏。更换 GE 版本的 proton 可以正确检测并使用 fsync 模式启动游戏。 + +## snap + +snap 中存在一些高质量的游戏包,如 cncnet 可以进行红警 2 的联机游戏。按照[官方 wiki](https://wiki.archlinux.org/title/Snap)安装 snap 并启动服务。接下来按照[snap 红警的 readme](https://github.com/mmtrt/cncra2yr)安装并进行设置。游戏的本体文件可以前往[红警之家下载](http://www.uc129.com/yuanchuang/)。注意,cncnet 是自己实现了一个启动器,然后调用游戏本体,这其中 cncnet 一定进行了某些 patch。直接执行游戏本体会有各种问题,目前还未找到较好的解决办法。cncnet 不能进行战役游戏。 + ## 游戏手柄 一般情况下手柄通过数据线连接计算机即可直接使用。支持无线的手柄(DUALSHOCK® 3、DUALSHOCK® 4、Xbox 360、Xbox One、8BitDo 等)也可以通过蓝牙直接连接,无需额外操作。 @@ -183,25 +209,3 @@ sudo pacman -S giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnu 3. 重启计算机,插入 Xbox 无线适配器并和 Xbox 手柄配对即可 实际体验和 Windows 下并无差异。对延迟敏感的音游(如 [喵斯快跑](https://store.steampowered.com/app/774171/Muse_Dash/))在游戏设置中微调偏移值即可。 - -## 性能监控 - -和微星的 Afterburner 软件中性能显示的部分类似,Linux 上也有一款同类软件可以监控游戏中的电脑性能,名为[MangoHud](https://github.com/flightlessmango/MangoHud)。使用方式可参见此项目的 readme。此外,官方提供图形化的参数设置软件 [GOverlay](https://github.com/benjamimgois/goverlay#arch--manjaro--other-arch-derivatives),可以自行选择安装。 - -## 可选内核更换 - -一般来说,采用了 fsync 的 patch 的内核游戏性能会更好。尤其在一些采用.Net 的 wine 游戏中,fsync 会有明显的性能提升[[1]](https://github.com/ValveSoftware/Proton/issues/3706#issuecomment-636632984)。目前 Linux 内核并没有加入 fsync 功能,可以更换 zen 内核。 - -```bash -sudo pacman -S linux-zen linux-zen-headers -``` - -安装完毕后重新更新一下 grub 即可。 - -```bash -sudo grub-mkconfig -o /boot/grub/grub.cfg -``` - -> 如果你使用英伟达显卡,记得更换驱动为相应的 dkms 版本。一般来说较新的显卡安装 nvidia-dkms 即可。 - -最近的 steam 官方的 proton 不能正确检测系统的 fsync,依然以 esync 模式启动游戏。更换 GE 版本的 proton 可以正确检测并使用 fsync 模式启动游戏。 From 3aedb537b3c000241fdd300f3b78abeaea8d37e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B0=B4=E5=BF=83?= <31151729+brook3@users.noreply.github.com> Date: Sun, 1 Aug 2021 23:49:40 +0800 Subject: [PATCH 33/34] Create CNAME --- docs/CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/CNAME diff --git a/docs/CNAME b/docs/CNAME new file mode 100644 index 0000000..69a9ee1 --- /dev/null +++ b/docs/CNAME @@ -0,0 +1 @@ +note.brook3.com \ No newline at end of file From 5a348ed0ea219128d42c21cecdf984d8dd8ee386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B0=B4=E5=BF=83?= <31151729+brook3@users.noreply.github.com> Date: Tue, 3 Aug 2021 00:33:02 +0800 Subject: [PATCH 34/34] Delete CNAME --- docs/CNAME | 1 - 1 file changed, 1 deletion(-) delete mode 100644 docs/CNAME diff --git a/docs/CNAME b/docs/CNAME deleted file mode 100644 index 69a9ee1..0000000 --- a/docs/CNAME +++ /dev/null @@ -1 +0,0 @@ -note.brook3.com \ No newline at end of file