草,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
草,Homebrew 把
一般要简化就搞个
https://github.com/Homebrew/homebrew-core/pull/263377
https://github.com/Homebrew/homebrew-core/pull/261303
imagemagick 阉割了,我说我脚本咋炸了,完整版另搞了个 imagemagick-full。ffmpeg 也阉割了,原版变成了 ffmpeg-full,难怪最近 ffmpeg 老报错,还以为我视频问题,原来是你啊,Homebrew!一般要简化就搞个
ffmpeg-lite,别动 ffmpeg;或者升级自动切到 ffmpeg-full 也行。都没有,它给你从完整版升到阉割版,这操作头一次见。。https://github.com/Homebrew/homebrew-core/pull/263377
https://github.com/Homebrew/homebrew-core/pull/261303
GitHub
imagemagick: slim down formula by MikeMcQuaid · Pull Request #263377 · Homebrew/homebrew-core
Also add imagemagick-full.
Similar to #261303 but for imagemagick.
As we did with ffmpeg, if there are loud complaints, we can consider adding specific dependencies back as required.
Similar to #261303 but for imagemagick.
As we did with ffmpeg, if there are loud complaints, we can consider adding specific dependencies back as required.
🤣14👨💻1
🌸
向 kitty 请求了一个拖拽协议 https://github.com/kovidgoyal/kitty/issues/9459 本来以为会被拒掉(查了一些历史 issue),但 Kovid 说在 todo list 了,好耶! 对很多人来说,拖拽是阻碍他们活在 terminal 下的最后一块拼图,一旦 kitty 支持,希望其它终端也能跟进。
YouTube
Kovid Goyal on Kitty: Drag and Drop, Pixel Scrolling, and What’s Next
Mitchell Hashimoto wasn’t able to join this episode for personal reasons, so we made a small pivot.
A lot of people already knew about the original Ghostty vs Kitty livestream, so I wanted to explain that clearly here too. Mitchell couldn’t make it this…
A lot of people already knew about the original Ghostty vs Kitty livestream, so I wanted to explain that clearly here too. Mitchell couldn’t make it this…
🥰3🔥2