
由于 Tutanota 关注开源和 Linux 客户端开发,因此我们希望为 Linux 和其他平台发布一个桌面应用程序。作为一个小团队,我们很快就排除了为 Linux、Windows 和 MacOS 构建原生应用程序的可能性,并决定使用 Electron 来构建我们的应用程序。
对于任何想要快速交付视觉一致的跨平台应用程序的人来说,Electron 是最适合的选择,尤其是如果你已经有一个 Web 应用程序,想要从浏览器 API 的束缚中摆脱出来时。Tutanota 就是这样一个案例。
Tutanota 基于 SystemJS 和 Mithril ,旨在为每个人提供简单、安全的电子邮件通信。 因此,它必须提供很多用户期望从电子邮件客户端获得的标准功能。
由于采用了现代 API 和标准,其中一些功能(如基本的推送通知、搜索文本和联系人以及支持双因素身份验证)很容易在浏览器中提供。其它功能(例如自动备份或无需我们的服务器中转的 IMAP 支持)需要对系统资源的限制性访问,而这正是 Electron 框架提供的功能。
虽然有人批评 Electron “只是一个基本的包装”,但它有明显的好处:
Tutanota 不依靠于大笔的投资资金,而是依靠社区驱动的项目。基于越来越多的用户升级到我们的免费服务的付费计划,我们有机地发展我们的团队。倾听用户的需求不仅对我们很重要,而且对我们的成功至关重要。
提供桌面客户端是 Tutanota 用户 最想要的功能 ,我们感到自豪的是,我们现在可以为所有用户提供免费的桌面客户端测试版。(我们还实现了另一个高度要求的功能 —— 搜索加密数据 —— 但这是另一个主题了。)
我们喜欢为用户提供签名版本的 Tutanota 并支持浏览器中无法实现的功能,例如通过后台进程推送通知。 现在,我们计划添加更多特定于桌面的功能,例如 IMAP 支持(而不依赖于我们的服务器充当代理),自动备份和离线可用性。
我们选择 Electron 是因为它的 Chromium 和 Node.js 的组合最适合我们的小型开发团队,因为它只需要对我们的 Web 应用程序进行最小的更改。在我们开始使用时,可以将浏览器 API 用于所有功能特别有用,随着我们的进展,慢慢地用更多原生版本替换这些组件。这种方法对附件下载和通知特别方便。
我们知道有些人关注 Electron 的安全问题,但我们发现 Electron 在 Web 应用程序中微调访问的选项非常令人满意。你可以使用 Electron 的 安全文档 和 Luca Carettoni 的 Electron 安全清单 等资源,来帮助防止 Web 应用程序中不受信任的内容发生灾难性事故。
Tutanota Web 客户端从一开始就构建了一个用于进程间通信的可靠协议。我们利用 Web 线程在加密和请求数据时保持用户界面(UI)响应性。当我们开始实现我们的移动应用时,这就派上用场,这些应用程序使用相同的协议在原生部分和 Web 视图之间进行通信。
这就是为什么当我们开始构建桌面客户端时,很多用于本机推送通知、打开邮箱和使用文件系统的部分等已经存在,因此只需要实现原生端(Node.js)。
另一个便利是我们的构建过程使用 Babel 转译器 ,它允许我们以现代 ES6 JavaScript 编写整个代码库,并在不同环境之间混合和匹配功能模块。这使我们能够快速调整基于 Electron 的桌面应用程序的代码。但是,我们也遇到了一些挑战。
虽然 Electron 允许我们很容易地与不同平台的桌面环境集成,但你不能低估投入的时间!最后,正是这些小事情占用了比我们预期更多的时间,但对完成桌面客户端项目也至关重要。
特定于平台的代码导致了大部分阻碍:
由于用户对不同平台上的应用程序的某些(有时不直接兼容)行为的期望,此过程有点复杂。使三个版本感觉像原生的需要一些迭代,甚至需要对 Web 应用程序进行一些适度的补充,以提供类似于浏览器中的文本搜索的功能。
我们在 Electron 方面的经验基本上是积极的,我们在不到四个月的时间内完成了该项目。尽管有一些相当耗时的功能,但我们感到惊讶的是,我们可以轻松地为 Linux 提供一个测试版的 Tutanota 桌面客户端 。如果你有兴趣,可以深入了解 GitHub 上的源代码。
via: https://opensource.com/article/19/4/linux-desktop-electron
作者: Nils Ganther 选题: lujun9972 译者: wxy 校对: wxy
以UOS和firefox为例:
1. 软件安装目录:/home/harven/Software/firefox
2. 生成桌面快捷方式。
进入/home/harven/Desktop,创建文件“firefox.desktop”,并编辑内容,具体 *** 作如下:
```javascript
touch firefox.desktop
vim firefox.desktop
```
文件具体内容如下:
```javascript
[Desktop Entry]
Name=Firefox
Comment=this is firefox
Exec=/home/harven/Software/firefox/firefox
Icon=/home/harven/Software/firefox/browser/chrome/icons/default/default128.png
Terminal=false
Type=Application
Categories=ApplicationNetwork
```
3. 生成启动菜单栏。
将第2步中编辑好的文件firefox.desktop拷贝到此目录:/usr/share/applications
1使用命令行创建桌面快捷方式要为特定程序或命令创建桌面快捷方式,你可以使用任意文本编辑器创建一个.desktop文件,然后把它放到/usr/share/applications或者~/.local/share/applications处。一个典型的.desktop文件如下所示:
[Desktop Entry]
Encoding=UTF-8
Version=1.0 #version of an app.
Name[en_US]=yEd #name of an app.
GenericName=GUI Port Scanner#longer name of an app.
Exec=java -jar /opt/yed-3.11.1/yed.jar #command used to launch an app.
Terminal=false #whether an app requires to be run in a terminal
Icon[en_US]=/opt/yed-3.11.1/icons/yicon32.png #location of icon file.
Type=Application#type
Categories=ApplicationNetworkSecurity #categories in which this app should be listed.
Comment[en_US]=yEd Graph Editor #comment which appears as a tooltip.
除了手动创建.desktop文件之外,依据你的系统所采用的桌面环境的不同有不同的创建应用快捷方式的方法
2在GNOME桌面下创建快捷方式
在GNOME桌面环境下,你可以使用gnome-desktop-item-edit轻松创建创建一个桌面快捷方式。
$ gonme-desktop-item-edit ~/.local/share/applications --create-new
在这个例子中,gnome-desktop-item-edit会在目录~/.local/share/applications中自动创建一个桌面启动器文件。若是想自定义快捷方式图标或者其它信息,你可以手动编辑.desktop文件。
如果在你的系统上,gnome-desktop-item-edit不可用(例如,在Ubuntu上),你可以依照下面方式安装:
$ sudo apt-get install --no-install-recommends gnome-panel
3在KDE桌面创建快捷方式
kickoff是KDE桌面默认的应用启动器。可以直接在kickoff里添加新的应用启动快捷方式。
首先右击位于你桌面左下角处的kickoff图标,然后选择菜单“编辑应用”。
在你要创建快捷方式的合适分类处(例如, "Utilities")右击,点击位于顶部的“新条目”按钮,键入应用的名字。
最后,填上使用快捷方式启动app时所需的元信息即可。
4在xfce桌面上创建快捷方式
假如你使用xfce桌面,在桌面空白处右击,选择“创建启动器”按钮。然后填上快捷方式的详细信息就可以了。
5在Cinnamon桌面上创建快捷方式
假如使用的是Linux Mint的Cinnamon桌面,你可以在桌面空白处右击鼠标,选择菜单“创建启动器”而创建一个应用启动器。
6在LXDE桌面上创建快捷方式
在LXDE桌面,你只需在桌面空白处右击一下鼠标,然后选择“创建新快捷方式”就可以咯。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)