-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlocal-search.xml
249 lines (118 loc) · 81.2 KB
/
local-search.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>【置顶】欢迎来到 ZJsheep 的博客!</title>
<link href="/top/"/>
<url>/top/</url>
<content type="html"><![CDATA[<p>欢迎来到 ZJsheep 的博客!</p><p>这里会记录一些生活经历和体验,在折腾电脑上的探索等。由于施工简陋,博客没有开通评论系统,如果有什么建议和想讨论的内容欢迎发送邮件到 zjsheep[AT]outlook[DOT]com。</p>]]></content>
</entry>
<entry>
<title>【随笔】心与世界间的雾</title>
<link href="/prose/fog/"/>
<url>/prose/fog/</url>
<content type="html"><![CDATA[<blockquote><p>相寻梦里路,飞雨落花中。<br>——<em>《临江仙》</em>,晏几道</p></blockquote><br><p class='pos'>鼠的生活充满了各种幸运,然而他有一个最大的不幸,那就是感知不到这些幸福。<hr><p class='neg'>六年级那年,鼠发觉自己在写字时,随着用力的加大拇指总会滑向食指一侧,以至于在最后往往深深掐进食指里,当写字时间长了甚至会留下一道血印子,虽然从未出血但是看起来有点触目惊心。那一天,鼠决定改变自己的握笔姿势。<hr><p class='pos1'>小时候,鼠最害怕的科目是语文,而这其中最大的挑战是作文。每次临到写作文,选题是第一大难关。每到这时,鼠总感觉日月的流驶似乎并没有在自己的心上留下任何痕迹。感兴趣的事物很多,玩电脑游戏,给蚂蚁做毒药,然而这些事情都上不了台面。在少有的一些灵感中,适合作为记叙文题材的、富含人与人之间情感的事情更是全部记不清了。这主要是因为,除了这些开心的时间,鼠的其他时间都在要么是害羞,要么是害怕中战战兢兢的度过,除此之外似乎很少产生其它情感。<p class='pos1'>然而鼠很聪明,鼠能够娴熟地掌握上课老师所讲的写作技巧,也能煞有介事地模仿范文,只要绞尽脑汁通过上面的第一关,就能写出足以赢得夸奖的作文。作文里关于情感的描写不是完全是编的,就是通过事后诸葛亮的复盘强行加上的,然而作文读起来真切感人,非常细腻,富含大段大段老师最喜欢的细节描写和心理描写。<hr><p class='neg1'>鼠认真地看了好多字帖的握笔教学,再加上对于自己手指的受力进行分析,逐一进行调整尝试,然而结果却不甚理想。好多握笔教学里面的姿势本身就是错误的,却敢堂而皇之地印在字帖扉页,再配上一个大书法家的简介。还有一些姿势显然是装的,只有在手指不发力时才可能做出这样的姿势,却还有板有眼地写了一堆教程和分析。<p class='neg1'>鼠尝试了无数种可能的姿势以及发力方式,其中有学来的,也有自己研究出来的,却无一获得成功。越是尝试,反而新的写字手法写起来越容易累。然而此时鼠已经不会原来的写字方法了,颇有邯郸学步之风。鼠颇为沮丧,握笔姿势陷入混乱,每次写字都要陷入矛盾的心情。<hr><p class='pos2'>随着年级的增长,作文要求的字数越来越长,光靠没感情的技巧而没有真实的内容已经越来越难撑下去了。<p class='pos2'>鼠其实心里有很多话想说,但是往往自觉这些话题别人根本不想听,更加别说在命题作文里写了。鼠有记日记的习惯。更准确地说,记日记不是一种习惯,而是一种治疗鼠写不出作字说不出话的良药。鼠的表达能力就像冬季雨天的车窗,平时平时被迫写些并不在鼠头脑里的字句,车窗会慢慢地起雾以至于看不清外面的世界,而写日记就相当于用干燥的空调风吹拂车窗,必须要隔一段时间吹一会才能保持心灵的窗户足够明亮。<hr><p class='neg2'>鼠写字变得十分别扭,尤其是写快了之后,往往会有一刹那整个手完全僵住,所有肌肉全部绷紧,无法向任何一个方向移动。在默写时,在考试时,鼠往往会陷入这样的困境。写字变得十分艰难,手指每动一下都需要大脑去纠正每块肌肉的运动。脑海已被占满,什么都想不了,什么都做不了,明明只是要计算一道题里很小一部分的草稿,明明答案的思路已然清晰可见,但是就是这几个数字,拒绝被写到草稿纸上。僵硬的手像摄魂怪,将脑内与脑外两个缤纷的世界隔绝,让鼠的世界里只能充满它冰冷的白色,让其他人看到的鼠也只剩木讷的白色。<p class='neg2'>压力与困境的双重挑战是催生焦虑的温床。在这样的时刻,鼠常常想,自己将来的余生是不是都要在这场冰冷的雾中度过?在这里度日如年,度一生也许就如永恒。<hr><p class='pos2'>鼠觉得自己心里的这些东西说出来一定会受人嘲讽,因为大家都没有这样的想法,根据经验别人对此的态度要么是不关心,要么就觉得是鼠自己的问题。鼠只有在没人看的日记中才能尝试清晰地表达自我,并且即使没人看,鼠也给日记加上了一层保险,这能够让鼠更舒服地表达。<p class='pos2'>鼠的日记用了一种特殊的修辞手法进行处理,外人看来就是纯粹的景色描写。可能心思细腻、共情力强的人能读出这坚实保护壳下确实存在一些情感的鼓动,但是基本没法从中得出任何具体信息。这样,即使别人读到了日记,也永远无法破解鼠的想法,这样鼠就避免了成为小丑的风险。<blockquote><p class='pos2'>左转登上石子的小道,<br>未知的路通向左上方,<br>柳树的新芽散发着早春的气息,<br>而路边的枯叶却将冬天刻入骨髓。<br></blockquote><hr><p class='neg3'>很多人其实没有意识到,人的思想也是需要媒介的,通常情况下这媒介是语言。人内心的想法无论是情感还是理性,其实都需要与自己对话来进行酝酿和推导。而当鼠逐步落入无法表达的冰河,他的大脑也开始逐渐上冻,缤纷的色彩开始模糊,尖利的棱角扭曲成一个大大的问号。逻辑推理和计算更是需要笔的辅助,然而鼠的手僵住了,闪转腾挪的想法只能化作一道闪电,闷在颅内一闪而过,死于无边浓稠的黑夜。<p class='neg3'>心灵与世界之间起了如城墙般的浓雾。雾是并无实体存在的东西,伸手即能穿过,然而却确确实实横亘在心与世界之间。世界的色彩完全看不见,只剩下雾中鹤唳般的风声,以及沁人心脾的湿冷。<hr><p class='pos3'>“我的声音呢?我自己的声音呢?我现在在想什么?想说什么,想干什么?”<hr><p class='neg4'>“我有很多话想说,有很多事想做。我知道大家爱我,我也爱大家,但是有什么不对,有什么弄错了,雾慢慢起来了,记忆里的风景在褪去,我慢慢忘记人们和爱。”<hr><p class='pos4'>The monster's runnin' wild inside of me.<p class='pos5'>I'm faded.<hr><!-- ## 后记希望大家能够善待因为心理问题而承受着痛苦的人。Ta 们并不是异类,ta 们的心理问题大多要么是因为天生,要么是因为替这个世界承担了过多的负面情绪。在情绪的死亡回旋中,一点小小的问候和关怀就能够帮助 ta 们走出泥潭。### 参考文献(不是- *Faded* by Alan Walker- 《世界尽头与冷酷仙境》 by 村上春树 --><h3 id="声明"><a href="#声明" class="headerlink" title="声明"></a>声明</h3><p>以上均为虚构情节,如有雷同纯属巧合。<br><img src="/assets/%E6%9C%89%E8%BF%99%E4%BA%8B.jpg"></p><style> .neg { color: #598bda; opacity: 100%; } .neg1 { color: #598bda; opacity: 90%; } .neg2 { color: #598bda; opacity: 85%; } .neg3 { color: #598bda; opacity: 65%; } .neg4 { color: #598bda; opacity: 50%; } .pos { opacity: 95%; } .pos1 { opacity: 85%; } .pos2 { opacity: 80%; } .pos3 { opacity: 60%; } .pos4 { opacity: 45%; } .pos5 { opacity: 20%; }</style><!-- <script> const paragraphs = document.querySelectorAll('p'); paragraphs.forEach((paragraph, index) => { if ((index + 1) % 2 === 0) { paragraph.classList.add('low-saturation-blue'); } else { paragraph.classList.add('low-saturation-yellow'); } });</script> -->]]></content>
<tags>
<tag>随笔</tag>
</tags>
</entry>
<entry>
<title>【羽球】羽毛球装备纯主观评测</title>
<link href="/sport/badminton/"/>
<url>/sport/badminton/</url>
<content type="html"><![CDATA[<p>以下为个人纯主观感受,本人水平一般,而且有些装备只用过一两次,因此评价可能不太客观,仅供参考。</p><h2 id="球拍"><a href="#球拍" class="headerlink" title="球拍"></a>球拍</h2><ul><li>Victor TK-30 (3u G5)<ul><li>头重中杆软,鉴定为大锤子,抡就完事了</li><li>非常好借力,高远杀球放开了随便打,自带buff。防守小球啥的随缘</li><li>手腕之敌</li></ul></li><li>Victor ARS-90F 蓝白色 (4u G6)<ul><li>有点头重,中杆实际上偏硬,但是有悬浮手柄,所以体感上偏软。正是这个原因不太建议上缓震膜,再缓就没了<ul><li>新色紫红色据说中杆更软</li></ul></li><li>落点控制极其精准(适合诡异老登),击中甜区击球体验极佳,弹且具有一定爆发力。高远轻松,吊球精准,进攻适合快杀不适合重杀:用那种一拍流打法硬杀一般没啥威胁性,不过如果真给到机会发力重杀也是挺有威胁的</li><li>手腕之友</li><li>好看🤗</li></ul></li><li>李宁 锋影 700 蓝绿色 (5u G6) (<strong>不是马嘉祺同款</strong>,那个是锋影 800 new)<ul><li>兼具速度和进攻的球拍,挥速无敌,突击质量完全在线</li><li>那么代价是什么呢?拍面小甜区小,中杆硬,有点震手,被动不好发力</li><li>总之就是,牺牲了被动体验,获得了极佳的主动体验,理论上人越强越好打</li><li>这拍吊球会偏低,得手动往上一点</li></ul></li></ul><h2 id="球线"><a href="#球线" class="headerlink" title="球线"></a>球线</h2><p>球线如果拉低磅(27 以下)建议选高弹的,毕竟三分拍七分线,线能很大程度上影响击球体验。如果拉高磅可以考虑耐打线,反正磅数高了手感都差不多。我个人因为比较菜,不需要追求极致的性能,同时考虑到兼顾性价比,因此我的选择是穿最便宜的高弹线。</p><ul><li>YONEX NANOGY 95:25 磅弹性巨差,低磅别用。据说拉高磅会好一点</li><li>YONEX BG 80:非常舒服,低磅高磅弹性都很好,缺点就是小贵</li><li>VICTOR vbs 66n:体感也不错,而且便宜,这边穿好一共 65 人民币,这也是我现在常用的线。66n 线还有一个优点是有好多颜色</li></ul><h2 id="球"><a href="#球" class="headerlink" title="球"></a>球</h2><p>一般而言,耐打度上水鸭毛 < 鹚鸪鸭毛 < 鹅毛,价格也是这样的顺序。在同样种类的毛里,飞行水平和耐打程度一般成反比,因为飞行好意味着球的毛片比较大比较圆,飞行中损坏的几率就大。一般而言,飞行越好的球卖得越贵,对于新手而言,如果感觉不出所谓的“飞行好”,那尽可以选择便宜一些的球,反而更耐打,不用无脑买贵的。</p><h3 id="RSL"><a href="#RSL" class="headerlink" title="RSL"></a>RSL</h3><p>RSL 最近出了很多马甲,例如 SK 系列等,买的时候一定要看仔细,别把 SK NO.7 当成 NO.7 还以为捡漏了(doge)。</p><ul><li>RSL NO.66:飞行不行,小球飞行诡异,只适合拉高远和杀球,由于毛少夏天十分耐打</li><li>RSL NO.7:飞行还行,比较耐打,不过现在价格离谱</li><li>RSL NO.4:细糠,丝滑体验,满昏,感觉比金 1 耐打一点。618 只要 98,赚翻。</li></ul><h3 id="VICTOR"><a href="#VICTOR" class="headerlink" title="VICTOR"></a>VICTOR</h3><p>VICTOR 的羽毛球有三个系列,Gold 系列为水鸭毛,Champion 系列为鹚鸪鸭毛,Master 系列为鹅毛。</p><ul><li>金 5(Gold NO.5):飞行不错,耐打差,不过便宜,夏天可以当口粮球</li><li>金 3(Gold NO.3):飞行不错,夏天耐打还行。金 3 相比正常的球少一根毛,有人可能感觉飞行有点怪,我觉得适应了还行</li><li>金 1(Gold NO.1):细糠,飞行完美,不耐打。然而对我这种菜比而言,已经不太能感觉到这个档次的飞行带来的提升了,因此对我而言性价比不高</li><li>比赛 7(Champion NO.7):单边毛,弯毛拉直,飞行勉强可接受,比较耐打。跟 rsl 66 差不多。打打娱乐局还行</li><li>大师 6(Master NO.6):久仰大名,不过没我想象中的好,强度高的话耐打也就那样,飞行强于 G300,耐打不如 G300,球速偏慢,77 速都慢的一比</li><li>新碳音(NCS):蹭过小孩哥的,体感还不错,不太纠结细节的话还是能用的</li></ul><h3 id="李宁"><a href="#李宁" class="headerlink" title="李宁"></a>李宁</h3><p>李宁羽毛球也是三个系列,D 系列是水鸭毛,C 系列是鹚鸪鸭毛,G 系列是鹅毛。李宁是我最近买的最多的羽毛球品牌,一方面是因为之前知名度低,球都很便宜(G300 在 24 年 1 月的时候自营只要 89),另一方面感觉李宁的球普遍做工扎实,同样的毛片相比胜利耐打很多。不过做工扎实带来的副作用是球比较重,有些人不太喜欢这种感觉。李宁的球还有一个特点,开罐时会有一股很香的胶水味。</p><ul><li>D6:飞行还行,比较耐打,我的常用球,不过现在知名度高了涨价了(之前只要 70 左右)。李宁的球都偏重,D6 也是,有人不喜欢这种手感</li><li>G300:飞行还行,冬天耐打之神,温度零下的时候即使不蒸打半小时一点问题都没有,一个顶仨。球比较重,放网的时候要当心点。</li></ul><h3 id="YONEX"><a href="#YONEX" class="headerlink" title="YONEX"></a>YONEX</h3><p>yy 的球打得比较少,不好评价。不过总体而言没碰到过特别难打的。</p>]]></content>
<tags>
<tag>羽毛球</tag>
<tag>运动</tag>
</tags>
</entry>
<entry>
<title>【搞机】服务器新机配置参考</title>
<link href="/tech/server-conf/"/>
<url>/tech/server-conf/</url>
<content type="html"><![CDATA[<p>以下是本人对服务器新机用的比较舒服的一套配置,并不是最优解,仅供参考。如果对 Linux 和 ssh 操作不熟悉,建议移步其它详细讲解的教程。</p><h2 id="本地-ssh-配置"><a href="#本地-ssh-配置" class="headerlink" title="本地 ssh 配置"></a>本地 ssh 配置</h2><p>加下面这项</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs bash">Host <<span class="hljs-built_in">alias</span>><br> HostName <IP><br> User <username><br></code></pre></td></tr></table></figure><p>注意 Host Alias 是大小写敏感的。</p><h2 id="ssh-copy-id"><a href="#ssh-copy-id" class="headerlink" title="ssh-copy-id"></a>ssh-copy-id</h2><p>如果本地还没生成 ssh 配置,则本地运行</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">ssh-keygen<br></code></pre></td></tr></table></figure><p>然后如果本地是 Linux,则</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">ssh-copy-id <<span class="hljs-built_in">alias</span>><br></code></pre></td></tr></table></figure><p>如果没装 <code>ssh-copy-id</code> 或者是 Windows,则</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash"><span class="hljs-built_in">cat</span> ~/.ssh/id_rsa.pub | ssh <<span class="hljs-built_in">alias</span>> <span class="hljs-string">"cat >> ~/.ssh/authorized_keys"</span><br></code></pre></td></tr></table></figure><h2 id="tmux-配置"><a href="#tmux-配置" class="headerlink" title="tmux 配置"></a>tmux 配置</h2><p><code>cat</code> 以下内容进 <code>~/.tmux.conf</code>。注意改了以后 tmux 前缀会变成 Ctrl A,这也是为了和本地的 tmux 区分。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><code class="hljs bash"><span class="hljs-comment"># in case the terminal does not display color</span><br><span class="hljs-built_in">set</span> -g default-terminal <span class="hljs-string">"screen-256color"</span><br><br><span class="hljs-comment"># Send prefix</span><br>set-option -g prefix C-a<br>unbind-key C-a<br>bind-key C-a send-prefix<br><br><span class="hljs-comment"># Use Alt-arrow keys to switch panes</span><br><span class="hljs-built_in">bind</span> -n M-Left select-pane -L<br><span class="hljs-built_in">bind</span> -n M-Right select-pane -R<br><span class="hljs-built_in">bind</span> -n M-Up select-pane -U<br><span class="hljs-built_in">bind</span> -n M-Down select-pane -D<br><br><span class="hljs-comment"># Shift arrow to switch windows</span><br><span class="hljs-built_in">bind</span> -n S-Left previous-window<br><span class="hljs-built_in">bind</span> -n S-Right next-window<br><br><span class="hljs-comment"># Mouse mode</span><br><span class="hljs-built_in">set</span> -g mouse on<br><br><span class="hljs-comment"># Set easier window split keys</span><br>bind-key v split-window -h<br>bind-key h split-window -v<br><br><span class="hljs-comment"># Easy config reload</span><br>bind-key r source-file ~/.tmux.conf \; display-message <span class="hljs-string">"tmux.conf reloaded"</span><br><br><span class="hljs-comment"># set more history</span><br>set-option -g history-limit 10000<br></code></pre></td></tr></table></figure><h2 id="代理配置"><a href="#代理配置" class="headerlink" title="代理配置"></a>代理配置</h2><p>有时候服务器不能直接连接外网,需要使用本地做跳板,用以下命令设置 socks5 命令行代理</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs bash"><span class="hljs-built_in">export</span> all_proxy=<span class="hljs-string">"socks5://<your ip>:<your port>"</span><br><span class="hljs-built_in">unset</span> all_proxy<br></code></pre></td></tr></table></figure><p>也可以用以下命令直接将上述配置的别名写到 bashrc 中,供下次方便调用</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs bash"><span class="hljs-built_in">echo</span> <span class="hljs-string">"alias ladderon='export all_proxy=\"socks5://<your ip>:<your port>\"'"</span> >> ~/.bashrc<br><span class="hljs-built_in">echo</span> <span class="hljs-string">"alias ladderoff='unset all_proxy'"</span> >> ~/.bashrc<br></code></pre></td></tr></table></figure>]]></content>
<tags>
<tag>linux</tag>
<tag>tool</tag>
</tags>
</entry>
<entry>
<title>【随笔】渡</title>
<link href="/prose/53-dawns-2/"/>
<url>/prose/53-dawns-2/</url>
<content type="html"><![CDATA[<blockquote><p>但黑夜恨白天<br>拼命地往前/听不到救援<br>——<em>《黑夜问白天》</em>,林俊杰</p></blockquote><p>身处黑暗中的人渴望光明,无论梦想中的光真实与否,人们总是希望一个与目前困境油然不同的世界存在。在那里没有一切无法言说却真实存在的问题和痛苦,不需要挣扎和努力,也能至少过着平和的生活。当下境遇的痛苦更显出梦想彼岸的光明,那是一个多么正当而甜美的愿望。</p><p><img src="/assets/%E9%BB%91%E5%A4%9C1.jpg" alt="秋江待渡图"></p><blockquote><p>山色空濛翠欲流,长江浸彻一天秋。茅茨落日寒烟外,久立行人待渡舟。<br>——<em>《秋江待渡图》</em>,钱选</p></blockquote><p>渡意味着精神的圆满。我们终其一生也在等待我们自己的渡船,希望我们一路的颠沛流离能够为我们换得一个理想中的未来。</p><p>然而个人觉得,很少有人真正思考过自己所期望的那个未来是不是能给自己带来真正的快乐和圆满,可能有一些人自始至终没弄清楚自己想要的究竟是什么。很多时候,人们所幻想的完美世界不过是按照自己当下所受苦难的反面所捏造出的幻影。一个否定了任何苦难和奋斗的“完美未来”,就像一杯加满了廉价糖精的白开水。而当若有朝一日真有机会实现梦想时,人们反而不知所措。当通过报复式的享用填满之前匮乏已久的欲望之后,人们发现自己仍然没有变得多么快乐,甚至会因为失去人生目标而陷入极端或者绝望。这样的例子数不胜数,相信大家都亲身经历过或者见过,例如上学时一直期待暑假,而真放暑假了过几天便又感觉无聊起来。</p><blockquote><p>你说这镇子上没有争夺没有怨恨没有欲望。这固然可钦可佩。若有力气,我也想为之鼓掌。可是,没有争夺没有怨恨没有欲望,无非等于说没有相反的东西,那便是快乐、终极幸福和爱情。正因为有绝望有幻灭有哀怨,才有喜悦可言。没有绝望的幸福是根本不存在的。这也就是我所说的自然。<br>——<em>《世界尽头与冷酷仙境》</em>,村上春树</p></blockquote><p>个人觉得如果一个人拒绝从当下的奋斗中获得任何人生的意义感,将自己人生的全部希望和动力寄托于一个自己都没见识过的“完美未来”,先不谈“完美未来”是否能够达到,即使能够达到,这个“完美未来”也大概率给不了任何他所想要的东西。赌徒赌赢了,获得了天文数字的巨款,他就满意了吗?酗酒者就算每天都能喝个痛快,他的人生就幸福了吗?在这个“完美未来”中仍然感到迷茫的人,其实尚未抵达他的彼岸,他还在寻找他的渡船。</p><p>而寻得渡船的人,需要弄清楚自己想要的究竟是什么,需要一个一致、理性的的人生理想,需要一个坚实、美好的行动理由。它既能在逆境中帮助我们明确地感知痛苦,充满希望地寻找出路;又能在顺境中帮助我们用现有的资源实现自己真正的需求,充盈人生的体验。黑夜并非白天的对立面,日出并非上天一念之间的馈赠。能在黑夜里坚定前行践行自我的人,他们往往已经自己为自己点燃了火炬,此后无论白天还是黑夜,始终内心充盈、洞悉方向。当自己足够明亮时,外面无论白天黑夜只不过是原本生活上的点缀,让生活更加舒适一些而已。这样的一种思想并不在我们拼命试图抵达的前方,也不在不时投去怀疑眼光的左右两旁雾蒙蒙的旷野,而是在于头顶的星空。高悬的罗盘并不存在于当前思考的维度,而是从更高的位置俯瞰全局,为一切赋予价值,解读意义。</p><p>人生的渡口无处不在,只不过这渡口可能并不通向另一种人生,而是通往另一种对于世界的理解。这并不是唯心主义,因为改变人生轨迹的壮举靠的不是一厢情愿的坚持和牺牲,而是智慧与行动的双重努力。行而不思则惘,思而不行则殆,人生一路,低谷不足以忧,而愚却可以带来绝望。希望每个人都能找到精神上的渡口,达到圆满的人生境界。</p><h2 id="声明"><a href="#声明" class="headerlink" title="声明"></a>声明</h2><p>以上均为个人解读,没有任何正确性和责任保证,仅供图一乐。</p><p><img src="/assets/%E6%9C%89%E8%BF%99%E4%BA%8B.jpg"></p>]]></content>
<tags>
<tag>音乐</tag>
<tag>随笔</tag>
</tags>
</entry>
<entry>
<title>【搞机】性价比 ITX 装机记录</title>
<link href="/tech/itx/"/>
<url>/tech/itx/</url>
<content type="html"><![CDATA[<h2 id="装机前的考虑"><a href="#装机前的考虑" class="headerlink" title="装机前的考虑"></a>装机前的考虑</h2><p>本科之前一直用的是轻薄本,能玩的游戏仅限于 LOL,于是一直有购买一台高性能设备服务于游戏和跑代码等需求的想法。同时又考虑到宿舍空间小,且放假还得带回去,因此设备体积不能太大。当时考虑的候选项有:</p><ul><li>Intel NUC:猎豹峡谷,2060 的卡勉强还行,不过是笔记本 U,可能散热比较成问题。而且价格也不便宜,性价比不高。</li><li>XBox / PlayStation:用途有限,无法偶尔跑跑代码。</li><li>笔记本 + 显卡坞:这个组合很有吸引力,可惜显卡坞目前市面上选择不多,性价比也不高,而且并非成熟方案,好像设备稳定性普遍不是很行。</li><li>紧凑型 MATX 主机:性价比很高的成熟方案,但是小体积 MATX 看反馈普遍说理线困难,新手望而却步。</li><li>ITX 主机:性价比最高的成熟方案。</li></ul><p>后来隔壁宿舍的 lvjiang 同学激情下单 RTX 3070,原来的 RTX 3060 闲置了,正好给我装机的想法火上浇油,于是决定开干。</p><h2 id="配置"><a href="#配置" class="headerlink" title="配置"></a>配置</h2><table><thead><tr><th align="center"></th><th align="center"></th><th align="center">购买价格(2023 年 10 月)</th><th align="center">备注</th></tr></thead><tbody><tr><td align="center">CPU</td><td align="center">12400f 散片</td><td align="center">848(淘宝)</td><td align="center"></td></tr><tr><td align="center">主板</td><td align="center">七彩虹 CVN B660I</td><td align="center">699(淘宝)</td><td align="center"></td></tr><tr><td align="center">显卡</td><td align="center">lvjiang 的 3060 12G</td><td align="center">1200</td><td align="center"></td></tr><tr><td align="center">内存</td><td align="center">金百达黑爵 3200 16Gx2</td><td align="center">299(淘宝)</td><td align="center">高度不能太高</td></tr><tr><td align="center">硬盘</td><td align="center">笔记本拆的 SN 730</td><td align="center">0</td><td align="center"></td></tr><tr><td align="center">电源</td><td align="center">TT 550W</td><td align="center">529(京东自营)</td><td align="center">备选 银欣sx500-g</td></tr><tr><td align="center">机箱</td><td align="center">小喆 B1</td><td align="center">349(淘宝)</td><td align="center"></td></tr><tr><td align="center">机箱风扇</td><td align="center">利民 TL C12CWS x2</td><td align="center">40(淘宝)</td><td align="center"></td></tr><tr><td align="center">散热</td><td align="center">利民axp90 x53</td><td align="center">143(淘宝)</td><td align="center">高度只能 60mm</td></tr><tr><td align="center"><strong>总计</strong></td><td align="center"></td><td align="center">4107</td><td align="center"></td></tr></tbody></table><h3 id="点评"><a href="#点评" class="headerlink" title="点评"></a>点评</h3><ul><li>关于 CPU 带不带 f 这个问题,我后来后悔没买不带 f 即带核显的版本了。对于 ITX 这类装机不便的机器,尤其是需要使用显卡延长线的,非常建议多花一两百买个核显。</li><li>主板为什么要上 B660I?因为这是我能找到的带两个 m.2 接口的最便宜的 ITX 主板。最便宜的 MATX 主板应该是华硕的 H610M-A。</li><li>显卡应该是大显存的性价比之选,当时沉迷 stable diffusion 画涩图,很需要显存 >= 11G。<ul><li>事实上如果有跑 AI 代码的需求,显存 >= 11G 是比较推荐的,因为很多科研单位使用的 2080ti 显存即为 11G,显存 >=11G 即可跑得动大部分代码。另外,如果要跑大语言模型,11G 差不多就能跑的动 7B 模型推理(float32 格式)。</li></ul></li><li>电源狗东自营买的,稍微有点溢价。不过 TT 是为数不多的价格合适的 sfx 电源,sfx 电源普遍要么小炸弹,要么两元一瓦,TT 这个系列算是填补了空白。</li><li>机箱看顺眼就买了,其实在 A4 机箱里,闪鳞 S400V2 兼容性更好,甚至能装 4090。</li><li>散热其实买贵了,12400f 拿个萝卜都压得住,随便买一个就行。</li><li>总体看下来如果装 MATX 选择会多很多,整体预算也能少好几百块,可以如下修改<ul><li>主板换华硕 H610M-A,便宜 250</li><li>matx 电源差不多 0.5 元一瓦,便宜 200</li><li>matx 机箱比较丐的可能都不到 100,便宜 250</li></ul></li></ul><!-- ## 装机过程### Round 1Naive 的 ZJsheep 按照正常的流程开始装机。他遇到的第一个问题是背板拧不上去。### Round 2## 超频有一天突发奇想,看了一下 CPU 的内存控制器体质。一看吓一跳,原来是大雕体质(性能非常好)!按照知乎的说法,上个 4200MHz 都没问题。手痒的 ZJsheep 心想超个 3600MHz 应该很稳。进 BIOS 后发现七彩虹这个 B 板居然自带调小参的功能,于是很轻松地设置成了 3600MHz,小参从?压到了? -->]]></content>
<tags>
<tag>itx</tag>
<tag>硬件</tag>
<tag>超频</tag>
</tags>
</entry>
<entry>
<title>【搞机】乱七八糟的踩坑记录</title>
<link href="/tech/miscellaneous/"/>
<url>/tech/miscellaneous/</url>
<content type="html"><![CDATA[<p>这里会收录一些我在学习新框架、新语言、新工具等时所曾经参考过的高质量教程/文档、帮助过我的帖子、以及我自己的解决方法,以供我自己以后查阅,也可供大家参考。</p><h2 id="VScode-LaTeX-Workshop"><a href="#VScode-LaTeX-Workshop" class="headerlink" title="VScode LaTeX Workshop"></a>VScode LaTeX Workshop</h2><ul><li>使用 synctex 跳转需要文件目录不包含任何中文</li></ul><h2 id="Selenium"><a href="#Selenium" class="headerlink" title="Selenium"></a>Selenium</h2><ul><li><a href="https://stackoverflow.com/questions/52764405/selenium-cant-find-elements-even-if-they-exist">Selenium can't find elements even if they exist</a> 可能是要切换 iframe。</li><li>selenium 检查元素是否存在可以使用 find_elements,判断返回列表的 len 是否大于 0。如果直接调用 find_element 会返回 Exception。</li><li>selenium 默认的等待时间是通过 driver.implicitly_wait 设置的,这个函数并不是在当前位置等一会,而是一个全局的设置</li></ul><h2 id="BeautifulSoup"><a href="#BeautifulSoup" class="headerlink" title="BeautifulSoup"></a>BeautifulSoup</h2><ul><li><a href="https://data36.com/beautiful-soup-tutorial-web-scraping/">Beautiful Soup Tutorial 1. – An Introduction to Web Scraping with Python</a></li><li><a href="https://stackoverflow.com/questions/18725760/beautifulsoup-findall-given-multiple-classes">BeautifulSoup findAll() given multiple classes?</a></li></ul><h2 id="Powershell-Profile-路径"><a href="#Powershell-Profile-路径" class="headerlink" title="Powershell Profile 路径"></a>Powershell Profile 路径</h2><p>Windows Powershell 的 Profile 地址:<a href="https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.3">manual</a></p><figure class="highlight awk"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs awk">All Users, All Hosts<br>Windows - <span class="hljs-variable">$PSHOME</span>\Profile.ps1<br>Linux - <span class="hljs-regexp">/opt/mi</span>crosoft<span class="hljs-regexp">/powershell/</span><span class="hljs-number">7</span>/profile.ps1<br>macOS - <span class="hljs-regexp">/usr/</span>local<span class="hljs-regexp">/microsoft/</span>powershell<span class="hljs-regexp">/7/</span>profile.ps1<br>All Users, Current Host<br>Windows - <span class="hljs-variable">$PSHOME</span>\Microsoft.PowerShell_profile.ps1<br>Linux - <span class="hljs-regexp">/opt/mi</span>crosoft<span class="hljs-regexp">/powershell/</span><span class="hljs-number">7</span>/Microsoft.PowerShell_profile.ps1<br>macOS - <span class="hljs-regexp">/usr/</span>local<span class="hljs-regexp">/microsoft/</span>powershell<span class="hljs-regexp">/7/</span>Microsoft.PowerShell_profile.ps1<br>Current User, All Hosts<br>Windows - <span class="hljs-variable">$HOME</span>\Documents\PowerShell\Profile.ps1<br>Linux - ~<span class="hljs-regexp">/.config/</span>powershell/profile.ps1<br>macOS - ~<span class="hljs-regexp">/.config/</span>powershell/profile.ps1<br>Current user, Current Host<br>Windows - <span class="hljs-variable">$HOME</span>\Documents\PowerShell\Microsoft.PowerShell_profile.ps1<br>Linux - ~<span class="hljs-regexp">/.config/</span>powershell/Microsoft.PowerShell_profile.ps1<br>macOS - ~<span class="hljs-regexp">/.config/</span>powershell/Microsoft.PowerShell_profile.ps1<br></code></pre></td></tr></table></figure><p>我笔记本用的是第一个(好像不太好),展开是 C:\Windows\System32\WindowsPowerShell\v1.0,<br>win 11 是 $HOME\Documents\WindowsPowerShell</p><h2 id="iTunes-手机备份路径"><a href="#iTunes-手机备份路径" class="headerlink" title="iTunes 手机备份路径"></a>iTunes 手机备份路径</h2><p>Windows 下 iTunes 自动备份的地址:</p><ul><li>如果是 MicroSoft Store 下的(My Case)在 <code>%USERPROFILE%/Apple/MobileSync</code></li><li>如果是直接装的在 <code>%appdata%/Apple/MobileSync</code></li><li>以上 Apple 也可能被替换为 Apple Computer</li></ul>]]></content>
<tags>
<tag>tool</tag>
</tags>
</entry>
<entry>
<title>【面经】2023 CUHK CSE Early Admission 面经</title>
<link href="/interview/CUHK-interview/"/>
<url>/interview/CUHK-interview/</url>
<content type="html"><![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>其实我去 CUHK 之前没有联系到老师,无果酱无科研经历,抱着摸奖心态填了一下系统没想到过了,一方面想着去深圳玩,一方面室友联系好了老师一直怂恿我陪他去,于是就欣然前往二日游。</p><h2 id="吃喝玩乐"><a href="#吃喝玩乐" class="headerlink" title="吃喝玩乐"></a>吃喝玩乐</h2><p>别的不说,去深圳两顿饭让我印象深刻,就冲这两顿饭就属于不虚此行。</p><ul><li>深圳的茶餐厅真心不错,虽然是晚饭去吃的。虾饺里面居然真的这么大一只新鲜的虾,真的震撼我。别的肠粉等经典早茶也非常合我口味。</li><li>潮汕牛肉火锅也是一绝,我们是在一个街边小馆子吃的,极为新鲜的牛肉,直接水煮不沾火锅料都非常鲜美,而且非常便宜,我和同学两个人吃了四五盘吃到有点撑一看才花了 50,这价格在南京怕不是只能买一小盘。</li></ul><p>在出行方式方面,Early Admission 通常在 6 月,正好是深圳雨季,经常有暴雨导致飞机延误,稳妥起见建议选择高铁。</p><h2 id="笔试"><a href="#笔试" class="headerlink" title="笔试"></a>笔试</h2><p>笔试全英文,包括选择题和两道大题,如果不卡壳写完时间正好差不多,还是有点紧张的。</p><ul><li>选择题题目还是很简单的,我想如果在 985 的 CS 专业通过了所有专业课期末考试的话问题不大。比较奇葩的是考了很多 OS 题,什么系统调用啥的,本鼠鼠本科是 AI 的,对这些只有浅薄的记忆,没想到还派上了用场。</li><li>大题第一题是一个离散数学的证明题,具体有点忘,用了余数的性质(就是类似于同余什么的,反正差不多说出这个意思就行),不难。</li><li>大题第二题是我感觉唯一有一点挑战性的题,要求在一个列单调递增、行单调递增的 n*n 二维数组里找到第 k 大元素。这题其实很经典,因为过去几年 CUHK 考试题好像经常考无序数组找 top k 问题,这次算是 plus 版。这题正解应该是魔改 Dijkstra 算法,如果之前看多了之前面经陷入一维 top k 的思维定势反而说不定想不到(例如我,卡了 15 min)。</li></ul><h2 id="面试"><a href="#面试" class="headerlink" title="面试"></a>面试</h2><p>面试也是全英文,主要问考试错题,所以中午赶紧对答案。如果错的太少可能会聊别的,比如你的科研兴趣、对科研的看法和规划等。</p><h2 id="后续"><a href="#后续" class="headerlink" title="后续"></a>后续</h2><p>没后续了,联系了几个老师都没有回应。其实另一方面是因为我本校拿了 offer,对 CUHK 不是很上心。建议大家不要学我,有机会还是要多去尝试。</p>]]></content>
<tags>
<tag>面经</tag>
<tag>CUHK</tag>
</tags>
</entry>
<entry>
<title>【面经】2023 NJU AI 夏令营面经</title>
<link href="/interview/NJUAI-interview/"/>
<url>/interview/NJUAI-interview/</url>
<content type="html"><![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>由于<del>鼠鼠比较低能</del>,本科期间没有科研产出,只有两段本校的科研经历,因此保外校比较吃亏,夏令营的重心就放在本校的夏令营上。2023 年夏令营在 7 月 11~13 日,11 日面试,12 日笔试。</p><h2 id="面试"><a href="#面试" class="headerlink" title="面试"></a>面试</h2><p>面试问四个部分,一是简历上的项目经历,二是专业知识,三是英文口语问题,四是脑筋急转弯。</p><ul><li>简历问的很深,没怎么问项目的细节,反而是基于研究领域问一些比较深的问题。例如我项目涉及到一些演化算法,于是就被问到了为什么多目标优化适合用演化算法求解等。当时没有准备,只能乱扯一通。</li><li>机器学习知识部分集中在西瓜书,我被问了 SVM,MDP,Adaboost 等,复习充分的话问题不大(面 LAMDA 这不全文背诵西瓜书)。专业知识主要取决于你的背景和面你的老师。听说有计科的同学来面试被问了一通计网,偏理论的老师会问较多数学问题(老师长啥样和研究方向可以上 LAMDA 官网查看),尤其是凸优化相关。之后交流得知其他组的同学有被问到有关决策树、方差的性质等问题。还有一个特点是老师喜欢将 ML 算法和原教旨算法结合起来问,比如如何从 DP 的视角看待一些 ML 算法。</li><li>英文口语问题问的是你从你的研究经历中学到了什么,这个问题因人而异,临场发挥问题不大。</li><li>脑筋急转弯是一个关于如何生成随机数的题,有时间限制,如果前面答得快后面时间就会充裕一点。当时比较紧张,想了半天,直到最后一刻才极限回答(考后感觉十秒就能想出来了 x)。这个题也因人而异,感觉没法准备,要想准备的话只能建议考前烧高香(x)。</li></ul><p>面完出来发现大家都没准备好被问简历(主要是往年面经好像都说不问简历),有些同学专业知识问得偏没答好,脑筋急转弯也有很多同学没有答出来。感觉大家表现都差不多,运气成分比较多,如果正好问到了擅长的课那一般没什么问题。</p><p>面试有录像,也会整体计时,一个人只有 12 min 左右,因此要注意言简意赅,答得越流畅能答的题就越多。</p><h2 id="笔试"><a href="#笔试" class="headerlink" title="笔试"></a>笔试</h2><p>今年笔试和机试是一起进行的,形式为在机房里发一张纸质笔试试卷和机试试题的 pdf,笔试在纸上写,机试电脑编程 OJ 提交。题目一起下发,一共 2.5h,时间自由分配。</p><p>笔试相较去年形式有很大变化,有 10 个填空,14 个大题,内容涉及机器学习、数据结构、算法、概率论、知识表示与处理(Knowledge Representation & Processing,简称 KRP,是 NJUAI 特色课程)。</p><p>填空部分应该基本是数据结构的 408 考研题,我虽然学过这课但是印象有点淡,因此做的有点慢。</p><p>问答题部分按照顺序概述如下:</p><ul><li>几个数据结构的基础题,不难,应该属于常规算法范畴,例如堆排序的初始 heapify 算法、哈夫曼编码等;</li><li>几个概率论的问答题,不需要计算,例如谈谈集中不等式的优劣势之类;</li><li>几个有关 ML 算法的题,AIMA & 西瓜书里的算法都有涉及,这个就看你基础了;</li><li>最后是 5 个<strong>英文的</strong> KRP 题,不过不是很难,不需要很多的背景知识,即使没学过这个课耐心看一看题应该也能写出来一部分。</li></ul><p>整个试卷基本只有数据结构部分需要一些计算,其他部分题目都比较主观,要写字的题有点多。再加之题目过量,因此写字快的同学应该有优势(x)。</p><p>总体来讲,复习的宽度比深度更重要,数据结构和概率论的各种知识点建议全部要覆盖到,不需要去刷很难的题。</p><h2 id="机试"><a href="#机试" class="headerlink" title="机试"></a>机试</h2><p>机试电脑提供了 VScode、VS、Eclipse、Dev C++ 等 IDE,也有安装 python 和 gcc,电脑全程不许连接互联网(只能连内网上传答案)。我个人使用了 VScode 写 ML 题,用 powershell 手动运行 python;使用 Dev C++ 写算法题。不用 VScode 写 C++ 的原因是机房的 gcc 配置有点奇怪,命令行运行不了,反正我一时半会没配好,索性直接 Dev C++ 了。</p><p>机试分为两个大题,第一题是机器学习算法,使用 Python 语言,也需要掌握一些机器学习常用包的基本用法,第二题是常规算法题,Python、C++、Java 等语言皆可。</p><ul><li>第一题第一小问是需要你手搓几个距离度量函数,第二小问是使用你搓的这个距离度量实现两种聚类算法;</li><li>第二题据说是一个力扣原题,估计难度在 OI 里算普及+/提高-,具体题面忘了。</li></ul><p>我整体大概安排了 1h 写代码,但是只完成了第一题的距离函数和一个聚类算法的实现,后续时间不够了。在没有网络的环境下 debug numpy 代码确实是有一点点折磨,使用时间远超预期。机试提交方式比较奇葩,是提交一个 zip,而且需要提交到指定账户,每次提交都需要输入密码。所以如果之后还是这种方式建议做完一题先提交一下,避免最后来不及提交导致杯具。</p><h2 id="宣讲会"><a href="#宣讲会" class="headerlink" title="宣讲会"></a>宣讲会</h2><p>最后笔试面试结束后有个宣讲会,中场休息的时候在第三领域会提供茶歇,遂直接开启学术八戒模式。最后还和所有老师合影留念,不过我直到现在还没在任何地方看到这张照片,不知道刊登到哪里了。</p><h2 id="后续"><a href="#后续" class="headerlink" title="后续"></a>后续</h2><p>由于我自觉面试表现较好(问的 ML 题正好撞我昨天晚上复习的枪口上了),笔试应该也没太拖后腿,所以还是比较顺利地过了。夏令营没过/候补的话后续还有与推免一次机会,考察方式类似,可以再试一次,不过预推免好像捞本校居多。</p>]]></content>
<tags>
<tag>面经</tag>
<tag>NJUAI</tag>
</tags>
</entry>
<entry>
<title>【搞机】人类早期驯服野生 KDE 珍贵记录:KDE 美化经验分享</title>
<link href="/tech/KDE-beautify/"/>
<url>/tech/KDE-beautify/</url>
<content type="html"><![CDATA[<p>update 2021.8.17 第一个完整的版本</p><h2 id="1-前言"><a href="#1-前言" class="headerlink" title="1. 前言"></a>1. 前言</h2><p>作为一个强迫症患者,在使用 Linux 之前,我早已受够了 Windows 系统的诸多限制,一直渴望着一个能够高度定制化的操作系统。而动念将主力操作系统转向 Linux 的起因,是学校的计算机系统基础课程需要使用类 Unix 系统进行实验。经过一波 STFW(Search The Friendly Web),我发现 Linux 正好满足了我的期望。</p><p>我在真机上使用的第一个 Linux 发行版是 Kubuntu,也就是使用 KDE 桌面的Ubuntu(传统 Ubuntu 使用的是 Gnome 桌面)。仍记得当时在虚拟机里打开 Kubuntu 的桌面时,那恰到好处的蓝色,舒服的点击动画,给我留下了极为深刻的体验,当即决定安装 Kubuntu 的双系统。后来,由于听多了学长的传教,决定转向 Manjaro,我也毫不犹豫地选择了 KDE 桌面。</p><p>作为一名优秀的强迫症患者(?),我投入了大量的时间进行 KDE 的美化,其间经历过多次暴毙和重装,终于得到了今天还算比较满意的桌面环境。以下是我的美化经历。</p><h2 id="2-设备"><a href="#2-设备" class="headerlink" title="2. 设备"></a>2. 设备</h2><p>我使用的笔记本是华为 Matebook 14 2020 锐龙版。</p><figure class="highlight nestedtext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs nestedtext"><span class="hljs-attribute">CPU</span><span class="hljs-punctuation">:</span> <span class="hljs-string">Ryzen 5 4600H</span><br><span class="hljs-attribute">GPU</span><span class="hljs-punctuation">:</span> <span class="hljs-string">Radeon Graphics Vega 7 (就是核显)</span><br><span class="hljs-attribute">内存</span><span class="hljs-punctuation">:</span> <span class="hljs-string">16GB DDR4 2667MHz</span><br><span class="hljs-attribute">硬盘</span><span class="hljs-punctuation">:</span> <span class="hljs-string">512GB SN730 SSD</span><br><br><span class="hljs-attribute">KDE Plasma 版本</span><span class="hljs-punctuation">:</span> <span class="hljs-string">5.18.4</span><br><span class="hljs-attribute">KDE 框架版本</span><span class="hljs-punctuation">:</span> <span class="hljs-string">5.64.0</span><br><span class="hljs-attribute">Qt 版本</span><span class="hljs-punctuation">:</span> <span class="hljs-string">5.12.8</span><br><span class="hljs-attribute">内核版本</span><span class="hljs-punctuation">:</span> <span class="hljs-string">5.11.0-25-generic</span><br><span class="hljs-attribute">图形平台</span><span class="hljs-punctuation">:</span> <span class="hljs-string">X11</span><br></code></pre></td></tr></table></figure><blockquote><p>这个电脑当初买的时候看中的是优秀的 2k 屏,没想到在安装 Linux 时,高分屏的适配反而成为一个大麻烦。</p></blockquote><p><img src="/assets/kde1.png" alt="效果展示"></p><h2 id="3-基础设置"><a href="#3-基础设置" class="headerlink" title="3. 基础设置"></a>3. 基础设置</h2><h3 id="3-1-屏幕缩放和夜晚颜色"><a href="#3-1-屏幕缩放和夜晚颜色" class="headerlink" title="3.1 屏幕缩放和夜晚颜色"></a>3.1 屏幕缩放和夜晚颜色</h3><p>首先进入设置 - 硬件 - 显卡与显示器,将全局缩放率调到一个比较舒服的水平(一般 2k 屏推荐 150% 或 175%,1080p 屏推荐 125% 或 150%)。</p><p>然后可以根据个人喜好开启夜间颜色。我个人是选择了总是开启,色温 5000K。</p><p>调整缩放比后需要重启计算机,因此需要首先进行这一步。(好像调整完缩放比例需要重启是 KDE 的特性?Gnome 和 Xfce 貌似都不需要)</p><p><img src="/assets/kde2.png" alt="效果展示"></p><p>调整完后重启计算机,可以点击左下角的 logo 调出开始菜单,当然也可以在终端中输入 sudo reboot(既然都用 Linux 了,当然要用命令行操作嘛(狗头))。</p><h3 id="3-2-程序坞"><a href="#3-2-程序坞" class="headerlink" title="3.2 程序坞"></a>3.2 程序坞</h3><p>程序坞(也叫 Dock)通常有两个主流选择:KDE 系的 Latte Dock 和 Gnome 系的 Plank。两者我都使用过,总体来讲 Latte Dock 功能更多,视觉特效更精致,与 KDE 集成更好(甚至可以直接在 Latte Dock 上添加 Plasma 小部件),而 Plank 更加简洁、稳定。</p><p>经过比较,我觉得 Dock 作为桌面环境最为基础的一个部件,可靠和高效最为重要,至于视觉特效,我反而不喜欢过于花哨的。因此最终我选择了 Plank。</p><p>下面是具体配置方法。首先安装 Plank,在命令行(在 KDE 中就是 Konsole)中输入:</p><figure class="highlight java"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs java">sudo pacman -S <span class="hljs-title function_">plank</span> <span class="hljs-params">(Arch系,包括Manjaro)</span><br>sudo apt install <span class="hljs-title function_">plank</span> <span class="hljs-params">(Debian系,包括Ubuntu)</span><br></code></pre></td></tr></table></figure><blockquote><p>其余操作系统请自行 STFW(Search The Friendly Web)如何通过包管理器安装软件。</p></blockquote><p>安装完后,可以点击左下角的 Logo 调出开始菜单,搜索 Plank 打开。不建议在命令行中输入 plank 打开,因为这样的话命令行一旦被关闭,plank 也没了。</p><p>这时 plank 和系统自身的面板重叠了,我们直接把系统面板给扬了(扬就是删除的意思)。右键点击面板 - 编辑面板 - 更多选项 - 删除面板。</p><blockquote><p>这时你会发现找不到开始菜单了。不要惊慌,我们待会会把它搞回来。</p></blockquote><p>如果要配置 plank,需要按住 Ctrl 键,然后右键点击 plank 的任意位置,点击首选项,然后可以根据自己的喜好调整。</p><p>如果要将软件添加到 plank 上,直接拖上去就行;或者打开该软件后在 plank 上右击它的图标,选择固定在 Dock 上。如果想把图标从 plank 上移除,可以右键,取消固定在 Dock 上,也可以直接拖出 Dock。</p><blockquote><p>Plank 自带的几个图标很具有迷惑性,那两个 VLC 有一个是真的一个是假的,长得像 Konsole 的图标其实不是 Konsole,所以建议全部扬了自己重新排列。</p><p>如果最新的 plank 没有以上现象,请忽略这段话。</p></blockquote><h3 id="3-3-顶部面板"><a href="#3-3-顶部面板" class="headerlink" title="3.3 顶部面板"></a>3.3 顶部面板</h3><p>在桌面上右键 - 添加面板 - 空面板,右键这个新面板,按住屏幕边缘按钮将它拖到屏幕的上面,调整大小。下面介绍编辑小部件的几个操作。</p><ul><li>在面板上添加部件的操作:右键面板,选择添加部件,在左侧的部件栏中将部件直接拖放到面板上。</li><li>下载新部件的操作:右键面板,选择添加部件,在左侧弹出的部件栏中点击获取新部件,然后搜索下载。</li><li>配置小部件的操作:右击小部件所在位置,点击配置×××。或者可以右击面板空白处,选择编辑面板,然后将鼠标选停在小部件上,点击配置。</li></ul><p>知道了以上操作之后应该可以根据自己的喜好定制顶部面板了。不过要注意的是,如果你将一部分部件靠左摆放,另一些靠右摆放,摆放完后一定要添加间距(右键面板 - 编辑面板 - 添加间距),否则重启后靠右的组件会滑到左边来。</p><p>我采用的排列方案是:</p><ul><li>左侧(从左至右):应用程序启动器(自带),Applcation Title(下载),全局菜单(自带)</li><li>右侧(从右至左):Window Button Applet(下载),Better inline clock(下载),系统托盘(自带)</li></ul><blockquote><p>Application Title 默认显示的是窗口名,过于冗长。可以右键它,选择配置 Application Title,将 Text Type 改成 Application title,为了更好的显示效果,也可以勾上 Bold(粗体)。</p><p>Window Button Applet 不能直接在内置的商店下载(详情说明里也写了),需要到 GitHub 上获取源代码自己编译。不过如果你使用 Debian 系或者 SUSE 系,可以直接从软件源下载编译好的版本(详见GitHub)。至于 Arch 系,万能的 AUR 里怎会少了它!可以用 yay -S applet-window-buttons-git 安装。</p><p>KDE 自带的数字时钟会将时间和日期显示在两行,个人觉得不太理想。可以搜索下载 Better inline clock 小部件,替代原来的数字时钟,然后按照自己的需求配置。</p></blockquote><h2 id="4-更多自定义设置"><a href="#4-更多自定义设置" class="headerlink" title="4. 更多自定义设置"></a>4. 更多自定义设置</h2><h3 id="4-1-全局主题"><a href="#4-1-全局主题" class="headerlink" title="4.1 全局主题"></a>4.1 全局主题</h3><p>点击设置 - 外观 - 全局主题,点击右下角获取新全局主题,选择几个喜欢的。此处我选择的是 Whitesur,Whitesur-alt 和 Whitesur-dark,是 macOS 风格的。下载好后应用。</p><p><img src="/assets/kde3.png" alt="效果展示"></p><p>如果网速较慢,不能正常下载,可以先从别的地方下载安装包。在搜索引擎中搜索 KDE Store,进入 KDE Store,在上方搜索框搜索 whitesur global 下载,按照 readme.md 的说明安装,然后在设置中激活。</p><p><img src="/assets/kde4.png" alt="效果展示"></p><p>此时你可能会看到可以停航母的粗边框,请点击窗口装饰元素,选择合适的比例。例如,你的系统缩放是 150% ,那就选择 Whitesur_x1.5 的窗口装饰元素。(最新的 KDE 版本窗口装饰和应用程序风格好像是并列的)</p><p><img src="/assets/kde5.png" alt="效果展示"></p><blockquote><p>如果你和我一样缩放比是是 175%,那就乖乖继续用 Breeze 的窗口装饰元素吧。(狗头)</p><p>如果应用 Breeze 窗口装饰元素时,实际变成了 Plastik:请将全局主题改为 Breeze,然后将除了窗口装饰元素之外的其他选项一一手动改为 Whitesur。(Kubuntu 20.04 LTS 可能会出这个 bug)</p></blockquote><h3 id="4-2-应用程序风格"><a href="#4-2-应用程序风格" class="headerlink" title="4.2 应用程序风格"></a>4.2 应用程序风格</h3><p>KDE 下的应用程序风格需要 kvantum manager 来管理。下载 kvantum:</p><figure class="highlight smali"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs smali">(Debian系)<br>sudo<span class="hljs-built_in"> add-apt-repository </span>ppa:papirus/papirus<br>sudo apt update<br>sudo apt install qt5-style-kvantum qt5-style-kvantum-themes<br>(Arch系)<br>sudo pacman -S kvantum-qt5<br></code></pre></td></tr></table></figure><p>然后按照前文说明,进入 KDE Store,搜索 Whitesur kvantum,下载 kvantum 主题并解压。打开 kvantum manager,点击 select a Kvantum theme folder,选择解压好的文件夹,点击安装。然后点击 change or delete theme,选择刚刚安装的主题。</p><p><img src="/assets/kde6.png" alt="效果展示"></p><p>最后再在系统设置里将程序应用风格改为 kvantum。</p><p><img src="/assets/kde7.png" alt="效果展示"></p><p>在设置 - 应用程序风格中点击配置 GNOME / GTK 应用程序样式,点击右下角下载新 GNOME / GTK 应用程序样式,搜索 mac 并选择一个主题下载。我使用的是 Bigsur-Originals-Gtk-Blue-Light。</p><p><img src="/assets/kde8.png" alt="效果展示"></p><blockquote><p>似乎 GTK 应用的图标不会根据系统的缩放比例缩放。这个问题我也正在寻找解决方案,如有大佬知道怎么做请指教。</p></blockquote><h2 id="4-3-图标"><a href="#4-3-图标" class="headerlink" title="4.3 图标"></a>4.3 图标</h2><p>如果已经是主题配套的图标了,那这一步可以略过。如果不是,在设置里点击图标 - 获取新图标主题,搜索安装。如果有网络问题,也可以去 KDE Store 搜索安装。</p><p><img src="/assets/kde9.png" alt="效果展示"></p><h2 id="4-4-Plank-主题"><a href="#4-4-Plank-主题" class="headerlink" title="4.4 Plank 主题"></a>4.4 Plank 主题</h2><p>下载:进入 Gnome look 网站,在左侧选择 Plank theme,然后选择喜欢的主题下载。这里我使用的是 The Cupertino Effect - Next。</p><p>安装:将下载的压缩包解压,然后复制到 ~/.local/share/plank/themes 目录。然后按住 Ctrl 键右击 Plank 上任意图标,点击 Preferences,在 主题 里就能看到刚刚下载的主题了。</p><p><img src="/assets/kde10.png" alt="效果展示"></p><blockquote><p>Plank 主题有两个位置,一个是上述的 ~/.local/share/plank/themes,另一个是 /usr/share/plank/themes。第一个位置是用户个人的主题文件夹,其中的主题和配置只对当前用户生效。第二个是系统的主题文件夹,为所有用户共享。</p><p>大多数应用的配置文件都会存在于 ~/.local/share/ 和 /usr/share/ 这两个地方。我建议将个人设置保存在第一处,也就是用户个人的文件夹里。一方面是因为在 /usr 中操作需要 root 权限,不方便也不安全,另一方面是因为以后若要重装系统,/ 分区是必须格式化的,而 /home 分区可以不格式化,从而保留用户的个人设置,在新系统里就不用重新设置一遍了。<br>如果对下载的主题仍不太满意,可以手动修改配置文件。配置文件中应该都有详细的注释,可以修改数值从而得到想要的结果。</p></blockquote><h2 id="5-结语"><a href="#5-结语" class="headerlink" title="5. 结语"></a>5. 结语</h2><p>曾有伟人说过(不是),用 Linux 就要做好折腾的准备。Linux 为我们提供高度可定制的功能的同时,也注定了它不会做到像商业化的操作系统那样稳定、可靠、开箱即用。在配置 Linux 系统,包括 KDE 时,难免出现一些令人恼火的小 bug。如何处理这些 bug,也是对于我们心态以及解决问题能力的一种锻炼。</p><p>之前,作为一名强迫症患者,我经常为了一些小瑕疵而 STFW 一整天。后来我发现这不是明智的行为。有一些问题是开发者的疏漏,经过更新可以轻易地解决;有一些则是由于自己对系统的理解尚不够深入,等到某一天,自己了解得多了之后,回头一看才发现原来是个如此简单的问题。</p><blockquote><p>你要爱这些你尚不能解决的问题,就像爱一本你暂时读不懂的书,或是一座上了锁的房屋。——里尔克</p></blockquote><p>当然也有一些问题是影响系统运作的重大问题。这个时候就需要有目的地上网查阅资料,询问同学和学长,通过有计划的努力来高效地解决这些问题,而不是在问题面前低头丧气,或者暴躁地 STFW,实际上却没有了解到任何有用的信息,这些都是我曾经犯过的错误。</p><p>不管怎么说,既然你已经读到了这篇文章,说明你我都已经是类 Unix 用户啦!</p><p><img src="/assets/kde11.jpeg" alt="有这事?"></p>]]></content>
<tags>
<tag>linux</tag>
<tag>kde</tag>
</tags>
</entry>
<entry>
<title>【搞机】Xorg 实现不重启调整缩放 & 多显示器不同缩放</title>
<link href="/tech/xorg-scaling/"/>
<url>/tech/xorg-scaling/</url>
<content type="html"><![CDATA[<blockquote><p>为了帮助搜索,这里加点 tag。</p><p>(ubuntu, kde, x-server, kubuntu, plasma, x-org)</p></blockquote><h2 id="这篇文章对你有帮助吗?"><a href="#这篇文章对你有帮助吗?" class="headerlink" title="这篇文章对你有帮助吗?"></a>这篇文章对你有帮助吗?</h2><p>首先,本文适用于使用 Xorg 图形服务的 Linux 系统,如果你不在使用 Xorg,那此文对你没有帮助。</p><ul><li>目前 Gnome 默认使用 Wayland 而非 Xorg,因此默认配置的 Ubuntu 20.04~22.04 不适用。</li><li>目前 KDE 默认采用 Xorg,因此默认配置的 Kubuntu 仍然适用(我就在用 Kubuntu 22.04)。</li><li>其余系统请自行百度如何查询图形服务为 Xorg 还是 Wayland。</li></ul><p>其次,此文操作原理是使用 xrandr 命令的 –scale 选项。如果你排斥使用 xrandr –scale,那此文对你没有帮助。</p><ul><li>非整数的缩放可能会带来十分轻微的画质下降和卡顿(不过影响很小,建议先试试);</li><li>如果你已经熟练地阅读了 xrandr 的 manpage 并掌握其操作,那你大概率不需要阅读此文。</li></ul><p>最后,如果你只是需要调整全局缩放,并不需要实现不重启 / 多显示器不同缩放,那建议使用更稳定的传统方法而非此文的方法。</p><ul><li>调整全局缩放的传统方法一是直接使用 kde 系统设置中的全局缩放设置,二是使用 xrandr –dpi 选项。前者众所周知需要重启,后者则必须要在 X 服务启动前就设定,因此一般需要写死在 ~/.Xsession 中,也不能在系统启动后热调整缩放。</li></ul><h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>本人的需求是这样的,我有一台 14 英寸分辨率为 2160x1440 的笔记本,日常缩放为 175%,在宿舍里有一台 23.8 英寸分辨率为 2560x1440 的显示器,日常缩放为 150%,回宿舍就用显示器看。然而在使用 Xorg 的 Kubuntu 下,每次回宿舍或者出门都要调缩放、重启,实在是不够完美。经过 stfw,我摸索出了一个不重启调整缩放的 workaround,这个方法同时也能实现多屏幕不同缩放比。</p><p>我的想法是让全局缩放一直开在 175%,也就是比较高的一档,然后通过渲染出超分辨率的画面再缩小到显示器上,就可以实现降低全局缩放的效果。先贴一下效果图,我的显示器分辨率为 2560x1440,这里 Resolution 显示的是 2816x1584,说明已经完成了显示缩小。</p><p><img src="/assets/xrandr1.png" alt="效果展示"></p><h2 id="方法"><a href="#方法" class="headerlink" title="方法"></a>方法</h2><p>首先,直接运行 <code>xrandr</code> 命令,可以看到目前有哪几个显示器以及它们的名字。输出应该类似于</p><figure class="highlight apache"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs apache"><span class="hljs-attribute">Screen</span> <span class="hljs-number">0</span>: minimum <span class="hljs-number">320</span> x <span class="hljs-number">200</span>, current <span class="hljs-number">4080</span> x <span class="hljs-number">1440</span>, maximum <span class="hljs-number">8192</span> x <span class="hljs-number">8192</span><br><span class="hljs-attribute">eDP</span>-<span class="hljs-number">1</span> connected primary <span class="hljs-number">2160</span>x1440+<span class="hljs-number">0</span>+<span class="hljs-number">0</span> (normal left inverted right x axis y axis) <span class="hljs-number">275</span>mm x <span class="hljs-number">183</span>mm<br> <span class="hljs-attribute">2160x1440</span> <span class="hljs-number">60</span>.<span class="hljs-number">00</span>*+<br> <br><span class="hljs-attribute">DP</span>-<span class="hljs-number">1</span> connected <span class="hljs-number">1920</span>x1080+<span class="hljs-number">2160</span>+<span class="hljs-number">0</span> (normal left inverted right x axis y axis) <span class="hljs-number">521</span>mm x <span class="hljs-number">293</span>mm<br> <span class="hljs-attribute">1920x1080</span> <span class="hljs-number">60</span>.<span class="hljs-number">00</span>*+ <span class="hljs-number">50</span>.<span class="hljs-number">00</span> <span class="hljs-number">59</span>.<span class="hljs-number">94</span> <br></code></pre></td></tr></table></figure><p>接下来讲一下 xrandr 工具用得到的各个选项的含义和使用方法。以下中括号表示需要代入具体内容,实际敲的时候不需要写中括号。</p><ul><li><code>--fb [A]x[B]</code>:指定画布大小为 A 像素长乘 B 像素宽。注意中间是小写字母 x,下同。</li><li><code>--output [A]</code>:后续的选项对显示器 A 生效。<ul><li>显示器的名称可以通过上面说的方法,即直接执行 <code>xrandr</code> 看到</li></ul></li><li><code>--mode [A]x[B]</code>:指定当前显示器输出分辨率为 A 乘 B。</li><li><code>--scale [A]x[B]</code>:指定当前显示器在长上<strong>缩小</strong> A 倍,在宽上<strong>缩小</strong> B 倍,因此 A > 1 表示缩小。</li><li><code>--pos [A]x[B]</code>:指定当前显示器在画布上的位置。具体来说就是显示器应该显示的区域的左上角在画布上的坐标。<ul><li>坐标原点为左上角,单位为像素</li></ul></li><li><code>--panning [A]x[B]+[C]+[D]</code>:设定当前显示器可点击区域为左上角坐标为 (C 像素, D 像素),长为 A 像素,宽为 B 像素的矩形。所谓可点击区域,就是说在画布上的这一块区域是实际显示内容、可以点击的。</li></ul><p>上面这部分内容可以和 xrandr 的 manpage 结合起来看,毕竟我复述的肯定不如官方文档全。我们的原理是先使用 –fb 选项渲染出一个超分辨率的画布,然后使用 –scale 选项缩小它的大小,并且使用 –pos 选项指定屏幕显示画布那一块被缩小了的部分。</p><h3 id="单显示器"><a href="#单显示器" class="headerlink" title="单显示器"></a>单显示器</h3><p>结合上面所说的,不重启实现单显示器缩放命令形式应该类似于</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">xrandr --fb [C*E]x[D*F] --output [display] --mode [C]x[D] --panning [C*E]x[D*F]+0+0 --scale [E]x[F]<br></code></pre></td></tr></table></figure><p>举个例子,我们现在有一个物理分辨率为 2560 x 1440 的显示器,名字叫 HDMI-A-0,现在的全局缩放为 175%,需要改为 150%。</p><p>计算可得 $\sqrt{\frac{175}{150}}\approx 1.08$。由于渲染的分辨率需要为整数,选择缩小 1.1 倍。</p><blockquote><p>我一开始忘记开根号了,缩小了 1.2 倍,然后一直寻思字怎么这么小(捂脸哭.jpg</p></blockquote><p>以缩小 1.1 倍为例,需要渲染一个 (2560 * 1.1) x (1440 * 1.1) = 2816 x 1584 的画布然后再缩小。可点击区域就是左上为 (0, 0),2816 x 1584 大小的区域。因此命令为</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">xrandr --fb 2816x1584 --output HDMI-A-0 --mode 2560x1440 --scale 1.1x1.1 --pos 0x0 --panning 2816x1584+0+0<br></code></pre></td></tr></table></figure><h3 id="多显示器"><a href="#多显示器" class="headerlink" title="多显示器"></a>多显示器</h3><p>多显示器不同分辨率拼接的命令形式应该为</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">xrandr --fb [C*E+A]x[D*F] --output [display1] --auto --output [display2] --mode [C]x[D] --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of [display1]<br></code></pre></td></tr></table></figure><p>举个例子,这里参考了 <a href="https://nmgit.net/2020/139/">Barry 的笔记</a>。有一个物理分辨率为 2160x1440 的笔记本屏幕 eDP-1(这分辨率一眼 matebook),一个物理分辨率为 1920x1080 的显示器 DP-1 需要拼接在笔记本屏幕右侧,内容相较于笔记本屏幕需要缩小 1.5 倍。</p><p>由于是横向排布,整个画布的长应该为 1920*1.5 + 2160 = 5040,宽为 max{1080*1.5, 1440} = 1620。笔记本屏幕的位置应为 0x0,显示器的左上角位置为 2160*0。笔记本可点击区域直接使用默认设置,显示器的可点击区域为左上角为 2160*0,大小为 2880*1620 的矩形。因此,命令行为</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash">xrandr --dpi 200 --fb 5040x1620 --output eDP-1 --mode 2160x1440 --pos 0x0 --output DP-1 --scale 1.5x1.5 --pos 2160x0 --panning 2880x1620+2160+0<br></code></pre></td></tr></table></figure><blockquote><p>这个 –dpi 选项是作者原来就写的,在我的电脑上不起作用,具体原因不明,我猜是因为 KDE 的默认缩放覆盖了这个设置。我个人是感觉不写也行,大家可以自己试试写不写 dpi 有没有区别。</p></blockquote><h2 id="后续"><a href="#后续" class="headerlink" title="后续"></a>后续</h2><p>如果你在使用 KDE plasma 5 作为桌面,可能 plasma shell 不会根据最新的分辨率自动调整位置,这个时候需要重启 plasma shell 来适应新的分辨率。好在 plasma shell 是支持热重启的。</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs shell">kquitapp5 plasmashell && kstart5 plasmashell<br></code></pre></td></tr></table></figure><p>此时,如果你在屏幕下方和右方有 plasma 面板,你可能会发现它们变得十分卡顿。这估计是 KDE 的任务栏坐标不是整数导致渲染出问题,目前好像没啥办法可以根本解决(<strong>如果有大佬会请一定要娇娇我</strong>)。一个妥协的方法是将这些面板移到屏幕上方或者左侧。</p><blockquote><p>花了一个小时和这个 bug 搏斗,最终还是妥协了</p></blockquote>]]></content>
<tags>
<tag>linux</tag>
<tag>kde</tag>
<tag>xorg</tag>
</tags>
</entry>
<entry>
<title>【系统】Hello, world!</title>
<link href="/helloworld/"/>
<url>/helloworld/</url>
<content type="html"><![CDATA[<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js" id="MathJax-script"></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css"><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js"></script><script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/auto-render.min.js"></script><script>document.addEventListener("DOMContentLoaded", function() { renderMathInElement(document.body, { delimiters: [ {left: "$$", right: "$$", display: true}, {left: "\\[", right: "\\]", display: true}, {left: "$", right: "$", display: false}, {left: "\\(", right: "\\)", display: false} ] });});</script><h2 id="Hello-World"><a href="#Hello-World" class="headerlink" title="Hello, World!"></a>Hello, World!</h2><p>hello, world!</p><h2 id="Test-for-LaTeX-equation"><a href="#Test-for-LaTeX-equation" class="headerlink" title="Test for \(\LaTeX\) equation"></a>Test for \(\LaTeX\) equation</h2><ul><li><p>MathJax Test:</p><ul><li>This is \(\LaTeX\), and <code>\int_{-\infty}^{+\infty}e^{-x^2}\mathrm d x=\sqrt{\pi}</code> is rendered as \(\int_{-\infty}^{+\infty}e^{-x^2}\mathrm d x=\sqrt{\pi}\).</li></ul></li><li><p>KaTeX Test:</p><ul><li>This is $\LaTeX$, and <code>\int_{-\infty}^{+\infty}e^{-x^2}\mathrm d x=\sqrt{\pi}</code> is rendered as $\int_{-\infty}^{+\infty}e^{-x^2}\mathrm d x=\sqrt{\pi}$.</li></ul></li><li><p>行间公式测试</p></li></ul><p>$$<br>\int_{-\infty}^{+\infty}e^{-x^2}\mathrm d x=\sqrt{\pi}<br>$$</p><p>source code:</p><figure class="highlight dust"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br></pre></td><td class="code"><pre><code class="hljs dust"><span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"MathJax-script"</span>></span><span class="hljs-tag"></<span class="hljs-name">script</span>></span></span><br><span class="language-xml"></span><br><span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">link</span> <span class="hljs-attr">rel</span>=<span class="hljs-string">"stylesheet"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css"</span>></span></span><br><span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js"</span>></span><span class="hljs-tag"></<span class="hljs-name">script</span>></span></span><br><span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/auto-render.min.js"</span>></span><span class="hljs-tag"></<span class="hljs-name">script</span>></span></span><br><span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">script</span>></span><span class="language-javascript"></span></span><br><span class="language-javascript"><span class="language-xml"><span class="hljs-variable language_">document</span>.<span class="hljs-title function_">addEventListener</span>(<span class="hljs-string">"DOMContentLoaded"</span>, <span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span></span><span class="hljs-template-variable">{</span><br><span class="hljs-template-variable"> renderMathInElement(document.body, {</span><br><span class="hljs-template-variable"> delimiters: [</span><br><span class="hljs-template-variable"> {left: "$$", right: "$$", display: true}</span><span class="language-xml">,</span><br><span class="language-xml"> </span><span class="hljs-template-variable">{left: "\\[", right: "\\]", display: true}</span><span class="language-xml">,</span><br><span class="language-xml"> </span><span class="hljs-template-variable">{left: "$", right: "$", display: false}</span><span class="language-xml">,</span><br><span class="language-xml"> </span><span class="hljs-template-variable">{left: "\\(", right: "\\)", display: false}</span><span class="language-xml"></span><br><span class="language-xml"> ]</span><br><span class="language-xml"> });</span><br><span class="language-xml">});</span><br><span class="language-xml"><span class="hljs-tag"></<span class="hljs-name">script</span>></span></span><br><span class="language-xml"></span><br><span class="language-xml">## Hello, World!</span><br><span class="language-xml"></span><br><span class="language-xml">hello, world!</span><br><span class="language-xml"></span><br><span class="language-xml">## Test for \\(\LaTeX\\) equation</span><br><span class="language-xml"></span><br><span class="language-xml">- MathJax Test:</span><br><span class="language-xml"> - This is \\(\LaTeX\\), and `\int_</span><span class="hljs-template-variable">{-\infty}</span><span class="language-xml">^</span><span class="hljs-template-variable">{+\infty}</span><span class="language-xml">e^</span><span class="hljs-template-variable">{-x^2}</span><span class="language-xml">\mathrm d x=\sqrt</span><span class="hljs-template-variable">{\pi}</span><span class="language-xml">` is rendered as \\(\int_</span><span class="hljs-template-variable">{-\infty}</span><span class="language-xml">^</span><span class="hljs-template-variable">{+\infty}</span><span class="language-xml">e^</span><span class="hljs-template-variable">{-x^2}</span><span class="language-xml">\mathrm d x=\sqrt</span><span class="hljs-template-variable">{\pi}</span><span class="language-xml">\\).</span><br><span class="language-xml"></span><br><span class="language-xml">- KaTeX Test:</span><br><span class="language-xml"> - This is $\LaTeX$, and `\int_</span><span class="hljs-template-variable">{-\infty}</span><span class="language-xml">^</span><span class="hljs-template-variable">{+\infty}</span><span class="language-xml">e^</span><span class="hljs-template-variable">{-x^2}</span><span class="language-xml">\mathrm d x=\sqrt</span><span class="hljs-template-variable">{\pi}</span><span class="language-xml">` is rendered as $\int_</span><span class="hljs-template-variable">{-\infty}</span><span class="language-xml">^</span><span class="hljs-template-variable">{+\infty}</span><span class="language-xml">e^</span><span class="hljs-template-variable">{-x^2}</span><span class="language-xml">\mathrm d x=\sqrt</span><span class="hljs-template-variable">{\pi}</span><span class="language-xml">$.</span><br><span class="language-xml"></span><br><span class="language-xml">- 行间公式测试</span><br><span class="language-xml"></span><br><span class="language-xml">$$</span><br><span class="language-xml">\int_</span><span class="hljs-template-variable">{-\infty}</span><span class="language-xml">^</span><span class="hljs-template-variable">{+\infty}</span><span class="language-xml">e^</span><span class="hljs-template-variable">{-x^2}</span><span class="language-xml">\mathrm d x=\sqrt</span><span class="hljs-template-variable">{\pi}</span><span class="language-xml"></span><br><span class="language-xml">$$</span><br></code></pre></td></tr></table></figure>]]></content>
<tags>
<tag>test</tag>
</tags>
</entry>
</search>