开发者的 Debian 13 KDE 配置优化指南

0x00 简介 本文仅适用于配置 Debian 13 Trixie 文中包含 KDE Plasma X11 桌面配置 文中使用 debianuser 代替用户名,执行命令或复制配置时请注意替换 文中涉及的带版本号的软件包/环境,版本号使用 xxx 代替,请根据实际情况安装最新版本或自己需要的版本 本

0x00 简介

本文仅适用于配置 Debian 13 Trixie

文中包含 KDE Plasma X11 桌面配置

文中使用 debianuser 代替用户名,执行命令或复制配置时请注意替换

文中涉及的带版本号的软件包/环境,版本号使用 xxx 代替,请根据实际情况安装最新版本或自己需要的版本

本文编辑整理时间距离实践时间相隔过长,编辑过程中可能出现不准确内容,如果在您的时间过程中发现与本文不符的情况,请尽量在评论区留言,我将尽快确认更新

0x01 基础配置

该步骤中大部分操作需要重启,所以不要根据配置完成后的应用运行状态来判断配置是否成功

在该步骤末尾会重启一次应用所有配置

使用英文重命名 /home 目录下文件夹

cd ~
mkdir Desktop Download Templates Public Documents Music Pictures Videos
rm -rf 公共 模板 视频 图片 文档 下载 音乐 桌面
xdg-user-dirs-update --set DESKTOP ~/Desktop
xdg-user-dirs-update --set DOWNLOAD ~/Download
xdg-user-dirs-update --set TEMPLATES ~/Templates
xdg-user-dirs-update --set PUBLICSHARE ~/Public
xdg-user-dirs-update --set DOCUMENTS ~/Documents
xdg-user-dirs-update --set MUSIC ~/Music
xdg-user-dirs-update --set PICTURES ~/Pictures
xdg-user-dirs-update --set VIDEOS ~/Videos

将用户添加到 sudoers 中

该步骤需要先切换到 root 身份

Ctrl + Alt + F3 切换到纯命令行界面的新终端,并以 root 身份登录进行操作

结束后使用 exit 退出终端,按 Ctrl + Alt + F1/F2 切换回用户身份图形界面

根据桌面环境及发行版本不同,快捷键可能有差异,但大多都是 Ctrl + Alt + F1-F12

以下命令在 root 身份下执行

chmod +w /etc/sudoers
cat >> /etc/sudoers << EOF
debianuser ALL=(ALL:ALL) ALL
EOF
chmod -w /etc/sudoers
exit

以上命令在 root 身份下执行

更换软件源

sudo tee /etc/apt/sources.list <<-'EOF'
deb http://mirrors.ustc.edu.cn/debian trixie main contrib non-free non-free-firmware
# deb-src http://mirrors.ustc.edu.cn/debian trixie main contrib non-free non-free-firmware

deb http://mirrors.ustc.edu.cn/debian trixie-updates main contrib non-free non-free-firmware
# deb-src http://mirrors.ustc.edu.cn/debian trixie-updates main contrib non-free non-free-firmware

deb http://mirrors.ustc.edu.cn/debian trixie-proposed-updates main contrib non-free non-free-firmware
# deb-src http://mirrors.ustc.edu.cn/debian trixie-proposed-updates main contrib non-free non-free-firmware

# deb https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
# deb-src https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
EOF
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

配置基础软件包

sudo apt install vim wget curl ca-certificates linux-headers-amd64 htop git proxychains4 screenfetch tmux bash-completion fcitx5-rime chromium fcitx5 zsh fonts-powerline fzf net-tools openssh-server firewalld bat

其他软件源

Docker CE

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.ustc.edu.cn/docker-ce/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

卸载无用软件包

主要卸载一些多语言支持和游戏包,可跳过

注意:卸载包时请注意同时卸载了哪些依赖,防止出现依赖问题导致卸载掉整个桌面环境

sudo apt remove --purge 'ibus*' 'firefox-esr*' 'konqueror*' goldendict-ng 'kaddressbook*' xterm
sudo apt autoremove --purge

