使用 Quartz 发布 Obsidian 笔记库

自从使用 [[Obsidian]] 以来就一直想要有一个开源版本的 [[Obsidian Publish]] 代替,过去这几年也尝试了不少方案,比如 Jekyll 静态网站生成,比如使用 [[Logseq]] 生成网站, 然后还想过从 Obsidian 同步到 Notion 里面,然后再使用 [[NotionNext]] 来生成网站。

下面是所有我尝试过的方案

  • [[Nolebase]] 一款基于 VitePress 的在线知识库
  • [[Obsidian Digital Garden Plugin]] 一款 Obsidian 插件,结合 GitHub 仓库可以实现快速分享笔记
  • [[Digital Garden Gatsby Template]] 一款 Gatsby 模板
  • [[Digital Garden Jekyll Template]] 一个 Jekyll 模板
  • [[Gatsby Theme Primer Wiki]]
  • [[MindStone]]
  • [[Obsidian-mkdocs template]] 基于 [[mkdocs]] 的知识库
  • [[Obsidian PKM]]
  • [[Jekyll Garden Template]]
  • [[Perlite]]
  • [[Pubsidian]]
  • [[flowershow]]

但是以上的方案我尝试之后都不是一个我认可的完善的方案,或多或少有一些问题,也不能和我自己的工作流程结合起来。

但是很多年前看到过一个静态网站分享的方案 Quartz,没想到发展了几年之后发布的 v4 版本,可以完美的融合到我的工作流中,并且可以非常方便地分享我的本地 Obsidian Vault。

什么 Quartz

Quartz 是一个静态网站生成工具,可以用来发布 Markdown 的笔记,和 Obsidian 搭配使用绝佳。

Quartz 发布 4.x 版本之后可用度大大提高,并且可以直接作为 Obsidian Publish 的开源代替存在。

Quartz 需要 Node v18.14 以及 npm v9.3.1

功能

  • 自动生成双向链接 Automatically generated backlinks
    • 支持 wikilinks,backlinks, Latex, 语法高亮
  • 支持 Graph View
  • 链接预览 Link Previews
  • 本地关联图 Local graph
  • 支持两种链接 Markdown and WikiLinks
  • 支持 Table of Content
  • Dark & light mode

Cons:

  • No sidebar Navigation

安装

通过克隆代码本地安装

git clone https://github.com/jackyzha0/quartz.git
cd quartz
npm i
npx quartz create

在执行了上面的命令之后,会在命令中选择是否要创建一个全新的仓库,还是直接使用 ln -s 来软链接一个既存的文件夹。

然后再运行

npx quartz build --serve

就可以直接启用一个本地的在线预览。

最后效果可以参考这里

reference


2024-06-12 obsidian , obsidian-publish , obsidian-vault

爱沙尼亚电子居民申请记录

在网上逛论坛的时候,偶然看到有人提到了一个爱沙尼亚电子公民的电子居民卡,看起来挺有意思的,之前就看到过 [[帕劳数字居民身份证]],去检索了一下发现帕劳已经涨价到了 248 欧元,爱沙尼亚电子公民感觉上类似,所以就简单的记录一下。

爱沙尼亚的数字居民(E Resident)计划是由爱沙尼亚在 2014 年推出的一项电子公民计划。爱沙尼亚成为了第一个推出电子公民计划 E Residency 的国家。

爱沙尼亚目前是欧盟和北约的成员国,国旗是蓝黑白三色,国家域名是 .ee 电话号码的国际区号是 +372。

爱沙尼亚位于欧洲东北部,由大陆部分和波罗的海的 2222 个岛屿组成。它西临波罗的海,北濒芬兰湾,东靠楚德湖,南面和东面分别与拉脱维亚和俄罗斯接壤,总面积为 42,388 平方公里。该国属于温带大陆性湿润气候,主要民族是爱沙尼亚人,他们属于波罗的芬兰人。爱沙尼亚是北欧理事会、欧洲联盟、欧元区、申根区、北大西洋公约组织以及经济合作与发展组织的成员国之一,也是世界高收入经济体之一。

