├── .github
├── ISSUE_TEMPLATE
│ └── custom.md
└── workflows
│ └── codeql-analysis.yml
├── .gitignore
├── .prettierignore
├── .vscode
└── settings.json
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── TODO.md
├── docs
├── .nojekyll
├── README.md
├── _404.md
├── _navbar.md
├── _sidebar.md
├── about.md
├── advanced
│ ├── beAdmin.md
│ ├── beauty.md
│ ├── troubleshooting.md
│ └── undervoltage.md
├── arch.png
├── arch.svg
├── arch_christmas.png
├── arch_og.png
├── arch_seo.png
├── christmas-hat.png
├── contribution.md
├── exclusive
│ ├── code.md
│ ├── media.md
│ └── mine.md
├── favicon.ico
├── index.html
├── play&office
│ ├── android.md
│ ├── media.md
│ ├── office.md
│ └── play.md
├── postscript.md
├── res
│ ├── QvPlugins
│ │ ├── libQvPlugin-Command.so
│ │ ├── libQvPlugin-LatencyTest.so
│ │ ├── libQvPlugin-NaiveProxy.so
│ │ └── libQvPlugin-TrojanGo.so
│ ├── cgproxy-0.19-1-x86_64.pkg.tar.zst
│ ├── libqv2ray-git-r160.eb10006-1-x86_64.pkg.tar.zst
│ ├── qv2ray-git-3.0.0.rc1.r36.g0f1bf651-1-x86_64.pkg.tar.zst
│ ├── qv2ray-plugin-interface-git-r88.b767b4c-1-x86_64.pkg.tar.zst
│ ├── uvw-2.11.0_libuv_v1.43-1-x86_64.pkg.tar.zst
│ ├── v2ray-4.44.0-1-x86_64.pkg.tar.zst
│ ├── yay-bin-11.1.2-1-x86_64.pkg.tar.zst
│ └── yay-bin-12.3.3-1-x86_64.pkg.tar.zst
├── resources
│ ├── docsify-pagination.min.js
│ ├── docsify.min.js
│ ├── fonts.googleapis.css
│ ├── gitalk.css
│ ├── gitalk.min.js
│ ├── plugins
│ │ ├── gitalk.min.js
│ │ └── search.min.js
│ ├── prism-bash.min.js
│ ├── vanilla-back-to-top.min.js
│ └── vue.css
├── rookie
│ ├── DE&App.md
│ ├── archlinux_pre_install.md
│ ├── basic_install.md
│ ├── fxckGFW.md
│ ├── graphic_driver.md
│ └── transparentProxy.md
└── uk
│ ├── README.md
│ ├── _sidebar.md
│ ├── about.md
│ ├── advanced
│ ├── beAdmin.md
│ ├── beauty.md
│ ├── troubleshooting.md
│ └── undervoltage.md
│ ├── contribution.md
│ ├── exclusive
│ ├── code.md
│ ├── media.md
│ └── mine.md
│ ├── play&office
│ ├── android.md
│ ├── media.md
│ ├── office.md
│ └── play.md
│ ├── postscript.md
│ └── rookie
│ ├── DE&App.md
│ ├── archlinux_pre_install.md
│ ├── basic_install.md
│ ├── fxckGFW.md
│ ├── graphic_driver.md
│ └── transparentProxy.md
├── package.json
├── pull_request_template.md
└── yarn.lock
/.github/ISSUE_TEMPLATE/custom.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Custom issue template
3 | about: Describe this issue template's purpose here.
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.github/workflows/codeql-analysis.yml:
--------------------------------------------------------------------------------
1 | # For most projects, this workflow file will not need changing; you simply need
2 | # to commit it to your repository.
3 | #
4 | # You may wish to alter this file to override the set of languages analyzed,
5 | # or to provide custom queries or build logic.
6 | #
7 | # ******** NOTE ********
8 | # We have attempted to detect the languages in your repository. Please check
9 | # the `language` matrix defined below to confirm you have the correct set of
10 | # supported CodeQL languages.
11 | #
12 | name: "CodeQL"
13 |
14 | on:
15 | push:
16 | branches: [ master ]
17 | pull_request:
18 | # The branches below must be a subset of the branches above
19 | branches: [ master ]
20 | schedule:
21 | - cron: '43 8 * * 0'
22 |
23 | jobs:
24 | analyze:
25 | name: Analyze
26 | runs-on: ubuntu-latest
27 | permissions:
28 | actions: read
29 | contents: read
30 | security-events: write
31 |
32 | strategy:
33 | fail-fast: false
34 | matrix:
35 | language: [ 'javascript' ]
36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37 | # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
38 |
39 | steps:
40 | - name: Checkout repository
41 | uses: actions/checkout@v3
42 |
43 | # Initializes the CodeQL tools for scanning.
44 | - name: Initialize CodeQL
45 | uses: github/codeql-action/init@v2
46 | with:
47 | languages: ${{ matrix.language }}
48 | # If you wish to specify custom queries, you can do so here or in a config file.
49 | # By default, queries listed here will override any specified in a config file.
50 | # Prefix the list here with "+" to use these queries and those in the config file.
51 |
52 | # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
53 | # queries: security-extended,security-and-quality
54 |
55 |
56 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
57 | # If this step fails, then you should remove it and run the build manually (see below)
58 | - name: Autobuild
59 | uses: github/codeql-action/autobuild@v2
60 |
61 | # ℹ️ Command-line programs to run using the OS shell.
62 | # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
63 |
64 | # If the Autobuild fails above, remove it and uncomment the following three lines.
65 | # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
66 |
67 | # - run: |
68 | # echo "Run, Build Application using script"
69 | # ./location_of_script_within_repo/buildscript.sh
70 |
71 | - name: Perform CodeQL Analysis
72 | uses: github/codeql-action/analyze@v2
73 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | docs/resources/*
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.formatOnSave": true,
3 | "editor.defaultFormatter": "esbenp.prettier-vscode"
4 | }
5 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | We as members, contributors, and leaders pledge to make participation in our
6 | community a harassment-free experience for everyone, regardless of age, body
7 | size, visible or invisible disability, ethnicity, sex characteristics, gender
8 | identity and expression, level of experience, education, socio-economic status,
9 | nationality, personal appearance, race, religion, or sexual identity
10 | and orientation.
11 |
12 | We pledge to act and interact in ways that contribute to an open, welcoming,
13 | diverse, inclusive, and healthy community.
14 |
15 | ## Our Standards
16 |
17 | Examples of behavior that contributes to a positive environment for our
18 | community include:
19 |
20 | * Demonstrating empathy and kindness toward other people
21 | * Being respectful of differing opinions, viewpoints, and experiences
22 | * Giving and gracefully accepting constructive feedback
23 | * Accepting responsibility and apologizing to those affected by our mistakes,
24 | and learning from the experience
25 | * Focusing on what is best not just for us as individuals, but for the
26 | overall community
27 |
28 | Examples of unacceptable behavior include:
29 |
30 | * The use of sexualized language or imagery, and sexual attention or
31 | advances of any kind
32 | * Trolling, insulting or derogatory comments, and personal or political attacks
33 | * Public or private harassment
34 | * Publishing others' private information, such as a physical or email
35 | address, without their explicit permission
36 | * Other conduct which could reasonably be considered inappropriate in a
37 | professional setting
38 |
39 | ## Enforcement Responsibilities
40 |
41 | Community leaders are responsible for clarifying and enforcing our standards of
42 | acceptable behavior and will take appropriate and fair corrective action in
43 | response to any behavior that they deem inappropriate, threatening, offensive,
44 | or harmful.
45 |
46 | Community leaders have the right and responsibility to remove, edit, or reject
47 | comments, commits, code, wiki edits, issues, and other contributions that are
48 | not aligned to this Code of Conduct, and will communicate reasons for moderation
49 | decisions when appropriate.
50 |
51 | ## Scope
52 |
53 | This Code of Conduct applies within all community spaces, and also applies when
54 | an individual is officially representing the community in public spaces.
55 | Examples of representing our community include using an official e-mail address,
56 | posting via an official social media account, or acting as an appointed
57 | representative at an online or offline event.
58 |
59 | ## Enforcement
60 |
61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
62 | reported to the community leaders responsible for enforcement at
63 | .
64 | All complaints will be reviewed and investigated promptly and fairly.
65 |
66 | All community leaders are obligated to respect the privacy and security of the
67 | reporter of any incident.
68 |
69 | ## Enforcement Guidelines
70 |
71 | Community leaders will follow these Community Impact Guidelines in determining
72 | the consequences for any action they deem in violation of this Code of Conduct:
73 |
74 | ### 1. Correction
75 |
76 | **Community Impact**: Use of inappropriate language or other behavior deemed
77 | unprofessional or unwelcome in the community.
78 |
79 | **Consequence**: A private, written warning from community leaders, providing
80 | clarity around the nature of the violation and an explanation of why the
81 | behavior was inappropriate. A public apology may be requested.
82 |
83 | ### 2. Warning
84 |
85 | **Community Impact**: A violation through a single incident or series
86 | of actions.
87 |
88 | **Consequence**: A warning with consequences for continued behavior. No
89 | interaction with the people involved, including unsolicited interaction with
90 | those enforcing the Code of Conduct, for a specified period of time. This
91 | includes avoiding interactions in community spaces as well as external channels
92 | like social media. Violating these terms may lead to a temporary or
93 | permanent ban.
94 |
95 | ### 3. Temporary Ban
96 |
97 | **Community Impact**: A serious violation of community standards, including
98 | sustained inappropriate behavior.
99 |
100 | **Consequence**: A temporary ban from any sort of interaction or public
101 | communication with the community for a specified period of time. No public or
102 | private interaction with the people involved, including unsolicited interaction
103 | with those enforcing the Code of Conduct, is allowed during this period.
104 | Violating these terms may lead to a permanent ban.
105 |
106 | ### 4. Permanent Ban
107 |
108 | **Community Impact**: Demonstrating a pattern of violation of community
109 | standards, including sustained inappropriate behavior, harassment of an
110 | individual, or aggression toward or disparagement of classes of individuals.
111 |
112 | **Consequence**: A permanent ban from any sort of public interaction within
113 | the community.
114 |
115 | ## Attribution
116 |
117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118 | version 2.0, available at
119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120 |
121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct
122 | enforcement ladder](https://github.com/mozilla/diversity).
123 |
124 | [homepage]: https://www.contributor-covenant.org
125 |
126 | For answers to common questions about this code of conduct, see the FAQ at
127 | https://www.contributor-covenant.org/faq. Translations are available at
128 | https://www.contributor-covenant.org/translations.
129 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # CONTRIBUTING
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
\n \n ',e=Docsify.dom.create("div",n),n=Docsify.dom.find("aside");Docsify.dom.toggleClass(e,"search"),Docsify.dom.before(n,e)}(i),n=Docsify.dom.find("div.search"),a=Docsify.dom.find(n,"input"),e=Docsify.dom.find(n,".input-wrap"),Docsify.dom.on(n,"click",function(e){return-1===["A","H2","P","EM"].indexOf(e.target.tagName)&&e.stopPropagation()}),Docsify.dom.on(a,"input",function(n){clearTimeout(t),t=setTimeout(function(e){return c(n.target.value.trim())},100)}),Docsify.dom.on(e,"click",function(e){"INPUT"!==e.target.tagName&&(a.value="",c())}),i&&setTimeout(function(e){return c(i)},500)}function v(e,n){var t,a,i,r,o;d(e),t=e.placeholder,a=n.route.path,(r=Docsify.dom.getNode('.search input[type="search"]'))&&("string"==typeof t?r.placeholder=t:(i=Object.keys(t).filter(function(e){return-1>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:a},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:a},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:a.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:a.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],s=a.variable[1].inside,i=0;i0&&void 0!==arguments[0]?arguments[0]:{},r=i.backgroundColor,d=void 0===r?"#000":r,a=i.cornerOffset,c=void 0===a?20:a,s=i.diameter,l=void 0===s?56:s,u=i.ease,p=void 0===u?function(o){return.5*(1-Math.cos(Math.PI*o))}:u,m=i.id,h=void 0===m?"back-to-top":m,b=i.innerHTML,v=void 0===b?'':b,f=i.onClickScrollTo,x=void 0===f?0:f,w=i.scrollContainer,g=void 0===w?document.body:w,k=i.scrollDuration,y=void 0===k?100:k,T=i.showWhenScrollTopIs,M=void 0===T?1:T,z=i.size,E=void 0===z?l:z,C=i.textColor,L=void 0===C?"#fff":C,N=i.zIndex,I=void 0===N?1:N,A=g===document.body,B=A&&document.documentElement;o=Math.round(.43*E),t=Math.round(.29*E),e="#"+h+"{background:"+d+";-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;bottom:"+c+"px;-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.26);-moz-box-shadow:0 2px 5px 0 rgba(0,0,0,.26);box-shadow:0 2px 5px 0 rgba(0,0,0,.26);color:"+L+";cursor:pointer;display:block;height:"+E+"px;opacity:1;outline:0;position:fixed;right:"+c+"px;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-transition:bottom .2s,opacity .2s;-o-transition:bottom .2s,opacity .2s;-moz-transition:bottom .2s,opacity .2s;transition:bottom .2s,opacity .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:"+E+"px;z-index:"+I+"}#"+h+" svg{display:block;fill:currentColor;height:"+o+"px;margin:"+t+"px auto 0;width:"+o+"px}#"+h+".hidden{bottom:-"+E+"px;opacity:0}",(n=document.createElement("style")).appendChild(document.createTextNode(e)),document.head.insertAdjacentElement("afterbegin",n);var D=function(){var o=document.createElement("div");return o.id=h,o.className="hidden",o.innerHTML=v,o.addEventListener("click",function(o){o.preventDefault(),function(){var o="function"==typeof x?x():x,t=window,e=t.performance,n=t.requestAnimationFrame;if(y<=0||void 0===e||void 0===n)return q(o);var i=e.now(),r=j(),d=r-o;n(function o(t){var e=Math.min((t-i)/y,1);q(r-Math.round(p(e)*d)),e<1&&n(o)})}()}),document.body.appendChild(o),o}(),H=!0;function S(){j()>=M?function(){if(!H)return;D.className="",H=!1}():function(){if(H)return;D.className="hidden",H=!0}()}function j(){return g.scrollTop||B&&document.documentElement.scrollTop||0}function q(o){g.scrollTop=o,B&&(document.documentElement.scrollTop=o)}(A?window:g).addEventListener("scroll",S),S()}
--------------------------------------------------------------------------------
/docs/rookie/archlinux_pre_install.md:
--------------------------------------------------------------------------------
1 | # 安装前的准备
2 |
3 | 由于当前 UEFI 已普及十余年,安装将全部以 UEFI+GPT 的形式进行,传统 BIOS 方式不再赘述。
4 |
5 | ## 0.终端编辑器 vim 的使用
6 |
7 | 在安装 Arch Linux 的过程中,需要使用到 vim 编辑器,如果你不会使用,这里首先进行一个简要的介绍,你需要掌握如下基本操作。实践的环境可以找一个在线的 Linux 体验环境进行 vim 的尝试,如[copy.sh](https://copy.sh/v86/?profile=archlinux)。注意,由于其是在线环境,所以性能较差,执行 vim 命令时需要耐心等待。
8 |
9 | ```bash
10 | vim 1.txt #创建并编辑名为1.txt的文件
11 | ```
12 |
13 | 你可以看到进入了一个空的界面。此时你处在 vim 的`命令模式`。在`命令模式`下,可以用一些快捷指令来对文本进行操作。
14 | 现在我们输入`a`进入 vim 的`编辑模式`,此时输入任意文本,即可进行编辑。
15 | 在输入完成后,我们按下 Esc 键,即可从`编辑模式`退出到`命令模式`。此时输入`:wq`即可保存并退出 vim。
16 | 下面介绍一些在命令模式下常用的命令
17 |
18 | ```bash
19 | :wq # 保存退出
20 | :q! # 不保存,强制退出
21 | dd # 删除一行
22 | 2dd # 删除两行
23 | gg # 回到文本第一行
24 | shift+g # 转到文本最后一行
25 | /xxx # 在文中搜索内容'xxx' 回车搜索,按n键转到下一个
26 | ?xxx # 反向搜索
27 | ```
28 |
29 | 拓展链接:需要完整教程的读者可以在终端中输入命令`vimtutor`来学习完整的 vim 教程。
30 |
31 | ## 1.确保网络环境
32 |
33 | 如果你可以使用路由器分接出来的网线,以 dhcp 的方式直接上网,那么不用准备什么。如果你的环境只能使用无线网络安装,需要事先把自己所用的 wifi 名称改成自己能记住的英文名称。因为**安装时无法显示和输入中文名的 wifi**,你会看到一堆不知道是什么的方块,并且在安装过程中你将没有办法输入中文的无线名称进行连接。虽然通过一些繁琐的步骤可以解决终端中文的问题,但是显然这么做在安装 Arch Linux 时毫无必要。
34 |
35 | 其次,有些笔记本电脑上存在无线网卡的硬件开关或者键盘控制,开机后安装前需要**确保你的无线网卡硬件开关处于打开状态**。
36 |
37 | ## 2.刻录启动优盘
38 |
39 | 准备一个 2G 以上的优盘,刻录一个安装启动盘。安装镜像 iso 在[下载页面](https://archlinux.org/download/)下载,注意,你需要选择最新的镜像下载,选择通过磁力链接或 torrent 下载,下载完成后,还需要在 archlinux 下载页面下载`PGP signature`签名文件(不要从镜像源下载签名文件),将签名文件和 iso 镜像置于同一文件夹,随后进行对镜像的签名校验,以保证下载的镜像是完整,无错误的,未被篡改的。若你使用 Linux,执行以下命令,确保输出完好的签名。具体镜像名根据名字自行修改。如果你使用其他系统,请自行搜索验证签名的方式。
40 |
41 | ```bash
42 | gpg --keyserver-options auto-key-retrieve --verify archlinux-202x.0x.01-x86_64.iso.sig
43 | ```
44 |
45 | 注意,这里的签名校验**非常重要**,这可以保证你的安装镜像是未被篡改的,同时可以保证你在使用安装盘安装系统时,用正确的公钥校验安装包。
46 |
47 | ---
48 |
49 | Windows 下推荐使用[ventoy](https://www.ventoy.net/cn/doc_start.html)或者[Rufus](https://rufus.ie/)或者[etcher](https://github.com/balena-io/etcher)进行优盘刻录。三者皆为自由软件。具体操作请自行查阅,都非常简单。
50 |
51 | Linux 下可以直接用 dd 命令进行刻录。注意 of 的参数为 sdx,不是 sdx1 sdx2 等。
52 |
53 | ```bash
54 | sudo dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync
55 | ```
56 |
57 | > bs=4M 指定一个较为合理的文件输入输出块大小。
58 | > status=progress 用来输出刻录过程总的信息。
59 | > oflag=sync 用来控制写入数据时的行为特征。确保命令结束时数据及元数据真正写入磁盘,而不是刚写入缓存就返回。
60 |
61 | ## 3.进入主板 BIOS 进行设置
62 |
63 | 插入优盘并开机。在开机的时候,按下 F2/F8/F10/DEL 等(取决与你的主板型号,具体请查阅你主板的相关信息)按键,进入主板的 BIOS 设置界面。
64 |
65 | ## 4.关闭主板设置中的 Secure Boot
66 |
67 | 在类似名为 `security` 的选项卡中,找到一项名为 Secure Boot(名称可能略有差异)的选项,选择 Disable 将其禁用。
68 |
69 | ## 5.调整启动方式为 UEFI
70 |
71 | 在某些旧的主板里,需要调整启动模式为 UEFI,而非传统的 BIOS/CSM。在类似名为 `boot` 的选项卡中,找到类似名为 Boot Mode 的选项,确保将其调整为 UEFI only,而非 legacy/CSM。
72 |
73 | ## 6.调整硬盘启动顺序
74 |
75 | 在类似名为 `boot` 的选项卡中,找到类似名为 Boot Options(名称可能略有差异)的设置选项,将 USB 优盘的启动顺序调至首位。
76 |
77 | ## 7.准备安装
78 |
79 | 最后保存 BIOS 设置并退出,一般的按键是 F10。此时系统重启,不出意外你应该已经进入 archlinux 的安装界面。
80 |
--------------------------------------------------------------------------------
/docs/rookie/basic_install.md:
--------------------------------------------------------------------------------
1 | # Arch Linux 基础安装
2 |
3 | 本节从安装最基础的无图形化 ArchLinux 系统开始。[官方安装指南](https://wiki.archlinux.org/index.php/Installation_guide)
4 |
5 | ## 0.禁用 reflector
6 |
7 | reflector 会为你选择速度合适的镜像源,但其结果并不准确,同时会清空配置文件中的内容,对于新人来讲并不适用,我们首先对其进行禁用。
8 |
9 | ```bash
10 | systemctl stop reflector.service
11 | ```
12 |
13 | ## 1.再次确保是否为 UEFI 模式
14 |
15 | 在一系列的信息刷屏后,可以看到已经以 root 登陆安装系统了,此时可以执行的命令:
16 |
17 | ```bash
18 | ls /sys/firmware/efi/efivars
19 | ```
20 |
21 | 若输出了一堆东西,即 efi 变量,则说明已在 UEFI 模式。否则请确认你的启动方式是否为 UEFI。
22 |
23 | ## 2.连接网络
24 |
25 | 一般来说,你连接的网络几乎均可以通过 DHCP 的方式来进行 IP 地址和 DNS 的相关设置,你无需进行额外操作。在没有合适网络的情况下,使用手机的移动热点也是很方便的选择。如果你的网络环境需要配置静态 IP 和 DNS,请自行参考 Arch Wiki。
26 |
27 | 对于有线连接来说,直接插入网线即可。
28 |
29 | 对于无线连接,则需进行如下操作进行网络连接。
30 |
31 | 无线连接使用 iwctl 命令进行,按照如下步骤进行网络连接:
32 |
33 | ```bash
34 | iwctl #执行iwctl命令,进入交互式命令行
35 | device list #列出设备名,比如无线网卡看到叫 wlan0
36 | station wlan0 scan #扫描网络
37 | station wlan0 get-networks #列出网络 比如想连接YOUR-WIRELESS-NAME这个无线
38 | station wlan0 connect YOUR-WIRELESS-NAME #进行连接 输入密码即可
39 | exit #成功后exit退出
40 | ```
41 |
42 | 可以等待几秒等网络建立链接后再进行下面测试网络的操作。
43 |
44 | ```bash
45 | ping www.gnu.org
46 | ```
47 |
48 | ---
49 |
50 | **如果**你不能正常连接网络,首先确认系统已经启用网络接口[[1]](https://wiki.archlinux.org/index.php/Network_configuration/Wireless#Check_the_driver_status)。
51 |
52 | ```bash
53 | ip link #列出网络接口信息,如不能联网的设备叫wlan0
54 | ip link set wlan0 up #比如无线网卡看到叫 wlan0
55 | ```
56 |
57 | **如果**随后看到类似`Operation not possible due to RF-kill`的报错,继续尝试`rfkill`命令来解锁无线网卡。
58 |
59 | ```bash
60 | rfkill unblock wifi
61 | ```
62 |
63 | ## 3.更新系统时钟
64 |
65 | ```bash
66 | timedatectl set-ntp true #将系统时间与网络时间进行同步
67 | timedatectl status #检查服务状态
68 | ```
69 |
70 | ## 4.分区
71 |
72 | 这里总共设置三个分区,是一个**我们认为**较为通用的方案。此步骤会清除磁盘中全部内容,请事先确认。
73 |
74 | - EFI 分区[[2]](https://wiki.archlinux.org/title/EFI_system_partition#Mount_the_partition): `/efi` 800M
75 | - 根目录: `/` 100G
76 | - 用户主目录: `/home` 剩余全部
77 |
78 | > 这里根目录的大小仅为参考,一般来说个人日常使用的 linux 分配 100G 已经够用了。根目录最小建议不小于 50G,根目录过小会造成无法更新系统软件包等问题。
79 |
80 | 首先将磁盘转换为 gpt 类型,这里假设比如你想安装的磁盘名称为 sdx。如果你使用 NVME 的固态硬盘,你看到的磁盘名称可能为 nvme0n1。
81 |
82 | ```bash
83 | lsblk #显示分区情况 找到你想安装的磁盘名称
84 | parted /dev/sdx #执行parted,进入交互式命令行,进行磁盘类型变更
85 | (parted)mktable #输入mktable
86 | New disk label type? gpt #输入gpt 将磁盘类型转换为gpt 如磁盘有数据会警告,输入yes即可
87 | quit #最后quit退出parted命令行交互
88 |
89 | ```
90 |
91 | 接下来使用 cfdisk 命令对磁盘分区。进入 cfdisk 后的操作很直观,用键盘的方向键、Tab 键、回车键配合即可操作分配各个分区的大小与格式。一般建议将 EFI 分区设置为磁盘的第一个分区,据说有些主板如果不将 EFI 设置为第一个分区,可能有不兼容的问题。其中 EFI 分区选择`EFI System`类型,其余两个分区选择`Linux filesystem`类型。
92 |
93 | ```bash
94 | cfdisk /dev/sdx #来执行分区操作,分配各个分区大小,类型
95 | fdisk -l #分区结束后, 复查磁盘情况
96 | ```
97 |
98 | ## 5.格式化
99 |
100 | 建立好分区后,需要对分区用合适的文件系统进行格式化。这里用`mkfs.ext4`命令格式化根分区与 home 分区,用`mkfs.vfat`命令格式化 EFI 分区。如下命令中的 sdax 中,x 代表分区的序号。格式化命令要与上一步分区中生成的分区名字对应才可以。
101 |
102 | 磁盘若事先有数据,会提示你: 'proceed any way?' 按 y 回车继续即可。
103 |
104 | ```bash
105 | mkfs.ext4 /dev/sdax #格式化根目录和home目录的两个分区
106 | mkfs.vfat /dev/sdax #格式化efi分区
107 | ```
108 |
109 | ## 6.挂载
110 |
111 | 在挂载时,挂载是有顺序的,先挂载根分区,再挂载 EFI 分区。
112 | 这里的 sdax 只是例子,具体根据你自身的实际分区情况来。
113 |
114 | ```bash
115 | mount /dev/sdax /mnt
116 | mkdir /mnt/efi #创建efi目录
117 | mount /dev/sdax /mnt/efi
118 | mkdir /mnt/home #创建home目录
119 | mount /dev/sdax /mnt/home
120 | ```
121 |
122 | ## 7.镜像源的选择
123 |
124 | 使用如下命令编辑镜像列表:
125 |
126 | ```bash
127 | vim /etc/pacman.d/mirrorlist
128 | ```
129 |
130 | 其中的首行是将会使用的镜像源。添加中科大或者清华的放在最上面即可。
131 |
132 | ```
133 | Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
134 | Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
135 | ```
136 |
137 | 如果其速度不佳,可以手动指定其他镜像源。完整的镜像源列表可参考官方[镜像源生成器](https://archlinux.org/mirrorlist/)。
138 |
139 | > 这里使用中国境内的镜像源以提高访问速度。然而这存在问题,镜像源(如 arch linux 清华镜像源)以及第三方源(如 archlinux-cn)可以知道你的 ip 是什么,什么时候更新了系统,什么时候检查了系统,什么时候更新了什么软件,你安装的软件列表是什么。在威权国家的镜像源维护者完全有可能根据威权当局的要求提供这些数据,很多维护者在网络上几乎是实名上网的,他们没有任何抵抗能力,进一步的,威权国家可以根据这些元数据与你产生的其他元数据进行比对,从而对你进行进一步的定位与辨识。简单举一个例子,要求维护者提供或监视安装了 v2ray/qv2ray 等软件包的使用者的 ip,以及安装时间,以及其全部软件列表。
140 |
141 | > 如果你在安装 arch linux 时的网络已经处于代理模式下,可以选择一个与你代理位置较近的,非威权国家的镜像源来使用。如果你在安装 arch linux 时的网络环境没有代理,那么在安装结束后,需要尽快更换一个非威权国家的镜像源来使用。如下列举一些较为优质的国际源。
142 |
143 | ```bash
144 | Server = https://mirror.archlinux.tw/ArchLinux/$repo/os/$arch #东亚地区:中华民国
145 | Server = https://mirror.0xem.ma/arch/$repo/os/$arch #北美洲地区:加拿大
146 | Server = https://mirror.aktkn.sg/archlinux/$repo/os/$arch #东南亚地区:新加坡
147 | Server = https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch #欧洲地区:英国
148 | Server = https://mirrors.cat.net/archlinux/$repo/os/$arch #东亚地区:日本
149 | ```
150 |
151 | ## 8.安装系统
152 |
153 | 必须的基础包
154 |
155 | ```bash
156 | pacstrap /mnt base base-devel linux linux-headers linux-firmware #base-devel在AUR包的安装是必须的
157 | ```
158 |
159 | > 注意,目前需要首先确保等待 pacman-init.service 服务启动后,才能执行 pacstrap 或 pacman 命令安装包,否则会引发错误使得安装过程无法进行。使用`systemctl status pacman-init.service`命令来检查当前服务状态。更多内容参考 bbs 中的[帖子](https://bbs.archlinux.org/viewtopic.php?id=278518&p=2)
160 |
161 | > 若安装时出现密钥环相关错误,参考此文章[GnuPG-2.1 and the pacman keyring](https://archlinux.org/news/gnupg-21-and-the-pacman-keyring/)并执行其中的命令。
162 |
163 | 必须的功能性软件
164 |
165 | ```bash
166 | pacstrap /mnt dhcpcd iwd vim bash-completion #一个有线所需(iwd也需要dhcpcd) 一个无线所需 一个编辑器 一个补全工具
167 | ```
168 |
169 | ## 9.生成 fstab 文件
170 |
171 | fstab 用来定义磁盘分区
172 |
173 | ```bash
174 | genfstab -U /mnt >> /mnt/etc/fstab
175 | ```
176 |
177 | 复查一下 /mnt/etc/fstab 确保没有错误
178 |
179 | ```bash
180 | cat /mnt/etc/fstab
181 | ```
182 |
183 | ## 10.change root
184 |
185 | 把环境切换到新系统的/mnt 下
186 |
187 | ```bash
188 | arch-chroot /mnt
189 | ```
190 |
191 | ## 11.时区设置
192 |
193 | 设置时区,在/etc/localtime 下用/usr 中合适的时区创建符号连接。如下设置上海时区。
194 |
195 | ```bash
196 | ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
197 | ```
198 |
199 | 随后进行硬件时间设置,将当前的正确 UTC 时间写入硬件时间。
200 |
201 | ```bash
202 | hwclock --systohc
203 | ```
204 |
205 | ## 12.设置 Locale 进行本地化
206 |
207 | Locale 决定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。
208 |
209 | 首先使用 vim 编辑 /etc/locale.gen,去掉 en_US.UTF-8 所在行以及 zh_CN.UTF-8 所在行的注释符号(#)。这里需要使用 vim 的寻找以及编辑功能,如果你忘记了,请翻到上一节复习 vim 的操作。
210 |
211 | ```bash
212 | vim /etc/locale.gen
213 | ```
214 |
215 | 然后使用如下命令生成 locale。
216 |
217 | ```bash
218 | locale-gen
219 | ```
220 |
221 | 最后向 /etc/locale.conf 导入内容
222 |
223 | ```bash
224 | echo 'LANG=en_US.UTF-8' > /etc/locale.conf
225 | ```
226 |
227 | ## 13.设置主机名
228 |
229 | 首先在`/etc/hostname`设置主机名
230 |
231 | ```bash
232 | vim /etc/hostname
233 | ```
234 |
235 | 加入你想为主机取的主机名,这里比如叫 myarch。
236 |
237 | 接下来在`/etc/hosts`设置与其匹配的条目。
238 |
239 | ```
240 | vim /etc/hosts
241 | ```
242 |
243 | 加入如下内容
244 |
245 | ```bash
246 | 127.0.0.1 localhost
247 | ::1 localhost
248 | 127.0.1.1 myarch
249 | ```
250 |
251 | > 某些情况下如不设置主机名,在 KDE 下可能会存在网络情况变更时无法启动 GUI 应用的问题,在终端中出现形如`No protocol specified qt.qpa.xcb: could not connect to display`的错误,这种情况较为少见[[3]](https://bbs.archlinux.org/viewtopic.php?id=241338)[[4]](https://bbs.archlinux.org/viewtopic.php?id=243674)[[5]](https://wiki.archlinux.org/title/Network_configuration#Local_hostname_resolution)。
252 |
253 | ## 14.为 root 用户设置密码
254 |
255 | ```bash
256 | passwd root
257 | ```
258 |
259 | ## 15.安装微码
260 |
261 | ```bash
262 | pacman -S intel-ucode #Intel
263 | pacman -S amd-ucode #AMD
264 | ```
265 |
266 | ## 16.安装引导程序
267 |
268 | ```bash
269 | pacman -S grub efibootmgr #grub是启动引导器,efibootmgr被 grub 脚本用来将启动项写入 NVRAM。
270 | grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
271 | ```
272 |
273 | 接下来编辑/etc/default/grub 文件,去掉`GRUB_CMDLINE_LINUX_DEFAULT`一行中最后的 quiet 参数,同时把 log level 的数值从 3 改成 5。这样是为了后续如果出现系统错误,方便排错。同时在同一行加入 nowatchdog 参数,这可以显著提高开关机速度。这里需要使用 vim 的编辑功能,如果你忘记了,请翻到上一节复习 vim 的操作。
274 |
275 | ```bash
276 | vim /etc/default/grub
277 | ```
278 |
279 | 使用 N 卡的用户需要注意,KDE6 默认使用 wayland session 为默认,如果你需要使用 wayland,则需开启 DRM。同样编辑/etc/default/grub 文件,在`GRUB_CMDLINE_LINUX_DEFAULT`一行中最后的加入参数:nvidia_drm.modeset=1
280 |
281 | 最后生成 GRUB 所需的配置文件
282 |
283 | ```bash
284 | grub-mkconfig -o /boot/grub/grub.cfg
285 | ```
286 |
287 | > 我们在之前的命令中指定了 bootloader-id 为 GRUB,这一般不会出现问题。然而在某些主板安装完成后,你会发现没有 nvme 启动条目。这是因为某些主板的 UEFI 固件在显示 UEFI NVRAM 引导条目之前,需要在特定的位置存放可引导文件,不支持自定义存放 efi 文件[[6]](https://wiki.archlinux.org/index.php/GRUB#Default/fallback_boot_path)。解决方式是使用`--removable` 参数解决一些主板 NVRAM 的兼容性问题。
288 |
289 | ```bash
290 | grub-install --target=x86_64-efi --efi-directory=/efi --removable
291 | grub-mkconfig -o /boot/grub/grub.cfg
292 | ```
293 |
294 | 除此之外,如果你的主板是一些较老的型号,如 intel 9 系列以下或者较老 AMD 的主板,它们很可能不支持从 nvme 启动系统,虽然可以通过修改 BIOS 加入 NVME 支持模块来解决,但这不在本文讨论范围内。
295 |
296 | ## 17.完成安装
297 |
298 | ```bash
299 | exit # 退回安装环境#
300 | umount -R /mnt # 卸载新分区
301 | reboot # 重启
302 | ```
303 |
304 | 注意,重启前要先拔掉优盘,否则你重启后还是进安装程序而不是安装好的系统。重启后,开启 dhcp 服务,即可连接网络
305 |
306 | ```bash
307 | systemctl start dhcpcd #立即启动dhcp
308 | ping www.gnu.org #测试网络连接
309 | ```
310 |
311 | 若为无线链接,则还需要启动 iwd 才可以使用 iwctl 连接网络
312 |
313 | ```bash
314 | systemctl start iwd #立即启动iwd
315 | iwctl #和之前的方式一样,连接无线网络
316 | ```
317 |
318 | 到此为止,一个基础的,无 UI 界面的 Arch Linux 已经安装完成了。紧接着下一节,我们来安装图形界面。
319 |
320 | > archlinux 在 2021 年 4 月在安装镜像中内置了一个[安装脚本](https://archlinux.org/packages/extra/any/archinstall/),提供一些选项,即可快速安装。其和所有一键安装脚本类似,提供自动化,且不灵活的安装过程。不建议使用这种安装脚本,除了不灵活的原因,初学者也无法在这种安装过程中学到任何东西。如果你因为任何原因需要快速启动一个基础的 archlinux 环境,那么可以尝试此脚本。
321 |
--------------------------------------------------------------------------------
/docs/rookie/fxckGFW.md:
--------------------------------------------------------------------------------
1 | # 魔法学院
2 |
3 | > **[访问互联网权](https://zh.wikipedia.org/wiki/%E8%A8%AA%E5%95%8F%E4%BA%92%E8%81%AF%E7%B6%B2%E6%AC%8A)认为所有人必须能够访问互联网,以行使和享受其言论自由、通信自由、见解自由以及其他基本人权。任何国家及地区不合理地限制个人对互联网的访问都是对基本人权的践踏。**
4 |
5 | **为了你的人身安全,不要在任何装有具有间谍性质的专有软件的设备上使用科学上网客户端。这些设备可以是手机,PC 等。在手机上,威权政府的监管机构可以轻易得到你所安装的应用列表,并可以通过各种手段关联并查询到你所做的事和发表的言论,并采取进一步控制,这是有先例的。理论上,在 PC 设备上也完全存在这种可能。如果你必须要使用微信,QQ 等具有间谍性质的专有软件,请在完全隔离的物理设备中使用。更多内容请阅读[现代隐私保护指南](https://archlinuxstudio.github.io/ModernSecurityProtectionGuide/#/),这对你的安全非常重要!**
6 |
7 | 本节描述如何在 linux 下进行科学上网。本节以及后续的全局代理章节都是**必读章节**。如果没有配置好科学上网,那么你在日常使用中会遇到各种问题,不论是被封锁的资源或代码,还是查阅相关问题资料,你都会有可能无法下载和浏览。所有人**必须**配置好科学上网再继续。
8 |
9 | ## 1.节点的准备
10 |
11 | 简单来讲节点是形如如下的神秘链接,不论你以何种方式获得的这些连接,如果你已经拥有,可以直接阅读下面一小节。
12 |
13 | ```txt
14 | ss://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
15 | vmess://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
16 | ```
17 |
18 | 如果你没有这些连接,可以自行部署或者购买机场的订阅服务。
19 |
20 | 如果自行部署,你则需要自行购买处于自由互联网的服务器并进行节点搭建,这不在本文讨论范围内,仅提供三篇 GFW Report 的高质量文章作为参考。但是这些文章已被 GFW 屏蔽。我们之后会提供一些办法解决这个问题。
21 |
22 |
23 |
24 | - [如何部署一台抗封锁的 Shadowsocks-libev 服务器](https://gfw.report/blog/ss_tutorial/zh/)
25 | - [防御 GFW 主动探测的实用指南](https://gfw.report/blog/ss_advise/zh/)
26 | - [Shadowsocks 是如何被检测和封锁的](https://gfw.report/talks/imc20/zh/)
27 |
28 | 对于服务器的购买,我们提供一个网址以供参考: https://bitcoin-vps.com/ 。bitcoin-vps 提供了非常详尽、且及时更新的服务器供应商列表,这些服务器供应商均在不同程度上支持使用加密货币进行支付,如比特币、以太坊等等。使用加密货币支付的好处在于,在正确操作的基础上,你可以完全保障自己的隐私安全。使用支付宝等实名支付手段购买类似的服务是不安全的,我们希望读者们可以认识到加密货币在各方面的价值,并认识到加密货币可以作为你的隐私保护者的存在。
29 |
30 | ---
31 |
32 | 如果购买机场的订阅服务,可以参考它们的订阅流程以获取节点。在我们列出一些较为可信的机场服务以供选择,但是**我们不提供任何担保**。需要提醒的是,机场服务属于灰色产业,随时有停止服务的可能,购买建议以月付进行购买以避免过大损失。关于机场审计规则,我们的观点是"我可以不看,但是你不可以封禁"。对于机场审计程度,读者可根据自身实际情况自行评估。
33 |
34 | - [GLaDOS](https://www.glados.rocks/landing/9FMKX-GYLMK-ZYIZW-5U3T0) 在使用邮箱注册后,使用激活码`9FMKX-GYLMK-ZYIZW-5U3T0`激活账号后即可获得 5 天免费试用时长和 10GB 试用流量。 GLaDOS 的优点是可以免费使用,运行时间较长,比较可信。 除此之外,GLaDOS 是少数拥有 Trojan 节点的机场之一。 缺点是速度算不上非常快。 其审核规则,注册账号后可以进入后台面板自行查看。 根据我们的测试,它没有严格按照审计规则进行审计。
35 |
36 | ---
37 |
38 | 如果你不想花任何费用,可安装[赛风](https://psiphon3.com/zh/index.html)这类软件。赛风是自由软件。
39 |
40 | 如果你使用赛风,可以非常方便的发送空邮件到get@psiphon3.com以获取赛风下载链接。赛风应用目前只支持 Windows\Android\IOS\MacOS 平台。当你在这些平台上能够访问自由互联网时,可以去各个渠道搜索可用的节点和代理资源,如[这个](https://t.me/wtovpn)或者[这个](https://t.me/TG_Mtproxy_1)。注意,使用公共节点需要自行承担可能的风险。
41 |
42 | ## 2.安装
43 |
44 | Qv2ray 和 V2rayA 是两款非常优秀的在 Linux 上可用的科学上网通用客户端。你可以把二者都安装,以作备用。其中 V2rayA 是一款浏览器客户端,它可以在服务器等 headless 环境中通过远程在浏览器端访问。Qv2ray 是一款经典的使用 QT 开发的 C/S 架构桌面端软件。
45 |
46 |
47 |
48 | ### v2ray
49 |
50 | v2ray 是使用 Qv2ray 以及 V2rayA 的前提。需要先进行安装。在前面[镜像源的选择](/rookie/basic_install?id=_7镜像源的选择)一节中我们提到,读者应该尽快更换非威权国家的镜像源以保障自身的安全,**在此处安装 v2ray 之前是你更换非威权国家的镜像源的最晚时刻**。使用安全的镜像源安装 v2ray。
51 |
52 | ```bash
53 | sudo pacman -S v2ray
54 | ```
55 |
56 | 如果在你的网络环境下,没有较快速度的或可达的安全镜像源来安装 v2ray,你可以执行如下命令安装 ArchLinuxStudio 为你提供的 v2ray 安装包。
57 |
58 | ```bash
59 | wget https://archlinuxstudio.github.io/ArchLinuxTutorial/res/v2ray-4.44.0-1-x86_64.pkg.tar.zst
60 | sudo pacman -U v2ray-4.44.0-1-x86_64.pkg.tar.zst
61 | ```
62 |
63 | ### V2rayA
64 |
65 | V2rayA 是一个浏览器客户端,使用非常方便。由于作者提供了在墙内的下载地址,可以直接在 AUR 进行安装。安装后需启动服务。V2rayA 更新频繁,开发活跃,并且其安装和使用流程都对新手更加友好,推荐新人使用 V2rayA 进行科学上网。
66 |
67 | ```bash
68 | yay -S v2raya-bin
69 | sudo systemctl enable --now v2raya
70 | ```
71 |
72 | 随后在 KDE 菜单中搜索 v2raya,点击即可打开浏览器页面。登陆后在其中加入订阅即可使用。更多使用方法请看[官方文档](https://v2raya.org/)与[项目地址](https://github.com/v2rayA/v2rayA)
73 |
74 | ### Qv2ray 3.0
75 |
76 | 和上一节中所述相同的原因,由于[中国大陆政府封锁 Github](https://zh.wikipedia.org/wiki/%E5%AF%B9GitHub%E7%9A%84%E5%AE%A1%E6%9F%A5%E5%92%8C%E5%B0%81%E9%94%81#%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD)的原因,你很可能没有办法用正常 yay 的方式通过 AUR 安装[Qv2ray 3.0](https://github.com/Shadowsocks-NET/Qv2ray),所以 ArchLinuxStudio 提供一组可以直接安装的包以供你使用。Qv2ray3.0 的 bin 仓库在于 AUR 的地址: [qv2ray-static-nightly-bin](https://aur.archlinux.org/packages/qv2ray-static-nightly-bin)。 Qv2ray3.0 的动态链接仓库在于 AUR 的地址: [qv2ray-git](https://aur.archlinux.org/packages/qv2ray-git)。Qv2ray 的安装与使用较为复杂,不建议新手使用。需要提醒的是,如果你使用动态链接的 Qv2ray,在其相关依赖更新后,你需要手动重新构建 Qv2ray。
77 |
78 | ```bash
79 | wget https://archlinuxstudio.github.io/ArchLinuxTutorial/res/qv2ray-git-3.0.0.rc1.r36.g0f1bf651-1-x86_64.pkg.tar.zst
80 | wget https://archlinuxstudio.github.io/ArchLinuxTutorial/res/libqv2ray-git-r160.eb10006-1-x86_64.pkg.tar.zst
81 | wget https://archlinuxstudio.github.io/ArchLinuxTutorial/res/qv2ray-plugin-interface-git-r88.b767b4c-1-x86_64.pkg.tar.zst
82 | wget https://archlinuxstudio.github.io/ArchLinuxTutorial/res/uvw-2.11.0_libuv_v1.43-1-x86_64.pkg.tar.zst
83 | sudo pacman -U *.pkg.tar.zst
84 | ```
85 |
86 | > github.io 也被中国大陆政府封锁,只是封锁力度暂时还没有很大。如你在此过程中卡住,可以尝试 ctrl+c 终止命令后重新尝试下载,也可尝试更换手机热点的网络环境再次进行下载。当你配置好全局代理后,你将不再需要担心任何网络封锁问题。我们将持续为本书读者提供突破互联网审查的可靠流程。
87 |
88 | 安装后在 Plugins 中,选择 V2ray V4 support,并进行 V2ray 的设置。现在你已经可以使用,你需要按照官方文档导入已有的链接或订阅,其余细节请详细阅读 [Qv2ray 的文档](https://qv2ray.net/)。有如下几个注意事项:
89 |
90 | - Qv2ray3.0 中 VMESS MD5 与非 0 的 AlterID 的形式已不被支持,若你的机场或节点下发的 AlterID 是非 0 是无法使用的。如果服务端支持,你可将 AlterID 改为 0 来使用 VMessAEAD 形式。
91 | - Qv2ray3.0 已经将机场的默认订阅类型改为规范:SIP008。如果你的机场订阅类型为 base64,则需要在分组->订阅设置->订阅类型 中,将 SIP008 改为 base64,否则你将拿不到任何订阅链接中的节点。
92 | - **如果**你先前使用过 2.x 的旧版本 Qv2ray ,需要删除旧版 Qv2ray 以及不兼容的配置,同时旧版 Qv2ray 与新版 Qv2ray 不能共存。
93 | ```bash
94 | rm -rf ~/.config/qv2ray
95 | sudo pacman -R qv2ray-dev-git
96 | ```
97 | - Qv2ray 3.0 与旧版插件不兼容,原有 Qv2ray 2.x 旧版插件不可使用。目前 Qv2ray 3.0 集成了 VMess、Shadowsocks 以及 Trojan 的支持,并通过[插件仓库](https://github.com/Shadowsocks-NET/QvPlugins)提供 命令行插件、测速插件、Trojan-Go 和 Naive 的支持。如果你需要使用其中的插件,则需要自行编译,并将其置入目标目录`~.config/qv2ray/plugins/`。同时,ArchLinuxStudio 也提供预先为你编译好的插件以方便你的使用。其中的 Trojan-Go 插件目前似乎并不能正常使用,其中的 hostname 以及 port 不能被正常解析[[1]](https://github.com/Shadowsocks-NET/QvPlugins/issues/1)。当然你也可以自行编译插件,在CMakeLists.txt中解除你需要编译的插件的注释,随后进行编译。编译步骤可参考QvPlugins的Actions的[workflow file](https://github.com/Shadowsocks-NET/QvPlugins/actions/runs/1156038253/workflow)。
98 | - [命令行插件](https://archlinuxstudio.github.io/ArchLinuxTutorial/res/QvPlugins/libQvPlugin-Command.so)
99 | - [测速插件](https://archlinuxstudio.github.io/ArchLinuxTutorial/res/QvPlugins/libQvPlugin-LatencyTest.so)
100 | - [Trojan-Go](https://archlinuxstudio.github.io/ArchLinuxTutorial/res/QvPlugins/libQvPlugin-TrojanGo.so)
101 | - [Naive](https://archlinuxstudio.github.io/ArchLinuxTutorial/res/QvPlugins/libQvPlugin-NaiveProxy.so)
102 |
103 | ## 3. 代理的初步设置
104 |
105 | 在经过上述步骤后,你应该已经有了 SOCKS5 代理以及 HTTP 代理的地址和端口。本小节描述如何单独为一些程序设置代理,但是需要提醒的是,这不是我们推荐的使用方式,如果你是 Linux 的日常重度使用者,你应该使用后续将会讲述的全局代理方式。
106 |
107 | 在节点链接后,你可在 KDE 的`系统设置` -> `网络设置` -> `代理`中设置代理。注意,`系统设置`中的代理配置在 KDE 桌面环境中并不是所有应用都会遵守,经过测试,chrome/chromium/brave 浏览器与 steam 等应用会遵循 KDE 的系统代理设置。没有遵循系统设置代理的应用还需要单独进行代理配置。下面说明几种常用的软件中单独配置代理的方式。
108 |
109 | - Firefox 浏览器
110 | 火狐浏览器自身的设置选项中存在代理配置,进行配置即可。
111 |
112 | - 终端
113 | 可以通过 export 命令设置当前终端的代理方式。比如使用 tldr 或 github raw 等资源需要设置 https 代理。
114 |
115 | ```bash
116 | export https_proxy=http://127.0.0.1:8889
117 | export http_proxy=http://127.0.0.1:8889
118 | export all_proxy=http://127.0.0.1:8889
119 | ```
120 |
121 | > 不同终端命令所识别的环境变量名不同,如 all_proxy 对 curl 生效,而对 wget 则不生效,具体可查看各个命令的 man page。
122 |
123 | - code OSS
124 | File => Preference => Settings
125 | 搜索 proxy,在其中填入 http 代理地址即可
126 |
127 | - proxychains-ng
128 | 如果对于一个应用,KDE 的全局代理不生效,在终端 export 了 ALL_PROXY 变量再用终端启动此应用代理也不生效,并且这个应用自身也没有配置代理的选项,此时可以尝试使用 proxychains-ng,它可以为单行命令配置代理。它是一个预加载的 hook,允许通过一个或多个 SOCKS 或 HTTP 代理重定向现有动态链接程序的 TCP 流量。
129 |
130 | ```bash
131 | sudo pacman -S proxychains-ng
132 | sudo vim /etc/proxychains.conf
133 | ```
134 |
135 | 把配置文件中最后一行改为本地代理的 ip 和端口,如`socks5 127.0.0.1 1089`
136 |
137 | proxychains 不能够支持 yay 以及其他一些程序,详见[Incompatible with proxychains](https://github.com/Jguer/yay/issues/429)[proxychains4 with Go lang](https://github.com/rofl0r/proxychains-ng/issues/199)。这种情况可以使用透明代理。
138 |
139 | ## 4. 更加全面的系统级全局代理
140 |
141 | 由以上各部分可以看到,为各个软件单独设置代理是很麻烦的。如果你把 Linux 作为主力使用,那么配置透明代理也是必须的,如果你使用 V2rayA,那么可以很方便的在设置中开启全局代理。如果你的技术水平不高,建议你直接使用 V2rayA 的全局代理。如果你使用 Qv2ray,请阅读随后的[透明代理](rookie/transparentProxy)一节。
142 |
143 | 对于全局代理的情况下,开启 UDP 支持,DNS 请求也将被拦截并导入 v2ray 中,更详细的描述将在下节进行。
144 |
145 | ## 5. 为什么我们不建议使用分流代理?分流代理可能存在什么危险?
146 |
147 | 分流代理在大多数场景下指的是:在访问国内资源时,使用直连的方式,而在访问国外被墙的资源时,使用代理进行连接。这种网络的使用方式确实会非常方便,但是存在显而易见的危险,然而大众几乎并没有意识到这里的问题。
148 |
149 | 使用分流代理的方式非常容易泄露你自身的隐私信息,包括但不限于 IP 地址,浏览器以及硬件指纹(几乎可以唯一标记你这一个用户的指纹)等等一系列信息,并且可以将你使用的代理 IP 与你自身的真实 IP 进行对应。
150 |
151 | 举例来说,一个最常见的例子就是某个国外的网站使用了百度统计脚本,这时你的代理 IP 与真实 IP 的对应信息可以轻松的被这样的网站进行对应,这是非常危险的。
152 | 另一个例子就是一些恶意的邮件,比如你在使用国外的邮箱服务,接收到了一个恶意邮件,这个邮件中嵌入了一些国内的资源如图片,那么你的真实 IP 等信息也可以被轻松获取。
153 |
154 | 真实的例子不止以上两个,还有很多类似的情况存在。我们一直为了大众的隐私与安全而战,希望今后你可以放弃使用分流代理的网络连接方式。
155 |
--------------------------------------------------------------------------------
/docs/rookie/graphic_driver.md:
--------------------------------------------------------------------------------
1 | # 显卡驱动
2 |
3 | 现在是 2022 年,显卡驱动的安装在 Arch Linux 上已经变得非常容易。本文区分核芯显卡和独立显卡两大类描述显卡驱动的安装。**注意,确保你已经按照本教程之前的章节安装配置好科学上网、安装好必要的包后再向下进行,不要多个教程混着看,你可能漏掉了本教程前置步骤中的某些操作,从而造成问题。**
4 |
5 | > 所有 AMD 显卡建议使用开源驱动。英伟达显卡建议使用闭源驱动,因为逆向工程的开源驱动性能过于低下,本文也只描述英伟达闭源驱动安装。如果你支持自由软件运动,请尽可能使用具有官方支持开源驱动的英特尔和 AMD 显卡。
6 |
7 | ## 核芯显卡
8 |
9 | ### 英特尔核芯显卡
10 |
11 | [官网文档](https://wiki.archlinux.org/index.php/Intel_graphics)
12 |
13 | 英特尔核芯显卡安装如下几个包即可。
14 |
15 | ```bash
16 | sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel
17 | ```
18 |
19 | > `xf86-video-intel`arch wiki 里写的很多发行版不建议安装它,而应使用 xorg 的 modesetting 驱动(也就是什么都不用装的意思)。经过我们测试目前确实是默认 modesetting 驱动较为稳定。
20 |
21 | 注意,只有 Intel HD 4000 及以上的核显才支持 vulkan。
22 |
23 | ### AMD 核芯显卡
24 |
25 | 对于具有核芯显卡的 AMD 处理器,需要先确定核显架构(Architecture)是什么,再决定安装什么驱动。推荐在 [techpowerup 网站](https://www.techpowerup.com/)进行查询,信息非常全面。在确定了显卡架构后,再根据架构对照[这个文档](https://wiki.archlinux.org/index.php/Xorg#AMD)决定安装什么驱动。**对于 GCN2.0 及以下架构的老显卡,直接安装开源 ATI 驱动即可,原本闭源的老旧的 Catalyst 驱动在 2021 年已被废弃。GCN2.0 及以下架构的老显卡也不要使用开源的 AMDGPU 驱动,因为其仅处于实验性质,需要各种自定义内核编译选项与配置,非常麻烦,得不偿失。**对于新型号,即 GCN3 架构及更新型的核芯显卡,直接安装开源驱动 AMDGPU 即可,也就是以下这几个包。
26 |
27 | ```bash
28 | sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon libva-mesa-driver lib32-libva-mesa-driver mesa-vdpau lib32-mesa-vdpau
29 | ```
30 |
31 | - 比如你的笔记本 cpu 是目前常见的 AMD R7 4800U,那么它的核显为 Vega 8。通过查询,可知其为 GCN 5.0 架构,那么对照 arch 官方文档,你可选择安装 AMDGPU 开源驱动。
32 | - 再比如你的台式机 cpu 是目前常见的 锐龙 5 3400G,那么它的核显为 Vega 11。通过查询,可知其为 GCN 5.0 架构,那么对照 arch 官方文档,你可选择安装 AMDGPU 开源驱动。
33 | - 再老一些的 apu A10-9700 处理器 ,它的核显为 Radeon R7。通过查询,可知其为 GCN 2.0 架构,那么对照 arch 官方文档,你选择安装 ATI 开源驱动。
34 |
35 | ## 独立显卡
36 |
37 | 这部分会分为仅有独立显卡(无核显)与同时拥有独立显卡和核芯显卡两种情况进行讲解。
38 |
39 | ### 英伟达独立显卡
40 |
41 | 本节建议查看官方文档,此处只列出主要的显卡系列。[官方文档](https://wiki.archlinux.org/index.php/NVIDIA)
42 |
43 | 较新型号的独立显卡直接安装如下几个包即可。
44 |
45 | ```bash
46 | sudo pacman -S nvidia nvidia-settings lib32-nvidia-utils #必须安装
47 | ```
48 |
49 | 如果是 GeForce 630 以上到 GeForce 920 以下的老卡,安装 [nvidia-470xx-dkms](https://aur.archlinux.org/packages/nvidia-470xx-dkms/)AUR及其 32 位支持包。使用 dkms 驱动同时需要 headers。
50 |
51 | ```bash
52 | yay -S nvidia-470xx-dkms nvidia-settings lib32-nvidia-470xx-utils linux-headers
53 | ```
54 |
55 | 如果是 GeForce 630 以下到 GeForce 400 系列的老卡,安装 [nvidia-390xx-dkms](https://aur.archlinux.org/packages/nvidia-390xx-dkms/)AUR及其 32 位支持包。使用 dkms 驱动同时需要 headers。
56 |
57 | ```bash
58 | yay -S nvidia-390xx-dkms nvidia-settings lib32-nvidia-390xx-utils linux-headers
59 | ```
60 |
61 | 再老的显卡直接使用[开源驱动](https://wiki.archlinux.org/index.php/Nouveau)即可。
62 |
63 | ```bash
64 | sudo pacman -S mesa lib32-mesa xf86-video-nouveau
65 | ```
66 |
67 | ---
68 |
69 | **在同时拥有核芯显卡和英伟达独立显卡的笔记本上安装驱动是大多数人关注的事情,这里着重讲述。**
70 |
71 | > 再次提醒请按照本书前置章节配置好系统后再进行,不要多个教程混看,**尤其是一些过时的教程**。尤其需要注意的是确保 base-devel 包的安装以及配置好科学上网软件,以及使用 X11 模式。
72 |
73 | [英伟达双显卡模式官方文档](https://wiki.archlinux.org/index.php/NVIDIA_Optimus) /// [optimus-manager 官方文档](https://github.com/Askannz/optimus-manager/wiki)
74 |
75 | 若为同时拥有核芯显卡与英伟达独显的笔记本电脑,同样需要按照上述步骤先安装各个软件包。除此之外还需要安装 optimus-manager。可以在核芯显卡和独立显卡间轻松切换。optimus-manager 提供三种模式,分别为仅用独显,仅用核显,和 hybrid 动态切换模式。
76 |
77 | ```bash
78 | yay -S optimus-manager optimus-manager-qt
79 | ```
80 |
81 | 安装完成后重启即可使用。optimus-manager 安装完成后会默认 enable optimus-manager 的服务,你可在重启前检查其状态,若没有 enable 则手动将其 enable。重启后在菜单栏搜索 optimus-manager 点击即可使用。可在其设置中设置开机自动启动。
82 |
83 | ```bash
84 | sudo systemctl enable optimus-manager
85 | ```
86 |
87 | 此时你应该已经可以进行显卡切换了,如果有问题,请详细阅读 optimus-manager 的文档,里面有详细的描述。由于各类问题太多,本文不进行描述,optimus-manager 的文档很详尽,请自行查看。此处仅列出几项较为重要的注意事项:
88 |
89 | - 如果需要在独显和核显模式间切换,要注意你没安装各类 GPU 监控插件,它们会阻止显卡切换,导致不可预料的错误。
90 | - 不要使用 Nvidia Control Panel 中的`Save to X Configuration file`按钮。会导致配置冲突。
91 | - 在显卡之间的切换时,重新登陆后如在 splash screen 卡住或者黑屏,可以尝试在 tty1 tty2 之间进行切换。
92 | - 如果你在安装 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)
93 |
94 | 最后详细说下动态切换模式。本质上其还是使用官方的 [PRIME](https://wiki.archlinux.org/index.php/PRIME#PRIME_render_offload)对闭源驱动的方法进行切换。需要设置三个环境变量,或者用 nvidia-prime 包提供的命令 prime-run,二者本质也是一样的,都是设置三个环境变量。
95 |
96 | ```bash
97 | sudo pacman -S nvidia-prime
98 | prime-run some_program #使用prime-run前缀来用独显运行某些程序
99 | ```
100 |
101 | 对于 AMD 核显+N 卡独显的读者,optimus-manager 对于这套组合的支持目前已经发布,最新可用版本为 1.4。
102 |
103 | ---
104 |
105 | **如果你不是强烈追求能效控制以及注重电池寿命的用户,那么可以不用往下看了,如果你是,那么需要针对你的硬件以及笔记本型号尝试正确的电源管理方式。此部分的设置可能导致黑屏,并且尝试过程可能较长,也会遇到各类问题,请根据你个人的操作水平自行斟酌是否操作**
106 |
107 | 电源控制做的事情是,在只用核显的模式下,确保正确关闭独立显卡。而在混合模式下,绝大多数情况下 Nvidia 模块实际是始终开启的,电源控制并不生效。这件事情其实很复杂,因为对于不同的显卡型号,以及笔记本型号的组合,可行的方案都是不同的。笼统来说,最广泛适用的办法是 bbswitch。但仍不建议上来就按照此方式安装使用,因为某些特定的硬件就是会出问题,也就是黑屏。这里建议按照 optimus-manager 官方的文档一步一步来,按步骤尝试,最后找到属于你自己的电脑合适的电源管理方式。**此[文档](https://github.com/Askannz/optimus-manager/wiki/A-guide--to-power-management-options)必须详细阅读!**
108 |
109 | 针对大多数笔记本适用的 Bbswitch,此处进行安装使用的讲解。首先安装包 bbswitch。若使用其它内核,则安装包 bbswitch-dkms。
110 |
111 | ```bash
112 | sudo pacman -S bbswitch #安装 bbswitch 切换方式
113 | ```
114 |
115 | 接下来右键点击 optimus-manager 的托盘设置,在 Optimus 选项卡中的 switch method 选择 Bbswitch 即可。
116 |
117 | ### AMD 独立显卡
118 |
119 | AMD 独立显卡的驱动安装步骤实际上 AMD 核芯显卡是相同的,都需要先确定架构,然后选定正确的驱动安装即可。真正需要关注的是如何在核芯显卡和独立显卡间进行切换。可以使用 [PRIME](https://wiki.archlinux.org/title/PRIME#For_open_source_drivers_-_PRIME) 对开源驱动的双显卡切换方式。
120 |
121 | 此外,可以使用 `glmark2`,`DRI_PRIME=1 glmark2` 分别对核显和独显进行测试,选择分数更高的一个进行使用。可以在 steam 游戏的启动前缀中加入`DRI_PRIME=1 mangohud %command%`来使用独显。(关于 [mangohud](/play/software?id=性能监控))。
122 |
123 | 笔记本上使用独立显卡运行 steam 游戏的另一个例子。
124 |
125 | ```bash
126 | DRI_PRIME=1 steam steam://rungameid/570 #运行dota2
127 | DRI_PRIME=1 steam steam://rungameid/730 #运行cs go
128 | ```
129 |
130 | ## 性能测试
131 |
132 | [官方文档](https://wiki.archlinux.org/index.php/benchmarking)。
133 |
134 | 最传统和广为人知的方式为使用`glxgears`命令进行测试,其属于[mesa-utils](https://www.archlinux.org/packages/extra/x86_64/mesa-demos/)包。但其仅仅只能提供简单的测试场景及帧数显示,只测试了当前 OpenGL 功能的一小部分,功能明显不足。我们推荐如下两种工具。
135 |
136 | ### glmark2
137 |
138 | glmark 提供了一系列丰富的测试,涉及图形单元性能(缓冲,建筑,照明,纹理等)的不同方面,允许进行更全面和有意义的测试。 每次测试单独计算帧速率。 最终,用户根据以前的所有测试获得了一个成绩分数。在 archlinux 上属于包[glmark2](https://aur.archlinux.org/packages/glmark2-git)AUR
139 |
140 | ### Unigine benchmark
141 |
142 | Unigine 3D 引擎是一个更全面的基准测试工具。 截止目前有五个版本,从旧到新分别是
143 |
144 | - sanctuary(2007)
145 | - tropics(2008)
146 | - heaven(2009)
147 | - valley(2013)
148 | - superposition(2017)
149 |
150 | 可从[AUR](https://aur.archlinux.org/packages/?O=0&K=Unigine)下载全部版本。它们均为专有软件。
151 |
152 | ## 显卡信息查看
153 |
154 | 对于英伟达显卡,nvidia-settings 这个包即可全面的展示显卡相关信息。
155 |
156 | 对于 AMD 显卡,稍微麻烦一些,通过 yay 安装 radeon-profile-git 这个包,同时安装其依赖 radeon-profile-daemon,最后启动这个进程。即可以图形化的方式查看 amd 显卡信息。[github 项目地址](https://github.com/marazmista/radeon-profile)
157 |
158 | ```bash
159 | sudo systemctl enable --now radeon-profile-daemon.service
160 | ```
161 |
162 | 注意,不要对左下角的 auto low high 进行更改 有 bug 会卡死。同时,显存占用在某些型号显卡上展示可能有误。
163 |
164 | ## 后续
165 |
166 | 如果作为一个普通使用者,到这里你的系统已经配置完毕了。不会命令行也没太大关系,你可以慢慢探索 KDE 这个桌面环境,记住时常用如下命令或 Discover 软件更新系统即可。
167 |
168 | ```bash
169 | sudo pacman -Syyu #更新官方仓库
170 | yay -Syyu #同时更新官方仓库与AUR
171 | ```
172 |
173 | 接下来你可以查阅娱乐、办公、多媒体等章节了解更多使用软件的安装与使用。如果你需要成为一名较为专业的人员,那么请阅读进阶、以及编程等章节。
174 |
--------------------------------------------------------------------------------
/docs/rookie/transparentProxy.md:
--------------------------------------------------------------------------------
1 | # 使用 Qv2ray+cgproxy 配置透明代理
2 |
3 | 全局代理,也即透明代理。本节所述为真正的,操作系统级别的代理,而不是仅仅针对浏览器中全部网址的"全局代理"。之所以叫做透明代理,是因为这种系统级别的代理对于操作系统中的各个应用相当于是透明的,应用们感知不到代理的存在。之所以叫做全局代理,很明显意为操作系统级别的、全局的代理。这两个词汇在中文环境中经常同时使用,并且全局代理一词容易引起混淆。
4 |
5 | 本节主体原文收集自 [Qv2ray 用户组](https://t.me/Qv2ray_chat),并非原创,我们仅在其基础上进行更新、完善与修正。[cgproxy 项目地址](https://github.com/springzfx/cgproxy)。
6 |
7 | ## 安装与设置
8 |
9 | 1. 安装`cgproxy`软件。可直接在 [AUR](https://aur.archlinux.org/packages/cgproxy/) 上安装。由于中国大陆政府封锁 Github 的原因,你很可能没有办法用正常 yay 的方式通过 AUR 安装 cgproxy,所以 ArchLinuxStudio 提供一组可以直接安装的包以供你使用。
10 |
11 | ```bash
12 | wget https://archlinuxstudio.github.io/ArchLinuxTutorial/res/cgproxy-0.19-1-x86_64.pkg.tar.zst
13 | sudo pacman -U cgproxy-0.19-1-x86_64.pkg.tar.zst
14 | ```
15 |
16 | > github.io 也被中国大陆政府封锁,只是封锁力度暂时还没有很大。如你在此过程中卡住,可以尝试 ctrl+c 终止命令后重新尝试下载,也可尝试更换手机热点的网络环境再次进行下载。当你配置好全局代理后,你将不再需要担心任何网络封锁问题。我们将持续为本书读者提供突破互联网审查的可靠流程。
17 |
18 | 2. 在 Qv2ray 的“首选项-入站设置”的下方启用任意门设置选项。
19 |
20 | - 监听 ipv4 地址可填`127.0.0.1` 或 `0.0.0.0`,建议前者。若需双栈代理,则在监听 ipv6 地址填上`::1`(如果监听 ipv4 填了 0.0.0.0 则可不填)。
21 | - 嗅探选择 Full,Destination Override 的三项均勾选。
22 | - 模式选择“tproxy”。
23 |
24 |
25 | 如果是复杂配置,则需要手动添加相应的 dokodemo-door 入站。由于目前版本复杂配置并没有提供 tproxy 选项,因此 tproxy 模式需要通过编辑 json 来实现。
26 |
27 | 3. 配置`cgproxy`,编辑`/etc/cgproxy/config.json`:
28 |
29 | - **在`cgroup_proxy`中括号里加上"/"(包含引号)**,`port`改为 Qv2ray 首选项里的透明代理的端口。
30 | - `cgproxy`默认配置是代理所有 tcp 和 udp,ipv4 和 ipv6 的流量,如果不希望代理其中的某种(些)流量,则将对应的`enable_xxx`改为 false。注意这里的配置要和 Qv2ray 选项里的配置一致(如,Qv2ray 选项里没有勾选 udp,则这里务必把`enable_udp`改为 false)。
31 | - 如果希望当本机作为网关设备时为连接到本机网关的其他设备(如连接到本机开设的 wifi 热点的设备)也提供透明代理,则把`enable_gateway`改为 true。
32 |
33 | 4. (重要)透明代理的基本原理是拦截系统发出的所有流量,并将这些流量转到代理工具里,从而实现让系统所有流量都走代理的目的。此时,为了避免流量出现死循环(即代理工具发出的流量又转回到代理工具里),需要将代理工具排除在透明代理环境外面。有两种方式可以实现这一点:
34 |
35 | - 通过`execsnoop`监控代理工具的启动,并自动将其移至透明代理环境外面:
36 |
37 | - `cgproxy`软件自带`execsnoop`支持,以上`cgproxy`测试过的发行版均可支持。
38 | - 编辑`/etc/cgproxy/config.json`,在`program_noproxy`中括号里加上"v2ray","qv2ray"(包含引号和逗号),以使`qv2ray`和`v2ray`发出的流量不经过透明代理。如果你的`v2ray`或`qv2ray`不在`PATH`里,则需要填写它们的绝对路径。
39 |
40 | - 在每次连接代理节点时,让`qv2ray`自己把自己移到透明代理环境外面:
41 |
42 | - 安装 Qvplugin-Command 插件,在插件设置里的“pre-connection”栏里加上一句
43 |
44 | ```
45 | sh -c "cgnoproxy --pid $(pgrep -x qv2ray)"
46 | ```
47 |
48 | 即可。
49 |
50 | 5. (重要)如果启用了 udp 的透明代理(dns 也是 udp),则给 v2ray 二进制文件加上相应的特权:
51 |
52 | ```
53 | sudo setcap "cap_net_admin,cap_net_bind_service=ep" /usr/bin/v2ray
54 | ```
55 |
56 | 否则 udp 的透明代理可能会出问题。
57 |
58 | > 如果每次更新了 v2ray 二进制文件,都需要重新执行此命令。
59 |
60 | 6. 启动透明代理服务:`systemctl start cgproxy.service`或`systemctl enable --now cgproxy.service`。
61 |
62 | 以上步骤完成后,透明代理应该能正常使用了。
63 |
64 | ## dns 配置说明
65 |
66 | 如果勾选了“dns 拦截”,且启用了 dns 和 udp 的透明代理,则 v2ray 会拦截对系统 dns 的请求,并将其转发到 v2ray 的内置 dns 里,即让 v2ray 内置 dns 接管系统 dns。但 v2ray 内置 dns 是会遵循路由规则的。
67 |
68 | 如果没勾选“dns 拦截”,则 v2ray 虽然不会让内置 dns 接管系统 dns,但如果启用了 dns 和 udp 的透明代理,则系统 dns 也会走透明代理进 v2ray,并遵循 v2ray 的路由规则。
69 |
70 | 因此,在启用了 dns 和 udp 的透明代理时,若系统 dns 或 v2ray 的内置 dns 配置不当,可能导致 dns 请求发不出去,从而影响正常上网。
71 |
72 | 由于 qv2ray 常见的路由规则是绕过国内 ip,国外 ip 均走代理。在这个情形中,以下两个配置是典型的有问题的 dns 配置方式:
73 |
74 | - 配置了国外普通 dns 作为首选,但代理本身不支持 udp(此时 dns 查询的 udp 流量出不去,dns 无法查询)
75 | - 配置了使用域名的 doh 作为首选。此时 doh 的域名无法被解析,从而 doh 也无法使用。
76 |
77 | 一般而言,如果并不在意将 dns 查询发给谁,那么,在绕过国内 ip 的情况下,只需要配置一个国内普通 dns 作为首选即可保证不会出问题。若代理本身不支持 udp,又希望使用国外 dns,则可以考虑使用使用 ip 的 doh(如`https://1.1.1.1/dns-query`等)。
78 |
79 | 如果需要更复杂的 dns 配置,建议参考[上游文档](https://www.v2ray.com/chapter_02/04_dns.html),并选择合适的不会影响正常上网的 dns 配置。
80 |
81 | ---
82 |
83 | 在显示的为 firefox 等应用设置代理时,因为这些应用程序知道代理的存在,所以不会发出 DNS 请求。而透明代理的情况下,各应用感知不到代理的存在,所以会发出自己的 dns 请求。
84 |
85 | 这时通过 cgproxy 可将全部 tcp/udp 的流量(包括 DNS 查询)转给 v2ray。由于这种情况下,一定会有 DNS 查询流量的产生,所以为了保证本机不发出任何 DNS 请求(这是为了隐私和安全),需要进行以下设置。此时需要分两种情况讨论。
86 |
87 | - 如果不进行任何 v2ray 的内置 DNS 设置以及 DNS 拦截,那么 DNS 流量会使用本机的 DNS 设置如 8.8.8.8 发出,这种情况不论如何配置 v2ray(全局或者分流),只要保证对于 8.8.8.8 的请求能够通过代理发出即可。
88 |
89 | - 如果 v2ray 通过形如如下路由规则,拦截经由 dokodemo-door 接收到的 dns 流量到 dns outbounds,那么 v2ray 是可以导向 DNS 查询流量到"dns-out"的 out bound 的,也即 dns-outbound 进行的"拦截"和"重新转发"。
90 |
91 | ```json
92 | rules:
93 | {
94 | "inboundTag": [
95 | "tproxy-in-1",
96 | "tproxy-in-2"
97 | ],
98 | "outboundTag": "dns-out",
99 | "port": "53",
100 | "type": "field"
101 | },
102 | ```
103 |
104 | 此时 dns outbound 应该调用内置 DNS 设置进行解析,假如 v2ray 内置 DNS 设置为 1.1.1.1,此时原有对于 8.8.8.8 的 DNS 请求就会转而向 1.1.1.1 请求(随后对 1.1.1.1 的请求还是会遵循你的路由规则的),并将结果返回给应用端。你可以通过开启 qv2ray 更详细的日志级别进行验证。
105 |
106 | 如果只是为了阻止本机发 dns 请求,完全可以不使用 fakedns。fakedns 在透明代理的条件下确实可以减少一次 dns 请求,理论上确实会快一点。但是也在有的文章指出如果所有域名都伪造 dns 返回可能会有问题。
107 |
108 | 题外话:使用 clientIP 可解决使用代理服务器解析 DNS 若返回国外 CDN 的网址时网速慢的情况,但是前提是你信任代理服务器和 DNS 服务器接收你的本地 IP,为了你的安全,不建议使用。
109 |
110 | ## 常见问题
111 |
112 | - 启用透明代理后无法访问任何外网,且 v2ray 的 cpu 占用率飙升
113 |
114 | 可能是流量陷入死循环了,检查第 4 步有没有正确配置。如果配置没问题,执行`systemctl status cgproxy.service`看下有没有诸如`info: process noproxy pid msg: xxx`之类的输出。如果没有,则说明 cgproxy 软件或 execsnoop 没有正常工作。注意 cgproxy 软件需要 cgroup v2。
115 |
116 | 尝试退出 qv2ray,随后在终端里执行`cgnoproxy qv2ray`看是否恢复正常,如恢复正常,说明 cgproxy 正常工作,只是 execsnoop 没有正常工作。由于 execsnoop 一定程度上依赖于内核,非上述 cgproxy 测试过的发行版用户,建议使用第 4 步中的第 2 种方法。另外,对 kde 用户,5.19+版的 plasma 会给从 krunner 里启动的程序额外设置 cgroup,尽管 cgproxy 软件考虑到了这一点,但仍有极少数场合可能出现 plasma 设置的 cgroup 覆盖掉了 cgproxy 设置的 cgroup 的情况,此时通常重启一下 qv2ray 即可。
117 |
118 | - 启用透明代理后,无法访问(部分)域名
119 |
120 | 可能是 dns 无法解析(部分)域名。一般这种故障只发生在启用了 dns 及 udp 透明代理的时候。
121 |
122 | 终端里执行`dig 无法访问的域名`看下报什么错:
123 |
124 | - 若出现类似`reply from unexpected source: 192.168.0.100#42050, expected 8.8.8.8#53`的报错,则检查第 5 步的有没有正确配置。
125 |
126 | - 若出现类似`connection timed out; no servers could be reache`的报错,则说明 dns 查询的流量出不去,此时往往是系统 dns 或 v2ray 内置 dns 配置不当。请检查是否出现了前文提到的几种不当配置。如果没有勾选“dns 拦截”,则此时 v2ray 虽然不会用内置 dns 接管系统 dns,但它仍然会让系统 dns 走透明代理,从而遵循 v2ray 的路由规则,此时需要检查系统 dns 是否是前文提到的那几种不当配置。
127 |
128 | - 能不能分应用代理(如,下载 BT 时不能走代理)
129 |
130 | 对于本机的程序,可以,可通过两种方式实现:
131 |
132 | - 通过`cgnoproxy`实现:如,在命令行中执行`cgnoproxy qbittorrent`,启动的 qbittorrent 程序就不会走透明代理。又如,在命令行中执行`cgnoproxy --pid 12345`,执行之后 pid 为 12345 的程序就不再走透明代理。这种方式可支持任何应用。
133 | - 通过`/etc/cgproxy/config.json`实现:在配置里的`program_noproxy`中括号里加上相应的应用即可。这种方式只支持可执行文件,不支持各种脚本。如希望把 clash 与 kde connect 加入 noproxy 规则,则在把此字段补全成["v2ray", "qv2ray", "clash", "/usr/lib/kdeconnectd"]即可。注意修改`config.json`之后,需要重启 cgproxy 服务才能生效,执行`systemctl restart cgproxy.service`即可。
134 |
135 | 对于当本机作为网关设备时为连接到本机网关的其他设备,不行,那些设备的所有流量(到本机的流量除外)都必然会走代理。
136 |
137 | - 透明代理环境中响应速度变慢
138 |
139 | 由于 iptables 是在域名解析成 ip 之后,才对相应的流量进行重定向。因此,在透明代理环境中,访问一个域名 s 可能会需要解析至少 2 次 dns(系统解析一次,重定向到 v2ray 之后 v2ray 分流模块再解析一次)。因此,响应理论上是会变慢一点的,变慢的幅度取决于系统 dns 及 v2ray 的 dns 的响应速度。
140 |
141 | - 开启 UDP 支持后报错`too many open files`
142 |
143 | 核心问题是,Linux 系统定义了一系列限制,其中一种限制是最大打开文件数,并且有软限制和硬限制,具体的限制结果可以通过`ulimit -Sa`和`ulimit -Ha`查看。一般来说 arch 默认的软限制 open files 的值为 1024,这个数值太小。硬限制的 open files 的值为 524288,这个数值够大了。打开网页过多,或者开启 udp 加速的时候,连接数(打开的文件数)很容易超过 1024 这个数,所以就被限制住了。解决办法很简单,只需要修改系统级别的关于这个限制的配置文件,在/etc/security/limits.conf 文件的最末尾,加上下面这行,然后重启即可:
144 |
145 | ```bash
146 | * soft nofile 8192 #不要落下了最前面的星号
147 | ```
148 |
149 | - 使用 docker/libvirt 时与 cgproxy 不能正常使用。解决方法见[cgproxy issue3](https://github.com/springzfx/cgproxy/issues/3#issuecomment-637309706)
150 |
151 | ---
152 |
153 | Ref:
154 |
155 | 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)
156 |
--------------------------------------------------------------------------------
/docs/uk/README.md:
--------------------------------------------------------------------------------
1 | # Arch Linux Installation and Usage Tutorial - ArchTutorial - Arch Linux Studio
2 |
3 | > Notice: English translation is still in progress, documentation is now incomplete. Welcome to submit pull requests for translations.
4 |
5 | Arch Linux installation and usage tutorials, updated daily in real time! From Arch Linux installation, breaking through internet censorship and blockades, transparent proxies, graphics drivers, everyday software use and more, plus everything you might need for media production, programming, crypto currency usage in ArchLinux and more. Make Arch Linux your go-to system!
6 |
7 | This book provides some of our experience of using Linux over the years and teaches it to those who need it. Another part that is inseparable from Linux: [GNU](https://www.gnu.org/home.zh-cn.html).
8 |
9 | New readers should make sure that you have followed the steps in the `Start from Scratch` chapter before reading on, otherwise there may be problems.
10 |
11 | - Features of this book
12 | - The privacy and security of our readers is always our top priority, and using free software can provide you with a considerable amount of protection. People or organisations who challenge the free software movement on the basis of so-called "practicality" or "avoiding ideological controversy" are foolish and evil.
13 | - This book provides a robust and reliable process for breaking out of blocked and censored areas of the Internet, and we regret if anyone considers it "inharmonious".
14 | - The style of this book is kept as simple as possible to improve the loading speed of the reader's website. At the same time, we believe that fancy styling should not be present in a more serious book.
15 | - No nonsense, just a set of directions **we think** is more appropriate, keeping the installation process as simple as possible and not exhaustive. This book is a tutorial, not a reference, and is not the same as the official wiki. For more information, please check the Arch Wiki or consult the related materials. It is right to know what you know, but it is not a tutorial work to fill in too much information.
16 | - The book is developed using docsify and gitalk, and the source code of the site is fully open source, so feel free to leave comments and discuss. The site also does not use any harmful tracker scripts and the files provided for download are not audited or monitored in any way, you can verify this by using the [Brave browser](https://brave.com/zh/) and reading the source code.
17 | - Linux and ACG [Telegram Group:ArchLinuxStudio🇨🇦🏳️⚧️🏳️🌈](https://t.me/FSF_Ministry_of_Truth) ||| [Matrix Group:ArchLinuxStudio🇨🇦🏳️⚧️🏳️🌈](https://matrix.to/#/#ArchLinuxStudio:matrix.org)
18 |
19 | > **This book is available under the CC BY-NC-ND 4.0 license[[1]](https://github.com/ArchLinuxStudio/ArchLinuxTutorial/issues/68). Pull requests are welcome, but commercial use and interpretation is prohibited. Any "downstream documentation" is unauthorised and in breach of the license.**
20 |
21 | > Please do not give feedback about this document in any groups other than those listed above. This will cause them distress and unpleasantness.
22 |
23 | ## Why use Linux?
24 |
25 | To put it simply, there are three popular PC operating systems in the world today, Windows, Linux and macOS.
26 |
27 | If you are a student or practitioner of a computer-related subject, it is highly recommended that you use Linux as your daily system. Using Linux will give you invisible exposure to all aspects of computing and will give you an advantage in your future career. macOS does not operate in the same way as Linux in some respects (i.e. roughly the differences between BSD and GNU/Linux) and is not recommended due to its closed nature. Windows is extremely painful and problematic to set up in many programming environments and is strongly discouraged for the same reason of macOS.
28 |
29 | More importantly, GNU/Linux is a relevant and important product of the free software movement. The [free software movement](https://en.wikipedia.org/wiki/Free_software_movement) rejects proprietary software and promotes free software, Its ultimate goal is to free everyone in the networked world - every computer user. Everyone should have full control over the software they run. [Free Software](https://www.gnu.org/philosophy/free-sw.en.html) has four principles.
30 |
31 | - The freedom to run the program as you wish, for any purpose (freedom 0).
32 | - The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
33 | - The freedom to redistribute copies so you can help others (freedom 2).
34 | - The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
35 |
36 | If you are just an ordinary user, you have seen similar experiences of having your computer loaded with reams of rogue software without your authorisation. Proprietary software not only rapes the user in every dimension, but also contains unimaginable malicious features. It is an open secret in the industry that user data, privacy and other important information can be easily collected and misused by large companies. It is highly recommended that you migrate to free software when proprietary software has a suitable free software alternative. This book will document both proprietary software and free software, because to abandon proprietary software altogether would surely keep a lot of people out of linux directly, which is not what we want, and we want to bring more people into GNU/Linux first, at least as a first step. But this does not mean that we support the use of proprietary software, we want you to at least get started with linux and gradually replace proprietary software with free software. Proprietary software is only briefly documented in this book, not described in detail, because we don't want you to be dependent on it for a long time. We will remove proprietary software from this tutorial whenever a sufficiently good free software alternative becomes available for that proprietary software. Proprietary software will be corner marked proprietary or described with additional marks throughout this book. If you are a competent developer, it is preferred that you develop free software that replaces some proprietary software.
37 |
38 | Finally, if you want to try a completely free system, or if you like to explore new and challenging things, Linux is also an experience you can't miss.
39 |
40 | ## Why use Arch Linux?
41 |
42 | Most importantly, Arch Linux packages are up-to-date, which is essential for everyday use, so you can be the first to enjoy the features of new software without the hassle of outdated dependencies when upgrading software. The binary packages are provided so that you can easily install and use them without having to compile them yourself. In addition, the user repository AUR is driven by Arch Linux users from all over the world and offers a huge selection of unofficial software.Arch Linux strikes an almost perfect balance between flexibility and ease of use.
43 |
44 | Arch Linux allows you to customise your system with a high degree of freedom and has the most comprehensive [documentation](https://wiki.archlinux.org/index.php/Main_page), making it possible to solve most problems by checking the official documentation. Because of its aggressive software update policy, it is recommended that users update Arch Linux as often as possible. No update over a longer period of time can cause problems, and while most problems can be remedied afterwards by rescue, it is better to update frequently. Also, keeping an eye on the Arch Linux [news list](https://archlinux.org/news/) will help keep you up to date with the latest update notes.
45 |
46 | ## Support & Donations
47 |
48 | If this book has been helpful to you, please recommend it to your friends who need it, this is the greatest support to us!
49 |
50 | We would be very grateful if receive digital currency donations. With your support, the ArchLinuxStudio community will become even more enriched and active.
51 |
52 | - Donate with Monero: `43KJJZztPtBC7k8ZjJpuw7bThW1mUH6N947TeNxvsSHD7DywRN365WZ7qpSxVopSd7cg4PFjMuUewjfvATUtTKGQLMboU36`
53 |
--------------------------------------------------------------------------------
/docs/uk/_sidebar.md:
--------------------------------------------------------------------------------
1 | - [**ArchTutorial - Arch Linux Studio**](uk/)
2 |
3 | - Start from Scratch
4 |
5 | - [Pre-installation Preparation](uk/rookie/archlinux_pre_install)
6 | - [Basic Install](uk/rookie/basic_install)
7 | - [DE and Essential Applications](uk/rookie/DE&App)
8 | - [Resisting the Internet Blockade](uk/rookie/fxckGFW)
9 | - [Transparent Proxy](uk/rookie/transparentProxy)
10 | - [Graphics Card Drivers](uk/rookie/graphic_driver)
11 |
12 | - Advanced
13 |
14 | - [Try To Be an Admin](uk/advanced/beAdmin)
15 | - [Power Control](uk/advanced/undervoltage)
16 | - [System Beautification](uk/advanced/beauty)
17 | - [Troubleshooting](uk/advanced/troubleshooting)
18 |
19 | - Entertainment & Office
20 |
21 | - [Office Routine](uk/play&office/office)
22 | - [Video and Audio](uk/play&office/media)
23 | - [Games and Entertainment](uk/play&office/play)
24 | - [Android Flashing](uk/play&office/android)
25 |
26 | - Special Areas
27 |
28 | - [Getting Started with Cryptocurrencies](uk/exclusive/mine)
29 | - [Streaming and Multimedia Production](uk/exclusive/media)
30 | - [Programming](uk/exclusive/code)
31 |
32 | - [Contribution](uk/contribution.md)
33 | - [About & Acknowledgements](uk/about.md)
34 | - [Postscript](uk/postscript.md)
35 |
--------------------------------------------------------------------------------
/docs/uk/about.md:
--------------------------------------------------------------------------------
1 | # About & Acknowledgements
2 |
3 | ## About
4 |
5 | Here are some additional explanations for this book.
6 |
7 | First of all, let me explain the difference between the positioning and the official document. The official Chinese documentation is indeed very complete, but its positioning is the official Wiki, so it is already necessary to do everything in detail. But this kind of overly detailed documentation can make newbies get lost in link after link, and they need guidance more than a dictionary. The positioning of this article is a guide, and what we think is the current better solution. In addition, most of the official Chinese documents are translated from English documents, and there are cases where the translation is not timely. There are a few cases where the translation is wrong or the meaning is unclear.
8 |
9 | There are a lot of similar documents on the Internet, why do you need such a document? Technological changes are changing with each passing day. Whether it is the operating system itself or valuable software, some online tutorials are mostly in disrepair. Everyone knows that the timeliness of Internet knowledge is very important. The flag of this book is that it will be updated as long as it is alive. And determined to achieve a better position in the Chinese community.
10 |
11 | Many people still think that Linux is not suitable as an operating system for everyday use. Let's be honest, the Linux desktop really wasn't usable in the first decade of this century. But now the time is after 2021, and the Linux desktop and ecology have made great progress. Whether it is office, light entertainment or programming, it can basically meet the needs.
12 |
13 | For any questions and suggestions about this book, you can send us an email, or you can leave a message directly at the bottom of this page.
14 |
15 | Email: archlinuxstudio@tutamail.com
16 | Telegram group: [ArchLinuxStudio🇨🇦🏳️⚧️🏳️🌈](https://t.me/FSF_Ministry_of_Truth)
17 | Matrix group: [Matrix Group:ArchLinuxStudio🇨🇦🏳️⚧️🏳️🌈](https://matrix.to/#/#ArchLinuxStudio:matrix.org)
18 |
19 | ## Changelog
20 |
21 | - 0.5.0 Finish English translation. Added related content about cryptocurrency. 2022.7.9
22 | - 0.4.0 Provides a better installation process for readers in areas where the Internet is blocked. Optimized multiple chapters. 2021.12.25
23 | - 0.3.0 Updated for 2021 changes. 2021.5.15
24 | - 0.2.0 comprehensive improvement and revision as the first version officially released to the outside world. 2021.4.11
25 | - 0.1.0 The first version that is initially available. The commit time is no longer available due to post-reorganization.
26 | - 0.0.0 project started. 2020.9.1
27 |
28 | ## Acknowledgements
29 |
30 | Salute to all free software developers, evangelists and pioneers.
31 |
--------------------------------------------------------------------------------
/docs/uk/advanced/beauty.md:
--------------------------------------------------------------------------------
1 | # System beautification
2 |
3 | This article describes how to configure the KDE desktop environment to look more aesthetically pleasing.
4 | Principle: Landscaping should not take a lot of time and toss, which is neither practical nor meaningful. The most cost-effective landscaping in the least amount of time is always the first principle.
5 | In the beautification part, you need to set the proxy before using the `system settings` function, such as downloading themes. Otherwise, the internet speed will be very slow or even unusable.
6 | After testing, it is necessary to redirect network connections to the proxy through proxychains or setting up a global transparent proxy.
7 |
8 | ```bash
9 | proxychains systemsettings5 #Open system settings through proxy
10 | ```
11 |
12 | > Before and after the KDE-related software update, there have been problems of unstable/stuck third-party themes. Again, don't beautify the magic changes too much, which will add more uncertainty and reduce the stability of your desktop.
13 |
14 | ## Wallpapers
15 |
16 | Right-click on the desktop and select `Configure Desktop`. In the new window that appears in the lower right corner, select `Add Picture` to select the picture you want. The 'Position' item selects 'Scale, maintain proportion', and the 'Background' item selects 'Blur'. This way you can have a beautiful desktop wallpaper that is proportional and has Gaussian blur on the edges.
17 |
18 | ## System themes
19 |
20 | Using a high-quality system theme can directly improve the aesthetics of the system. _System settings_ > _Appearance_ > _Global themes_ > _Get a new global theme_ , search for the theme layan, and set it. By the way, the author of this theme, vinceliuice, is a big Chinese and a designer. The quality of the themes and icons he designs are very high, you can go to his [homepage](https://www.pling.com/u/vinceliuice/) to rate and like him.
21 |
22 | > If the Windows key cannot call out the menu after switching themes, you can right-click in the lower left corner, configure the program launcher, and reset the `windows+F1` key in the keyboard shortcuts, and the Windows key will be displayed as the Meta key.
23 |
24 | ## Window decoration
25 |
26 | In _system settings_ > _appearance_ > _window decoration_, get the new window decoration, search for layan, and apply it.
27 |
28 | ## System icons
29 |
30 | If the icons in the theme don't satisfy you, you can choose some custom icons. _System Settings_ > _Appearance_ > _Icons_ > _Get New Icon Theme_ , search for the icon name Tela-icon-theme, and install it.
31 |
32 | ## SDDM themes
33 |
34 | You should note that the default login screen when entering a password is ugly and can be replaced here as well. _System Settings_ > _Startup and Shutdown_ > _Login Screen (SDDM)_ > _Get New Login Screen_ , search for SDDM theme layan and set it
35 |
36 | ## Splashscreen
37 |
38 | The welcome screen after the login interface can be beautified. _System Settings_ > _Appearance_ > _Welcome Screen_ > _Get New Welcome Screen_ , search for miku to set it up. This `Snowy Night Miku` is the initial interface of the best looking two-spined ape attribute we have searched. In addition, there is a big guy who has made some welcome screens of the second dimension theme, but the quality is average, here is his [home page](https://www.pling.com/u/thevladsoft/).
39 |
40 | ## Desktop plugin
41 |
42 | Right-click an empty space on the taskbar, select Edit Panel, and add widgets.
43 |
44 | - Netspeed widget network speed component, this is very practical
45 | - todolist task component
46 |
47 | Then you can pin the software you often use to the taskbar.
48 |
49 | After the KDE Plasma 5.22.1 update, an additional installation of ksysguard is required to ensure the proper functioning of the desktop plugin. [[1]](https://github.com/dfaust/plasma-applet-netspeed-widget/issues/28)
50 |
51 | ## Mixer
52 |
53 | _System Settings_ > _Display and Monitoring_ > _Mixer_ Turn on the mixer
54 |
55 | ## Terminal style settings
56 |
57 | Open konsole, go to _settings_ > _edit current scheme_ > _appearance_ , select `Red-Black` to apply and confirm.
58 |
59 | ## Kvantum Manager
60 |
61 | Themes work with Kvantum Manager to achieve better results.
62 |
63 | ```bash
64 | sudo pacman -S kvantum
65 | ```
66 |
67 | Download Layan's Kvantum theme from [here](https://www.pling.com/p/1325246/) and unzip it. Open Kvantum Manager, select the theme and install it, then select Layan in `Change/Delete Theme`, Use this theme. Finally, in the system settings, select kvantum in the application style in the appearance.
68 |
69 | > If the transparent effect is not displayed, make sure that the global scale of KDE is an integer multiple. Or try toggling the openGL settings in the mixer.
70 |
71 | ## GRUB themes
72 |
73 | [Official Documentation](https://wiki.archlinux.org/title/GRUB/Tips_and_tricks#Theme)
74 |
75 | Select and download the GRUB theme you want at [pling](https://www.pling.com/browse/cat/109/order/latest/), such as this [two-stinged salamander theme](https://www.pling.com/p/1526503/). Next, `cd` into the unzipped folder, open konsole and enter
76 |
77 | ```bash
78 | sudo cp -r . /usr/share/grub/themes/Nino
79 | ```
80 |
81 | to place the theme in the system's GRUB default folder.
82 | Then edit the `/etc/default/grub` file, find the `#GRUB_THEME=` line, remove the previous comment, and point to the theme's `theme.txt` file. which is
83 |
84 | ```bash
85 | #GRUB_THEME=
86 | GRUB_THEME="/usr/share/grub/themes/Nino/theme.txt" #After modification
87 | ```
88 |
89 | and then type in the terminal
90 |
91 | ```bash
92 | sudo grub-mkconfig -o /boot/grub/grub.cfg
93 | ```
94 |
95 | Update GRUB and restart.
96 |
97 | ## Boot animation
98 |
99 | [Plymouth](https://fedoraproject.org/wiki/Releases/FeatureBetterStartup) is a project from the Fedora community that provides the function of beautifying the startup GUI. If necessary, you can refer to the [official document]() to configure. Novices are not advised to spend too much time on this configuration.
100 |
101 | ---
102 |
103 | The rest of the KDE desktop has many configuration items, you can explore by yourself.
104 |
--------------------------------------------------------------------------------
/docs/uk/advanced/troubleshooting.md:
--------------------------------------------------------------------------------
1 | # Troubleshooting and solutions
2 |
3 | This section describes some of the problems that you are likely to encounter in daily use, and provides solutions.
4 |
5 | ### Install Arch Linux using BIOS+GPT mode
6 |
7 | Although there are fewer and fewer installation scenarios using traditional BIOS mode, in some special scenarios, such as installing Arch Linux on a VPS, it may still be necessary to use BIOS mode. This section describes the differences between installing in BIOS+GPT mode and UEFI+GPT mode, and most of the steps are the same.
8 |
9 | - Before installation, in the motherboard's BIOS settings, or in the VPS's boot settings (if any), adjust the boot mode to Legacy BIOS mode boot.
10 | - When partitioning, you need to separate a 2M BIOS boot mode partition, this partition does not need to be formatted and mounted.
11 | - When installing the bootloader, the corresponding commands are modified to: `grub-install --target=i386-pc /dev/vda` and `grub-mkconfig -o /boot/grub/grub.cfg`. Among them, `/dev/vda` in the first command is the disk where GRUB is installed, not a partition. The specific name is changed according to the actual situation of the installer.
12 |
13 | ### Static IP Settings
14 |
15 | Although the use of tools that can automatically obtain IP addresses can cover most scenarios, there are still some special scenarios, such as campus networks, VPS and other environments that require static IP settings. This section gives a brief way to set a static IP. If you need to set a static IP, you need to disable the tools that automatically obtain IP such as dhcpcd or NetworkManager.
16 |
17 | ```bash
18 | sudo systemctl stop dhcpcd NetworkManager
19 | sudo systemctl disable dhcpcd NetworkManager
20 | ```
21 |
22 | Next enable systemd-networkd
23 |
24 | ```bash
25 | sudo systemctl enable --now systemd-networkd
26 | ```
27 |
28 | Use the `ip ad` command to view the name of the current network card, for example, the name ens3 is used here. Then create the configuration file `/etc/systemd/network/10-static-ens3.network`. Then fill in the content in it. The ip address and gateway need to be obtained from your network provider. The DNS settings also need to be set in `/etc/resolv.conf` in the same way as above.
29 |
30 | ```conf
31 | [Match]
32 | Name=ens3
33 |
34 | [Network]
35 | Address=YOUR_IPV4_ADDRESS/MASK
36 | Gateway=YOUR_IPV4_GATEWAY
37 | DNS=8.8.8.8
38 |
39 | [Network]
40 | Address=YOUR_IPV6_ADDRESS/MASK
41 | Gateway=YOUR_IPV6_GATEWAY
42 | DNS=2001:4860:4860::8888
43 | ```
44 |
45 | Finally, restart the service.
46 |
47 | ```bash
48 | sudo systemctl restart systemd-networkd
49 | ```
50 |
51 | ### The mouse button is insensitive or malfunctioning
52 |
53 | Generally speaking, most mice are plug and play, but may experience failure after the 5.14 kernel update. It can be solved by installing the corresponding driver according to your own mouse brand. [[1]](https://openrazer.github.io/#arch)
54 |
55 | ### It takes a long time to shut down when shutting down
56 |
57 | Generally, a message in the form of `A stop job is running for...(1m30s)` will appear on the screen. This is a common problem that the shutdown is stuck for 1 minute and 30 seconds. Generally speaking, this situation is caused by a certain A process is unwilling to stop when it is shut down, and needs to wait until the timeout period is reached to force it to stop. The general solution is to adjust and shorten this waiting time. It is recommended to adjust it from 1 minute and 30 seconds to 30 seconds. 30 seconds is enough for almost all processes to end normally.
58 |
59 | Edit `/etc/systemd/system.conf`
60 |
61 | ```bash
62 | sudo vim /etc/systemd/system.conf
63 | ```
64 |
65 | Find the `DefaultTimeoutStopSec` item, remove the pound sign in front of it, and assign the value to 30s. Finally execute daemon-reload to make it take effect.
66 |
67 | ```bash
68 | sudo systemctl daemon-reload
69 | ```
70 |
71 | The above solution actually only reduces this waiting time, and does not solve the actual problem. If you want to troubleshoot the real cause of the problem, if the message `A stop job is running for...(1m30s)` appears during shutdown, wait patiently for the shutdown to end, then restart the computer and execute the following commands:
72 |
73 | ```bash
74 | journalctl -p5
75 | ```
76 |
77 | Press / (slash key) to search for the `Killing` keyword, find the matching line near the time you shut down, you can see which process caused the timeout nearby, and then check what is wrong with this process. Can.
78 |
79 | 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)]
80 |
81 | ### How to deal with insufficient disk capacity
82 |
83 | Generally use LVM to install Linux system without worrying about this happening. But we are using the traditional ext4 classic partitioning method. In this case, it is generally recommended to set the root directory larger at the beginning of the installation, such as 100G. If the size of the /home partition is not enough, you can install a new hard disk, mount it to the location you want, and then follow the steps of `basic installation` to re-genfstab it.
84 |
85 | In addition, if the root directory capacity is insufficient, you can clean the pacman cache from time to time, see [archwiki](https://wiki.archlinux.org/title/Pacman#Cleaning_the_package_cache) for details. If it is too long to read, you can directly use the following command to clean up all cached packages that are not installed, and the synchronization database that is not used.
86 |
87 | ```bash
88 | sudo pacman -Sc
89 | ```
90 |
91 | ### Software downgrade
92 |
93 | Occasionally, on archlinux, the latest version of a certain package has various problems, such as some software is too new, and some dependencies are not supported, such as [virtualbox crash under linux5.18 kernel](https:// bugs.archlinux.org/task/74900), at which point the package needs to be downgraded for normal use. A package can be either normal software or the kernel.
94 |
95 | ```bash
96 | yay -S downgrade
97 | ```
98 |
99 | Just install this package, and the usage method is also very simple. Just add the package name to be downgraded after downgrade, and then you will be prompted to select the version to be downgraded to, just click.
100 |
101 | ### An error like unable to lock database occurs when upgrading the system
102 |
103 | There may be abnormal shutdown or abnormal program exit when the system is upgraded, or multiple pacman related programs are executed at the same time. Just remove the db lock of pacman
104 |
105 | ```bash
106 | sudo rm /var/lib/pacman/db.lck
107 | ```
108 |
109 | ### Manual switch mixer
110 |
111 | Sometimes the mixer needs to be turned on or off manually for some reason, but currently the mixer cannot be turned off directly in the settings under KDE without shutting down. The following command provides the effect of manually switching the mixer on and off. [[1]](https://unix.stackexchange.com/questions/597736/disabling-kwin-compositor-from-command-line)
112 |
113 | ```bash
114 | qdbus org.kde.KWin /Compositor suspend #disable
115 |
116 | qdbus org.kde.KWin /Compositor resume #Open
117 |
118 |
119 | ```
120 |
121 | ### Screen overflow: overscan
122 |
123 | When connecting some old-fashioned display devices, the phenomenon of [overscan](https://en.wikipedia.org/wiki/Overscan) may appear. Simply put, the TV screen will overflow in four circles, and it will not be displayed. . For Intel HD graphics, you can choose intel panel fitter [[1]](https://askubuntu.com/questions/508358/overscanning-picture-problem-using-hdmi-with-intel-graphics). The last thing is to add to a service to automatically start at boot, and execute [[2]](https://unix.stackexchange.com/questions/397853/how-to-set-a-systemd-unit-to-start-after-loading-the-desktop).
124 |
125 | ```
126 | sudo intel_panel_fitter -p A -x 1230 -y 700
127 | ```
128 |
129 | ---
130 |
131 | ## Ref
132 |
133 | - [[1]GUID 分区表*(GPT)*特殊操作]()
134 |
--------------------------------------------------------------------------------
/docs/uk/advanced/undervoltage.md:
--------------------------------------------------------------------------------
1 | # Power Control
2 |
3 | For equipment with poor heat dissipation, power consumption control is very necessary. The power consumption control mentioned here does not mean to directly limit the frequency of the processor, but to probe the voltage of the processor to the maximum extent. While excavating the limit of the cpu physique, it can not only reduce heat, but also Maximize the effect of maintaining performance. In addition to the voltage drop, you can also try to reduce the power wall (also called TDP) of the processor. For example, considering this situation, when the CPU is at full turbo frequency, it does not need to be as much as the default. Power consumption to maintain, maybe reduce a few watts on the basis of the default power consumption, but also maintain full turbo frequency, so that the temperature can be further reduced. Limiting the power wall is different from lowering the voltage. If the parameters for limiting the power wall are low, it will inevitably lose more performance, but it is also a good method for equipment with poor heat dissipation.
4 |
5 | ## Undervolting CPU
6 |
7 | [Official reference documentation](https://wiki.archlinux.org/index.php/Undervolting_CPU)
8 |
9 | Under normal operation, lowering the voltage will generally not harm the CPU, and it is generally recommended to try from 50 mV, adding an extra 10 mV for each step-down attempt. Just make sure that the tasks in the system are properly saved before lowering the voltage. It is a rumor that reducing the CPU voltage on the Internet will "shrink the anus" [[1]](https://www.zhihu.com/question/62335676).
10 |
11 | ### Intel 4th Gen Core Haswell and newer CPUs
12 |
13 | Using intel-undervolt, as the documentation says, can be stepped down. The meanings of the five parameters in the step-down part of the configuration file are as follows:
14 |
15 | - 0: cpu core voltage
16 | - 1: cpu core graphics card voltage
17 | - 2: cpu cache voltage
18 | - 3: System peripheral voltage, related to memory and other devices
19 | - 4: Analog I/O Voltage
20 |
21 | Generally speaking, only two voltages 0 and 2 can be adjusted.
22 |
23 | After adjusting the voltage and applying, you can try to use the tool [s-tui](https://archlinux.org/packages/community/any/s-tui/) to test the oven, and observe the temperature, frequency, TDP The data.
24 |
25 | After adjusting to a suitable step-down configuration, start its corresponding service.
26 |
27 | ```bash
28 | sudo systemctl enable --now intel-undervolt
29 | ```
30 |
31 | ### Cpu before Intel 4th generation Haswell
32 |
33 | The arch official document mentioned that the second-generation Core and previous CPUs can use PHC to reduce voltage. After testing, it cannot be used directly on i7-2760QM. It is necessary to add `intel_pstate=disable` to the kernel startup parameters to correctly identify the phc driver. [Reference 1](https://wiki.archlinux.org/index.php/CPU_frequency_scaling), which can be verified with the command `cpupower frequency-info`. Next, try to reduce the voltage. According to the archwiki operation, the phc_vid file cannot be changed, and its content is always 0, even if it has been changed to another value with vim. Maybe the cpu/motherboard BIOS doesn't support downclocking. I read the official documentation of phc-intel, and its instructions only support Core, Core 2 and previous cpu series, not Core i, which contradicts the description of archwiki.
34 |
35 | For the three-generation Core Ivy bridge sandwiched in the middle, [there is a project](https://github.com/tiziw/iuvolt) says that the principle of intel-undervolt can be used to reduce voltage, but the test failed, so try to use PHC. still fails. At present, there should be no good way to step down the three-generation Core.
36 |
37 | For older equipment bucks in this range, I won't spend more time exploring. If you know of a way to properly depressurize, please submit a PR, or [enter group discussion](https://t.me/FSF_Ministry_of_Truth).
38 |
39 | ref: [[1]](https://www.reddit.com/r/intel/comments/8ubdsg/undervolting_intel_i5_3230m/) [[2]](https://forum.thinkpads.com/viewtopic.php?t=128707)
40 |
41 | ### AMD
42 |
43 | Use amdctl in the wiki to try undervolting.
44 |
45 | ## Limit power wall
46 |
47 | For the adjustment of the power wall, some motherboards provide setting items in the BIOS that can be adjusted directly. For motherboards without setting items, some motherboards lock the instantaneous and long-term power wall, and in this case, the power wall cannot be adjusted. Some motherboard BIOS does not provide power wall adjustment items, but it can still be set through the command line. Use the following command to check whether the motherboard can adjust the power wall.
48 |
49 | ```bash
50 | grep . /sys/class/powercap/intel-rapl/intel-rapl:0/*
51 | ```
52 |
53 | If you see an enable value of 1 in the output like the following, you can adjust it. The first row represents the existing power wall limit.
54 |
55 | ```bash
56 | /sys/class/powercap/intel-rapl/intel-rapl:0/constraint_0_power_limit_uw:100000000
57 | /sys/class/powercap/intel-rapl/intel-rapl:0/enabled:1
58 | ```
59 |
60 | The specific adjustment steps refer to [this link](https://askubuntu.com/questions/1226254/set-max-tdp-of-intel-h-series-cpu). I will translate it when I have time.
61 |
62 | 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)
63 |
64 | In addition, intel-undervolt can also directly perform power wall limiting. If you see `package power limit is locked`, it means that this computer cannot change the power wall.
65 |
--------------------------------------------------------------------------------
/docs/uk/contribution.md:
--------------------------------------------------------------------------------
1 | # Contribution
2 |
3 | Click the github icon in the upper right corner of this article to view this project. There is also a link to `edit this article` at the bottom of each page, click to jump to github for editing.
4 |
5 | The outline directory of this book is controlled by the project team members, and the content of the article can be edited freely. The main line of this book is based on practicality, and only provides a simple and concise installation line that we think is currently better. Redundant and meaningless content will not be accepted.
6 |
7 | The addition of project resources, such as images, non-essential js files, and non-essential css files, are not accepted. Because of the blockade and restrictions on github in some countries, such files under direct connection will greatly slow down the loading speed of web pages.
8 |
9 | This project was originally licensed under the CC BY-SA 4.0 license, and eventually switched to the CC BY-NC-ND 4.0 license, see [Why we changed the license to CC BY-NC-ND 4.0](https://github.com/ArchLinuxStudio/ArchLinuxTutorial/issues/68).
10 |
11 | ## Documentation contribution
12 |
13 | Documentation contribution is very simple, you only need to have an editor, fork the project, modify it, and submit a pull request. Note that if you submit changes in one language, please also submit changes in the other language.
14 |
15 | ## Format convention
16 |
17 | The philosophy of this series of documents is that you don't have to be too strict about formatting, because the content is what really matters. But there are also a few specifications that must be followed, otherwise reading will be affected.
18 |
19 | - Use OSS code for development, format the code with the default configuration of the Prettier plugin, and use ctrl+s to automatically format and save after writing some documents.
20 | - Each md document title organizes the content hierarchically, the main title is #, followed by ##, then ###, and so on.
21 | - means that the fragment needs to be wrapped in markdown syntax and specify the code type, such as bash.
22 | - In general, please try to use punctuation such as periods, commas, quotation marks, and colons as normal.
23 | - Use markdown citation syntax for parts that need attention.
24 | - Proper nouns can be hinted using inline code `` syntax, which is more obvious than bold.
25 | - Inline code Please use inline code for hints.
26 |
27 | ## Code contribution
28 |
29 | This project is written using [docsify](https://docsify.js.org/#/). If you want to contribute related code, please read the docsify project documentation first.
30 |
31 | This project uses yarn to manage dependencies, and the structure is very simple. If you have not been exposed to it, you may need to briefly understand [yarn](https://classic.yarnpkg.com/en/)
32 |
33 | Local debugging:
34 |
35 | ```bash
36 | yarn install
37 | yarn start
38 | ```
39 |
--------------------------------------------------------------------------------
/docs/uk/exclusive/code.md:
--------------------------------------------------------------------------------
1 | # Programming
2 |
3 | What many people don't know is that Linux is almost the most suitable operating system for programming, and its programming support for all directions is in place (except Microsoft and Apple's proprietary system programming), which can save you a lot of pain. This article introduces high-quality software introductions in various programming directions. We recommend that readers use free software for programming, and only free software is listed in this section.
4 |
5 | ## Front-end programming
6 |
7 | For the front end, a browser and IDE (or editor) are generally required, with some network tools attached.
8 |
9 | For IDE (or editor), you can use [OSS code](https://www.archlinux.org/packages/community/x86_64/code/), which is an open source build generated from the official repository. [vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/)AUR is a community driven version of vs code.
10 |
11 | > Binary builds of Microsoft Visual Studio Code are actually proprietary software. Many people have misunderstandings here. Such tricks are increasingly being explored and used by more companies. [[1]](https://carlchenet.com/you-think-the-visual-studio-code-binary-you-use-is-a-free-software-think-again/)
12 |
13 | On the browser side there are [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/), [brave](https://aur.archlinux.org/packages/brave-dev-bin/)AUR and many other software to choose from.
14 |
15 | Network tools often use [httptoolkit](https://aur.archlinux.org/packages/httptoolkit/)AUR (as a replacement for charles), and [wireshark-qt](https://archlinux.org/packages/community/x86_64/wireshark-qt/).
16 |
17 | As for front-ends such as [yarn](https://www.archlinux.org/packages/community/any/yarn/), [npm](https://www.archlinux.org/packages/community/any/npm/) Common tools can also be installed with pacman.
18 |
19 | ## Back-end programming
20 |
21 | Jetbrains' open source IDE can be found in the official archlinux repository, such as [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/), et al.
22 | More traditional IDEs include [Netbeans](https://www.archlinux.org/packages/community/any/netbeans/) and eclipse, which has multiple versions and can be searched in the AUR.
23 |
24 | There is no need to say much about the programming language itself, except that the C language and C++ are supported by the installed system, java, node, etc. can be easily installed.
25 |
26 | In addition to the default installed gcc, you can also install clang and llvm for use
27 |
28 | When it comes to database-related software, there are also a variety of options.
29 |
30 | - [Mysql Workbench](https://www.archlinux.org/packages/community/x86_64/mysql-workbench/)
31 | - [pgadmin4](https://www.archlinux.org/packages/community/x86_64/pgadmin4/)
32 | - [dbeaver](https://www.archlinux.org/packages/community/x86_64/dbeaver/)
33 | - [robo3t](https://aur.archlinux.org/packages/robo3t-bin/)AUR
34 | - [RESP.app](https://aur.archlinux.org/packages/resp-app/)AUR (pre redis-desktop-manager)
35 | - [rdm-bin](https://aur.archlinux.org/packages/rdm-bin/)AUR If there is a problem with the above compilation, use this bin version
36 |
37 | For big data, packages such as [hadoop](https://aur.archlinux.org/packages/hadoop/)AUR can be installed. If the package has not been updated for a long time or the package does not exist, such as hbase and hive, you can only go to the official website to download and configure it yourself.
38 |
39 | Regarding software testing, common software such as [junit](https://archlinux.org/packages/extra/any/junit/) can also be easily installed and used with your favorite IDE.
40 |
41 | ## Android client programming
42 |
43 | At present, Android development has been unified to [Android Studio](https://aur.archlinux.org/packages/android-studio/)AUR for development. Of course traditional Eclipse can also be used. Common Android emulators can also use [Anbox](https://wiki.archlinux.org/title/Anbox#Installation) or [Waydriod](https://wiki.archlinux.org/title/Waydroid#Installation) .
44 |
45 | ## Desktop application programming
46 |
47 | At present, the more popular desktop development is [electron](https://archlinux.org/packages/community/x86_64/electron/) and [Qt](https://archlinux.org/packages/extra/x86_64/qt6-base/) application. Electron can be developed directly with OSS Code, and Qt applications can be developed with [Qt Creator](https://www.archlinux.org/packages/extra/x86_64/qtcreator/).
48 |
49 | ## Machine Learning and Deep Learning
50 |
51 | For programming in machine learning, the IDE can use the same software as in backend programming. Machine learning commonly used [jupyter-notebook](https://archlinux.org/packages/community/any/jupyter-notebook/) and required related libraries such as [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/), etc., can also be found in the source. Meanwhile, [tensorflow](https://archlinux.org/packages/community/x86_64/tensorflow/), [pytorch](https://archlinux.org/packages/?sort=&q=python-pytorch&maintainer=&flagged=) And deep learning related packages such as its related cuda support package can also be installed and used.
52 |
53 | ## Scientific Computing
54 |
55 | [SageMath](https://www.sagemath.org/) (formerly Sage) is free, liberating mathematical software that supports research and teaching in algebra, geometry, number theory, cryptography, numerical computing, and related fields, and is available as Alternative to MATLAB. Both Sage's development model and Sage's own technology place a strong emphasis on openness, community, cooperation, and collaboration: we're building cars, not reinventing the wheel. The overall goal of Sagemath is to provide a viable, free, free alternative to the "4M" (i.e. Maple, Mathematica, Magma, and Matlab). SageMath rewrites the interface for most open source software/libraries in the field of scientific computing, and provides a python-compatible syntax, which can be said to be the culmination of open source mathematical software. At present, it can partially replace "4M".
56 |
57 | [Arch Wiki](https://wiki.archlinux.org/title/SageMath) ||| [Chinese Tutorial and Documentation](https://www.osgeo.cn/sagemath/index.html)
58 |
59 | ## Reverse Engineering
60 |
61 | The well-known [ghidra](https://archlinux.org/packages/community/x86_64/ghidra/) can be installed as an alternative to IDA. For more alternative options, please refer to [alternativeto](https://alternativeto.net/software/ida/). In addition, introduce a useful hex editor [Bless](https://archlinux.org/packages/community/any/bless/).
62 |
--------------------------------------------------------------------------------
/docs/uk/exclusive/media.md:
--------------------------------------------------------------------------------
1 | # Streaming and Multimedia Production
2 |
3 | This section will list all kinds of high-quality software in the direction of multimedia production, including the software required for live broadcast, video editing, image editing and drawing.
4 |
5 | ## Live streaming and barrage Ji auxiliary software
6 |
7 | The live broadcast and recording are done on linux using [obs-studio](https://www.archlinux.org/packages/community/x86_64/obs-studio/), and the usage is basically the same as that under windows.
8 |
9 | You can use [danmaku library](https://www.danmaku.live/) for the live broadcast of station b. This history is more complicated. The v1 version of the warehouse is [here](https://github.com/pandaGao/bilibili-live-helper), but the author said that it will not be updated. The author of the v2 version is currently not open source, and said that it [will not be updated in the future](https://t.bilibili.com/378501835576827480). AUR: [bilibili-live-helper-bin](https://aur.archlinux.org/packages/bilibili-live-helper-bin/).
10 |
11 | In addition to this, there is also a [bilibili-live-chat](https://github.com/Tsuk1ko/bilibili-live-chat), which is a browser's bullet chat implementation, the style is modeled after youtube's bullet chat style, It is also the basis of many barrage software, which can be used directly on the web. In addition to the live broadcast of station B, the live broadcast methods of other platforms such as twitch are similar, but you need to find different bullet screen plug-ins. For example, you can refer to [this article](https://www.bilibili.com/read/cv10092277/) on twitch .
12 |
13 | > Browser-based danmakuji implementations such as bilibili-live-chat require the use of obs integrated with browser plug-ins. The default obs-studio in the arch official repository does not have this function. If you want to use bilibili-live-chat, please Install [obs-studio-browser](https://aur.archlinux.org/packages/obs-studio-browser/) in AUR.
14 |
15 | If you use a newer NVIDIA graphics card, you can use the NVENC encoder, which will greatly reduce the pressure on the cpu during live streaming or recording, see [NVIDIA NVENC OBS Guide](https://www.nvidia.cn/geforce/guides/broadcasting-guide/)
16 |
17 | Note that if you use qv2ray+cgproxy to enable transparent proxy, then you need to add obs to the value of program_noproxy in /etc/cgproxy/config.json.
18 |
19 | ## Video production editing and special effects
20 |
21 | The free software [shotcut](https://www.archlinux.org/packages/community/x86_64/shotcut/) is recommended for video editing and production. It can meet most video editing needs. Similar software includes [kdenlive](https://www.archlinux.org/packages/extra/x86_64/kdenlive/) and [mkvtoolnix](https://archlinux.org/packages/extra/x86_64/mkvtoolnix-gui/).
22 |
23 | Some of KDE's accessibility features are useful when recording video. In KDE's system settings, find Workspace Behavior->Desktop Effects, check `Mouse Positioning` and `Mouse Click Animation` in Accessibility Functions, and use them. These two settings can highlight the mouse position and click effect in video production, which is quite useful for video production.
24 |
25 | For keyboard input, you can install the package [screenkey](https://archlinux.org/packages/community/any/screenkey/), which can display the keyboard input on the display screen, which is also quite useful for video production.
26 |
27 | ## Drawing, drafting and retouching
28 |
29 | Retouched images on linux are available [gimp](https://www.archlinux.org/packages/extra/x86_64/gimp/). If you need to draw with the tablet, you can use [krita](https://www.archlinux.org/packages/extra/x86_64/krita/), krita also provides certain drawing functions. Vector image manipulation can be done using [inkscape](https://www.archlinux.org/packages/extra/x86_64/inkscape/)
30 |
31 | [Aseprite](https://www.aseprite.org/) is a pixel art drawing tool, you can use the yay installation package [aseprite](https://aur.archlinux.org/packages/aseprite/).
32 |
33 | [RawTherapee](https://archlinux.org/packages/community/x86_64/rawtherapee/) is a free and open source cross-platform RAW format image processing program.
34 |
35 | [hugin](https://archlinux.org/packages/community/x86_64/hugin/) is an open source software that can synthesize the depth of field of pictures and stitch pictures. It can replace the automatic alignment layers and Automatically merge layers.
36 |
37 | As for format conversion, you can use the convert function of [imagemagick](https://archlinux.org/packages/extra/x86_64/imagemagick/) to convert between image formats.
38 |
39 | For handwriting and various handwriting needs, you can try to use [rnote](https://archlinux.org/packages/community/x86_64/rnote/)
40 |
41 | ## Modeling
42 |
43 | - [blender](https://archlinux.org/packages/community/x86_64/blender/) powerful 3D modeling software
44 | - [Sweet Home 3D](https://archlinux.org/packages/community/x86_64/sweethome3d/) Sweet Home 3D is a free home improvement assistant design software. It can help you design and arrange your furniture through a two-dimensional home floor plan, and you can also browse the entire decoration layout with a three-dimensional perspective.
45 | - [Synfig Studio](https://archlinux.org/packages/community/x86_64/synfigstudio/) Synfig Studio is a free and open source 2D animation software for creating film-quality animations using vector and bitmap artwork.
46 |
47 | ## Audio
48 |
49 | Professional audio production can use the following software.
50 |
51 | - [Kwave](https://archlinux.org/packages/extra/x86_64/kwave/) Kwave is a free and open source audio editing software developed by KDE, which can record, play, import and edit many audio files, including many soundtrack file.
52 | - [lmms](https://archlinux.org/packages/community/x86_64/lmms/) LMMS is a free, open source and cross-platform composition tool. Create music by crafting melodies and beats, synthesizing and mixing audio, arranging audio clips, and more.
53 | - [carla](https://archlinux.org/packages/community/x86_64/carla/) Carla is a fully-featured modular audio plugin host, with support for many audio drivers and plugin formats.
54 | - [Ardour](https://archlinux.org/packages/community/x86_64/ardour/) Ardour is a free and open source software that allows you to record, edit and mix on Linux.
55 | - [vcvrack](https://aur.archlinux.org/packages/vcvrack-bin/) VCV Rack is an open source visual, modular sound synthesizer.
56 | - [Mixxx](https://archlinux.org/packages/community/x86_64/mixxx/) Mixxx integrates the tools DJs need for creative live mixing using digital music files.
57 | - [MuseScore](https://archlinux.org/packages/community/x86_64/lmms/) MuseScore is a cross-platform free and open source notation software developed by Muse Group.
58 | - [SoundConverter](https://archlinux.org/packages/community/any/soundconverter/) SoundConverter is an audio file converter for the GNOME desktop (this does not affect use in the Plasma desktop environment).
59 | - [Reaper](https://archlinux.org/packages/community/x86_64/reaper/) REAPER is a complete digital audio production application for computers, offering a full multitrack audio and MIDI recording, editing, processing, mixing and mastering toolset.
60 |
61 | ## UI/UX Design
62 |
63 | - [figma-linux](https://github.com/Figma-Linux/figma-linux) figma online version, or use an unofficial Linux figma desktop software
64 | - [Akira](https://aur.archlinux.org/packages/akira/) Designing Linux-native apps with UI/UX built with Vala and GTK
65 |
66 | ## Subtitles
67 |
68 | Generally speaking, it is more common to add srt subtitles to a video. Here is how to add subtitles to youtube videos.
69 | The first thing to do is to download video subtitles, here you can use a chrome extension: [YouTube™ Dual Subtitles](https://chrome.google.com/webstore/detail/youtube-dual-subtitles/hkbdddpiemdeibjoknnofflfgbgnebcm), you can download your Required subtitle file. If you have a more convenient way to download, please let us know.
70 | Next, re-burn the subtitles and video. MKVToolNix can only do that kind of separated subtitles, but some video sites such as Bilibili need to upload and burn it. For better compatibility, it is recommended to always re-burn the video and file. Do it with ffmpeg:
71 |
72 | ```bash
73 | ffmpeg -i input.mp4 -vf subtitles=input.srt output.mp4
74 | ```
75 |
76 | If you need to make bilingual subtitles (display at the same time, instead of subtitle tracks), after youtube selects automatic translation, click Chinese, if the video supports, the file download of bilingual subtitles will appear. If the video does not support bilingual subtitle download, you can use the ffmpeg command twice, the first to add the main subtitle and the second to add the subtitle. The first operation uses MarginV for vertical differentiation. For more parameters, you can refer to the ffmpeg documentation yourself.
77 |
78 | ```bash
79 | ffmpeg -i hack.mp4 -strict -2 -vf subtitles=hack_en.srt:force_style='Fontsize=20\,Fontname=FZYBKSJW--GB1-0\,MarginV=30\,Bold=-1\,BorderStyle=1 ' -qscale:v 3 hack_with_en.mp4
80 | ffmpeg -i hack_with_en.mp4 -strict -2 -vf subtitles=hack_en.srt:force_style
81 | ='Fontsize=15\,Fontname=FZYBKSJW--GB1-0\,Bold=-1\,BorderStyle=1' -qscale:v 3 hack_with_double_subtitles.mp4
82 | ```
83 |
84 | In addition, ffmpeg can also perform transcoding and many other operations. It is a very powerful tool and an important component of many audio and video software. More about ffmpeg can be inquired by yourself.
85 |
86 | ## Material extraction for visual novels
87 |
88 | At present, [GARbro](https://github.com/morkt/GARbro) is commonly used, but it cannot be used normally through wine under linux. Here is a cross-platform gal game content extraction tool [arc_unpacker](https://aur.archlinux.org/packages/arc_unpacker-git/). For detailed usage, you can check its github by yourself.
89 |
--------------------------------------------------------------------------------
/docs/uk/play&office/android.md:
--------------------------------------------------------------------------------
1 | # Android Flashing
2 |
3 | [Arch Wiki Android Doc](https://wiki.archlinux.org/index.php/android)
4 |
5 | ## Why need Android Flashing
6 |
7 | Among the mobile phone brands currently available on the market, in addition to its own magic-modified closed-source Android mobile phone system, almost any brand will be pre-installed with a series of factory applications, such as browsers, contacts, and application markets. These applications are all closed-source software developed and provided by various mobile phone manufacturers. There is a serious problem here. These magic-modified systems and closed-source application software may perform various espionage functions to monitor and audit users. According to reports, both Xiaomi and Huawei mobile phones will report users' searches and browsing, and if keywords such as "Tibet freedom", "Taiwan independence", "democracy and freedom" are matched, they will be encrypted and reported. These keywords may have Hundreds of thousands. Due to such reasons, users must re-flash the system of the mobile phone. Choosing an open source and reliable ROM to flash the mobile phone can protect their privacy and security. At the hardware level, there is also the possibility of auditing and monitoring, but there is no clear and reliable report yet.
8 |
9 | > Mainland Chinese manufacturers such as Huawei Hongmeng and Xiaomi’s MIUI have the risk of cooperating with the authoritarian government, and this risk is getting bigger and bigger. From the perspective of the operating system, the integration of the so-called "anti-fraud system" is almost on the verge of completion. . Whether there will be hardware-level monitoring and auditing, there is no clear evidence yet. For your privacy and security, if the mobile phones of these manufacturers cannot be flashed into the secure ROM by themselves, then you need to refuse to use the products of these manufacturers.
10 |
11 | It is best to buy a mobile phone with a well-known brand and a popular model, so that you can easily find the official twrp and well-known ROM packages when flashing the phone, such as[LineageOS](https://lineageos.org/), [crDroid](https://crdroid.net/), [Resurrection Remix](https://resurrectionremix.com/), [PixelExperience](https://download.pixelexperience.org/devices),[grapheneos](https://grapheneos.org/) etc. If it is a relatively unpopular brand, the official may not provide ROM, and you can only find the personal modified twrp and the unofficial ROM of the above ROM package on the Internet. The search method is generally the code name of the mobile phone + ROM. The security of such a personal modification is more difficult to say, and it may also have more bugs. It is also possible that you have searched the whole network, but you cannot find twrp and ROM that can be used by unpopular models (referring to easy-to-use, non-hardware provider's official ROM). In terms of hardware, it is generally recommended to buy Qualcomm Snapdragon cpu, not MediaTek, because more ROM versions are compatible with Qualcomm hardware.
12 |
13 | First you need to install the android toolkit on linux
14 |
15 | ```bash
16 | sudo pacman -S android-tools
17 | ```
18 |
19 | ## Unlock bootloader
20 |
21 | Again, a reminder to buy or use a phone brand that might unlock the bootloader. Generally speaking, for brands like Xiaomi, the official will provide ways and tools to unlock the bootloader, but these tools can only be used under windows. At this time, you can only use a windows operation, or use a virtual machine.
22 |
23 | In addition, if you can get, or get the unlock code of the bootloader in a very hacky way, you can also use adb to unlock it in fastboot mode.
24 |
25 | ```bash
26 | $ adb reboot bootloader #The mobile phone first connects to the computer and restarts to fastboot
27 | $ fastboot oem unlock xxxxxxx #Unlock in fastboot mode, you must add the correct bl code to unlock, otherwise an error will be reported
28 | FAILED (remote: 'check password failed!')
29 | fastboot: error: Command failed
30 | ```
31 |
32 | ## Flash twrp and ROM
33 |
34 | There is no official twrp device, you can check it at [unofficialtwrp](https://unofficialtwrp.com/devices/).
35 |
36 | If there is no relevant information, there are several forums and websites you can look at
37 |
38 | - xda https://forum.xda-developers.com/
39 | - https://androidfilehost.com/ search development code + system name you want
40 |
41 | Generally, the version of twrp has a corresponding relationship with the ROM package. Before flashing, make sure that your two versions are compatible, otherwise the flashing process may report strange errors, such as unable to mount /system
42 |
43 | Go to download the twrp corresponding to your model. Search for your model on the [official website](https://twrp.me/Devices/) and download it. If you don't see your model, it means that it is not officially supported, and you need to search for the version modified by others. Connect the phone to the computer, be careful to connect it to the USB2.0 interface, otherwise there may be compatibility problems.
44 |
45 | Put the phone into fastboot mode, open the terminal on the computer, and execute
46 |
47 | ```bash
48 | fastboot flash recovery ./path/of/your-twrp.img
49 | ```
50 |
51 | When you see the terminal has finished executing, you can restart the phone. Note here that executing `fastboot reboot` can restart, but many devices will automatically overwrite and replace the custom recovery you flashed at the first boot, so a direct restart will report an error that it is not an official system and similar information. To prevent this, reboot into recovery via a hardware key on the phone, and TWRP will patch the ROM to prevent the ROM from replacing TWRP. [[1]](https://twrp.me/xiaomi/xiaomimi5.html)
52 |
53 | The remaining steps are to simply enter twrp, double-clear, and flash.
54 |
55 | > Sometimes double-clear or enter twrp may see an error, use advanced cleaning, change the format from ext4, and then change back to ext4 may be solved
56 |
57 | More commands:
58 |
59 | ```bash
60 | $ adb shell #Open adb shell
61 | $ adb root #Open adb shell with root privileges when the phone is already rooted
62 | ```
63 |
64 | ## Remove the network restriction prompt
65 |
66 | Google has introduced the "Captive Portal" mechanism since Android 5.0, which is mainly used to detect whether the WiFI network authentication is normal. The default detection access is the server outside the Google wall. When using native Android, which is common in the world, this service will prompt that the network is restricted in the wall environment, even if services such as Shadowsocks have been turned on. To solve this problem, you can use the adb command to modify the server to detect access to google.cn.
67 |
68 | ```
69 | adb shell settings put global captive_portal_server www.google.cn
70 | adb shell settings put global captive_portal_https_url https://www.google.cn/generate_204
71 | adb shell settings put global captive_portal_mode 0
72 | ```
73 |
74 | Finally, switch to the flight mode and switch back to solve it.
75 |
76 | ## Flash into Google Suite
77 |
78 | In some scenarios, you need to flash into the Google suite because you need to use Google play. Optional projects are [opengapps](https://opengapps.org/), [nikgapps](https://nikgapps.com/) and [suites provided by lineageos](https://wiki.lineageos.org/gapps). opengapps updates seem to have stalled at the moment. nikgapps can be customized.
79 |
80 | ## Unlock root privileges
81 |
82 | Use Magisk to unlock root privileges. Download the Magisk apk file from its [official release interface](https://github.com/topjohnwu/Magisk/releases), and rename it to a .zip suffix. Then copy it to the phone, and finally enter twrp to flash the zip package.
83 |
84 | Ref:
85 |
86 | - [小米刷机教程](http://www.romleyuan.com/news/readnews?newsid=938)
87 |
--------------------------------------------------------------------------------
/docs/uk/play&office/media.md:
--------------------------------------------------------------------------------
1 | # Audio & Video
2 |
3 | This section records related information about watching movies and listening to music on arch linux.
4 |
5 | ## Online music and audio player
6 |
7 | To listen to online music, you can use [Netease Cloud Music](https://aur.archlinux.org/packages/netease-cloud-music/), [qq Music](https://aur.archlinux.org/packages/qqmusic-bin/) produced by NetEase or Tencent , but they are either in disrepair or of poor quality. Obviously these big companies are not willing to invest their energy in the Linux desktop, and we recommend you to use free software that is better maintained.
8 |
9 | [yesplaymusic](https://github.com/qier222/YesPlayMusic) is a full-platform open source music listening software, with high appearance, no social functions, and integration of whole network resources, it is recommended to use
10 |
11 | ```bash
12 | yay -S yesplaymusic
13 | ```
14 |
15 | [listen1](https://github.com/listen1/listen1_desktop) is an old-fashioned music listening software with complete functions. The same resources are integrated across the entire network. It is recommended to use
16 |
17 | ```bash
18 | yay -S listen1-desktop-appimage
19 | ```
20 |
21 | [Electron Netease Cloud Music](https://github.com/Rocket1184/electron-netease-cloud-music) is a Netease Cloud Music Linux client written with Electron and Vue, which supports song download, which is its advantage , but the music library is not as complete as the first two software.
22 |
23 | ```bash
24 | yay -S electron-netease-cloud-music
25 | ```
26 |
27 | [FeelUOwn](https://github.com/feeluown/FeelUOwn) is a cross-platform music player that conforms to the Unix philosophy. It is easy to install, novice-friendly, and provides plug-ins for various domestic music platforms by default.
28 |
29 | ```bash
30 | yay -S feeluown
31 | # Install the following plugins as needed
32 | yay -S feeluown-local feeluown-netease feeluown-qqmusic feeluown-kuwo
33 | ```
34 |
35 | ## Video player
36 |
37 | Local audio and video playback generally uses vlc or mpv
38 |
39 | ```bash
40 | sudo pacman -S vlc #VLC player
41 | sudo pacman -S mpv #MPV player
42 | ```
43 |
44 | Besides, if you want to watch online video resources, [zy-player](https://aur.archlinux.org/packages/zy-player-bin/) is a good choice, it is a cross-platform Video resource player, integrates the whole network resources, can play some movies.
45 |
--------------------------------------------------------------------------------
/docs/uk/postscript.md:
--------------------------------------------------------------------------------
1 | # Postscript
2 |
3 | ArchLinuxStudio always puts the privacy and security of readers first, and continues to make efforts to promote the development of the free software movement, and this `ArchLinux Installation and Use Tutorial` is the initial project of the organization, and we will give the highest priority to ensuring its project quality. It will play a role in bringing more people into the world of free software.
4 |
5 | What can free software bring to the masses? This is a question worth exploring in depth. Simply put, it gives enough respect to each user and gives users the right to choose. Proprietary software tramples on users' privacy, dignity, and does countless shameless and dirty acts. In the eyes of these proprietary software, users are just data that can be used, sold and oppressed at will, not a person.
6 |
7 | However, what is even more dangerous is that in many totalitarian and authoritarian countries, commercial companies that own proprietary software are in cahoots with these totalitarian and authoritarian governments, not only monitoring people in all aspects, but also secretly arresting and secretly arresting pro-democracy activists and dissidents. persecution. Many times, whenever we witness such an incident, we will sigh that these people have not mastered the use of free software and have not realized the value of free software.
8 |
9 | > Where there is oppression, there is resistance.
10 |
11 | It is very ironic that this sentence, said today, will shame and fear some political parties in the world. Some people will think it is completely incomprehensible that people and organizations supporting the free software movement are concerned with politics, as if politics were an issue that had nothing to do with them. In fact, this view is very ignorant and stupid. The main goal of the free software movement is to guarantee the freedom and dignity that users deserve. However, in authoritarian countries, people are suppressed and oppressed in all aspects at the electoral level, the financial level, the network level, the speech level, etc., which makes the supporters of the free software movement unable to stand by. For the web, they have developed software that breaks internet blockades, such as V2ray and Shadowsocks, re-giving people the right to freely access the internet. For finance, they have developed the blockchain and the cryptocurrency system that grows on it, re-empowering people to truly control their own property, and to be free from the wealth plunder caused by the government's indiscriminate currency issuance. For administration, election and decision-making, the transparency and immutability of the blockchain ensures that everything is open, transparent and fair. In terms of speech, software such as Mammoth, Telegram, Matrix, etc. re-empowers people to freely express their opinions.
12 |
13 | > If you listen to it, it will be bright, and if you believe in it, it will be dark.
14 |
15 | This Chinese idiom is very applicable in many ways. Write the code, and after reading the source code of as many similar projects as possible, you will have a better grasp of the project you need to do. Watching news, only by listening to reports from various countries and media in the world, and combining your own thinking, can you come to a more rational conclusion. When making a decision, only after listening to the opinions of the relevant personnel, can a more reasonable and rational decision be made in the interests of more people. However, in authoritarian and totalitarian countries. We don't see any such possibility. The blockade of the Internet makes it difficult or impossible for people in these countries to obtain the world's news information, the latest software and technology, and can only hear and see what authoritarian and totalitarian governments want them to see. Cover people's eyes, ears, and finally sew their mouths. In this case, people will only be more and more deceived, and eventually become extreme and stupid. **We can't do it to see it all, and to be indifferent and stand idly by. **
16 |
17 | In fact, there is almost no monetary income for everything we do, which is incomprehensible to many people who believe in the philosophy of putting money first. Of course, this just shows that we are fundamentally different from these people. A scholar must be courageous and have a long way to go. Many people's ambition is to make money, but not here.
18 |
19 | Later, there will be other tutorials to meet readers, and ArchLinuxStudio will continue to develop various free software and various tools that can achieve "Equal Internet access for all." It's just that due to human and economic reasons, we can't guarantee the speed of the update, but we can guarantee that our speed may be very slow, but it will never stop.
20 |
21 | ---
22 |
23 | Proprietary software for evil, totalitarian government surveillance, arrest and persecution, keep pace with the world's largest Great Firewall, "We won 🎉!"
24 |
--------------------------------------------------------------------------------
/docs/uk/rookie/archlinux_pre_install.md:
--------------------------------------------------------------------------------
1 | # Preparation before installation
2 |
3 | Since UEFI has been popular for more than ten years, the installation will be carried out in the form of UEFI+GPT, and the traditional BIOS method will not be repeated.
4 |
5 | ## 0. Use of terminal editor vim
6 |
7 | In the process of installing Arch Linux, you need to use the vim editor. If you don't know how to use it, here is a brief introduction. You need to master the following basic operations. For a practical environment, you can find an online Linux experience environment to try vim, such as [copy.sh](https://copy.sh/v86/?profile=archlinux). Note that because it is an online environment, the performance is poor, and you need to wait patiently when executing the vim command.
8 |
9 | ```bash
10 | vim 1.txt #Create and edit a file named 1.txt
11 | ```
12 |
13 | You can see that an empty interface is entered. You are now in vim's `command mode`. In `command mode`, you can use some shortcuts to manipulate text.
14 | Now we enter `a` to enter vim's `edit mode`, enter any text at this time, and you can edit it.
15 | After the input is complete, we can press the Esc key to exit from `edit mode` to `command mode`. At this point, enter `:wq` to save and exit vim.
16 | Here are some commonly used commands in command mode
17 |
18 | ```bash
19 | :wq # save and exit
20 | :q! # do not save, force quit
21 | dd # delete a line
22 | 2dd # delete two lines
23 | gg # go back to the first line of text
24 | shift+g # go to the last line of text
25 | /xxx # Search for the content 'xxx' in the text, press Enter to search, press the n key to go to the next one
26 | ?xxx # reverse search
27 | ```
28 |
29 | Extended link: Readers who need a complete tutorial can enter the command `vimtutor` in the terminal to learn the complete vim tutorial.
30 |
31 | ## 1. Ensure the network environment
32 |
33 | If you can use the network cable from the router to directly access the Internet by dhcp, then you don't need to prepare anything. If your environment can only use wireless network installation, you need to change the wifi name you use to an English name you can remember in advance. Because **installation cannot display and enter the Chinese name of the wifi**, you will see a bunch of blocks that you don't know what it is, and during the installation process you will not be able to enter the Chinese name of the wifi to connect. Although some tedious steps can solve the problem of terminal Chinese, it is obviously unnecessary to do so when installing Arch Linux.
34 |
35 | Secondly, there are hardware switches or keyboard controls for wireless network cards on some laptops. After booting, you need to ensure that your wireless network card hardware switches are turned on before installation.
36 |
37 | ## 2. Burn the bootable USB
38 |
39 | Prepare a USB disk with a size of more than 2G, and burn a boot disk for installation. Install the mirror iso to download at the [download page](https://archlinux.org/download/), you need to download the newest iso, choose to download through a magnet link or torrent, after the download is complete, you also need to download the `PGP signature` signature file on the archlinux download page ( Do not download the signature file from the mirror source), put the signature file and the iso image in the same folder, and then perform the signature verification of the image to ensure that the downloaded image is complete, error-free and untampered. If you are using Linux, execute the following command to make sure the output is well signed. The specific image name can be modified according to the name. If you use another system, please search for a way to verify the signature by yourself.
40 |
41 | ```bash
42 | gpg --keyserver-options auto-key-retrieve --verify archlinux-202x.0x.01-x86_64.iso.sig
43 | ```
44 |
45 | Note that the signature verification here is **very important**, which can ensure that your installation image has not been tampered with, and can also ensure that you use the correct public key to verify the installation package when you use the installation disk to install the system.
46 |
47 | ---
48 |
49 | It is recommended to use [ventoy](https://www.ventoy.net/cn/doc_start.html) or [Rufus](https://rufus.ie/) or [etcher](https://github.com/balena-io/etcher) to burn to USB. All three are free software. Please check the specific operation by yourself, it is very simple.
50 |
51 | Under Linux, you can directly use the dd command to burn. Note that the parameter of of is sdx, not sdx1 sdx2 etc.
52 |
53 | ```bash
54 | sudo dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync
55 | ```
56 |
57 | > bs=4M specifies a reasonable file input and output block size.
58 | > status=progress is used to output general information about the burning process.
59 | > oflag=sync is used to control behavior when writing data. Make sure that the data and metadata are actually written to disk at the end of the command, rather than just being written to the cache and returning.
60 |
61 | ## 3. Enter the motherboard BIOS to set
62 |
63 | Insert the USB stick and turn it on. When booting, press F2/F8/F10/DEL (depending on your motherboard model, please refer to the relevant information of your motherboard) to enter the motherboard's BIOS setting interface.
64 |
65 | ## 4. Turn off Secure Boot in the motherboard settings
66 |
67 | In a tab like `security`, find an option called Secure Boot (the name may vary slightly), select Disable to disable it.
68 |
69 | ## 5. Adjust the boot method to UEFI
70 |
71 | In some old motherboards, it is necessary to adjust the boot mode to UEFI instead of traditional BIOS/CSM. In a tab called something like `boot`, find an option called something like Boot Mode, make sure to adjust it to UEFI only, not legacy/CSM.
72 |
73 | ## 6. Adjust the hard disk boot order
74 |
75 | In a tab called `boot`, find a setting option called Boot Options (the name may be slightly different), and adjust the boot order of the USB stick to the first place.
76 |
77 | ## 7. Ready to install
78 |
79 | Finally, save the BIOS settings and exit, the general key is F10. At this point, the system restarts, and you should have entered the installation interface of archlinux.
80 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "arch_linux_tutorial",
3 | "author": {
4 | "name": "ArchLinuxStudio",
5 | "url": "https://github.com/ArchLinuxStudio"
6 | },
7 | "version": "0.5.0",
8 | "private": false,
9 | "dependencies": {
10 | "docsify-cli": "^4.4.4"
11 | },
12 | "devDependencies": {},
13 | "scripts": {
14 | "start": "docsify serve docs"
15 | },
16 | "license": "CC-BY-NC-ND-4.0"
17 | }
18 |
--------------------------------------------------------------------------------
/pull_request_template.md:
--------------------------------------------------------------------------------
1 | - Please make sure all your changes are verified by yourself.
2 | - Please assign task to ryosukeeeeee.
3 |
--------------------------------------------------------------------------------