无线网卡驱动

如果你的电脑存在无线网卡,并且在安装好操作系统之后发现无线网卡无法使用,请尝试如下步骤

sudo apt install firmware-iwlwifi
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi

Nvidia 显卡驱动

如果你的电脑存在 Nvidia 显卡,并且在安装好操作系统之后发现显卡无法使用或识别失败,请尝试如下步骤

sudo apt install nvidia-detect linux-headers-amd64
sudo nvidia-detect

该步骤会根据硬件检测应该安装哪些驱动,请按照输出安装对应的驱动,例如提示 nvidia-driver

sudo apt install nvidia-driver

根据 KDE Plasma/Wayland/Nvidia,在使用 Wayland 时,执行如下命令

sudo tee /etc/modprobe.d/nvidia_drm.conf <<-'EOF'
options nvidia_drm modeset=1
EOF
sudo update-initramfs -u

如果出现 Chromium 内核应用或 Electron 应用卡顿、显示错误等情况,请尝试调整系统缩放为 100%相关讨论

双系统引导

如果你的启动项包含 Windows,并且在安装 Debian 后 grub 不显示 Windows 启动项,取消 /etc/default/grubGRUB_DISABLE_OS_PROBER 的注释,并修改为 false

如果要修改启动项顺序,在 /etc/grub.d/ 中修改启动项序号

更新引导

sudo update-grub

tmux 快捷键

sudo tee /etc/tmux.conf <<-'EOF'
set -g prefix C-a
unbind C-b
bind C-a send-prefix
EOF

安装 Clash Verge Rev

GitHub - clash-verge-rev/clash-verge-rev 下载 Release,注意下载 Clash.Verge_x.x.x_amd64.deb

sudo apt install ./Clash.Verge_x.x.x_amd64.deb

配置 ZSH

切换到 zsh

chsh -s /bin/zsh
# If you have a specific zshrc
sudo cp ~/.zshrc /root

完成以上步骤后切换到 root 用户将自动为其配置 zsh, zinit 及 .zshrc 中配置的插件

自行配置 p10k 主题前请先按照 0x05 其他优化配置 正确配置字体

重启

sudo reboot

0x02 安装应用

下载 Google Chrome

下载 Microsoft Visual Studio Code

下载 JetBrains Toolbox App

下载 Go for Linux

下载 nvm

sudo apt install ./google-chrome-stable_current_amd64.deb
sudo apt install ./code_xxx_amd64.deb

JetBrains Toolbox

用于管理 JetBrains IDE

tar zxvf jetbrains-toolbox-xxx.tar.gz
./jetbrains-toolbox-xxx/bn/jetbrains-toolbox

Activate by code

访问 jetbra.in/s,网站使用 IPFS 存储,跳转到 JETBRA.IN CHECKER | IPFS,在列表中选择任意可用节点访问即可

下载页面顶部的 jetbra.zip,按照 README 说明配置即可

Go & nvm & Java

建议将 go 和 nvm 分别安装到 ~/.local/go~/.local/nvm

为 java 创建 ~/.local/java 目录,将各版本 jdk 统一解压到该目录下便于管理

mkdir $HOME/.local/go
mkdir $HOME/.local/nvm
tar zxvf Downloads/goxxxlinux-amd64.tar.gz -C $HOME/.local/go/ --strip-components=1
chmod +x nvm_install.sh
NVM_DIR="$HOME/.local/nvm" ./nvm_install.sh
tee $HOME/.profile <<-'EOF'

source /etc/profile

export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node

export GOROOT="$HOME/.local/go"

export JAVA_HOME="$HOME/.local/java/jdk-xxx"

export PATH="$PATH:$GOROOT/bin"
export PATH="$PATH:$JAVA_HOME/bin"
EOF

配置 Go Modules,Go 代理并切换 npm 源