自上世纪 90 年代开始,爱沙尼亚就致力于成为互联网强国。所有的小学生都需要接受编程教育,并且将接入互联网视为基本人权之一。早在 2002 年,爱沙尼亚就已经完成了对境内大部分地区的 WiFi 覆盖。如今,几乎所有政府服务,包括投票选举、工商注册、报税等等,都可以在线办理,覆盖率高达 99%。爱沙尼亚发达的互联网也造就了很多互联网公司,比如 Skype,Hotmail 以及 [[Wise]]。

爱沙尼亚电子公民

爱沙尼亚电子公民不是签证,也不是居留权,所以如果要去爱沙尼亚旅游,还是需要申请申根区的签证。电子公民也不会影响原来国籍。

那么电子公民有什么好处?

  • 无需到爱沙尼亚,就可以注册一家爱沙尼亚的公司,之后可以完全线上经营,同时也可以开设爱沙尼亚银行账户,用于境外投资和交易
  • 爱沙尼亚公司启动成本低,注册公司仅需要 190 欧元,营收税率 0%,并且信誉高
    • 但需要注意,如果公司要进行分红或者开工资时,需要缴纳 20% 的税款

申请流程

要成为爱沙尼亚电子公民非常简单,只需要准备好如下材料

  • 护照照片或复印件
  • 使用英文准备好申请的目的和动机,至少 1000 个字母,不超过 2000 个字母
  • 支持支付 120 欧元的国际信用卡(Visa or Mastercard)
  • 一张近期拍摄的至少 1300 x 1600 像素的照片,但不大于 6000 x 7380 像素,至少 1MB,最大 5MB

登录爱沙尼亚电子公民计划官网,点击网页右上角的 「Apply Now」,根据提示填写个人信息,然后选择 Pick-up Location (领取卡片的地方)然后爱沙尼亚的边境管理部分会审核材料,通过之后就可以去大使馆领取电子公民卡。

北京领取卡片的地方在大使馆,北京市朝阳区亮马桥北小街 1 号(天泽路东门入口),只需要带上护照即可。如果是在东京,那么到东京的大使馆领取即可。其他地方可以根据官网 的内容进行选择。

最后会问为什么要申请爱沙尼亚的电子公民,根据自己的实际需求填写就行,这里推荐可以自己先写中文,然后借助 ChatGPT,Gemini(Bard) 等工具翻译成英文。

申请的几个步骤

  • Reason for applying 申请理由,目的,如果是开设公司则需要提供一些公司信息,这个地方我直接选择了 I do not have clear plans but I would like to be a member of the community of e-residents
  • Personal and contact details 填写个人信息,包括姓名,出生日期,国籍等
  • Identification details 护照信息 联系信息
  • CV, social media and bank accounts,简历,社交媒体主页链接,银行账号
  • Trade bans and criminal background 申明
  • Pick-up location,选择领取卡片的领事馆,选择一个就近的前往即可
  • Review your information,检查填写的信息是否正确
  • Terms & conditions,同意条款
  • Confirmation 提交申请并支付费用

申请注意

准备材料的时候所有文件都使用英文名命名,在上传的文件名中不要包含中文,日文或其他语言文字。

另外照片需要大于 1MB,可以使用 macOS 的 preview 然后放大照片的解析度。

QcvfAc6C32

另外申请的时候需要

时间

等待线上申请提交之后,会进入审核阶段。

  • 申请表单会保存 2 个月,如果 两个月内没有,申请表单会过期。
  • 申请提出到处理大约需要 30 天
  • 从账户审核完成到寄送到目的地大约需要 2 个月时间

所以总体下来,如果从网站申请,到审批签发,大约需要 1 个月到 2 个月左右时间。

