开发者的 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 其他优化配置 正确配置字体

配置输入法

标准配置可以参照 Using Fcitx 5 on Wayland

如果希望能够在任何窗口直接使用 fcitx 而不关心显示效果,可以不修改 im-config 配置,并向 /etc/environment 写入如下内容

INPUT_METHOD=fcitx5
XMODIFIERS=@im=fcitx
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx

重启

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 - 强烈颜色: #8ea3c8
              • 背景色透明度: 10%
          • 光标
            • 形状: 下划线
        • 滚动
          • 回滚历史: 无限制
    • 显示工具栏
      • 关闭 主工具栏
      • 关闭 会话工具栏

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