桌面环境与输入法合集

KDE 与 RHEL 系桌面的安装、输入法配置,以及几个高频小故障(Dolphin 提权、KDE Connect 失联)。

在RedHat/Fedora KDE桌面使用fcitx5/ibus输入法

安装 Fcitx5

1
sudo dnf install fcitx5-gtk2 fcitx5-gtk3 fcitx5-gtk4 fcitx5-gtk fcitx5-data fcitx5 fcitx5-qt-libfcitx5qtdbus fcitx5-qt-module fcitx5-lua fcitx5-qt-libfcitx5qt5widgets fcitx5-chinese-addons fcitx5-chinese-addons-data fcitx5-qt kcm-fcitx5 fcitx5-rime

安装 ibus

1
sudo dnf install ibus ibus-libpinyin ibus-gtk2 ibus-gtk3 ibus-gtk4 ibus-qt

配置文件

编辑 /etc/environment:

1
sudo vim /etc/environment

输入以下内容并保存,注销重新登陆即可使用,右击任务栏图标即可配置。

Fcitx5 配置

1
2
3
4
INPUT_METHOD=fcitx5
GTK_IM_MODULE=fcitx5
QT_IM_MODULE=fcitx5
XMODIFIERS=@im=fcitx5

iBus 配置

1
2
3
4
INPUT_METHOD=ibus
GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus

在基于RHEL的系统上安装KDE Plasma桌面环境

这大概也适用于Rocky/Alma和CentOS(Stream)。

我需要为某个项目创建一个AlmaLinux 9.1(注:译者在RHEL9.1测试通过)工作站。

我唯一的抱怨是,我不是GNOME桌面的忠实粉丝。 除了“标准”桌面或GNOME桌面之外,如果有另一种选择就好了。
我最近不得不为一个项目创建一个AlmaLinux 9.1工作站。我唯一的抱怨是,我不是Gnome桌面的忠实粉丝。 除了“标准”桌面或Gnome桌面之外,如果有另一种选择就好了。

这就是如何在基于RHEL9的系统上安装KDE Plasma的方法。
这就是如何在基于RHEL9的系统上安装KDE Plasma。

首先,参考此处安装EPEL镜像。

安装 KDE:安装KDE

sudo dnf -y groupinstall "KDE Plasma Workspaces" "base-x"

KDE可选组件:

1
2
3
4
5
6
sudo dnf groupinstall kde-apps
sudo dnf groupinstall kde-media
sudo dnf groupinstall kde-education
sudo dnf install okular
sudo dnf groupinstall kde-software-development
sudo dnf groupinstall kf5-software-development

(注:若有依赖关系破损可通过 –skip-broken参数跳过,使用中暂未见异常)

(可选) 使用sddm作为登录管理器:

1
2
3
sudo systemctl set-default graphical.target
sudo dnf install sddm\*
sudo systemctl enable sddm -f

(可选) 通过Flatpak安装Apps:

1
2
3
4
sudo dnf -y install flatpak
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install flathub org.kde.kdenlive
sudo flatpak install flathub org.kde.krita

(可选)禁用GNOME的gdm:设置sddm替换gdm登录屏幕

1
2
sudo systemctl disable gdm
sudo systemctl enable gdm

注销,在登录界面选择Plasma会话登录即可。

在登录屏幕上从小“设置”图标中选择您的桌面环境然后重启到等离子桌面。

(可选)卸载GNOME桌面删除GNOME桌面

sudo dnf autoremove @gnome-desktop gdm

来源:

https://www.linux.org/threads/installing-kde-plasma-on-almalinux-9-1.42978/

https://fedoraproject.org/wiki/SIGs/KDE/EPEL

KDE Dolphin文件管理器以root访问

把下列代码保存为 open_as_root.desktop,放置于 ~/.local/share/kservices5/ServiceMenus/ 目录(无此目录请手动创建):

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
[Desktop Entry]
Type=Service
Icon=system-file-manager
Actions=OpenAsRootKDE5
ServiceTypes=KonqPopupMenu/Plugin,inode/directory,inode/directory-locked

[Desktop Action OpenAsRootKDE5]
Exec=/usr/bin/pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true dolphin
Icon=system-file-manager-root
Icon=system-file-manager
Name=Open as Root
Name[ru]=Открыть папку с правами рут
Name[ua]=Відкрити папку з правами рут
Name[zh_CN]=打开具有根权限的文件夹
Name[zh_TW]=打開具有根許可權的資料夾
Name[de]=Öffnen des Ordners mit Root-Berechtigungen
Name[ja]=ルート権限を持つフォルダを開く
Name[ko]=루트 권한이 있는 폴더 열기
Name[fr]=Ouvrez le dossier avec les privilèges root
Name[el]=Ανοίξτε ως Root
Name[es]=Abrir la carpeta con privilegios de root
Name[tr]=Kök ayrıcalıkları olan klasörü açma
Name[he]=פתח תיקיה עם הרשאות שורש
Name[it]=Aprire la cartella con privilegi radice
Name[ar]=فتح المجلد بامتيازات الجذر
Name[pt_BR]=Abrir pasta com privilégios de root
Name[pt_PT]=Abrir pasta com privilégios de root
Name[sv]=Öppna mapp med root-behörigheter
Name[nb]=Åpne mappen med rotprivilegier

KDE Connect 故障修复

故障处理

我有两个设备运行 KDE Connect 但他们不能发现对方