费用

手续注册需要 120 欧元费用,后续 renew 也需要 100~120 欧元费用。

设置 e-ID

拿到 E-Residency Kit 之后不能马上使用,需要等待大约 24 小时等大使馆将信息传回爱沙尼亚,然后收到邮件通知之后,就表示被激活可以使用了。

e-Residency Kit 包含了

  • 电子芯片卡
  • USB 读卡器
  • 密码信封,PIN,PUK 码
  • 使用说明书

注册爱沙尼亚公司

如果想要使用这个电子居民身份开公司,有一家服务提供商 Xolo 提供,也可以直接参考 官方如何 run a company 获取其他信息。

e-Residency 官网提供了一个市场 上面列出了所有支持 e-Residency 的公司,比如提供公司注册的 Xolo,1Office,e-Residency Hub, 有提供银行开户的 LHV,Wise,Payoneer,Stripe 等等。

开设银行

爱沙尼亚也有一些银行支持电子居留卡登录和管理

  • SEB(瑞典),在爱沙尼亚有业务
  • 瑞典银行(瑞典)
  • LHV(爱沙尼亚),一家中等规模的现代爱沙尼亚银行,LHV 实际上是 Transferwise 使用的所有 SEPA 欧元交易的银行
    • 两家分行,塔林和塔尔图
  • [[拉脱维亚数字居民]]
  • 立陶宛电子居民
  • [[帕劳数字居民身份证]]
  • [[爱沙尼亚开公司]]

2024-06-10 爱沙尼亚 , 电子居民 , 帕劳 , KYC , 欧盟 , 公司 , 商业

DNS 泄漏以及如何防止

什么是 DNS 泄漏

DNS 泄露(DNS Leak)是指当使用虚拟专用网络(VPN)或其他匿名工具时,域名系统(DNS)查询数据绕过加密隧道,直接通过用户的本地 ISP(互联网服务提供商)进行解析。这意味着用户的浏览活动可能被 ISP 监视或记录,进而暴露了用户的实际 IP 地址和在线活动。

在深入探讨 DNS 泄露之前,有必要了解 DNS 的基本工作原理。DNS 是互联网的电话簿,当用户输入一个域名(如www.example.com)时,DNS将其转换为对应的IP地址(如192.0.2.1),以便计算机能够理解和访问该网站。

通常情况下,用户的设备会向 ISP 的 DNS 服务器发送请求进行解析。然而,当用户使用 VPN 时,所有的流量应通过加密的 VPN 隧道传输,并由 VPN 提供商的 DNS 服务器处理 DNS 请求。

DNS 泄露的原因 DNS 泄露可能由于以下几个原因发生:

操作系统配置问题:一些操作系统可能会忽略 VPN 设置,继续使用本地 DNS 服务器。 VPN 设置不当:不正确的 VPN 配置可能导致 DNS 请求未能通过 VPN 隧道传输。 VPN 软件缺陷:某些 VPN 软件存在缺陷,无法正确处理 DNS 请求。 IPv6 配置问题:如果 VPN 只处理 IPv4 流量,而未配置 IPv6,IPv6 流量可能会直接泄露。

如何检测 DNS 检测

检测 DNS 泄漏有很多方法,最简单的方法就是找一个在线的检测工具。

在线检测 DNS 泄漏的工具,通过用户访问网页的时候,在网站上生成多个域名解析请求,通过用户的设备发起,网站通过脚本捕获并记录这些域名请求结果,这些网站根据 DNS 响应,判断是哪个 DNS 服务器处理的,然后通过对比 DNS 服务器 IP 地址与公共 DNS 服务器 ISP DNS 服务器进行匹对。

如果检测的 DNS 服务器属于用户的 ISP 或者其他不安全的 DNS 服务器,而非用户期待的 DNS 服务器,则说明了 DNS 泄漏。

DNS 泄漏会造成什么影响

暴露用户的真实 IP 地址

