3个版本
0.1.3 | 2022年4月23日 |
---|---|
0.1.2 | 2022年4月10日 |
0.1.1 | 2022年4月9日 |
#300 在 多媒体
41KB
989 行
xdp-hook-rs
当其他应用程序使用xdg-desktop-portal时触发用户配置的操作(https://github.com/flatpak/xdg-desktop-portal)
是什么?
-
xdg-desktop-portal 是建立在 dbus 和 pipewire 之上的一种机制,当Linux应用程序无法直接访问敏感的系统功能时(或者当需要显式用户同意时)使用。
-
我们可以使用
dbus-monitor
来观察此类门户的协商和使用,但它并不方便创建活动会话的全景视图,可能也不是触发与门户相关的自动化等的最简单方式。 -
xdp-hook
的目的不是提供像Android上的隐私指标,而是通过响应门户使用并执行用户配置的任务(例如执行脚本)来使其他人为用户提供此类功能变得更容易。 -
此项目依赖于Linux,并提供Linux系统的功能(不支持其他环境)。
安装
通过 https://crates.io/ 使用 cargo
安装
-
确保您有一个工作的Rust工具链:https://rustup.rs/
-
运行
cargo install xdp-hook
配置
- 创建 ~/.config/xdp-hook/config.toml(请参阅 示例配置)
钩子环境
当 xdp-hook
运行您配置的钩子时,它会尝试设置某些环境变量以公开更多信息
XDP_HOOK_APP_ID
:启动门户会话的(类似flatpak的应用)进程的名称(如果有的话)XDP_HOOK_PROCESS_COMMAND
:启动门户会话的进程的名称XDP_HOOK_PROCESS_ID
:启动门户会话的进程的进程ID
请注意,这些都是“尽力而为”的,当信息不可用时,这些可能为空字符串
特性/路线图
- 连接到用户的dbus会话
- 识别并记录与门户请求相关的通用消息
- 跟踪长时间门户会话的打开/关闭(例如,位置、屏幕共享、远程桌面)
- 跟踪长时间门户会话的打开/关闭(例如,抑制)
- 读取配置文件 ~/.config/xdp-hook/config.toml
- 在门户请求/会话事件上执行用户配置的任务,例如执行脚本
- 用户范围的systemd单元文件,方便启动
- 正确区分门户(例如,Chrome和Firefox都使用jitsi)的并发客户端:https://gitlab.com/jokeyrhyme/xdp-hook-rs/-/issues/3
- 识别启动门户请求的应用/进程:https://gitlab.com/jokeyrhyme/xdp-hook-rs/-/issues/3
- 识别处理门户请求的门户实现(不可能?)
另请参阅
依赖项
~15–31MB
~438K SLoC