kuanat

kuanat

V2EX 第 634702 号会员,加入于 2023-06-19 11:38:40 +08:00
今日活跃度排名 6805
kuanat 最近回复了
我只用 Linux 所以只能提个思路,这个功能在 linux 异常简单。

现代桌面的窗口管理器的渲染逻辑是基本一致的,就是分配给应用程序一个矩形空间,由应用程序决定窗体内部的内容,然后窗口管理器(合成器)负责将其和标题栏部分合成起来。换个说法,标题栏不是应用程序决定的。

为了支持特定形态的窗体,一般桌面的窗口管理器也会提供一个叫 client side decoration 的机制,这样窗体相关的部分也交由应用程序负责。可以参考 https://en.wikipedia.org/wiki/Client-side_decoration

所以要实现这个功能一方面需要窗口管理器支持,另一方面要程序自身去适配 csd 机制。


如果只是单纯实现录屏的时候不含窗体,计算好坐标裁剪一下应该没问题。
不负责任的猜测,可能是百度统计被投毒了,文章截图里的几个受影响站点,外链 js 的交集就是 hm.baidu.com 域名下的 hm.js 文件。
5 天前
回复了 allegory 创建的主题 程序员 DPDK 如何学习才能就职相应的岗位
楼上看 id 就知道靠谱。

网络这个领域一定要先有市场需求才有岗位需求,由于相关技术往往和硬件以及架构强绑定,离开了这个环境这些技术就没有用武之地了。

如果你真的想学,DPDK 建议往 ebpf 方向走,RDMA 往分布式存储方向走。
9950x 是基本频率 4.3 然后 Boost 最高到 5.7 ,如果你能接受降低到 4.3 ,有个简单的方法是用 amd-pstate 调度,在执行特定任务的时候限制在 4.3 ,执行完之后再切换回来。

参考 https://docs.kernel.org/admin-guide/pm/amd-pstate.html

```
To manipulate the boost attribute, users can write a value of 0 to disable the boost or 1 to enable it, for the respective CPU using the sysfs path /sys/devices/system/cpu/cpuX/cpufreq/boost, where X represents the CPU number.
```

我不确定是否能限制到 4.7 ,这要看 amd-pstate 是否支持。一个曲线救国的思路是写个假负载的程序然后绑定到 8~16 个核心上,让 cpu 误认为是全核心任务从而降低频率。

另外现在 amd 的 smp 调度还是有问题的,相关的内核补丁不确定能否赶上 6.12 的合并窗口。这一系列补丁主要是调度让单核心的任务跑在体质最好的核心上的。
7 天前
回复了 moyuman 创建的主题 程序员 最“流畅”的终端模拟器是什么?
@moyuman #13

平滑滚动是靠视觉残留形成的错觉,所以平滑滚动光标很容易做,但是平滑滚动内容本身是很难的。

由于终端里的内容基本不存在关联性,平滑滚动这个事情在不牺牲速度的前提下我个人认为不可行。
7 天前
回复了 moyuman 创建的主题 程序员 最“流畅”的终端模拟器是什么?
@adoal #16

OSC 52 确实是非常好的,终端里也不区分本地和远程。

当然我觉得这事属于历史问题,特别是 linux 环境。clipboard 是个桌面层面的实现,x11/wayland 还不一样,所以 vim 与系统剪贴板的交互是比较低效的 ipc ,而且需要编译期增加支持。理论上如果把 * 寄存器与系统寄存器关联也可以,但 vim 的设计 delete 会和 yank 同样使用 * 寄存器,这就导致按一下 x 也会触发一次 ipc ,一方面造成卡顿,另一方面用户也不想删除的内容进系统剪贴板。
7 天前
回复了 moyuman 创建的主题 程序员 最“流畅”的终端模拟器是什么?
我推荐 foot https://codeberg.org/dnkl/foot 另外这个作者其他项目也都非常好。


设计哲学层面我不是很认可 kitty/alacritty 的路线,恰好这个话题我在之前的讨论 zed 编辑器的帖子里提到过 https://v2ex.com/t/1056672 可以做参考。

foot 的作者也有专门写过文章论述 https://codeberg.org/dnkl/foot/wiki/Performance


除开渲染层面,foot 的作者同时维护 fcft 一个 rasterization 的库,这个库对于字符的处理我认为是目前最好的,foot 的字符显示就是基于 fcft 。

还有 foot 对于 OSC/escape sequence 的支持非常标准化,很方便做定制或者与其他应用交互。
11 天前
回复了 chopin1998519 创建的主题 程序员 调整 bios, chrome 会失去 session
我没有搜到 chromium 关于“机器码”相关的代码,而且常理上这个设计也很不合理。

我更倾向于认为是与 PAM 相关的原因导致的。登录凭证比如 cookies 这些是加密存储的,而 chromium 的加密密钥是存储各个平台的 keyring 的,mac/win/linux 都一样。Linux 环境解锁 keyring 与 PAM 相关,一般是登录桌面的同时解锁。

升级 bios 或者某些行为可能会导致 PAM 策略下 keyring 未能正常解锁。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1008 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 79ms · UTC 22:36 · PVG 06:36 · LAX 14:36 · JFK 17:36
Developed with CodeLauncher
♥ Do have faith in what you're doing.