即使用户使用 VPN 或者其他匿名网络访问工具来隐藏其真实的 IP 地址,但是如果 DNS 请求没有通过 VPN 隧道,而是通过用户自己的 ISP 解析,那么 ISP 和其他潜在的监听者仍然可以看到用户的真实 IP 地址,这意味着用户的地理位置和身份可能被暴露。

DNS 请求包含了用户访问的域名,如果这些请求通过 ISP 解析,ISP 可以记录和分析用户的浏览历史,这使得用户的在线活动变得不再私密,并且可能被用户于广告投放,数据挖掘,甚至在某些国家可能被政府监控。

潜在的网络攻击

DNS 泄漏还可能使得用户更容易成为攻击的目标,比如,攻击者可以利用 DNS 请求来识别用户网络行为,实施 DNS 劫持或中间人攻击,将用户引导至伪造的网站或恶意服务器,从而窃取敏感信息或传播恶意软件。

信息过滤和审查

某些政府或地区,政府或 ISP 会对用户访问的内容进行过滤和审查。通过 DNS 泄漏,政府或 ISP 可以轻松跟踪和组织用户访问被审查或禁止的网站,从而限制用户的互联网自由。

如何防止 DNS 泄漏

  • 使用可靠的 VPN 服务,并且配置 VPN 的 DNS,将所有的网络请求通过 VPN 进行
  • 手动配置 DNS 服务器
  • 如果 VPN 不支持 IPv6,则禁用 IPv6
  • 操作系统和路由器配置静态路由,或自行搭建安全的 DNS 服务器,比如 AdGuard Home [[PiHole]] 等

2024-06-09 dns , dns-leak , host , domain-resolve

从内地到香港出金最佳的方法

银行汇款

汇丰银行内地转汇丰银行香港

汇丰银行卓越及以上等级的用户可以免手续费汇款到汇丰银行香港。

内地中行到中银香港

中国银行的购结汇中,如果是境外中行,可以免除手续费以及电讯费的。

中行国内的普通借记卡即可。

中行对全球设有境外支行的当地中行都可以进行汇款,并且享受手续费减免,对日本汇款是 300 万日元内 1500 手续费,到香港是免除手续费的。

需要注意的是尽量到业务量比较大的支行办理开卡,业务量小的支行可能会为了揽储或完成 KPI 等,在汇出时各种阻拦

0 手续费兴业银行到汇丰银行

兴业银行寰宇人生借记卡可以以比较优惠的现汇利率购汇,然后也可以零手续费

直接到香港线下存款

优点是不占用每年 5 万的外汇限额,但是不方便,并且出境也有现金的限制。

境外赚取美元

比如在 AdSense,YouTube,X 等平台赚取美元,如果可以开设香港的账户,可以直接打款到香港的账户,然后不过国境。

对敲

如果有朋友需要港币换人民币,或者日元换人民币,那么可以通过朋友的账户直接进行(小额的)转账,国内通过银行到银行人民币转账,境外通过香港银行到香港银行的转账。

或者通过 熊猫速汇 或者 Wise 等等服务平台进行换汇。


2024-06-08 香港银行卡 , 香港 , 外汇 , 汇款 , 港币

Homerow 使用 Vimium 的方式控制 macOS

Homerow 是一个 macOS 上的快捷键助手,可以使用类似 [[vimium]] 的操作方式来控制 macOS。

速度快,原生应用,并且还是非常良心的一次性买断制。

RXOMAyCJJc


2024-05-29 homerow , macos , vimium , vim , chrome

如何避免 MySQL 因为内存不足被系统 Kill

这两天一台 VPS 上的 MySQL 总是自己宕机,查看了一下日志发现是因为 OOM ,内存不足被系统 Kill 了。