go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
nvm install --lts
nvm alias default lts/*
npm config set registry https://registry.npmmirror.com/

0x03 KDE 桌面优化

系统设置

  • 鼠标和触摸板
    • 鼠标
      • 光标速度: -0.6
  • 键盘
    • 虚拟键盘: Fcitx 5
  • 颜色和主题
    • 全局主题
      • 获取新全局主题:Nordic bluish Plasma 6
      • 颜色: nordic-bluish
      • 应用程序外观样式
        • 配置 GNOME/GTK 应用程序外观样式
          • 获取新 GNOME/GTK 应用程序外观样式: Nordic
      • Plasma 外观样式: Nordic-bluish
      • 窗口装饰元素: Nordic
      • 图标: Papirus-Dark
        • 获取新图标主题: Papirus
      • 光标: Nordic-cursors
      • 欢迎屏幕: Nordic-bluish
      • 登陆屏幕(SDDM): Nordic-Plasma-6
  • 文字和字体
    • 字体
      • 调整所有字体: Maple Mono Normal NL NF CN
  • 搜索
    • Plasma 搜索
      • 关闭所有,按需开启
  • 锁屏
    • 自动锁定屏幕:30 分钟
    • 需要输入密码解锁的宽限延迟: 锁屏后立即需要输入密码解锁
  • 最近文件
    • 记住打开过的文档: 不要记住
  • 电源管理
    • 空闲时: 无操作
    • 按下电源键时: 显示注销屏幕
    • 自动降低亮度: 空闲 10 分钟后
    • 关闭屏幕: 空闲 30 分钟后 锁屏时:立即关闭

面板配置

  • 图标任务管理器
    • 行为
      • 分组: 不分组
  • 数字时钟
    • 外观
      • 显示秒数: 总是显示
      • 时间显示方式: 24 小时制

Dolphin 配置

  • 界面
    • 启动时显示: /home/debianuser

Konsole 配置

  • 设置
    • 配置 Konsole
      • 常规
        • 关闭 记住窗口大小
      • 配置方案: 新建
        • 常规
          • Default
          • 打开 默认配置方案
          • 初始终端尺寸: 14040
        • 外观
          • 配色方案和字体
            • 获取新方案: Nordic konsole
            • 编辑
              • 颜色 1: #606a80
          • 光标
            • 形状: 下划线
        • 滚动
          • 回滚历史: 无限制
    • 显示工具栏
      • 关闭 主工具栏
      • 关闭 会话工具栏

0x05 其他优化配置

字体优先级

本文环境下广泛使用 MapleMonoNF-CN Normal-No-Ligature 作为等宽字体和基础 icon

如果有更多 icon 需求,可以使用 Nerd Font 中的 Hack 字体

使用多字体时,创建 /etc/fonts/local.conf 配置字体优先级如下

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <alias>
        <family>serif</family>
        <prefer>
            <family>Maple Mono Normal NL NF CN</family>
            <family>Hack Nerd Font</family>
        </prefer>
    </alias>
    <alias>
        <family>sans-serif</family>
        <prefer>
            <family>Maple Mono Normal NL NF CN</family>
            <family>Hack Nerd Font</family>
        </prefer>
    </alias>
    <alias>
        <family>monospace</family>
        <prefer>
            <family>Maple Mono Normal NL NF CN</family>
            <family>Hack Nerd Font</family>
        </prefer>
    </alias>
</fontconfig>

ZSH 配置参考

.zshrc

# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

### Added by Zinit's installer
if [[ ! -f $HOME/.local/share/zinit/zinit.git/zinit.zsh ]]; then
  print -P "%F{33} %F{220}Installing %F{33}ZDHARMA-CONTINUUM%F{220} Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f"
  command mkdir -p "$HOME/.local/share/zinit" && command chmod g-rwX "$HOME/.local/share/zinit"
  command git clone https://github.com/zdharma-continuum/zinit "$HOME/.local/share/zinit/zinit.git" && \
    print -P "%F{33} %F{34}Installation successful.%f%b" || \
    print -P "%F{160} The clone has failed.%f%b"
fi

source /etc/zsh/zprofile
source $HOME/.profile
source "$HOME/.local/share/zinit/zinit.git/zinit.zsh"
autoload -Uz _zinit
(( ${+_comps} )) && _comps[zinit]=_zinit
### End of Zinit's installer chunk

HISTFILE="$HOME/.zsh_history"
HISTSIZE=10000
SAVEHIST=10000
setopt BANG_HIST                 # Treat the '!' character specially during expansion.
setopt EXTENDED_HISTORY          # Write the history file in the ":start:elapsed;command" format.
setopt INC_APPEND_HISTORY        # Write to the history file immediately, not when the shell exits.
setopt SHARE_HISTORY             # Share history between all sessions.
setopt HIST_EXPIRE_DUPS_FIRST    # Expire duplicate entries first when trimming history.
setopt HIST_IGNORE_DUPS          # Don't record an entry that was just recorded again.
setopt HIST_IGNORE_ALL_DUPS      # Delete old recorded entry if new entry is a duplicate.
setopt HIST_FIND_NO_DUPS         # Do not display a line previously found.
setopt HIST_IGNORE_SPACE         # Don't record an entry starting with a space.
setopt HIST_SAVE_NO_DUPS         # Don't write duplicate entries in the history file.
setopt HIST_REDUCE_BLANKS        # Remove superfluous blanks before recording entry.
setopt HIST_VERIFY               # Don't execute immediately upon history expansion.
setopt HIST_BEEP                 # Beep when accessing nonexistent history.

# apt install fzf
zinit ice depth='1' lucid wait='0' atload='_zsh_autosuggest_start'
zinit light zsh-users/zsh-autosuggestions
zinit ice depth='1' lucid wait='0'
zinit light zsh-users/zsh-syntax-highlighting
zinit ice depth='1'
zinit light zsh-users/zsh-completions
zinit ice depth='1'
zinit light romkatv/powerlevel10k
zinit ice lucid wait='0'
zinit snippet OMZ::plugins/jsontools/jsontools.plugin.zsh
zinit ice lucid wait='0'
zinit snippet OMZ::plugins/fzf/fzf.plugin.zsh
zinit ice lucid wait='0'
zinit snippet OMZ::lib/completion.zsh

autoload -U compinit && compinit

# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
if [ ${DISPLAY} ]; then
  [[ ! -f ~/.p10k.gui.zsh ]] || source ~/.p10k.gui.zsh
else
  export LANG=en_US.UTF-8
  [[ ! -f ~/.p10k.terminal.zsh ]] || source ~/.p10k.terminal.zsh
fi

alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias ll='ls -lh'
alias la='ls -A'
alias l='ls -CF'

# ===== advcpmv Step Start =====
# advcpmv Site: https://github.com/jarun/advcpmv
# ===== from source code
# wget http://ftp.gnu.org/gnu/coreutils/coreutils-9.5.tar.xz
# tar Jxvf coreutils-9.5.tar.xz
# cd coreutils-9.5/
# wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.9-9.5.patch
# patch -p1 -i advcpmv-0.9-9.5.patch
# ./configure
# make
# sudo chmod +x ./src/cp ./src/mv
# sudo chown root:root ./src/cp ./src/mv
# sudo mv ./src/cp /usr/local/bin/cpg
# sudo mv ./src/mv /usr/local/bin/mvg
# ===== advcpmv Step Finish =====
alias cp='/usr/local/bin/cpg -g'
alias mv='/usr/local/bin/mvg -g'
# ===== bat Step Start =====
# sudo apt install bat
# ===== bat Step Finish =====
alias cat='batcat --paging=never -p'

Powerlevel10k 配置

Powerlevel10k 是 zsh 的主题,在 .zshrc 中我们声明了在桌面环境和终端环境下使用不同的 p10k 配置,即桌面环境使用图标更多更友好的终端主题配置,而在终端环境下使用更保守的终端主题配置以保证兼容性,执行 p10k configure 来生成配置文件

LICENSED UNDER CC BY-NC-SA 4.0
Comment