Pantheon
Pantheon 是 elementary OS 的桌面环境。它使用 Vala 编写,基于 GTK 3 和 Granite。
开发
elementary OS 的发行版本衍生自 Ubuntu 的 LTS 版本,通常比 Ubuntu 的发布周期晚几周或几个月。然而,其组成软件包是持续更新的。请查看官方 GitHub 仓库并咨询其 社区 Slack。
安装
软件包来源
官方仓库
Pantheon 桌面环境和 elementary OS 的精选应用程序由 pantheon 组提供。
非官方仓库
extra-alucryd 包含一些尚未包含在 pantheon 组中的软件包。
AUR
许多与 Pantheon 相关的软件包(例如为 elementary OS 开发的第三方应用程序和不稳定的开发包)的 PKGBUILD 可在 AUR 中找到。
桌面环境
若要安装最小化的 Pantheon shell,请安装 pantheon-session,它会拉取多个依赖项和核心组件。
- gala:窗口管理器与合成器
- wingpanel:包含应用程序启动器、时钟和指示器的顶部面板
- pantheon-applications-menu:曾称为“Slingshot”的应用程序启动器
- plank:macOS 风格的 Dock
服务
这些可选软件包为 Pantheon 和 elementary OS 应用程序提供(后台)服务:
- pantheon-geoclue2-agent:Geoclue2 认证代理
- pantheon-polkit-agent:Polkit 认证代理
- pantheon-print:打印设置对话框
- pantheon-settings-daemon:辅助设置守护进程
主题与配置
这些可选软件包有助于提升桌面的外观和体验:
- lightdm-pantheon-greeter:LightDM 登录界面
- pantheon-default-settings:默认外观、行为和配置。
- elementary-icon-theme:elementary 原生的矢量图标主题
- elementary-wallpapers:elementary OS 壁纸合集
- gtk-theme-elementary:elementary OS 样式表
- ttf-droid:来自 Google Android 的通用字体
- ttf-opensans:来自 Google 的无衬线字体
- ttf-roboto:Google 的标志性字体系列
- sound-theme-elementary:一套系统声音
- switchboard:类似于 gnome-control-center 的插件化设置管理器
应用程序
以下是一些组成可选 elementary OS 软件套件的原创、打补丁或精选软件包:
- capnet-assist:轻松登录公共 WiFi 网络
- epiphany:网页浏览器
- pantheon-calculator:计算器
- pantheon-camera:曾称为“Snap”的摄像头应用
- pantheon-code:曾称为“Scratch”的文本编辑器
- pantheon-files:由 Marlin 开发的文件资源管理器
- pantheon-music:曾称为“Noise”的音频播放器
- pantheon-photos:由 Shotwell 开发的照片管理器
- pantheon-screencastAUR:从 Eidete 分支出来的简单屏幕录制工具
- pantheon-screenshot:截图工具
- pantheon-shortcut-overlay:全系统快捷键叠加层
- pantheon-terminal:终端模拟器
- pantheon-videos:曾称为“Audience”的视频播放器(GStreamer 后端)
- simple-scan:简易扫描工具
启动 Pantheon
通过显示管理器
pantheon-session 为诸如 LightDM 等显示管理器提供了一个 gnome-session 条目。
通过显示管理器自动启动应用程序
- 使用 XDG Autostart。
- 使用 systemd 单元。
通过 xinit
使用 xinitrc,通过将 Pantheon shell 组件追加到文件末尾来启动它们,例如:
~/.xinitrc
... io.elementary.wingpanel & plank & exec gala
通过 xinit 自动启动应用程序
- 若要仅在 X 启动时运行某个命令,请将其添加到 xinitrc 中的
exec gala行之前。 - 使用 systemd 单元。
- 通过 dapperAUR、dex-gitAUR 或 fbautostartAUR 使用 XDG Autostart。
配置与故障排除
通过 switchboard 及其需要单独安装的插件来配置 Pantheon。
除 plank 外,Pantheon 组件将其配置存储在 org.pantheon 或 io.elementary 的 dconf 键中。
常规
缺失 D-Bus 服务
为了准备向 Wayland 过渡,Pantheon 组件和 elementary OS 软件正逐渐将某些功能委托给 gala 窗口管理器。如果您在 Pantheon 组件或 elementary OS 软件中使用其他窗口管理器,可能会看到如下错误:
** (io.elementary.screenshot:10150): ERROR **: 15:17:28.099: ScreenshotBackend.vala:37: Couldn't get dbus proxy: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.Shell.Screenshot was not provided by any .service files
在这种情况下,有几种选择:
- 降级到该 dbus 请求实现之前的软件版本。
- 使用 gala 窗口管理器。
- 自行实现缺失的接口。
- 为您所需的功能寻找其他软件(例如,其他截图工具)。
安装软件包时出现“No such key”
由于 pantheon-default-settings 是为旧版 gnome-settings-daemon 编写的,因此它期望的一些 dconf 键缺失。这不是问题,但如果报错信息令人困扰,可以注释掉或从 /usr/share/glib-2.0/schemas/25_pantheon-default-settings.gschema.override 中移除指定的键。
桌面
登录时崩溃
“Oh no! Something has gone wrong.”
Pantheon 会话文件中的某个 RequiredComponents 可能失败了。
可以通过从 /usr/share/gnome-session/sessions/pantheon.session 中移除失败的组件来绕过此问题。
返回显示管理器
多显示器屏幕分辨率错误
lightdm-pantheon-greeter 尝试从 monitors.xml 设置监视器,而不是使用 Xorg 配置,这似乎并不可靠。
另一种方法是使用其他登录界面,例如 lightdm-gtk-greeter。
触摸板手势
安装 touchegg。但是,此软件包附带的一些手势可能与 Pantheon 的手势冲突。您可以将 /usr/share/touchegg/touchegg.conf 复制到 ~/.local/share/touchegg/ 并删除这些手势设置。有关更多说明,请参考 Touchegg。
更改壁纸和文本缩放
安装 switchboard-plug-desktop 并在 switchboard 中进行配置。
文件
Plank
请参阅 Plank。
启动时不运行
自 cerbere 停用后,pantheon-session 希望 plank 使用此 xdg 自动启动配置来启动并请求 gnome-session 内置的管理功能来维护它。
X-GNOME-Autostart-Phase=Panel 以避免启动时停滞。安装 pantheon-dock-gitAUR,或者手动创建 /etc/xdg/autostart/plank.desktop。
Terminal
不透明度
将 dconf 键 io.elementary.terminal.settings.background 设置为您所需的 RGBA 格式背景颜色和不透明度,例如默认值:rgba(46, 46, 46, 0.95)。
Wingpanel
指示器
Wingpanel 默认不带任何指示器,必须单独安装。
最起码,您可能需要安装:
- pantheon-applications-menu:应用程序菜单和“运行”对话框
- wingpanel-indicator-datetime:时钟和日历小部件
- wingpanel-indicator-session:用户和会话菜单(切换用户、注销、关机等)
第三方指示器
当通过显示管理器启动时,如果第三方指示器的 XDG Autostart 包含 OnlyShowIn=,请在其中追加 Pantheon;。
会话指示器菜单无响应
- 锁定菜单项需要由
org.gnome.ScreenSaverdbus 服务提供的 Lock dbus 方法。 - 关机... 和 注销... 菜单项请求的对话框需要 gala 窗口管理器才能显示。如果您打算使用其他窗口管理器,则需要替代方案,例如 wingpanel-indicator-session-gitAUR。
动态透明度
gala 窗口管理器为 Wingpanel 提供动态透明度。
使用 gtk-theme-elementary 时,当最大化的窗口占据屏幕时,面板会变为不透明,否则会与壁纸融合;使用其他 GTK 主题可能会导致面板始终不透明。
若要在其他主题中实现此行为,请将以下代码添加到其 CSS 文件或覆盖文件 ~/.config/gtk-3.0/gtk.css 中:
/*********************
* wingpanel support *
********************/
.panel {
background-color: transparent;
transition: all 1s ease-in-out;
}
.panel.maximized {
background-color: #000;
}