上一级页面:index-wsl
什么是KDE?
KDE 是一套由 Plasma 桌面环境、一系列的库、框架(KDE Frameworks)和一些应用组成的软件项目。KDE 上游有一份维护良好的 UserBase Wiki,在此可以找到大多数 KDE 应用的详细信息。
详见KDE (简体中文) - ArchWiki (archlinux.org)
安装依赖
1 2
| sudo apt update sudo apt -y upgrade
|
安装依赖
1 2
| sudo apt install xserver-xorg
|
安装 KDE
见官方的帮助wiki,如果你是kubuntu发行版,那么直接安装kubuntu-desktop,
kubuntu-desktop和kde-full等的区别,可以看这篇ubuntu20.04安装kde桌面环境 · 学校笔记 · 看云 (kancloud.cn)
参照wiki安装KDE - 社区帮助维基 (ubuntu.com)
kde-full 是 kde-standard 的超集,kubuntu-full 是 kubuntu-desktop 的超集,
但是 kubuntu-desktop 确实与 kde-standard 是分开的
kubuntu-desktop 与 kde-standard的区别是,
- kubuntu最小补全了所有办公用的包,例如多了一个libreoffice,
- kubuntu-desktop 包含一堆 ubuntu 特定的包,包括cups(打印机标准)和大量的打印机驱动以及其他硬件驱动(它们是ubuntu特有的)
- kubuntu多了一套特有的全局主题(kubuntu-theme)
那么到底应该安装哪个呢?参考隔壁血统纯正的Arch,Arch上的kde分成了plasma和kde-applications两部分,后者是给kde的死忠粉准备的,包括kde的mail,calc等等
所以事情就很明朗了,正常情况下,不需要安装kde-applications(包括kde的mail,calc等),所以选择最小化安装,安装kde-plasma-desktop
标记依赖,准备卸载gnome
你的终端显示的是en_US.UTF-8
1
| sudo apt-mark auto $(apt-cache depends kubuntu-desktop | grep -Po 'Depends:\s+\K[^ ]+$' | tr '\n' ' ')
|
你的终端显示的是zh_CN.UTF-8
1
| sudo apt-mark auto $(apt-cache depends kubuntu-desktop | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ')
|
这个命令的作用是将kubuntu-desktop包含的依赖全部标记为自动安装,这样可以用autoremove卸载
同理,标记其他的kde包
1 2 3 4
| sudo apt-mark auto $(apt-cache depends kubuntu-desktop | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends kde-full | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends kde-standard | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends kde-plasma-desktop | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ')
|
同理可以这样做,标记ubuntu-desktop的依赖为自动安装
1 2
| sudo apt-mark auto $(apt-cache depends ubuntu-desktop | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ')
|
继续处理gnome的依赖
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
| sudo apt-mark auto $(apt-cache depends gnome-core | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends desktop-base | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends network-manager-gnome | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends libproxy1-plugin-networkmanager | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends cheese | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends file-roller | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-calendar | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-clocks | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-color-manager | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-documents | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-getting-started-docs | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-maps | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-music | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends shotwell | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-photos | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-screenshot | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-todo | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-weather | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends orca | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends rygel-playbin | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends rygel-tracker | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends simple-scan | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends vino | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends avahi-daemon | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends evolution | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-sound-recorder | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-tweaks | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends libreoffice-gnome | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends libreoffice-writer | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends libreoffice-calc | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends libreoffice-impress | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends libgsf-bin | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends nautilus-sendto | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends rhythmbox | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends seahorse | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends vinagre | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends xdg-user-dirs-gtk | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends cups-pk-helper | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends evolution-plugins | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gedit-plugins | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gstreamer1.0-libav | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gstreamer1.0-plugins-ugly | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends rhythmbox-plugins | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends rhythmbox-plugin-cdrecorder | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends totem-plugins | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends nautilus-extension-brasero | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends gnome-games | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ') sudo apt-mark auto $(apt-cache depends transmission-gtk | grep -Po '依赖:\s+\K[^ ]+$' | tr '\n' ' ')
|
在依赖管理上,若非必要,请勿卸载。替代方案是,尽量标记为自动安装
安装kde
添加源
1 2
| sudo add-apt-repository ppa:kubuntu-ppa/backports sudo apt-get update
|
安装kde-plasma-desktop
1 2
| sudo apt-get install kde-plasma-desktop
|
Windows端启动 X Server,见:wsl2配置使用gui
安装过程中,可能会弹出窗口,要求配置显示管理器。选择“SDDM”选项。按下“Enter”键
如果选错了,可以输入下列命令重新进入选择界面:
切换显示管理器:
1
| sudo dpkg-reconfigure <Default_Display_Manager>
|
例如:
1 2 3 4 5
| sudo dpkg-reconfigure gdm3 或 sudo dpkg-reconfigure lightdm 或 sudo dpkg-reconfigure sddm
|
选择你的显示器管理器。选择“sddm”选项。按下“Enter”键
更换之后更新依赖
1 2
| sudo apt update sudo apt upgrade
|
处理依赖(自动卸载)
此时更新依赖会提示你有大量的包可以自动卸载
1 2
| sudo apt update sudo apt upgrade
|
首先标记其中需要的包,例如
- firefox需要保留,gwenview(图片查看器)需要保留
- p7zip压缩软件,ark压缩文件管理器
- konsole 终端模拟器和 dolphin 文件管理器
- discover软件中心(packagekit、appstream )
- ntfs-3g ,使系统可以识别 NTFS 格式的硬盘
- discover支持snap,plasma-discover-snap-backend
- Sweeper 可以清理系统中的用户使用记录,例如 Cookies 缓存等。
1 2 3 4 5 6 7 8 9 10 11 12
| sudo apt install firefox sudo apt install gwenview sudo apt install ark sudo apt install ntfs-3g sudo apt install dolphin sudo apt install sweeper #====== sudo apt install p7zip sudo apt install konsole sudo apt install packagekit appstream sudo apt install plasma-discover-snap-backend
|
再更新一次依赖,确定其他的包都不需要了
1 2
| sudo apt update sudo apt upgrade
|
剩余的包可以进行卸载
卸载一些包
kde自带了一些小游戏和其他的一些包,可以按需卸载
1 2 3 4 5 6
| # 小游戏 sudo apt-mark auto kmines kpat ksudoku kmahjongg # wacom数位板扫描工具 sudo apt-mark auto kde-config-tablet # elisa音乐播放器 sudo apt-mark auto elisa
|
修改默认运行级别为图形方式
查看开机默认运行级别:
修改默认运行级别为图形方式:
1
| systemctl set-default graphical.target
|
- 注:如果不想用桌面了,记得卸载后切换会多用户方式
1
| systemctl set-default multi-user.target
|
配置Dbus
1
| sudo dpkg-reconfigure dbus
|
设置自动登录
SDDM 通过它的配置文件来支持自动登录,例如:
1
| sudo mkdir /etc/sddm.conf.d/
|
1 2 3 4 5
| # /etc/sddm.conf.d/autologin.conf
[Autologin] User=john Session=plasma.desktop
|
此配置使得在系统启动后自动以用户 john
开启一个 KDE Plasma 会话。X 的会话类型位于 /usr/share/xsessions/
, wayland 的会话类型位于 /usr/share/wayland-sessions/
。
目前尚不支持自动登录 KDE Plasma 的同时锁定会话
你可以添加一个脚本,在 KDE 自动启动时激活屏幕保护程序以作为一个解决方案:
1 2
| #!/bin/sh /usr/bin/dbus-send --session --type=method_call --dest=org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock &
|
X-window 配置文件
详见:xprofile (简体中文) - ArchWiki (archlinux.org)
非常感谢原作者
Xsession
~/.xsession
~/.xsessionrc
1 2 3 4
| GDM - /etc/gdm/Xsession LightDM - /etc/lightdm/Xsession LXDM - /etc/lxdm/Xsession SDDM - /usr/share/sddm/scripts/Xsession
|
- 有一些登录管理器像XDM就默认不使用Xsession而是使用
~/.xsession
来进行登入的设置, 具体可以看这里
~/.xsessionrc
只有debian分支才会使用的一个配置文件而且好像还要使用debian默认的登入管理器才会用到, 具体可以看看debian官方说明和论坛介绍
有时候会用到Xsession,先记录下来。
启动 KDE
因为我们是在WSL2中运行,ssdm配置systemd后可以正常运行在后台,但是开机并不能正常弹出登录窗口。
我们改用使用控制台登录的方式,并且打一些补丁,步骤参考:KDE (简体中文) - ArchWiki (archlinux.org)
首先测试一下能否正常的运行kde,终端中运行命令:
1 2
| export DESKTOP_SESSION=plasma exec startplasma-x11
|
补丁修复,使得开机正常运行KDE
找到当前用户的配置文件,将下列命令写在配置文件中
1
| export DESKTOP_SESSION=plasma
|
找到当前用户的配置文件,在启动脚本处编写下列的脚本
1 2
| # start plasma on x11 sh $OH_MY_CONF/start-kde
|
新增一个脚本$OH_MY_CONF/start-kde
,这里的$OH_MY_CONF
是用户自己定义的
1 2
| # OH_MY_CONF,为了设置兼容 export OH_MY_CONF=$ZDOTDIR
|
1
| sudo vim $OH_MY_CONF/start-kde
|
1 2 3 4 5 6 7 8 9 10 11
| #!/bin/bash
pid_cnts=$(ps -ef | grep plasma | grep -v grep | awk '{print $2}' | wc -l)
if [ $pid_cnts -eq 0 ];then exec startplasma-x11 else # echo "count = $pid_cnts." echo "kde(plasma) is running." fi
|
此脚本的作用是让开机能够自动启动KDE
补丁修复,使得KDE的关机功能正常使用
参考KDE (简体中文) - ArchWiki (archlinux.org)
创建目录
1 2
| sudo mkdir ~/.config/plasma-workspace sudo mkdir ~/.config/plasma-workspace/shutdown
|
新增一个脚本在~/.config/plasma-workspace/shutdown
文件夹中
1
| sudo vim ~/.config/plasma-workspace/shutdown/shutdown-plasma-kde
|
1 2 3 4
| #!/bin/bash
# 手动关机 sudo shutdown -h now
|
解决一些问题
参考Linux系统的抢救和维护(桌面篇) | 止息的博客 (zhangjk98.xyz)
禁用KDE自带的文件搜索baloo
禁用桌面混成器
混成器(compositer)有OpenGL2、OpenGL3.1、xrender三个选项,混成器和显卡驱动设置不当经常会出一些小问题,比如Kwin屏幕撕裂、黑屏、卡死。如果你的鼠标卡住动不了了,可以在重启plasma之前禁用混成试试(默认的快捷键是Alt+Shift+F12)
对于混成器感兴趣可以看看fc老师的这篇博客:桌面系统的混成器简史,不过现在2021年了,wayland还是不建议日用
禁用自动启动上次会话
在kde的系统设置中搜索会话(开机和关机-> 桌面会话)
卸载之前的一些桌面配置工具
kde自带了实现这些功能的工具,见Uniform look for Qt and GTK applications (简体中文) - ArchWiki (archlinux.org)和GTK (简体中文) - ArchWiki (archlinux.org)
所以可以卸载下面这些工具了
1 2 3
| sudo apt remove lxappearance sudo apt remove qt5ct sudo apt remove font-manger
|
桌面美化
以后再写
如何卸载KDE
卸载KDE
1
| sudo apt remove kubuntu-desktop
|
自动卸载不必要的软件
系统清理
修复缺少的包
1
| sudo apt --fix-broken install
|
解决无法使用输入法
因为wsl2的x server在Windows端,并不在Linux端,所以有许多的配置问题,
首先需要设置DBUS_SESSION,与X server通信,以使用输入法
然后需要设置x server/x term/dpi
并且设置fcitx自启动
并且这些设置都应当所有用户有效
并且shell
和非shell
都有效
如果你使用zsh,详情见zsh的环境变量的加载-zprofile-zlogin-zshrc-zshenv
wsl2 xclient(注意 xserver在 windows端)并不只是包含 shell,它还要应用在图形界面,所以不能放在 sh rc文件里
并且可能会出现切换一个新的shell,然后运行x server,就是说它的配置不能只在login时生效一次,所以不能放在profile
所以只能放在/etc/zsh/.zshenv
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| # ===========设置x server============== # 由于wsl2的x server在Windows端, # x server并不只是包含 shell,它还要应用在图形界面,所以不能放在 sh rc文件里 # 并且可能会出现切换一个新的shell,然后运行x server,就是说它的配置不能只在login时生效一次,所以不能放在profile # 所以只能放在`/etc/zsh/.zshenv` # =================================
# 设置DBUS_SESSION,与X server通信,以使用输入法 if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then eval `dbus-launch --sh-syntax` fi
# x server/x term/dpi if [ -f $OH_MY_CONF/.Xresources ]; then xrdb -merge -I$HOME $OH_MY_CONF/.Xresources fi
# 设置fcitx自启动 fcitx-autostart &>/dev/null
|
参考、引用、致谢
(24条消息) Windows 10 WSL2 安装Linux Xfce图形界面_大鱼天的博客-CSDN博客_wsl2 xfce
https://autoize.com/xfce4-desktop-environment-and-x-server-for-ubuntu-on-wsl-2/
https://token2shell.com/howto/x410/customizing-xfce-desktop-for-ubuntu-wsl/
Xfce (简体中文) - ArchWiki (archlinux.org)
KDE (简体中文) - ArchWiki (archlinux.org)
Ubunu安装KDE桌面 - 知乎 (zhihu.com)
Linux7修改开机默认运行target级别_osalien的博客-CSDN博客_default.target