❯ sudo /etc/init.d/mysqld status
× mysqld.service - LSB: start and stop MySQL
     Loaded: loaded (/etc/init.d/mysqld; generated)
     Active: failed (Result: oom-kill) since Mon 2024-05-27 22:23:15 CST; 12h ago
       Docs: man:systemd-sysv-generator(8)
    Process: 2419860 ExecStop=/etc/init.d/mysqld stop (code=exited, status=0/SUCCESS)
        CPU: 1h 11min 53.021s

Notice: journal has been rotated since unit was started, output may be incomplete.

网上稍微查了一下,可以使用修改 syetemd service 的方式来阻止 Linux 因为内存不足而杀死 MySQL。

做法

编辑

sudo systemctl edit mysqld.service

然后在配置文件中添加

[Service]
OOMScoreAdjust=-1000

保存配置文件之后,重启 MySQL

sudo systemctl restart mysqld.service

可以检查配置是否生效,记得替换 MySQL 的 PID。

cat /proc/$(pidof mysqld)/oom_score_adj

原因分析

MySQL 宕机并出现 “Out of memory” 问题,通常是由于短时间内应用程序大量请求导致系统内存不足,从而触发了 Linux 内核中的 Out of Memory (OOM) killer 机制。OOM killer 会终止某个进程以释放内存给系统使用。

通过检查相关日志文件(/var/log/),可以看到类似的 Out of memory: Kill process 信息:

May 25 19:06:53 wh kernel: [5351539.967422] php-fpm invoked oom-killer: gfp_mask=0x1100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
May 25 19:06:53 wh kernel: [5351539.967429] CPU: 1 PID: 2384831 Comm: php-fpm Not tainted 5.15.0-84-generic #93-Ubuntu

Linux 内核根据应用程序的需求分配内存,通常应用程序分配了内存但未全部实际使用。为提高性能,这部分未用的内存可以被其它进程利用。这种内存归属于每个进程,内核直接回收利用较为复杂,因此采用了内存过度分配(over-commit memory)的策略,以间接提高内存使用效率。一般情况下,这种策略是有效的,但当大多数应用程序同时消耗内存时,问题就出现了。此时,所有应用程序的内存需求加起来超出了物理内存(包括 swap)的容量,内核必须通过 OOM killer 终止一些进程来释放内存,保障系统正常运行。可以通过银行的例子来理解:当部分人取钱时银行能够应对,但如果全国人民同时取钱且都想取完自己的钱,银行实际上无法满足。

内核检测到内存不足并选择终止进程的过程,可以参考内核源代码 linux/mm/oom_kill.c。当系统内存不足时,会触发 out_of_memory(),然后调用 select_bad_process() 选择一个 “bad” 进程进行终止。选择 “bad” 进程的过程由 oom_badness() 决定,其算法主要根据进程占用的内存量来判断:

/**
 * oom_badness - heuristic function to determine which candidate task to kill
 * @p: task struct of which task we should calculate
 * @totalpages: total present RAM allowed for page allocation
 *
 * The heuristic for determining which task to kill is made to be as simple and
 * predictable as possible.  The goal is to return the highest value for the
 * task consuming the most memory to avoid subsequent oom failures.
 */
unsigned long oom_badness(struct task_struct *p, struct mem_cgroup *memcg, const nodemask_t *nodemask, unsigned long totalpages)
{
    long points;
    long adj;

    if (oom_unkillable_task(p, memcg, nodemask))
        return 0;

    p = find_lock_task_mm(p);
    if (!p)
        return 0;

    adj = (long)p->signal->oom_score_adj;
    if (adj == OOM_SCORE_ADJ_MIN) {
        task_unlock(p);
        return 0;
    }

    points = get_mm_rss(p->mm) + p->mm->nr_ptes + get_mm_counter(p->mm, MM_SWAPENTS);
    task_unlock(p);

    if (has_capability_noaudit(p, CAP_SYS_ADMIN))
        adj -= 30;

    adj *= totalpages / 1000;
    points += adj;

    return points > 0 ? points : 1;
}

