想监听 Linux mount/umount,一开始直接
真好!不用 unsafe,也不用自己再起个线程
libc::epoll,写一半想起来 tokio 本身带了个 AsyncFd:
let f = File::open("/proc/mounts")?;
let fd = AsyncFd::with_interest(f.as_fd(), Interest::READABLE)?;
loop {
let mut guard = fd.readable().await?;
guard.clear_ready();
println!("Changed...");
}
真好!不用 unsafe,也不用自己再起个线程
epoll_wait。👍8
GitHub Linux arm64 runner 对 public repo 免费了!
https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/
刚刚收到个 PR 才发现 https://github.com/sxyazi/yazi/pull/2214
巧的是昨天刚宣布,今天就用上了,好耶!
https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/
刚刚收到个 PR 才发现 https://github.com/sxyazi/yazi/pull/2214
巧的是昨天刚宣布,今天就用上了,好耶!
The GitHub Blog
Linux arm64 hosted runners now available for free in public repositories (Public Preview) - GitHub Changelog
Now in public preview, Linux arm64 hosted runners are available for free in public repositories. Following the release of arm64 larger hosted runners in June, this offering now extends to…
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
昨天花了点时间给 Yazi 添加了 Helix 支持
现在可以在 Helix 里丝滑使用 Yazi 管理文件了,不需要 Zellij 或 tmux,甚至能预览图片、视频!
反响还不错,得到了 250 个 upvotes!https://www.reddit.com/r/HelixEditor/comments/1j72tmr/use_yazi_file_manager_directly_in_helix_without/
现在可以在 Helix 里丝滑使用 Yazi 管理文件了,不需要 Zellij 或 tmux,甚至能预览图片、视频!
反响还不错,得到了 250 个 upvotes!https://www.reddit.com/r/HelixEditor/comments/1j72tmr/use_yazi_file_manager_directly_in_helix_without/
👍11
deranged 0.4.1 把 time 和 plist 炸了🤯
https://github.com/time-rs/time/issues/736
https://github.com/ebarnard/rust-plist/issues/151
https://github.com/time-rs/time/issues/736
https://github.com/ebarnard/rust-plist/issues/151
GitHub
Errors about not being able to infer the type · Issue #736 · time-rs/time
Building time v0.3.40 with rustc 1.85.1 seems to produce the following errors: Compiling time v0.3.40 (/home/stephan/time/time) error[E0282]: type annotations needed --> time/src/duration.rs:936...
🤯3
https://github.com/kovidgoyal/kitty/issues/8533
!终于有终端能正确支持 Unicode grapheme cluster 了,这是历史性的一刻
现在,kitty 对 Unicode 支持最好,Ghostty 最差。
---
Ghostty 宣称正确支持 grapheme clustering,上周 我还引用它文章,但没想到比 Apple Terminal 还差😅
!终于有终端能正确支持 Unicode grapheme cluster 了,这是历史性的一刻
现在,kitty 对 Unicode 支持最好,Ghostty 最差。
---
Ghostty 宣称正确支持 grapheme clustering,上周 我还引用它文章,但没想到比 Apple Terminal 还差😅
GitHub
[RFC] Specifying how terminals process Unicode text · Issue #8533 · kovidgoyal/kitty
Hi all, Following on from the text-sizing work in #8226 I have decided to specify the exact algorithm terminals should use to split Unicode text into cells and implement it in kitty. It is based on...
👍6
草,PowerShell OpenSSH fork 把
https://github.com/PowerShell/openssh-portable/blob/efa17c848b3e579d8a4a0e71edf6d233b5e30917/contrib/win32/win32compat/misc.c#L500-L501
就算
我见过的所有终端、SSH client 要么设置终端真实像素大小,要么设置
这几乎是事实标准,PowerShell OpenSSH 这操作我还第一次见。
ws_xpixel、ws_ypixel 硬编码成了 640*480,无论终端窗口多大,TIOCGWINSZ 永远报告 640*480。https://github.com/PowerShell/openssh-portable/blob/efa17c848b3e579d8a4a0e71edf6d233b5e30917/contrib/win32/win32compat/misc.c#L500-L501
就算
ws_xpixel、ws_ypixel 是未定义的,也不能硬编码个假值啊。。我见过的所有终端、SSH client 要么设置终端真实像素大小,要么设置
0 表示不支持,这样 client app 可以检查是否 0 决定能否使用它。这几乎是事实标准,PowerShell OpenSSH 这操作我还第一次见。
GitHub
openssh-portable/contrib/win32/win32compat/misc.c at efa17c848b3e579d8a4a0e71edf6d233b5e30917 · PowerShell/openssh-portable
Portable OpenSSH, all Win32-OpenSSH releases and wiki are managed at https://github.com/powershell/Win32-OpenSSH - PowerShell/openssh-portable
🤯12👍1
一个新 SFTP Client crate
现有 Rust SFTP Client 要么依赖 OpenSSL,要么是对
因此我 fork 了
• 支持包含无效 UTF-8 的路径:虽然 SFTP 协议规定路径是 UTF-8,但 Linux 文件名本身就允许无效 UTF-8,主流 SFTP Server 也都支持,这也是主要 fork 的动机,解决了 https://github.com/AspectUnk/russh-sftp/issues/42
• 支持获取文件的 nlink、用户名、组名属性
• 泛型返回值参数,更 idiomatic,如:
• 更少的依赖
• 性能优化
• 所有 Packets 都支持 Copy-on-write,避免不必要内存分配
• Packet 长度预先计算,避免二次分配
•
打算先在 Yazi 上测试一段时间,等稳定了发到 crates.io 回报社区,源码在 https://github.com/sxyazi/yazi/tree/main/yazi-sftp
现有 Rust SFTP Client 要么依赖 OpenSSL,要么是对
ssh 或 sftp 二进制的 Command 包装;前者会加大构建难度,后者存在跨平台问题。因此我 fork 了
russh-sftp 做了个新的 yazi-sftp,虽然是 fork,但重写了 9 成以上的代码:• 支持包含无效 UTF-8 的路径:虽然 SFTP 协议规定路径是 UTF-8,但 Linux 文件名本身就允许无效 UTF-8,主流 SFTP Server 也都支持,这也是主要 fork 的动机,解决了 https://github.com/AspectUnk/russh-sftp/issues/42
• 支持获取文件的 nlink、用户名、组名属性
• 泛型返回值参数,更 idiomatic,如:
let attrs: responses::Attrs = session.send(requests::Stat::new(path)).await?
• 更少的依赖
• 性能优化
• 所有 Packets 都支持 Copy-on-write,避免不必要内存分配
• Packet 长度预先计算,避免二次分配
•
AsyncRead、AsyncWrite trait 实现避免克隆 buffer打算先在 Yazi 上测试一段时间,等稳定了发到 crates.io 回报社区,源码在 https://github.com/sxyazi/yazi/tree/main/yazi-sftp
👍6❤2🔥1
JetBrains 赞助了几个订阅
最近 RustRover 团队联系,给了些免费订阅支持 Yazi 维护,这些订阅是 Open Source License,可使用旗下所有产品,有效期一年,到期似乎可以联系他们续订。
Yazi 活跃(代码)贡献者可 PM 我获取。
非常感谢 JetBrains 对 Rust 生态、开源社区的支持!❤️
最近 RustRover 团队联系,给了些免费订阅支持 Yazi 维护,这些订阅是 Open Source License,可使用旗下所有产品,有效期一年,到期似乎可以联系他们续订。
Yazi 活跃(代码)贡献者可 PM 我获取。
非常感谢 JetBrains 对 Rust 生态、开源社区的支持!❤️
❤12🥰4
最近老刷到格陵兰,好像这个没啥存在感的小岛一下成了全球焦点,地图上看了看位置,如果美国拿下格陵兰,那加拿大就被美国围住了(东格陵兰,西阿拉斯加,南美国),未来加拿大变成美国第51州也不是不可能了,难怪加总理大老远跑来跟中国搞什么New World Order,看来有被吓到(
🤯1
向 kitty 请求了一个拖拽协议
https://github.com/kovidgoyal/kitty/issues/9459
本来以为会被拒掉(查了一些历史 issue),但 Kovid 说在 todo list 了,好耶!
对很多人来说,拖拽是阻碍他们活在 terminal 下的最后一块拼图,一旦 kitty 支持,希望其它终端也能跟进。
https://github.com/kovidgoyal/kitty/issues/9459
本来以为会被拒掉(查了一些历史 issue),但 Kovid 说在 todo list 了,好耶!
对很多人来说,拖拽是阻碍他们活在 terminal 下的最后一块拼图,一旦 kitty 支持,希望其它终端也能跟进。
GitHub
Terminal drag-and-drop protocol · Issue #9459 · kovidgoyal/kitty
Hi, I'm working on Yazi (a terminal file manager), many people use it as a replacement for their GUI file manager, and I've gotten a lot of feedback saying the only missing feature is drag-...
👍9🥰2