认识
主页:https://wiki.gnome.org/Projects/GnomeShell
文档:…
仓库:https://gitlab.gnome.org/GNOME/gnome-shell
GNOME Shell is tightly integrated with Mutter (a compositing window manager and Wayland compositor).GNOME Shell replaced GNOME Panel and some ancillary components of GNOME 2.
所以,GNOME Shell 是与用户交互的这些界面元素的总称,正如 Shell 是“壳”的意思,也就是指该桌面环境呈现给用户的元素。
组成
WIP
性质
自定义主题
入门学习,参考 How to Modify Style Properties of GNOME Shell Themes – Linux Hint 文章。
官方文档,参考 Projects/GnomeShell/Development – GNOME Wiki! 文档
以及,在文档中提到的 gnome-shell.scss 源码文件,以了解可以修改的属性:
下载第三方主题,访问 GNOME-LOOK.ORG 站点,使用 Pling-Store 安装主题(配合 ocs-url 工具)
应用
WIP
改进
High CPU from gnome-shell with high errors for recvmsg
Bug #1880405 “Unresponsive GUI and journal flooded with: JS ERRO…” : Bugs : GNOME Shell
Ubuntu 20.04 gnome-shell continual 20% CPU usage – Ask Ubuntu
/usr/bin/gnome-shell,该进程 CPU 占用 30% 上下。
通过 strace -C -p 2709 查看,显示大量的 recvmsg 错误。
根据社区讨论,可能是插件导致的。通过禁用全部插件,CPU 使用率得以下降。然后,通过摸索及逐个排查,发现是 Ubuntu Dock 插件导致的。
查看 /usr/bin/gnome-shell 日志:journalctl /usr/bin/gnome-shell
... ... Can't update stage views actor unnamed [MetaWindowActorX11] is on because it needs an allocation. ... Can't update stage views actor unnamed [MetaSurfaceActorX11] is on because it needs an allocation. ... Can't update stage views actor unnamed [MetaWindowActorX11] is on because it needs an allocation. ... Can't update stage views actor unnamed [MetaSurfaceActorX11] is on because it needs an allocation. ... Window manager warning: Overwriting existing binding of keysym 31 with keysym 31 (keycode a). ... Window manager warning: Overwriting existing binding of keysym 32 with keysym 32 (keycode b). ... Window manager warning: Overwriting existing binding of keysym 33 with keysym 33 (keycode c). ... Window manager warning: Overwriting existing binding of keysym 34 with keysym 34 (keycode d). ... Window manager warning: Overwriting existing binding of keysym 35 with keysym 35 (keycode e). ...
查看 Ubuntu Dock 日志信息:journalctl -f,其日志类似如上。
通过一番摸索,关闭 Ubuntu Dock / Launcher / Wiggle urgent applications 即可解决。
重新 Restart
How can I restart GNOME Shell, after it freezes or becomes unresponsive?
针对 Wayland 环境,现在 10/18/2025 无法重启 GNOME Shell 实例。
在正常情况下,通过 Alt + F2 ⇒ R ⇒ Enter 组合即可重启桌面环境。
但是,有时候桌面环境会卡住、无响应,不再响应任何按键,那此时应该如何重启桌面,而不是重启电脑呢?
- 首先,通过 查看路由器 或者 使用 fping 命令 等等方法获得网络地址;
- 然后,使用 SSH 登录主机。如果没有启动 SSH 服务,通过其他方法(USB、其他串口)控制主机也可以(但都需要提前配置);
- 或者,尝试 Ctrl + Alt + Fx 以进入虚拟控制台(但是在大多数情况下键盘已经无响应)
- 方法一、执行命令 killall -HUP gnome-shell 可以重启(频繁执行会导致 GNOME 禁用扩展、强制退出)
- 方法二、使用命令 killall -QUIT gnome-shell 结束进程(该方法比较稳妥,不会导致应用程序退出)
参考
GNOME Shell – Wikipedia
More GNOME Shell Customization
1.2. What Is GNOME Shell? Red Hat Enterprise Linux 7 | Red Hat Customer Portal