理解了这个算法,我们就理解了为什么 MySQL 总是被首当其冲地终止,因为它的内存占用最大。解决这个问题的最简单方法是增加内存,或优化 MySQL 使其占用更少的内存。此外,还可以优化系统以减少内存占用,使应用程序(如 MySQL)能够使用更多内存。一个临时解决方案是调整内核参数,使 MySQL 进程不易被 OOM killer 选中。

配置 OOM killer

可以通过调整内核参数来改变 OOM killer 的行为,避免频繁终止进程。例如,可以在触发 OOM 后立即触发 kernel panic,并在 10 秒后自动重启系统:

# sysctl -w vm.panic_on_oom=1
vm.panic_on_oom = 1

# sysctl -w kernel.panic=10
kernel.panic = 10

# echo "vm.panic_on_oom=1" >> /etc/sysctl.conf
# echo "kernel.panic=10" >> /etc/sysctl.conf

从上面的 oom_kill.c 代码可以看到,oom_badness() 会为每个进程打分,根据分数决定终止哪个进程。可以通过调整进程的 oom_score_adj 参数来控制哪些进程不易被选中终止。例如,如果不希望 MySQL 进程被轻易终止,可以找到 MySQL 的进程号,并将其 oom_score_adj 设置为 -15:

# ps aux | grep mysqld
mysql    2196  1.6  2.1 623800 44876 ?        Ssl  09:42   0:00 /usr/sbin/mysqld

# cat /proc/2196/oom_score_adj
0
# echo -15 > /proc/2196/oom_score_adj

当然,如果需要的话,还可以完全禁用 OOM killer(不推荐在生产环境中使用):

# sysctl -w vm.overcommit_memory=2
# echo "vm.overcommit_memory=2" >> /etc/sysctl.conf

2024-05-28 mysql , linux , oom , oom-kill

Octarine 一个注册隐私的本地 Markdown 编辑器

Octarine 是一个注重隐私的本地 Markdown 编辑器。

功能

  • No vendor lock-in,不会被 Lock 到这个应用,可以随时切换成其他的应用
  • 支持多工作区,快速切换
  • 日历视图,以及日记,可以快速开始记录笔记
  • WYSIWYG 所见即所得编辑器
  • 所有的文件都保存在本地
  • 6 MB 大小

相较于 Obsidian

自从我发现并使用Obsidian 以来,我个人已经使用单一 Obsidian Vault 好多年了,我所有的摘录,笔记,Memo,PDF 文档全部都交给了 Obsidian 进行管理。到目前为止,Obsidian 的使用体验也没有任何可以让我放弃的理由。

如果和 Obsidian 比较的话,那么 Octarine 唯一值得一提的就是安装程序的大小,仅有 6 MB 大小,其他的体验,比如所见即所得的编辑器,因为我大部分情况下使用 Markdown,全部的时间都使用 Vim 模式,所以对我来说甚至是一个缺点。而我去 Reddit 官方询问了是否有 Vim 模式的支持,也没有得到正面的反馈。

因为没有 Vim 模式,就这一点,我就需要暂缓考虑 Octarine 了,不过也正是这一点,可以推荐给其他不使用 Vim 模式的朋友。

另外 Octarine 目前还没有插件系统,所以只推荐将其作为一个本地离线的 Markdown 编辑器,或者本地离线的个人知识管理来使用。


2024-05-24 markdown , obsidian , octarine , editor , knowledge , personal-knowledge-management

微信一次性发送超过 9 张照片

微信几乎是每天都会打开使用的 IM,但是这么多年了,我一直以为微信只能一次性发送 9 张图片。日本的五一黄金周出门玩了几天,用相机拍了不少照片,然后在电脑上如果只能 9 张 9 张的发送,那么也太麻烦了。

