我们都使用网络,我们都使用书签。但是你知道你不需要使用你的网络浏览器内置的书签功能吗?
这就是为什么不久前我迁移到了Buku,当时我几乎还住在我的网络浏览器里,我写了Bukubrow。(正如您所见,我在命名方面真的很有创意!)。
任何外部书签管理器都比使用内置在浏览器中的书签管理器要好得多,这有一个关键原因-您不再依赖于特定的浏览器。当然可以,你可以(?)。可以到处导入和导出这些书签,但这是一个麻烦,而且我不想依赖它,因为浏览器供应商正在努力寻找差异化的理由,这使得锁定平台变得越来越有诱惑力。这是一个麻烦,我不想依赖它,因为浏览器供应商正在努力寻找差异化的理由,让平台锁定变得越来越诱人。我确信这在某种程度上是完全不可能的,但我假设并希望在此后的许多年里,情况有所改善。
你想知道关于步步的真正烦人的事吗?它是用Python编写的。这意味着,当解释器在命令行上的每个buku调用上启动时,会有一个明显的延迟,这在任何用C、Rust、Go、Haskell等编写的软件中都不存在。(同样的问题更严重地困扰着JavaScript。)。这是一种糟糕的用户体验。当您习惯于在短短几毫秒内打开终端时,这种延迟是非常恼人的。(附注:如果您正在运行类似Alacritty的程序,并且提示符几乎没有立即准备好,那么您可能正在使用类似于Oh my Zsh!的东西,它会扼杀提示符的启动时间。)。
Python的另一个恼人之处在于其包管理的状态。人们嘲笑JavaScript项目复杂而缓慢的构建系统,但至少一旦它被分发,最终用户通常只有一个捆绑的脚本要运行,就像我提到的其他语言一样,您通常只有一个二进制文件。Python似乎并非如此!安装buku很痛苦,因为它附带了一堆我不关心的依赖项。这些是作者的实现细节,可能不应该在我的系统上独立更新。你能想象如果所有的软件都是这样的吗?您几乎不能在Arch上运行5分钟而不依赖于某种依赖项(依赖项的依赖项)需要更新的更新。甜菜,也是用Python编写的,尽管我很喜欢它,但也遇到了同样的问题。
这让我想知道外面还有什么可供选择的。在对我的发现普遍感到不满意,并花了一段时间真正享受通过之后,我决定推出自己的解决方案。用Haskell a pass编写一个“简单”的书签管理器最初是一个模糊的想法,结果却是一个真正简单的shell脚本。引入扁平标记,这是一个如此简单的脚本,甚至不需要自己的项目页面。
这个脚本只依赖于一个工具rofi,很多运行Linux和平铺窗口管理器的人都已经在使用这个工具了。可以对其进行简单的更新,以使用dmenu或其他可以处理交互方面的东西。它所做的一切就是递归地收集指定目录中每个文件的名称,将它们呈现给用户,并在浏览器中打开所选文件的第一行。(好的,从技术上讲,它也可以打开其他东西,因为它名为xdg-open,但是我不确定您还会在这里放什么。也许与双子座有关?)。
书签目录本身可以被认为是与PASS的密码repo相同的方式,只不过它没有加密。如果您觉得有必要的话,我想这也很容易实现。
这实际上是什么样子的呢?我有一个目录~/.bookmarks/,由git管理并备份到某个私人遥控器上,我所有的书签都放在这个遥控器中。它们中的大多数位于根目录,但也有一些在子目录中组织。如果我删除了什么东西并想要回来,它就在我的Git历史中。如果我更换网页浏览器,我根本不需要做任何事情。当我想打开一个书签时,不管我在哪里,我都会打开在我的窗口管理器中定义的键绑定,这将在我选择的Web浏览器(当前是vimb)中打开它。当我想要添加书签时,我只需将其放入回购中,如果我想要将其保留超过一段时间,我就提交它。
这是更多的前期工作,但在我看来,最终结果要简单得多。它更符合人体工程学,对定制和更改的敌意要小得多。这似乎是对很多技术的权衡,桌面上的Linux就是另一个例子。我在这篇文章中提到的许多其他软件也可以这么说。但这绝对是值得的。
对于任何仍在使用Bukubrow的人来说,这就是为什么没有太多的活动。它没有被废弃,但我也没有太多动力去做它,因为我以前不再使用它了。您可能也会发现,bash脚本和git repo无论如何都比任何更专有的东西都要好。