KDE Connect 在 1714-1764 内的动态端口使用 UDP 和 TCP 协议。因此,如果你在防火墙后面,确保为 TCP 和 UDP 打开这个端口范围。否则,请确保你的网络没有阻挡 UDP 广播数据包。

检查进程是否在网络上监听:

1
sudo netstat -tunelp | grep -i kdeconnect

端口是否开放/阻止?

1
netcat -z -v <your-phones-ip> 1714-1764

示例输出:

1
Connection to <your-phones-ip> 1716 port [tcp/*] succeeded!

你也会看到很多 Connection refused,但只需要 1 个 “succeeded”。

如果网络连接不是问题,你可以尝试从干净的配置重新开始:

1
2
killall kdeconnectd
mv ~/.config/kdeconnect ~/.config/kdeconnect.bak

ufw 防火墙

如果你使用 ufw 防火墙,你可以通过如下指令打开必要的端口:

1
2
3
sudo ufw allow 1714:1764/udp
sudo ufw allow 1714:1764/tcp
sudo ufw reload

firewalld 防火墙

如果你使用 firewalld 防火墙,你可以通过如下指令打开必要的端口:

1
2
3
sudo firewall-cmd --zone=public --permanent --add-port=1714-1764/tcp
sudo firewall-cmd --zone=public --permanent --add-port=1714-1764/udp
sudo systemctl restart firewalld.service

防火墙配置 (firewall-config)

打开防火墙配置(firewall-config)。在 分区(Zones) ➔ 服务(Services),选中 kde-connect 服务。

确保你在顶部的下拉菜单中选中了”持久的” 配置: 选项,否则重启后会丢弃你的更改。

iptables

如果你使用 iptables 防火墙,你可以通过如下指令打开必要的端口:

1
2
3
4
sudo iptables -I INPUT -i <yourinterface> -p udp --dport 1714:1764 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -I INPUT -i <yourinterface> -p tcp --dport 1714:1764 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -o <yourinterface> -p udp --sport 1714:1764 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -o <yourinterface> -p tcp --sport 1714:1764 -m state --state NEW,ESTABLISHED -j ACCEPT

当与另一个设备配对时 KDE Connect 崩溃或重启

有时,错误的配置文件可能在设备配对时导致 KDE Connect 软件崩溃,如果是这样,试试删除 ~/.config/kdeconnect 的配置文件。

KDE Connect Android app crashes

If the KDE Connect Android app crashes, you might be able to get more information about the crash by using adb logcat.

Set up ADB using the official instructions

The following command should list all information relevant to your crash. Run adb logcat *before* triggering the crash:

1
adb logcat --pid=$(adb shell pidof -s org.kde.kdeconnect_tp)

没有显示服务器我能运行 KDE Connect 吗?

是的,你可以传递命令行参数 -platform offscreen 到守护进程(例如:killall -9 kdeconnectd; /usr/lib/libexec/kdeconnectd -platform offscreen)。

GSConnect

GSConnect 是一个独立的项目,它将 KDE Connect 协议引入 GNOME 实现,并使用相同的 Android 应用。如果你正在运行 GSConnect,请先访问该项目 GitHub 页面 以获得支持。如果你和 GSConnect 团队确定问题出在安卓应用或协议上,请随时在 KDE Connect 错误跟踪器中报告这些问题。

KDE 默认应用的 MIME 优先级:按文件名类别排序

.md 双击打开方式在 mdoxide / zedg / kwrite 之间反复横跳,最后挖出 KDE/KIO 的真实查找规则——它不是 XDG 规范的「目录优先级交错」。

  • 现象:系统设置里把 .md 默认程序改成 zedg,改完立刻变回 mdoxide;删掉 ~/.config/kde-mimeapps.list 后又变成 kwrite;
  • 真实规则:所有 <desktop>-mimeapps.list(无论在 ~/.config 还是 /usr/share)整体排在所有 mimeapps.list 之前。系统级 /usr/share/applications/kde-mimeapps.list(plasma-workspace 自带)写着 text/markdown=org.kde.kate.desktop;org.kde.kwrite.desktop,kate 未安装 → kwrite 接手;用户 mimeapps.list 优先级更低,怎么写都赢不过;
  • 决定性实验:把 ~/.config/kde-mimeapps.list 写成空的 [Default Applications] 段,此时 mimeapps.list 里明明有 text/markdown=dev.mdoxide.app.desktop,kde-open 实测仍起 kwrite——证明不是「同名 key 谁优先」的合并关系,而是文件名类别决定整条查找路径;
  • 修法:删除 ~/.config/kde-mimeapps.list,在 ~/.config/mimeapps.list 末尾追加 [Removed Associations] 段与 text/markdown=org.kde.kate.desktop;org.kde.kwrite.desktop;,再 kbuildsycoca6 重建缓存;
  • 顺序不能反:先删补丁文件会立刻回退到系统默认的 kwrite,必须先加 [Removed Associations] 再删;
  • 软链合并不成立:kde-mimeapps.list -> mimeapps.list 写入正常、内容同步,但 KDE 按规范化路径去重、软链被视为同一文件,打开仍走 kwrite;
  • text/x-markdown 只是别名:.md 的真实类型是 text/markdown,两套 key 各写各的默认值,两条都要处理;
  • 别信 xdg-mime query default:它只读配置字面值,不校验应用是否声明支持该 MIME,也不反映 KIO 的真实优先级。判断实际行为要用 kde-open <file> + ps -eo comm;
  • kreadconfig6 只读 mimeapps.list:显示 zedg 已生效,与真实行为不符;strings 读 ksycoca 索引要用 strings -el(内部是 UTF-16)。