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

博客地址

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

0x00 简介

本文仅适用于配置 Debian 12 Bookworm

文中包含 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 stable main contrib non-free non-free-firmware
# deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free non-free-firmwaredeb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free non-free-firmware
# deb-src http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free non-free-firmwaredeb http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free non-free-firmware
# deb-src http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free non-free-firmware# deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
# 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

其他软件源

Docker CE
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 <<-'EOF'
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] 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

配置基础软件包

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

卸载无用软件包

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

KDE

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

sudo apt remove --purge ibus* goldendict
sudo apt autoremove --purge

无线网卡驱动

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

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

Nvidia 显卡驱动

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

sudo apt install nvidia-detect
sudo nvidia-detect

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

sudo apt install nvidia-driver

tmux 快捷键

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

配置 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
sudo apt remove --purge 'firefox-esr*'

JetBrains Toolbox

用于管理 JetBrains IDE

tar zxvf jetbrains-toolbox-xxx.tar.gz
./jetbrains-toolbox-xxx/jetbrains-toolbox
Activate by code

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

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

Go & nvm & Java

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

为 java 创建 /usr/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/profileexport NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/nodeexport 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 GO111MODULE=on
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/

安装 VSCode 扩展

以下仅为推荐扩展,请根据自己的技术栈及个人喜好自行选择

  • ms-vscode.cpptools
  • ms-azuretools.vscode-docker
  • dbaeumer.vscode-eslint
  • golang.go
  • yzhang.markdown-all-in-one
  • shd101wyy.markdown-preview-enhanced
  • DavidAnson.vscode-markdownlint
  • ms-python.vscode-pylance
  • ms-python.python
  • Vue.volar

0x03 KDE 桌面优化

系统设置

  • 外观
    • 全局主题
      • 获取新的全局主题: Fluent kde theme
    • 应用程序风格
      • 配置 GNOME/GTK 应用程序风格
        • 获取新 GNOME/GTK 应用程序风格: Fluent gtk theme
        • GTK 应用程序风格:Fluent
    • Plasma 视觉风格: Fluent
    • 窗口装饰元素: Fluent
    • 图标: Fluent
    • 欢迎屏幕: Fluent
  • 工作区行为
    • 常规行为
      • 单击文件、文件夹时: 选中
    • 锁屏
      • 自动锁定屏幕: 如果空闲 30 分钟
      • 锁屏多久后需要密码解锁: 0
    • 最近文件
      • 记住打开过的文档: 不要记住
  • 窗口管理
    • 窗口行为
      • 标题栏操作
        • 标题栏和边框操作
          • 中击: 无操作 无操作
    • 任务切换器
      • 获取新任务切换器: MediumDefault
      • 主窗口
        • 可视化: MediumDefault
  • 开机与关机
    • 桌面会话
      • 会话恢复
        • 登录时启动之前打开的应用程序: 启动为空会话
  • 搜索
    • Plasma 搜索
      • 关闭 浏览器历史记录
      • 关闭 网络搜索关键词
      • 配置 KRunner
        • 关闭 在桌面按下任意按键时激活
        • 关闭 记住过去的搜索
        • 关闭 重新打开时保留上次搜索
        • 关闭 活动感知
  • 电源管理
    • 节能
      • 屏幕节能: 关闭前等待时间 30 分钟
      • 关闭 挂起会话
      • 合上笔记本盖时: 无操作

面板配置

  • 面板高度: 46
  • 图标任务管理器
    • 行为
      • 分组: 不分组
      • 显示的任务: 打开 当前屏幕的任务
  • 数字时钟
    • 外观
      • 打开 显示秒
      • 时间显示: 24 小时制

Konsole 配置

  • 设置
    • 显示工具栏
      • 关闭 主工具栏
      • 关闭 会话工具栏
    • 配置 Konsole
      • 常规
        • 关闭 记住窗口大小
      • 配置方案: 新建
        • 常规
          • Default
          • 打开 默认配置方案
          • 初始终端尺寸: 14030
        • 外观
          • 配色方案和字体
            • 获取新的: Nordic konsole
        • 滚动
          • 回滚: 无限制

0x05 其他优化配置

字体优先级

本文环境下广泛使用 Hack Nerd Font 显示图标,使用 Sarasa Term SC 作为等宽字体

