Debian 12 KDE 配置优化指南
<h1>Debian 12 KDE 配置优化指南</h1><p>来源 https://zhuanlan.zhihu.com/p/469685246</p>
<p>来源 https://www.leviatan.cn/archives/29/</p>
<p> </p>
<h2 id="0x00-简介">0x00 简介</h2>
<p>本文仅适用于配置 Debian 12 Bookworm</p>
<p>文中包含 KDE Plasma X11 桌面配置</p>
<p>文中使用 <code>debianuser</code> 代替用户名,执行命令或复制配置时请注意替换</p>
<p>文中涉及的带版本号的软件包/环境,版本号使用 <code>xxx</code> 代替,请根据实际情况安装最新版本或自己需要的版本</p>
<p>本文编辑整理时间距离实践时间相隔过长,编辑过程中可能出现不准确内容,如果在您的时间过程中发现与本文不符的情况,请尽量在评论区留言,我将尽快确认更新</p>
<div data-unique="0x01基础配置"> </div>
<h2 id="0x01-基础配置">0x01 基础配置</h2>
<p>该步骤中大部分操作需要重启,所以不要根据配置完成后的应用运行状态来判断配置是否成功</p>
<p>在该步骤末尾会重启一次应用所有配置</p>
<div data-unique="使用英文重命名/home目录下文件夹"> </div>
<h3 id="使用英文重命名--目录下文件夹">使用英文重命名 <code>/home</code> 目录下文件夹</h3>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber"><span class="hljs-built_in">cd ~
mkdir Desktop Download Templates Public Documents Music Pictures Videos
rm -rf 公共 模板 视频 图片 文档 下载 音乐 桌面
xdg-user-dirs-update --<span class="hljs-built_in">set DESKTOP ~/Desktop
xdg-user-dirs-update --<span class="hljs-built_in">set DOWNLOAD ~/Download
xdg-user-dirs-update --<span class="hljs-built_in">set TEMPLATES ~/Templates
xdg-user-dirs-update --<span class="hljs-built_in">set PUBLICSHARE ~/Public
xdg-user-dirs-update --<span class="hljs-built_in">set DOCUMENTS ~/Documents
xdg-user-dirs-update --<span class="hljs-built_in">set MUSIC ~/Music
xdg-user-dirs-update --<span class="hljs-built_in">set PICTURES ~/Pictures
xdg-user-dirs-update --<span class="hljs-built_in">set VIDEOS ~/Videos
</span></span></span></span></span></span></span></span></span></code></pre>
<div data-unique="将用户添加到sudoers中"> </div>
<h3 id="将用户添加到-sudoers-中">将用户添加到 sudoers 中</h3>
<p>该步骤需要先切换到 <code>root</code> 身份</p>
<p><code>Ctrl + Alt + F3</code> 切换到纯命令行界面的新终端,并以 <code>root</code> 身份登录进行操作</p>
<p>结束后使用 <code>exit</code> 退出终端,按 <code>Ctrl + Alt + F1/F2</code> 切换回用户身份图形界面</p>
<p>根据桌面环境及发行版本不同,快捷键可能有差异,但大多都是 <code>Ctrl + Alt + F1-F12</code></p>
<blockquote>
<p>以下命令在 <code>root</code> 身份下执行</p>
</blockquote>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">chmod +w /etc/sudoers
cat >> /etc/sudoers << <span class="hljs-string">EOF
debianuser ALL=(ALL:ALL) ALL
EOF
chmod -w /etc/sudoers
<span class="hljs-built_in">exit
</span></span></code></pre>
<blockquote>
<p>以上命令在 <code>root</code> 身份下执行</p>
</blockquote>
<div data-unique="更换软件源"> </div>
<h3 id="更换软件源">更换软件源</h3>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">sudo tee /etc/apt/sources.list <<-<span class="hljs-string">'EOF'
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free non-free-firmware
<span class="hljs-comment"># deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free non-free-firmware
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free non-free-firmware
<span class="hljs-comment"># deb-src http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free non-free-firmware
deb http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free non-free-firmware
<span class="hljs-comment"># deb-src http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free non-free-firmware
<span class="hljs-comment"># deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
<span class="hljs-comment"># deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
EOF
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
</span></span></span></span></span></span></code></pre>
<div data-unique="其他软件源"> </div>
<h3 id="其他软件源">其他软件源</h3>
<div data-unique="DockerCE"> </div>
<h4 id="Docker-CE">Docker CE</h4>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
sudo tee /etc/apt/sources.list.d/docker-ce.list <<-<span class="hljs-string">'EOF'
deb https://mirrors.ustc.edu.cn/docker-ce/linux/debian bookworm stable
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
</span></code></pre>
<div data-unique="配置基础软件包"> </div>
<h3 id="配置基础软件包">配置基础软件包</h3>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">sudo apt install vim wget curl htop git proxychains4 screenfetch tmux bash-completion fcitx5-rime chromium fcitx5 zsh fonts-powerline fzf net-tools openssh-server firewalld bat
</code></pre>
<div data-unique="卸载无用软件包"> </div>
<h3 id="卸载无用软件包">卸载无用软件包</h3>
<p>主要卸载一些多语言支持和游戏包,可跳过</p>
<div data-unique="KDE"> </div>
<h4 id="KDE">KDE</h4>
<p>注意:卸载包时请注意同时卸载了哪些依赖,防止出现依赖问题导致卸载掉整个桌面环境</p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">sudo apt remove --purge ibus* goldendict
sudo apt autoremove --purge
</code></pre>
<div data-unique="无线网卡驱动"> </div>
<h3 id="无线网卡驱动">无线网卡驱动</h3>
<p>如果你的电脑存在无线网卡,并且在安装好操作系统之后发现无线网卡无法使用,请尝试如下步骤</p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">sudo apt install firmware-iwlwifi
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi
</code></pre>
<div data-unique="Nvidia显卡驱动"> </div>
<h3 id="Nvidia-显卡驱动">Nvidia 显卡驱动</h3>
<p>如果你的电脑存在 Nvidia 显卡,并且在安装好操作系统之后发现显卡无法使用,请尝试如下步骤</p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">sudo apt install nvidia-detect
sudo nvidia-detect
</code></pre>
<p>该步骤会根据硬件检测应该安装哪些驱动,请按照输出安装对应的驱动,例如提示 <code>nvidia-driver</code></p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">sudo apt install nvidia-driver
</code></pre>
<div data-unique="tmux快捷键"> </div>
<h3 id="tmux-快捷键">tmux 快捷键</h3>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">sudo tee /etc/tmux.conf <<-<span class="hljs-string">'EOF'
<span class="hljs-built_in">set -g prefix C-a
unbind C-b
<span class="hljs-built_in">bind C-a send-prefix
EOF
</span></span></span></code></pre>
<div data-unique="安装ClashforWindows"> </div>
<h3 id="安装-***-for-Windows">安装 *** for Windows</h3>
<p>从 <span class="external-link">GitHub - Fndroid/***_for_windows_pkg 下载 CFW,注意下载 <code>***.for.Windows-x.xx.x-x64-linux.tar.gz</code></span></p>
<p>将其解压到 <code>~/.local/share/cfw</code></p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">mkdir <span class="hljs-variable">$HOME/.<span class="hljs-built_in">local/share/cfw
chown debianuser:debianuser <span class="hljs-variable">$HOME/.<span class="hljs-built_in">local/share/cfw
tar zxvf ***.for.Windows-x.xx.x-x64-linux.tar.gz -C <span class="hljs-variable">$HOME/.<span class="hljs-built_in">local/share/cfw --strip-components 1
</span></span></span></span></span></span></code></pre>
<p>创建 <code>~/.local/share/applications/cfw.desktop</code> 用于显示桌面图标</p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">touch ~/.<span class="hljs-built_in">local/share/applications/cfw.desktop
tee ~/.<span class="hljs-built_in">local/share/applications/cfw.desktop <<-<span class="hljs-string">'EOF'
Version=1.0
Name=*** For Windows
GenericName=*** For Windows
Comment=*** For Windows <span class="hljs-keyword">for Linux
Exec=/home/debianuser/.<span class="hljs-built_in">local/share/cfw/cfw
Terminal=<span class="hljs-literal">false
Type=Application
Icon=/home/debianuser/.<span class="hljs-built_in">local/share/cfw/logo.png
Categories=Network
EOF
</span></span></span></span></span></span></span></code></pre>
<div data-unique="配置ZSH"> </div>
<h3 id="配置-ZSH">配置 ZSH</h3>
<p>切换到 zsh</p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">chsh -s /bin/zsh
<span class="hljs-comment"># If you have a specific zshrc
sudo cp ~/.zshrc /root
</span></code></pre>
<p>完成以上步骤后切换到 <code>root</code> 用户将自动为其配置 zsh, zinit 及 <code>.zshrc</code> 中配置的插件</p>
<p>自行配置 p10k 主题前请先按照 <em>0x05 其他优化配置</em> 正确配置字体</p>
<div data-unique="重启"> </div>
<h3 id="重启">重启</h3>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">sudo reboot
</code></pre>
<div data-unique="0x02安装应用"> </div>
<h2 id="0x02-安装应用">0x02 安装应用</h2>
<p>下载 <span class="external-link">Google Chrome</span></p>
<p>下载 <span class="external-link">Microsoft Visual Studio Code</span></p>
<p>下载 <span class="external-link">JetBrains Toolbox App</span></p>
<p>下载 <span class="external-link">Go for Linux</span></p>
<p>下载 <span class="external-link">nvm</span></p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">sudo apt install ./google-chrome-stable_current_amd64.deb
sudo apt install ./code_xxx_amd64.deb
sudo apt remove --purge <span class="hljs-string">'firefox-esr*'
</span></code></pre>
<div data-unique="JetBrainsToolbox"> </div>
<h3 id="JetBrains-Toolbox">JetBrains Toolbox</h3>
<p>用于管理 JetBrains IDE</p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">tar zxvf jetbrains-toolbox-xxx.tar.gz
./jetbrains-toolbox-xxx/jetbrains-toolbox
</code></pre>
<div data-unique="Activatebycode"> </div>
<h4 id="Activate-by-code">Activate by code</h4>
<p>访问 <span class="external-link">jetbra.in/s,网站使用 IPFS 存储,跳转到 <code>JETBRA.IN CHECKER | IPFS</code>,在列表中选择任意可用节点访问即可</span></p>
<p>下载页面顶部的 <code>jetbra.zip</code>,按照 README 说明配置即可</p>
<div data-unique="Go&nvm&Java"> </div>
<h3 id="Go---nvm---Java">Go & nvm & Java</h3>
<p>建议将 go 和 nvm 分别安装到 <code>/usr/local/go</code> 和 <code>/usr/local/nvm</code> 下</p>
<p>为 java 创建 <code>/usr/local/java</code> 目录,将各版本 jdk 统一解压到该目录下便于管理</p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">mkdir <span class="hljs-variable">$HOME/.<span class="hljs-built_in">local/go
mkdir <span class="hljs-variable">$HOME/.<span class="hljs-built_in">local/nvm
tar zxvf Downloads/goxxxlinux-amd64.tar.gz -C <span class="hljs-variable">$HOME/.<span class="hljs-built_in">local/go/ --strip-components=1
chmod +x nvm_install.sh
NVM_DIR=<span class="hljs-string">"<span class="hljs-variable">$HOME/.local/nvm" ./nvm_install.sh
tee <span class="hljs-variable">$HOME/.profile <<-<span class="hljs-string">'EOF'
<span class="hljs-built_in">source /etc/profile
<span class="hljs-built_in">export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node
<span class="hljs-built_in">export GOROOT=<span class="hljs-string">"<span class="hljs-variable">$HOME/.local/go"
<span class="hljs-built_in">export JAVA_HOME=<span class="hljs-string">"<span class="hljs-variable">$HOME/.local/java/jdk-xxx"
<span class="hljs-built_in">export PATH=<span class="hljs-string">"<span class="hljs-variable">$PATH:<span class="hljs-variable">$GOROOT/bin"
<span class="hljs-built_in">export PATH=<span class="hljs-string">"<span class="hljs-variable">$PATH:<span class="hljs-variable">$JAVA_HOME/bin"
EOF
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p>配置 Go Modules,Go 代理并切换 npm 源</p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber">go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
nvm install --lts
nvm <span class="hljs-built_in">alias default lts/*
npm config <span class="hljs-built_in">set registry https://registry.npmmirror.com/
</span></span></code></pre>
<div data-unique="安装VSCode扩展"> </div>
<h3 id="安装-VSCode-扩展">安装 VSCode 扩展</h3>
<p>以下仅为推荐扩展,请根据自己的技术栈及个人喜好自行选择</p>
<ul>
<li>ms-vscode.cpptools</li>
<li>ms-azuretools.vscode-docker</li>
<li>dbaeumer.vscode-eslint</li>
<li>golang.go</li>
<li>yzhang.markdown-all-in-one</li>
<li>shd101wyy.markdown-preview-enhanced</li>
<li>DavidAnson.vscode-markdownlint</li>
<li>ms-python.vscode-pylance</li>
<li>ms-python.python</li>
<li>Vue.volar</li>
</ul>
<div data-unique="0x03KDE桌面优化"> </div>
<h2 id="0x03-KDE-桌面优化">0x03 KDE 桌面优化</h2>
<div data-unique="系统设置"> </div>
<h3 id="系统设置">系统设置</h3>
<ul>
<li>外观
<ul>
<li>全局主题
<ul>
<li>获取新的全局主题: <code>Fluent kde theme</code></li>
</ul>
</li>
<li>应用程序风格
<ul>
<li>配置 GNOME/GTK 应用程序风格
<ul>
<li>获取新 GNOME/GTK 应用程序风格: <code>Fluent gtk theme</code></li>
<li>GTK 应用程序风格:<code>Fluent</code></li>
</ul>
</li>
</ul>
</li>
<li>Plasma 视觉风格: <code>Fluent</code></li>
<li>窗口装饰元素: <code>Fluent</code></li>
<li>图标: <code>Fluent</code></li>
<li>欢迎屏幕: <code>Fluent</code></li>
</ul>
</li>
<li>工作区行为
<ul>
<li>常规行为
<ul>
<li>单击文件、文件夹时: <code>选中</code></li>
</ul>
</li>
<li>锁屏
<ul>
<li>自动锁定屏幕: 如果空闲 <code>30</code> 分钟</li>
<li>锁屏多久后需要密码解锁: <code>0</code> 秒</li>
</ul>
</li>
<li>最近文件
<ul>
<li>记住打开过的文档: <code>不要记住</code></li>
</ul>
</li>
</ul>
</li>
<li>窗口管理
<ul>
<li>窗口行为
<ul>
<li>标题栏操作
<ul>
<li>标题栏和边框操作
<ul>
<li>中击: <code>无操作</code> <code>无操作</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>任务切换器
<ul>
<li>获取新任务切换器: <code>MediumDefault</code></li>
<li>主窗口
<ul>
<li>可视化: <code>MediumDefault</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>开机与关机
<ul>
<li>桌面会话
<ul>
<li>会话恢复
<ul>
<li>登录时启动之前打开的应用程序: <code>启动为空会话</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>搜索
<ul>
<li>Plasma 搜索
<ul>
<li>关闭 <code>浏览器历史记录</code></li>
<li>关闭 <code>网络搜索关键词</code></li>
<li>配置 KRunner
<ul>
<li>关闭 <code>在桌面按下任意按键时激活</code></li>
<li>关闭 <code>记住过去的搜索</code></li>
<li>关闭 <code>重新打开时保留上次搜索</code></li>
<li>关闭 <code>活动感知</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>网络设置
<ul>
<li>代理
<ul>
<li>选择 <code>使用手动配置的代理服务器</code></li>
<li>HTTP 代理: <code>127.0.0.1</code> 端口: <code>7890</code></li>
<li>打开 <code>所有协议都使用同样的代理服务器</code></li>
</ul>
</li>
</ul>
</li>
<li>电源管理
<ul>
<li>节能
<ul>
<li>屏幕节能: 关闭前等待时间 <code>30</code> 分钟</li>
<li>关闭 <code>挂起会话</code></li>
<li>合上笔记本盖时: <code>无操作</code></li>
</ul>
</li>
</ul>
</li>
</ul>
<div data-unique="面板配置"> </div>
<h3 id="面板配置">面板配置</h3>
<ul>
<li>面板高度: <code>46</code></li>
<li>图标任务管理器
<ul>
<li>行为
<ul>
<li>分组: <code>不分组</code></li>
<li>显示的任务: 打开 <code>当前屏幕的任务</code></li>
</ul>
</li>
</ul>
</li>
<li>数字时钟
<ul>
<li>外观
<ul>
<li>打开 <code>显示秒</code></li>
<li>时间显示: <code>24 小时制</code></li>
</ul>
</li>
</ul>
</li>
</ul>
<div data-unique="Konsole配置"> </div>
<h3 id="Konsole-配置">Konsole 配置</h3>
<ul>
<li>设置
<ul>
<li>显示工具栏
<ul>
<li>关闭 <code>主工具栏</code></li>
<li>关闭 <code>会话工具栏</code></li>
</ul>
</li>
<li>配置 Konsole
<ul>
<li>常规
<ul>
<li>关闭 <code>记住窗口大小</code></li>
</ul>
</li>
<li>配置方案: 新建
<ul>
<li>常规
<ul>
<li><code>Default</code></li>
<li>打开 <code>默认配置方案</code></li>
<li>初始终端尺寸: <code>140</code> 列 <code>30</code> 行</li>
</ul>
</li>
<li>外观
<ul>
<li>配色方案和字体
<ul>
<li>获取新的: <code>Nordic konsole</code></li>
</ul>
</li>
</ul>
</li>
<li>滚动
<ul>
<li>回滚: <code>无限制</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div data-unique="0x05其他优化配置"> </div>
<h2 id="0x05-其他优化配置">0x05 其他优化配置</h2>
<div data-unique="字体优先级"> </div>
<h3 id="字体优先级">字体优先级</h3>
<p>本文环境下广泛使用 <code>Hack Nerd Font</code> 显示图标,使用 <code>Sarasa Term SC</code> 作为等宽字体</p>
<p>创建 <code>/etc/fonts/local.conf</code> 配置字体优先级如下</p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-xml hljs vditor-linenumber"><span class="hljs-meta"><?xml version="1.0"?>
<span class="hljs-meta"><!DOCTYPE <span class="hljs-meta-keyword">fontconfig <span class="hljs-meta-keyword">SYSTEM <span class="hljs-meta-string">"fonts.dtd">
<span class="hljs-tag"><<span class="hljs-name">fontconfig>
<span class="hljs-tag"><<span class="hljs-name">alias>
<span class="hljs-tag"><<span class="hljs-name">family>serif<span class="hljs-tag"></<span class="hljs-name">family>
<span class="hljs-tag"><<span class="hljs-name">prefer>
<span class="hljs-tag"><<span class="hljs-name">family>Sarasa Term SC<span class="hljs-tag"></<span class="hljs-name">family>
<span class="hljs-tag"><<span class="hljs-name">family>Hack Nerd Font<span class="hljs-tag"></<span class="hljs-name">family>
<span class="hljs-tag"></<span class="hljs-name">prefer>
<span class="hljs-tag"></<span class="hljs-name">alias>
<span class="hljs-tag"><<span class="hljs-name">alias>
<span class="hljs-tag"><<span class="hljs-name">family>sans-serif<span class="hljs-tag"></<span class="hljs-name">family>
<span class="hljs-tag"><<span class="hljs-name">prefer>
<span class="hljs-tag"><<span class="hljs-name">family>Sarasa Term SC<span class="hljs-tag"></<span class="hljs-name">family>
<span class="hljs-tag"><<span class="hljs-name">family>Hack Nerd Font<span class="hljs-tag"></<span class="hljs-name">family>
<span class="hljs-tag"></<span class="hljs-name">prefer>
<span class="hljs-tag"></<span class="hljs-name">alias>
<span class="hljs-tag"><<span class="hljs-name">alias>
<span class="hljs-tag"><<span class="hljs-name">family>monospace<span class="hljs-tag"></<span class="hljs-name">family>
<span class="hljs-tag"><<span class="hljs-name">prefer>
<span class="hljs-tag"><<span class="hljs-name">family>Sarasa Term SC<span class="hljs-tag"></<span class="hljs-name">family>
<span class="hljs-tag"><<span class="hljs-name">family>Hack Nerd Font<span class="hljs-tag"></<span class="hljs-name">family>
<span class="hljs-tag"></<span class="hljs-name">prefer>
<span class="hljs-tag"></<span class="hljs-name">alias>
<span class="hljs-tag"></<span class="hljs-name">fontconfig>
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<div data-unique="ZSH配置参考"> </div>
<h3 id="ZSH-配置参考">ZSH 配置参考</h3>
<p><code>.zshrc</code></p>
<pre class="mac_dark mac_pre box-shadow-wrap-lg"><code class="language-bash hljs vditor-linenumber"><span class="hljs-comment"># Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
<span class="hljs-comment"># Initialization code that may require console input (password prompts,
<span class="hljs-comment"># confirmations, etc.) must go above this block; everything else may go below.
<span class="hljs-keyword">if [[ -r <span class="hljs-string">"<span class="hljs-variable">${XDG_CACHE_HOME:-<span class="hljs-variable">$HOME/.cache}/p10k-instant-prompt-<span class="hljs-variable">${(%):-%n}.zsh" ]]; <span class="hljs-keyword">then
<span class="hljs-built_in">source <span class="hljs-string">"<span class="hljs-variable">${XDG_CACHE_HOME:-<span class="hljs-variable">$HOME/.cache}/p10k-instant-prompt-<span class="hljs-variable">${(%):-%n}.zsh"
<span class="hljs-keyword">fi
<span class="hljs-comment"># apt install fonts-powerline
<span class="hljs-comment"># Download https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.2/Hack.zip
<span class="hljs-comment"># Extract the files and copy all font files to user font folder like ~/.local/share/fonts
<span class="hljs-comment"># fc-cache -f -v
<span class="hljs-comment">### Added by Zinit's installer
<span class="hljs-keyword">if [[ ! -f <span class="hljs-variable">$HOME/.<span class="hljs-built_in">local/share/zinit/zinit.git/zinit.zsh ]]; <span class="hljs-keyword">then
<span class="hljs-built_in">print -P <span class="hljs-string">"%F{33} %F{220}Installing %F{33}ZDHARMA-CONTINUUM%F{220} Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f"
<span class="hljs-built_in">command mkdir -p <span class="hljs-string">"<span class="hljs-variable">$HOME/.local/share/zinit" && <span class="hljs-built_in">command chmod g-rwX <span class="hljs-string">"<span class="hljs-variable">$HOME/.local/share/zinit"
<span class="hljs-built_in">command git <span class="hljs-built_in">clone https://github.com/zdharma-continuum/zinit <span class="hljs-string">"<span class="hljs-variable">$HOME/.local/share/zinit/zinit.git" && \
<span class="hljs-built_in">print -P <span class="hljs-string">"%F{33} %F{34}Installation successful.%f%b" || \
<span class="hljs-built_in">print -P <span class="hljs-string">"%F{160} The clone has failed.%f%b"
<span class="hljs-keyword">fi
<span class="hljs-built_in">source /etc/zsh/zprofile
<span class="hljs-built_in">source <span class="hljs-variable">$HOME/.profile
<span class="hljs-built_in">source <span class="hljs-string">"<span class="hljs-variable">$HOME/.local/share/zinit/zinit.git/zinit.zsh"
<span class="hljs-built_in">autoload -Uz _zinit
(( <span class="hljs-variable">${+_comps} )) && _comps=_zinit
<span class="hljs-comment">### End of Zinit's installer chunk
HISTFILE=<span class="hljs-string">"<span class="hljs-variable">$HOME/.zsh_history"
HISTSIZE=10000
SAVEHIST=10000
<span class="hljs-built_in">setopt BANG_HIST <span class="hljs-comment"># Treat the '!' character specially during expansion.
<span class="hljs-built_in">setopt EXTENDED_HISTORY <span class="hljs-comment"># Write the history file in the ":start:elapsed;command" format.
<span class="hljs-built_in">setopt INC_APPEND_HISTORY <span class="hljs-comment"># Write to the history file immediately, not when the shell exits.
<span class="hljs-built_in">setopt SHARE_HISTORY <span class="hljs-comment"># Share history between all sessions.
<span class="hljs-built_in">setopt HIST_EXPIRE_DUPS_FIRST <span class="hljs-comment"># Expire duplicate entries first when trimming history.
<span class="hljs-built_in">setopt HIST_IGNORE_DUPS <span class="hljs-comment"># Don't record an entry that was just recorded again.
<span class="hljs-built_in">setopt HIST_IGNORE_ALL_DUPS <span class="hljs-comment"># Delete old recorded entry if new entry is a duplicate.
<span class="hljs-built_in">setopt HIST_FIND_NO_DUPS <span class="hljs-comment"># Do not display a line previously found.
<span class="hljs-built_in">setopt HIST_IGNORE_SPACE <span class="hljs-comment"># Don't record an entry starting with a space.
<span class="hljs-built_in">setopt HIST_SAVE_NO_DUPS <span class="hljs-comment"># Don't write duplicate entries in the history file.
<span class="hljs-built_in">setopt HIST_REDUCE_BLANKS <span class="hljs-comment"># Remove superfluous blanks before recording entry.
<span class="hljs-built_in">setopt HIST_VERIFY <span class="hljs-comment"># Don't execute immediately upon history expansion.
<span class="hljs-built_in">setopt HIST_BEEP <span class="hljs-comment"># Beep when accessing nonexistent history.
<span class="hljs-comment"># apt install fzf
zinit ice depth=<span class="hljs-string">'1' lucid <span class="hljs-built_in">wait=<span class="hljs-string">'0' atload=<span class="hljs-string">'_zsh_autosuggest_start'
zinit light zsh-users/zsh-autosuggestions
zinit ice depth=<span class="hljs-string">'1' lucid <span class="hljs-built_in">wait=<span class="hljs-string">'0'
zinit light zsh-users/zsh-syntax-highlighting
zinit ice depth=<span class="hljs-string">'1'
zinit light zsh-users/zsh-completions
zinit ice depth=<span class="hljs-string">'1'
zinit light romkatv/powerlevel10k
zinit ice lucid <span class="hljs-built_in">wait=<span class="hljs-string">'0'
zinit snippet OMZ::plugins/jsontools/jsontools.plugin.zsh
zinit ice lucid <span class="hljs-built_in">wait=<span class="hljs-string">'0'
zinit snippet OMZ::plugins/fzf/fzf.plugin.zsh
zinit ice lucid <span class="hljs-built_in">wait=<span class="hljs-string">'0'
zinit snippet OMZ::lib/completion.zsh
<span class="hljs-built_in">autoload -U compinit && compinit
<span class="hljs-comment"># To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
<span class="hljs-keyword">if [ <span class="hljs-variable">${DISPLAY} ]; <span class="hljs-keyword">then
[[ ! -f ~/.p10k.gui.zsh ]] || <span class="hljs-built_in">source ~/.p10k.gui.zsh
<span class="hljs-keyword">else
<span class="hljs-built_in">export LANG=en_US.UTF-8
[[ ! -f ~/.p10k.terminal.zsh ]] || <span class="hljs-built_in">source ~/.p10k.terminal.zsh
<span class="hljs-keyword">fi
<span class="hljs-built_in">alias ls=<span class="hljs-string">'ls --color=auto'
<span class="hljs-built_in">alias grep=<span class="hljs-string">'grep --color=auto'
<span class="hljs-built_in">alias ll=<span class="hljs-string">'ls -lh'
<span class="hljs-built_in">alias la=<span class="hljs-string">'ls -A'
<span class="hljs-built_in">alias l=<span class="hljs-string">'ls -CF'
<span class="hljs-comment"># advcpmv Site: https://github.com/jarun/advcpmv
<span class="hljs-comment"># ===== advcpmv Step Start =====
<span class="hljs-comment"># ===== from source code
<span class="hljs-comment"># wget http://ftp.gnu.org/gnu/coreutils/coreutils-9.4.tar.xz
<span class="hljs-comment"># tar Jxvf coreutils-9.4.tar.xz
<span class="hljs-comment"># cd coreutils-9.4/
<span class="hljs-comment"># wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.9-9.4.patch
<span class="hljs-comment"># patch -p1 -i advcpmv-0.9-9.4.patch
<span class="hljs-comment"># ./configure
<span class="hljs-comment"># make
<span class="hljs-comment"># sudo chmod +x ./src/cp ./src/mv
<span class="hljs-comment"># sudo chown root. ./src/cp ./src/mv
<span class="hljs-comment"># sudo mv ./src/cp /usr/local/bin/cpg
<span class="hljs-comment"># sudo mv ./src/mv /usr/local/bin/mvg
<span class="hljs-comment"># ===== advcpmv Step Finish =====
<span class="hljs-built_in">alias cp=<span class="hljs-string">'/usr/local/bin/cpg -g'
<span class="hljs-built_in">alias mv=<span class="hljs-string">'/usr/local/bin/mvg -g'
<span class="hljs-comment"># bat Site: https://github.com/sharkdp/bat
<span class="hljs-comment"># ===== bat Step Start =====
<span class="hljs-comment"># ===== from github
<span class="hljs-comment"># Download release from https://github.com/sharkdp/bat/releases
<span class="hljs-comment"># apt install ./bat-musl_x.xx.x_amd64.deb
<span class="hljs-comment"># ===== bat Step Finish =====
<span class="hljs-built_in">alias cat=<span class="hljs-string">'batcat --paging=never -p'
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<div data-unique="Powerlevel10k配置"> </div>
<h3 id="Powerlevel10k-配置">Powerlevel10k 配置</h3>
<p>Powerlevel10k 是 zsh 的主题,在 <code>.zshrc</code> 中我们声明了在桌面环境和终端环境下使用不同的 p10k 配置,即桌面环境使用图标更多更友好的终端主题配置,而在终端环境下使用更保守的终端主题配置以保证兼容性,执行 <code>p10k configure</code> 来生成配置文件</p>
<p> </p>
<p>============= End</p>
<p> </p><br><br>
来源:https://www.cnblogs.com/lsgxeva/p/17998394
頁:
[1]