思源笔记 Linux 使用优化

本贴最后更新于 1126 天前,其中的信息可能已经时移世改

环境:KDE Manjaro 思源 1.4.4

添加托盘

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

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

  if ('linux' === process.platform || 'win32' === process.platform) { //Modified
    // 系统托盘
    tray = new Tray(path.join(appDir, 'stage', 'icon.png'))
    tray.setToolTip('SiYuan')
    const trayMenuTemplate = [
      { //Modified
        label: 'Show',
        click: () => {
            if (mainWindow.isMinimized()) {
                mainWindow.restore()
            }
            mainWindow.show()
        }
      },
      {
        label: 'Quit',
        click: () => {
          mainWindow.webContents.send('siyuan-save-close', true)
        },
      }]

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

配置 url scheme

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

2021-10-22_18-55.png

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

2021-10-22_18-57.png

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

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

MimeType=x-scheme-handler/siyuan;

将 EXEC 项修改:

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

执行:

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

可以参考 ArchWiki.

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

  mainWindow.webContents.on('did-finish-load', () => {
    if ('linux' === process.platform || 'win32' === process.platform) { //Modified
      siyuanOpenURL = process.argv.find((arg) => arg.startsWith('siyuan://'))
    }
    if (siyuanOpenURL) {
      setTimeout(() => { // 等待界面js执行完毕
        writeLog(siyuanOpenURL)
        mainWindow.webContents.send('siyuan-openurl', siyuanOpenURL)
        siyuanOpenURL = null
      }, 2000)
    }
  })

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

使用系统标题栏

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

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

2021-10-22_19-38.png

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

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

2021-10-22_19-54.png

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

2021-10-22_20-10.png

温和路线,,,

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

2021-10-22_20-19.png

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

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

2021-10-22_20-21.png

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

2021-10-22_20-22.png

更好的方法

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

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

body.body--win32 {
  border: 0px
}

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

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

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

最后

希望添加一下 Linux 托盘的支持。

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

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22351 引用 • 89431 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...