创建 /etc/fonts/local.conf 配置字体优先级如下

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig><alias><family>serif</family><prefer><family>Sarasa Term SC</family><family>Hack Nerd Font</family></prefer></alias><alias><family>sans-serif</family><prefer><family>Sarasa Term SC</family><family>Hack Nerd Font</family></prefer></alias><alias><family>monospace</family><prefer><family>Sarasa Term SC</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" ]]; thensource "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi# apt install fonts-powerline
# Download https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.2/Hack.zip
# Extract the files and copy all font files to user font folder like ~/.local/share/fonts
# fc-cache -f -v### Added by Zinit's installer
if [[ ! -f $HOME/.local/share/zinit/zinit.git/zinit.zsh ]]; thenprint -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"
fisource /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 chunkHISTFILE="$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.zshautoload -U compinit && compinit# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
if [ ${DISPLAY} ]; then[[ ! -f ~/.p10k.gui.zsh ]] || source ~/.p10k.gui.zsh
elseexport LANG=en_US.UTF-8[[ ! -f ~/.p10k.terminal.zsh ]] || source ~/.p10k.terminal.zsh
fialias ls='ls --color=auto'
alias grep='grep --color=auto'
alias ll='ls -lh'
alias la='ls -A'
alias l='ls -CF'
# advcpmv Site: https://github.com/jarun/advcpmv
# ===== advcpmv Step Start =====
# ===== from source code
# wget http://ftp.gnu.org/gnu/coreutils/coreutils-9.4.tar.xz
# tar Jxvf coreutils-9.4.tar.xz
# cd coreutils-9.4/
# wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.9-9.4.patch
# patch -p1 -i advcpmv-0.9-9.4.patch
# ./configure
# make
# sudo chmod +x ./src/cp ./src/mv
# sudo chown 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 Site: https://github.com/sharkdp/bat
# ===== bat Step Start =====
# ===== from github
# Download release from https://github.com/sharkdp/bat/releases
# apt install ./bat-musl_x.xx.x_amd64.deb
# ===== bat Step Finish =====
alias cat='batcat --paging=never -p'

Powerlevel10k 配置

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/169190.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 富文本编辑器多图上传

首先我使用的富文本编辑器是vue-quill-editor 使用npm进行下载 npm install vue-quill-editor --save当然也可以按照官方的方法下载&#xff0c;到官方 因为我是在原有老项目上开发的使用的组件库是ant-design-vue 1x版&#xff0c;当然使用其他组件库也可以 然后还有重要的一…

interface previously declared 的bug问题

其实就是重复定义了&#xff0c;只需要加如下的代码即可&#xff1a; 其中把APB的部分改成自己的接口名字就好了。

JS手写instanceof(内含源码与详解)

前言 本文主要讲解JavaScript如何手写一个简易的instanceof,从而实现数据类型判断的作用.那么好,本文正式开始. instanceof作用 instanceOf的作用就是用来判断JavaScript中的数据类型是否是开发所输入的那种, 语法格式:obj instanceof objtype 左侧就是要判断的数据,而右侧就…

HCIP-九、路由控制

九、路由控制 实验拓扑实验需求及解法1.企业生产网运行 OSPF&#xff0c;完成以下需求&#xff1a;2.数据中心运行 ISIS3.路由引入4.路由策略5.策略路由6.ISP 过滤私网路由 实验拓扑 实验需求及解法 1.企业生产网运行 OSPF&#xff0c;完成以下需求&#xff1a; 1.1 OSPF 进程…

prometheus|云原生|grafana-9.4.3版本的主题更改

一&#xff0c; grafana-9.4.3版本的主题更改 grafana-9.4.3版本应该是目前比较高的版本了&#xff0c;但不知道是什么原因&#xff0c;grafana的主题界面并不多&#xff0c;只有暗色&#xff0c;亮色和系统色三种 配置管理----首选项里可以看到 亮色&#xff1a; 暗色&…

Nginx安装与配置、使用Nginx负载均衡及动静分离、后台服务部署、环境准备、系统拓扑图

目录 1. 系统拓扑图 2. 环境准备 3. 服务器安装 3.1 mysql&#xff0c;tomcat 3.2 Nginx的安装 4. 部署 4.1 后台服务部署 4.2 Nginx配置负载均衡及静态资源部署 1. 系统拓扑图 说明&#xff1a; 用户请求达到Nginx若请求资源为静态资源&#xff0c;则将请求转发至静态…

JVM 内存分析工具 MAT及实践

线程分析工具 MAT 官网下载地址&#xff1a;http://www.eclipse.org/mat/downloads.php mat百度网盘链接&#xff1a;&#xff08;速度更快&#xff09; 链接&#xff1a;https://pan.baidu.com/s/1tMp8MQIXuPtg9zBgruO0Ug?pwdjqtv 提取码&#xff1a;jqtv jdk17 百度网盘链接…

计算机体系结构概念总结

CH1 基本概念 课件补充 概念汇总 CH2 指令系统 课件补充 能够改变控制流的指令&#xff1a;分支、跳转、过程调用、过程返回 概念汇总 课后习题 CH3 流水线 课件补充 概念汇总 指令发射&#xff1a;指令从流水线的译码段进入执行段的过程称为指令发射。 向量处理机&#xf…

