V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
stinkytofux
6.09D
V2EX  ›  Linux

原来 Linux 桌面才是最封闭的系统.

  •  1
     
  •   stinkytofux · 21 小时 8 分钟前 · 3745 次点击

    最近在开发一个跨平台小工具, 需要调用系统能力, 例如 "获取其他窗口句柄" "激活其他窗口" "模拟按键执行粘贴" "注册全局热键" 这些功能在 Windows 和 Mac 都可以通过调用系统 API 或系统脚本(Mac 上需要授权)的方式实现, 总体上比较舒服好用.

    当准备适配 Linux 的时候, 却发现发现麻烦大了. 原以为以 Linux 的开放程度, 适配过程应该是很轻松的, 结果却恰恰相反. 查阅资料, 都说 Wayland 正在替代 X11, 所以毫无疑问优先适配 Wayland . 但是在 Wayland 上连改变自身窗口位置的功能都无权实现. 也没办法注册全局热键. 更别提上述的的敏感功能了.

    其实我可以理解这些行为的敏感, 容易被恶意利用. 但是可以像 MAC 一样授权呀, 一刀切的不提供, 实在不知道桌面软件要怎么开发. 如果用 xcb 兼容模式运行也无法实现所有功能.

    如果只兼容 X11, 失去 Wayland 的用户, 真的挺遗憾的, 也不完美.

    还有办法么......

    37 条回复    2025-12-16 10:52:29 +08:00
    mgrddsj
        1
    mgrddsj  
       20 小时 45 分钟前
    “注册全局热键”在 Wayland 下其实是有的,应该是要调用 org.freedesktop.portal.GlobalShortcuts 这个 API 。不过 GNOME 在今年发布的 48 版本才支持这功能( Ubuntu 24 LTS 的 GNOME 版本才 46 ),所以我也不知道为什么主流发行版和桌面环境都这么着急拥抱 Wayland 这个混乱的半成品。
    激活其它窗口这个的话,可能确实没有通用的/跨桌面环境的实现。我用着 GNOME 桌面,可以用 "Activate Window By Title" 这个 GNOME 拓展 + 自定义快捷键执行一个 gdbus call 命令来实现一键激活微信窗口。
    不过要不是 X11 对触控板的支持不好( Chromium 系软件无法双指缩放、惯性滚动),我也不会用 Wayland ,简直是戴着脚镣跳舞。
    Cooky
        2
    Cooky  
       20 小时 43 分钟前   ❤️ 3
    别拿那么高雅的词来形容 Wayland ,Wayland 就是烂,只不过是相比起 x11 支持新的特性,老特性该有的一样没有
    stinkytofux
        3
    stinkytofux  
    OP
       20 小时 40 分钟前
    @mgrddsj #1 很难搞, 即便我想带 Linux 玩, 现实也不允许了.
    lumia1020
        4
    lumia1020  
       19 小时 45 分钟前
    前年做一个工业显示屏,要为应用程序实现一个视频外挂窗口,这个视频窗口要顶层显示和自定义位置,发现系统不支持,费老大劲了。好就好在是开源,通过修改 Wayland 源代码来实现了。
    Greendays
        5
    Greendays  
       19 小时 39 分钟前
    之前 Windows 不是有那种骗小白的重装系统镜像,安装完了以后要你扫码付款的那个,就是利用了全屏接口来强制全屏的吧。这类权限被限制还是有道理的。
    john6lq
        6
    john6lq  
       19 小时 35 分钟前
    @Greendays 不是限不限制的问题,现在是根本没有这个 API 。
    ergouli848
        7
    ergouli848  
       18 小时 28 分钟前
    那就开发 X11 呗,不是有 XWayland 这个兼容层么。
    xtreme1
        8
    xtreme1  
       18 小时 16 分钟前   ❤️ 1
    并非封闭, 而是真空中的球形标准.
    你一问就是我们还要考虑没有 XY 坐标的窗口管理器. 我草. KISS 原则不知道扔到火星去了.
    yyzh
        9
    yyzh  
       18 小时 9 分钟前 via Android
    Wayland 就是烂+1.装了新版 ubuntu 25.10 之后进设置开远程桌面居然会死程序。被迫换旧版 ubuntu 了
    stinkytofux
        10
    stinkytofux  
    OP
       18 小时 2 分钟前
    @ergouli848 #7 兼容层不行, 达不到效果. 研究了一下午, 放弃了, 决定只适配 X11 了.
    muxueqz
        11
    muxueqz  
       17 小时 33 分钟前
    这些功能可以提供 CLI, 由用户自己在 DE/WM 中配置快捷键
    pckillers
        12
    pckillers  
       17 小时 32 分钟前
    远程键鼠重度用户表示 Wayland 就是个残缺品。 继续 X11+XFCE 。 直到哪天开机自动接入远程键鼠控制与剪贴板共享能用了。
    crysislinux
        13
    crysislinux  
       14 小时 0 分钟前 via Android
    开放是开放源码不是开放 feature ,所以。
    zzzsy
        14
    zzzsy  
       13 小时 20 分钟前
    开放是你可以加上这个 API
    willm
        15
    willm  
       13 小时 9 分钟前
    不是封闭,就是单纯的挫
    levelworm
        16
    levelworm  
       9 小时 43 分钟前
    @Cooky #2
    但是我在论坛上问了一位原 X11 开发人员现 Wayland 开发人员,似乎 X11 的历史包袱实在是太重了,所以只能推倒从头再来。
    emonc
        17
    emonc  
       7 小时 57 分钟前
    封闭是它有但是不给你。
    passive
        18
    passive  
       5 小时 5 分钟前 via Android
    刚出 Gnome3 的时候巨烂,KDE4 也烂得没法用,Pulseaudio 能关就关,ChromeOS 就是自启动一个 chrome ,Python3 的生态也没法用……
    这些现在成熟的软件都是这么过来的。
    只有 terminal ,vi 和一系列 shell 下的文字处理工具在我从业之后没怎么变。哦,Perl 也没人用了,pcre 还活着。
    sudo123
        19
    sudo123  
       3 小时 29 分钟前
    你说对了,Windows 才是生态开放系统……
    L4Linux
        20
    L4Linux  
       3 小时 17 分钟前 via Android
    你可以研究研究 GIMP 怎么做的,甚至直接问它的开发者。
    yolee599
        21
    yolee599  
       2 小时 9 分钟前 via Android
    不是封闭,就是单纯的功能没做出来,Wayland 相当于推翻原来的 X11 重做了
    crackidz
        22
    crackidz  
       2 小时 5 分钟前   ❤️ 1
    大哥封闭是权限封闭的意思吗?你的意思是随意提权的系统才是“开放的”系统?那么病毒和恶意软件作者可要笑嘻了
    Danswerme
        23
    Danswerme  
       2 小时 3 分钟前
    Wayland 发展这么缓慢呀,记得 N 年前我研究怎么安装 ArchLinux 时许多人就推荐 Wayland ,说它才是未来,这么些年过去了还是没彻底取代 X11
    sir283
        24
    sir283  
       2 小时 0 分钟前
    不是封闭,是压根没有,但是你可以拉取 Wayland 的源码,自己搞一套这样的通用标准,然后提 pr 过去,我相信如果你的代码水平过关的话,他们肯定很愿意接受你的 pr ,那样的话,在下个版本,他们就会加上你的这个标准了,那样就可以适配 Linux 端了,你说是吧?#(滑稽)
    tolbkni
        25
    tolbkni  
       2 小时 0 分钟前
    @Danswerme #23 也就今年才有全面取代 X11 的苗头
    Cooky
        26
    Cooky  
       1 小时 59 分钟前   ❤️ 1
    @levelworm 屁的历史包袱,Wayland 现在都一堆包袱
    bruce0
        27
    bruce0  
       1 小时 54 分钟前
    我之前一直用 X11,上周不知道为啥,更新 apt upgrade 了一次,然后就是桌面无限卡死,用的 Debian13+gnome,没办法换到 wayland 了,缺点就是不支持搜狗输入法了,换到 rime 了,clion 里偶发的弹窗只显示黑框,重新打开可能就好了
    stinkytofux
        28
    stinkytofux  
    OP
       1 小时 49 分钟前
    @crackidz #22 "随意提权"这个帽子扣大了, 例如注册全局热键是很基本的需求, 在 mac 甚至都不需要授权. 很遗憾在 Wayland 完全没办法实现.
    Narcissu5
        29
    Narcissu5  
       1 小时 33 分钟前   ❤️ 1
    Wayland 也出来好多年了,这些问题不是“不成熟”,而是项目组脑子有💩,这个很多地方都有吐槽
    realpg
        30
    realpg  
    PRO
       1 小时 29 分钟前
    wayland 的开放指的是我可以让你看到我的屎山是怎么写的
    minami
        31
    minami  
       1 小时 22 分钟前
    @levelworm 红帽故意打压 Xorg 罢了
    kapr1k0rn
        32
    kapr1k0rn  
       1 小时 22 分钟前
    11 楼是正解,OP 属于用 Windows 的 UI 思维去套 linux 了
    minami
        33
    minami  
       1 小时 20 分钟前   ❤️ 1
    @sir283 说明你没跟 wayland 开发团队打过交道,他们就是一群脑子有病的人,社区写好的 pr 都被他们拒绝多少次了,问就是不符合他们的哲学
    wwwz
        34
    wwwz  
       1 小时 19 分钟前
    不需要适配,不能理解使用 Linux 桌面的人
    w568w
        35
    w568w  
       33 分钟前   ❤️ 2
    天下苦 Wayland 久矣。X11 是太开放导致安全漏洞多,那 Wayland 就是太封闭导致什么也做不了:

    1. 宁愿提供一个个独立的、随意设计的 Protocol ,也不愿意像 macOS 那样设计一个统一的权限系统。

    现状就是:有的功能需要用户显式授权、有的功能需要请求后 Compositor 自行实现(例如移动窗口)、有的功能不需要授权可以直接调用。设计选择完全看协议发起者的心情;

    2. 通过新协议的速度慢得令人发指。

    人人参与讨论的结果就是人人都不满意,一个协议讨论五六年仍然有「原教旨开发者」会反对(例如屏幕截图 ext-image-copy-capture-1 、置顶显示 wlr-layer-shell-unstable-v1 、全局热键 hyprland-global-shortcuts-v1 );

    3. 碎片化。

    由于上一点中所说的原因,很多协议把社区开发者熬走了都还没 merge ,各家 WM/DE 只能自行实现私有协议。目前 wlr 、KDE 、Hyprland 、COSMIC 、Weston 、Treeland 、AGL ,只要你能叫出名的 WM/DE/framework ,都有一大批自家的协议来补充那些 Wayland 不合并的功能。另外还有一些已经合并但下游开发者不想/不能及时支持的功能。
    Aixtuz
        36
    Aixtuz  
       27 分钟前
    允许但之前没人修这条路 vs 你想修但不允许你修,这是两回事。
    LokiSharp
        37
    LokiSharp  
       14 分钟前
    你直接去给 Wayland 写个 PR ,通不过就开个分支不就好了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5657 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 03:06 · PVG 11:06 · LAX 19:06 · JFK 22:06
    ♥ Do have faith in what you're doing.