然后我就想有没有其他方法,当然我自己有我自己的网络相册 EV Photos 的,通过加密的网络相册也能发送,但是有一些还是不想再上传一遍到网络相册,毕竟还是会占用 VPS 空间,然后使用 AirDrop 也是一种方案,但仅限于大家在一起的时候,使用 iCloud 相册分享,有人用 Android,使用 Google Photos 分享,有人上不去,唉。

所以最后还是得在微信里面发送,于是我开始寻找微信有没有什么办法可以一次性发送多张照片,没想到的是,还真有!

在微信里面,可以在个人页面中找到「收藏」,在 macOS 桌面版也是一样,在收藏中点击 + 号,新建笔记,然后在菜单栏中「图片」选项中添加自己想要发送的图片即可。

在这个收藏里面,添加照片的数量和大小是没有限制的,想发多少就可以发送多少,间接地实现了一次性发送多张照片的需求。

vRfD

把照片全部拖到收藏笔记里面之后,点击笔记右上角的点点点,然后发送给朋友,这样就实现了一次性全部分享。

在笔记中还可以看到图片的数量,如果要转发给多个朋友,创建多个笔记即可。


2024-05-23 wechat , 微信 , 使用技巧 , 生活经验

ProxMobo 一款 Proxmox VE 管理客户端

ProxMobo 是一个第三方的 iOS 上 [[Proxmox VE]] 的管理工具,可以直接在 iOS 上直接对 Proxmox VE 进行查看,管理(停止,重启虚拟机等操作),或者可以直接通过 VNC,或终端对虚拟机进行管理。

功能

  • 通过 Host, 用户名和密码登录 Proxmox VE(PVE) 实例
  • 查看和管理 PVE 中的虚拟机,包括启动,停止,暂停,恢复,重启,关机等
  • 可以对虚拟机进行简单的配置,包括名字,是否和 PVE 同时启动,

界面预览

管理界面

vWvh

虚拟机管理界面。

vEgr

虚拟机详情

vzWH

PVE 虚拟配置管理

vdIC

注意

  • 最低要求 iOS 16
  • 另外要使用 VNC 和终端需要付费订阅

2024-05-22 proxmox , proxmox-ve , linux-virtualization , virtual-machine , proxmobo , pve-client

推荐一款 macOS 上的极简菜单栏提醒

reminders-menubar 是一款 macOS 上的一款极简的 macOS 菜单栏提醒工具。

Reminders MenuBar 是一款使用 SwiftUI 开发的小工具,能够在 macOS 菜单栏查看/提醒待办事项。它体积小、交互简单、界面清爽,支持开机启动、多语言(包括中文)、菜单栏显示计数、快捷键等功能。

tFcUyffqn3

安装

Homebrew 安装

brew install --cask reminders-menubar

2024-05-20 macos , macos-menu , menubar , homebrew

电子书

本站提供服务

最近文章

  • 使用 Quartz 发布 Obsidian 笔记库 自从使用 [[Obsidian]] 以来就一直想要有一个开源版本的 [[Obsidian Publish]] 代替,过去这几年也尝试了不少方案,比如 Jekyll 静态网站生成,比如使用 [[Logseq]] 生成网站, 然后还想过从 Obsidian 同步到 Notion 里面,然后再使用 [[NotionNext]] 来生成网站。
  • 爱沙尼亚电子居民申请记录 在网上逛论坛的时候,偶然看到有人提到了一个爱沙尼亚电子公民的电子居民卡,看起来挺有意思的,之前就看到过 [[帕劳数字居民身份证]],去检索了一下发现帕劳已经涨价到了 248 欧元,爱沙尼亚电子公民感觉上类似,所以就简单的记录一下。
  • DNS 泄漏以及如何防止 什么是 DNS 泄漏
  • 从内地到香港出金最佳的方法 银行汇款
  • Homerow 使用 Vimium 的方式控制 macOS Homerow 是一个 macOS 上的快捷键助手,可以使用类似 [[vimium]] 的操作方式来控制 macOS。