思源笔记 Linux 使用优化

环境:KDE Manjaro 思源 1.4.4

添加托盘

对源文件进行一定的修改即可。

打开 resources/app/electron/main.js 文件,搜索 系统托盘,做两个更改:
添加 'linux' === process.platform || ,以创建托盘。
在 Linux 中单击托盘无法获得预期效果,因此需要在托盘菜单中添加一个选项,用来显示窗口。

  1. if ('linux' === process.platform || 'win32' === process.platform) { //Modified
  2. // 系统托盘
  3. tray = new Tray(path.join(appDir, 'stage', 'icon.png'))
  4. tray.setToolTip('SiYuan')
  5. const trayMenuTemplate = [
  6. { //Modified
  7. label: 'Show',
  8. click: () => {
  9. if (mainWindow.isMinimized()) {
  10. mainWindow.restore()
  11. }
  12. mainWindow.show()
  13. }
  14. },
  15. {
  16. label: 'Quit',
  17. click: () => {
  18. mainWindow.webContents.send('siyuan-save-close', true)
  19. },
  20. }]

这样似乎就可以了,,,更新时覆盖 main.js 文件会失效。

配置 url scheme

思源的 siyuan:// 打不开还是比较难受的。

思源笔记 Linux 使用优化 - 图1

然而,如果你这样调用,还是能正常工作:

思源笔记 Linux 使用优化 - 图2

看起来这个能力还是保留着的,,,那注册一下应该就可以了。

打开 $HOME/.local/share/applications/ 文件夹,找到思源对应的 Desktop 文件,在末尾添加:

  1. MimeType=x-scheme-handler/siyuan;

将 EXEC 项修改:

  1. Exec=/home/clouder/Applications/OriginSiyuan/siyuan %u

执行:

  1. sudo update-desktop-database
  2. xdg-mime default Siyuan.desktop x-scheme-handler/siyuan
  3. xdg-settings set default-url-scheme-handler siyuan Siyuan.desktop

可以参考 ArchWiki.

然后回到 main.js 文件,查找 mainWindow.webContents.on('did-finish-load', () => {,修改:

  1. mainWindow.webContents.on('did-finish-load', () => {
  2. if ('linux' === process.platform || 'win32' === process.platform) { //Modified
  3. siyuanOpenURL = process.argv.find((arg) => arg.startsWith('siyuan://'))
  4. }
  5. if (siyuanOpenURL) {
  6. setTimeout(() => { // 等待界面js执行完毕
  7. writeLog(siyuanOpenURL)
  8. mainWindow.webContents.send('siyuan-openurl', siyuanOpenURL)
  9. siyuanOpenURL = null
  10. }, 2000)
  11. }
  12. })

这样首次打开也能成功跳转了。

使用系统标题栏

主要是整个系统风格统一……

由于思源标题栏上其实有一些内容,最理想的是只显示几个点,但似乎不太可行。特别是我设置中左边那个点没地方放,,,
那只能加一栏了,像这样:

思源笔记 Linux 使用优化 - 图3

需要隐藏思源自带的控制按钮和边框。

打开 resources/stage/build/app 中的 main.js

思源笔记 Linux 使用优化 - 图4

大概有这么一段,直接大力出奇迹因为某种原因失败了。

思源笔记 Linux 使用优化 - 图5

温和路线,,,

然后就是去除边框了,同目录下找到 base.css

思源笔记 Linux 使用优化 - 图6

body.body--win32 中的 border 从 1px 改成 0px 即可。

然后为标题栏寻找一个好看的配色以搭配你使用的主题,避免和思源部分割裂感太强,,,
可以设置 Application Setting 只对思源笔记生效。

思源笔记 Linux 使用优化 - 图7

最终效果:(notion-dark theme + RoundedDark Titlebar)

思源笔记 Linux 使用优化 - 图8

更好的方法

事实上直接对源码做修改,一旦更新就会全部被覆盖。

持久的去边框方法是写在主题 css 中:

  1. body.body--win32 {
  2. border: 0px
  3. }

删除图标还可以直接去 icon.js 中删掉 iconMin iconMax iconRestore
如果不想对图标文件进行这样的破坏,,那可以加一行 js:

  1. document.getElementById("windowControls").style = "display: none"

但更新图标都会导致覆盖。

最后

希望 D 大添加一下 Linux 托盘的支持,,,

终于可以把 Linux 下使用 Nativefier 打包思源笔记 的方法扔掉了。