在 Distrobox 容器中安装 Mailspring——Linux 上最佳免费邮件应用!
Source: Dev.to
Mailspring – Linux 上一款出色的免费开源邮件客户端
根据我的使用经验,它实际上是 Linux 上最好的免费、开源且被低估的邮件应用。查看其 GitHub 仓库。
- 界面锐利且现代。
- 内置了优秀的邮件语言翻译器。
- 能够遵循系统的浅色/深色主题(通过插件系统实现)。
- 多个邮件提供商开箱即用,并支持单点登录。
- 可以使用
--background选项在后台运行。 - 提供 Pro 订阅以获取更多功能——详见 此处!
但如果你只用一个邮箱,邮件客户端可能并不重要 😂
为什么不选 Geary?
Geary 是许多人的首选邮件客户端。配合 adw‑gtk3 主题和 Legacy (GTK3) Theme Scheme Auto Switcher GNOME 扩展,它能很好地融入 GNOME 以及其他 Adwaita 应用,并且还能与 GNOME 在线账户集成。
不幸的是,它的 Flatpak 版本存在一个 不可调试 的崩溃问题(Geary issue #1679),导致我无法使用。由于我使用的是 Fedora Silverblue,我不想在容器中额外叠加类似邮件客户端的东西,也无法让它在容器内遵循系统的浅色/深色主题。因此,我卸载了 Geary,从此不再回头。
为什么不选 Evolution?
我不想使用界面仍停留在 1990 年代的邮件客户端。
为什么不选 Thunderbird?
我希望我的邮件客户端只专注于邮件本身,而不是同时兼具日历等其他功能。
目录
- 安装 Distrobox 和 Podman
- 配置 Distrobox 使用 Podman
- 创建容器
- 启用 x86‑64‑v3 包
- 安装所需软件包
- 可选:在主机上为字体和 Fontconfig 目录创建符号链接
- 安装 Mailspring
- 将 Mailspring 导出到主机
- 让 Mailspring 跟随系统的浅色/深色主题
- 让 Mailspring 在启动时及关闭后在后台运行
- 自动更新容器——零维护!
安装 Distrobox 和 Podman
命令会根据你的包管理器而有所不同。以下是基于 Arch 的发行版的示例:
sudo pacman -S distrobox podman
在 Fedora Silverblue 上,Podman 默认已安装;你只需为 Distrobox 添加层:
sudo rpm-ostree install distrobox
注意: 安装完层叠包后请重启。
配置 Distrobox 使用 Podman
echo 'container_manager="podman"' > ~/.config/distrobox/distrobox.conf
创建容器
我使用 openSUSE 容器镜像,因为:
- 它提供 x86‑64‑v3 软件包。
- 它采用滚动发布模式,这样我就不必手动升级容器。
distrobox-create \
-i registry.opensuse.org/opensuse/distrobox:latest \
-n email-dbx \
-H ~/distrobox/email-dbx \
--volume /run/dbus/system_bus_socket:/run/dbus/system_bus_socket
如果你有 NVIDIA GPU,请添加 --nvidia。更多信息请参见 此处。
启用 x86‑64‑v3 包
进入容器并首先更新所有软件包:
sudo zypper dup
然后启用 x86‑64‑v3 包:
sudo zypper install patterns-glibc-hwcaps-x86_64_v3
安装所需软件包
sudo zypper install \
zenity \
mozilla-nspr \
mozilla-nss \
libcanberra-gtk3-module \
libwebkitgtk-6_0-4
可选:在主机上为字体和 Fontconfig 目录创建符号链接
这对需要为特定语言更改字体的多语言用户非常有用。
在容器内部创建所需目录
mkdir -p ~/.local/share
mkdir -p ~/.config/fontconfig
与主机建立符号链接
ln -s /var/home/archerallstars/.local/share/fonts ~/.local/share/
ln -s /var/home/archerallstars/.config/fontconfig/conf.d ~/.config/fontconfig/
将
/var/home/archerallstars替换为您实际的主目录路径。
安装 Mailspring
- 前往 官方下载页面 并下载
.rpm包。 - 在容器中,安装下载的文件:
sudo zypper install ./mailspring-1.16.0-0.1.x86_64.rpm
当提示软件包签名时,直接忽略(按 i)。
导出 Mailspring 到宿主机
distrobox-export -a mailspring
现在您应该能在宿主机的应用抽屉中看到 Mailspring 的图标。使用 exit 退出容器。
让 Mailspring 跟随系统的浅色/深色主题
感谢 Andrew Minion 以及他的 Mailspring Automatic Light‑Dark Mode 脚本。
安装插件
-
克隆仓库(或下载 zip)。
git clone https://github.com/andrewminion/mailspring-automatic-light-dark-mode.git -
将整个目录复制到容器的 Mailspring 插件文件夹中:
cp -r mailspring-automatic-light-dark-mode ~/distrobox/email-dbx/.config/Mailspring/packages/ -
在 Mailspring 中,打开 Developer → Install a Plugin… 并选择已复制的目录。
插件安装后立即生效——无需重启。当你切换系统的浅色/深色模式时,它会自动切换 Mailspring 的主题。
隐藏古老的菜单栏(可选)
安装插件后,你可以隐藏旧的菜单栏。使用 Alt 键切换菜单栏的显示。

让 Mailspring 在启动时后台运行并在关闭时保持运行
方法 1 – 桌面条目(简单)
创建一个桌面条目,以 --background 标志启动 Mailspring,并将其放置在 ~/.config/autostart/ 中:
[Desktop Entry]
Name=Mailspring (Background)
Exec=mailspring --background
Type=Application
X-GNOME-Autostart-enabled=true
方法 2 – systemd 用户服务(稳健)
-
创建服务文件
nano ~/.config/systemd/user/mailspring.service[Unit] Description=Mailspring RequiresMountsFor=/run/user/1000/containers [Service] Type=exec ExecStart=/usr/bin/distrobox-enter -n email-dbx -- mailspring --background Restart=always RestartSec=15 TimeoutStopSec=30 -
创建计时器以在登录后启动服务
nano ~/.config/systemd/user/mailspring.timer[Unit] Description=Start Mailspring service with some delay. [Timer] OnStartupSec=40 RandomizedDelaySec=10 Persistent=true [Install] WantedBy=timers.target -
启用计时器
systemctl --user daemon-reload && systemctl --user enable mailspring.timer
自动更新容器 – 零维护!
简单单行命令(快速解决方案)
distrobox-enter -n email-dbx -- sudo zypper dup -y
您可以在主机上使用 systemd 定时器或 cron 任务来调度上述命令。
完整的 systemd 服务与定时器(为所有容器自动升级)
-
服务文件
nano ~/.config/systemd/user/dbx-upgrade.service[Unit] Description=Upgrade all Distrobox containers RequiresMountsFor=/run/user/1000/containers StartLimitBurst=3 StartLimitIntervalSec=600 [Service] Type=exec ExecStart=sh -c "distrobox-upgrade --all" Restart=on-failure RestartSec=60 -
定时器文件
nano ~/.config/systemd/user/dbx-upgrade.timer[Unit] Description=Start Distrobox containers upgrade service with some delay. [Timer] OnStartupSec=45 RandomizedDelaySec=15 Persistent=true [Install] WantedBy=timers.target -
启用定时器
systemctl --user daemon-reload && systemctl --user enable dbx-upgrade.timer
此设置将在系统上自动升级 所有 无根 Distrobox 容器,无需人工干预。
致谢
封面照片 由 Utsav Srestha 在 Unsplash 上提供。