【深度学习】因果推断与机器学习的高级实践 | 数学建模

文章目录 因果推断因果推断的前世今生&#xff08;1&#xff09;潜在结果框架&#xff08;Potential Outcome Framework&#xff09;&#xff08;2&#xff09;结构因果模型&#xff08;Structual Causal Model&#xff0c;SCM&#xff09; 身处人工智能爆发式增长时代的机器学…

Ansible的循环:loop,with_<lookup>和until

环境 管理节点&#xff1a;Ubuntu 22.04控制节点&#xff1a;CentOS 8Ansible&#xff1a;2.15.6 循环的方法 loopwith_<lookup>until 用这几种方式都可以实现循环。其中&#xff0c; loop 是推荐的用法&#xff0c;在很多时候能够替换 with_<lookup> 。 loop…

Loadrunner安装大全

目录 一 、下载篇 二、安装篇 三、破解篇 四、Loadrunner支持哪些操作系统&#xff1f; 五、安装Loadrunner需要满足哪些系统要求&#xff1f; 六、安装Loadrunner时是否需要注意什么问题&#xff1f; 七、安装完成后如何验证Loadrunner是否正常工作&#xff1f; 八、如…

【每日一题】二叉树中的伪回文路径

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;递归&#xff08;DFS&#xff09;方法二&#xff1a;位运算 写在最后 Tag 【递归/DFS】【伪回文】【二叉树】【2023-11-25】 题目来源 1457. 二叉树中的伪回文路径 题目解读 伪回文路径指的是路径中的节点值经过重新…

基于51单片机的FM数字收音机系统电路设计

**单片机设计介绍&#xff0c;基于51单片机的FM数字收音机系统电路设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的FM数字收音机系统是一种用于接收和播放FM广播信号的设备&#xff0c;以下是一个基本的电路设…

ubuntu22.04 安装 jupyterlab

JupyterLab Install JupyterLab with pip: pip install jupyterlabNote: If you install JupyterLab with conda or mamba, we recommend using the conda-forge channel. Once installed, launch JupyterLab with: jupyter lab

Pycharm创建项目新环境,安装Pytorch

在python项目中&#xff0c;很多项目使用的各类包的版本是不一致的。所以我们可以对每个项目有专属于它的环境。所以这个文章就是教你如何创建新环境。 一、创建新环境 首先我们需要去官网下载conda。然后在Pycharm下面添加conda的可执行文件。 用conda创建新环境。 二、…

CSS新特性(2-2)

CSS新特性&#xff08;2-2&#xff09; 前言box相关box-shadow background背景rgba颜色与透明度transform:rotate(Xdeg) 2D旋转transform:tranlate 平移 前言 本文继续讲解CSS3其他的新特性&#xff0c;想看之前新特性点击这里&#xff0c;那么好本文正式开始。 box相关 box…

二十三种设计模式全面解析-揭秘访问者模式:开启对象间灵活交互之门

在软件设计中&#xff0c;我们经常会遇到需要对一组对象进行操作和处理的情况。但是&#xff0c;如果对象结构复杂且对象类型众多&#xff0c;传统的处理方式可能会导致代码的冗长和维护困难。然而&#xff0c;访问者模式&#xff08;Visitor Pattern&#xff09;以其优雅的解决…

开源与闭源

我的观点&#xff1a; 开源与闭源软件都有各自的优势和劣势&#xff0c;没有绝对的对错之分。.. 一、开源和闭源的优劣势比较 开源的好处与劣处 优势&#xff1a; 创新与合作&#xff1a;开源软件能够吸引更多的开发者参与到项目中来&#xff0c;促进创新和合作。开放的源代码…

Redis(一):初始Redis

Redis基本介绍 Redis 的全称是 Remote Dictionary Server&#xff0c;Redis是一个开放源代码、内存数据结构存储系统&#xff0c;被广泛应用于缓存、消息队列、实时统计等场景。Redis使用C编写&#xff0c;支持多种数据结构&#xff0c;例如字符串&#xff08;strings&#xf…

【ArcGIS Pro微课1000例】0036:栅格影像裁剪与提取(矢量范围裁剪dem高程数据)

本实验讲解在ArcGIS Pro中进行栅格影像裁剪与提取(矢量范围裁剪dem高程数据)的方法。DEM、DOM、DSM等栅格数据方法也可以实现。 文章目录 一、加载实验数据二、裁剪工具的使用1. 裁剪栅格2. 按掩膜提取一、加载实验数据 加载配套实验数据包中的0036.rar中的dem数据和矢量裁剪…