在Linux上设置黑曜石的URI处理功能的详细过程和具体操作

347 阅读2分钟

黑曜石有一个很酷的API,你可以构建黑曜石的URI来发布各种命令。

当黑曜石打开时,将在一个叫 "我的保险库"(如果它存在的话)的保险库中打开一个叫 "我的保险库 "的笔记。你在任何网络浏览器中输入上述URI都可以。

每个操作系统都有不同的方式来支持这种URI。在Linux中,这种机制被称为XDG

注意:你必须有一个桌面/GUI环境才能工作,没有无头服务器。

关于如何在Linux上设置Obsidian UI处理,有两种选择:你可以为某个特定的用户设置 或者为所有人设置。 选择第二个选项需要root权限。

注意:由于某些原因,单用户指南目前对Chrome浏览器不起作用。等待Unix & Linux Stack Exchange问题的答案。Custom URI handling: xdg-open and Firefox work, but Chrome doesn't 如果有人知道如何解决这个问题,希望你能在下面的评论区分享你的观点。

为单个用户设置URI处理

1.如果需要的话,安装依赖项。

$ sudo apt install xdg-utils desktop-file-utils

2.从黑曜石主页上下载最新的黑曜石[[AppImage]]文件,并把它放在你以后可以参考的地方。我们通常使用~/obsidian/ ,但也可以放在你喜欢的地方。

$ mkdir -p ~/obsidian
$ wget https://github.com/obsidianmd/obsidian-releases/releases/download/v0.12.15/Obsidian-0.12.15.AppImage-O ~/obsidian/Obsidian.AppImage

3.可选的:下载一个图片文件作为图标。

wget https://forum.obsidian.md/uploads/default/optimized/2X/6/6df43bc4ee96f0a1b67ff3600caf6879b758a743_2_500x500.png -O ~/obsidian/icon.png

4.给予AppImage 的执行权限。

$ chmod +x ~/obsidian/Obsidian.AppImage

5.运行AppImage 文件。

$ ~/obsidian/Obsidian.AppImage

黑曜石的GUI应该会被打开。确保你已经有了一个保险库或者创建了一个新的保险库。我假设下面的保险库名称是notes ,相应地改成你使用的任何保险库名称。

6.确保目前没有任何东西试图打开obsidian:// URIs。

$ xdg-open "obsidian://new?vault=notes&name=note&content=content"
gio: obsidian://new?vault=notes&name=note&content=content: The specified location is not supported

这就是我们在完成后检查一切工作的方法(引号的存在是为了让shell不解析& 这个字符)。 7.现在我们要为我们的AppImage 文件创建一个.desktop 文件。我们将把它放在~/.local/share/applications/ 。首先,确保该目录存在。

$ mkdir -p ~/.local/share/applications/

8.现在让我们来写我们的文件。在上述目录中创建一个名为obsidian.desktop 的新文件,内容如下。

[Desktop Entry]
Name=Obsidian
Exec=/home/rachum/obsidian/Obsidian.AppImage %u
Terminal=false
Type=Application
Icon=/home/rachum/obsidian/icon.png
StartupWMClass=obsidian
X-AppImage-Version=0.8.15
Comment=Obsidian
Categories=Office;
MimeType=text/html;
x-scheme-handler/obsidian;

关于.desktop 文件的一些注意事项。

  • 不要省略Exec 行中的%u,它可以确保在调用AppImage 文件时,URI被传递给它。
  • 使用完整的路径,不使用tilde (~) 符号。我的用户名是rachum ,所以我使用/home/rachum ,你则用你的用户名代替。
  • 如果你还没有下载黑曜石图标,请从文件中删除Icon= 行,它将使桌面文件失效。
  • MimeType= 这一行是最神奇的地方。它注册了Obsidian来处理obsidian:// URIs。
  • 任何一行都不应该有尾部的空白。特别是,Icon= 行中的尾部空白会导致图标无法显示。

9.运行下面的程序来读取我们新创建的obsidian.desktop 文件(如果因某种原因而中断,你可以尝试调试这个过程,你也可以添加-v 来获得更详细的输出)。

update-desktop-database ~/.local/share/applications/

10.再次运行xdg-open ,确保一切正常。

$ xdg-open "obsidian://new?vault=notes&name=note&content=content"

这会打开黑曜石的用户界面,聚焦在新创建的笔记上。

为所有用户设置URI处理

上面的说明是为你自己的用户设置黑曜石的URI处理。如果你想为所有用户设置,请做以下修改。

  • 用一个有管理权限(sudo / root)的用户来运行所有东西;
  • AppImage 文件放在一个非用户目录下(例如:/opt/obsidian/ );
  • obsidian.desktop 文件放在/usr/local/share/applications/
  • 运行update-desktop-database ,使用sudo

参考文献