原来 Linux 桌面才是最封闭的系统. - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
stinkytofux
6.09D
V2EX    Linux

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

  •  1
     
  •   stinkytofux 1 天前 4476 次点击

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

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

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

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

    还有办法么......

    41 条回复    2025-12-16 15:07:24 +08:00
    mgrddsj
        1
    mgrddsj  
       1 天前
    “注册全局热键”在 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  
       1 天前   4
    别拿那么高雅的词来形容 Wayland ,Wayland 就是烂,只不过是相比起 x11 支持新的特性,老特性该有的一样没有
    stinkytofux
        3
    stinkytofux  
    OP
       1 天前
    @mgrddsj #1 很难搞, 即便我想带 Linux 玩, 现实也不允许了.
    lumia1020
        4
    lumia1020  
       23 小时 54 分钟前
    前年做一个工业显示屏,要为应用程序实现一个视频外挂窗口,这个视频窗口要顶层显示和自定义位置,发现系统不支持,费老大劲了。好就好在是开源,通过修改 Wayland 源代码来实现了。
    Greendays
        5
    Greendays  
       23 小时 48 分钟前
    之前 Windows 不是有那种骗小白的重装系统镜像,安装完了以后要你扫码付款的那个,就是利用了全屏接口来强制全屏的吧。这类权限被限制还是有道理的。
    john6lq
        6
    john6lq  
       23 小时 44 分钟前
    @Greendays 不是限不限制的问题,现在是根本没有这个 API 。
    ergouli848
        7
    ergouli848  
       22 小时 37 分钟前
    那就开发 X11 呗,不是有 XWayland 这个兼容层么。
    xtreme1
        8
    xtreme1  
       22 小时 25 分钟前   3
    并非封闭, 而是真空中的球形标准.
    你一问就是我们还要考虑没有 XY 坐标的窗口管理器. 我草. KISS 原则不知道扔到火星去了.
    yyzh
        9
    yyzh  
       22 小时 18 分钟前 via Android   1
    Wayland 就是烂+1.装了新版 ubuntu 25.10 之后进设置开远程桌面居然会死程序。被迫换旧版 ubuntu 了
    stinkytofux
        10
    stinkytofux  
    OP
       22 小时 11 分钟前
    @ergouli848 #7 兼容层不行, 达不到效果. 研究了一下午, 放弃了, 决定只适配 X11 了.
    muxueqz
        11
    muxueqz  
       21 小时 41 分钟前
    这些功能可以提供 CLI, 由用户自己在 DE/WM 中配置快捷键
    pckillers
        12
    pckillers  
       21 小时 41 分钟前   1
    远程键鼠重度用户表示 Wayland 就是个残缺品。 继续 X11+XFCE 。 直到哪天开机自动接入远程键鼠控制与剪贴板共享能用了。
    crysislinux
        13
    crysislinux  
       18 小时 9 分钟前 via Android
    开放是开放源码不是开放 feature ,所以。
    zzzsy
        14
    zzzsy  
       17 小时 29 分钟前
    开放是你可以加上这个 API
    willm
        15
    willm  
       17 小时 18 分钟前   1
    不是封闭,就是单纯的挫
    levelworm
        16
    levelworm  
       13 小时 52 分钟前   1
    @Cooky #2
    但是我在论坛上问了一位原 X11 开发人员现 Wayland 开发人员,似乎 X11 的历史包袱实在是太重了,所以只能推倒从头再来。
    emonc
        17
    emonc  
       12 小时 6 分钟前
    封闭是它有但是不给你。
    passive
        18
    passive  
       9 小时 14 分钟前 via Android
    刚出 Gnome3 的时候巨烂,KDE4 也烂得没法用,Pulseaudio 能关就关,ChromeOS 就是自启动一个 chrome ,Python3 的生态也没法用……
    这些现在成熟的软件都是这么过来的。
    只有 terminal ,vi 和一系列 shell 下的文字处理工具在我从业之后没怎么变。哦,Perl 也没人用了,pcre 还活着。
    sudo123
        19
    sudo123  
       7 小时 38 分钟前
    你说对了,Windows 才是生态开放系统……
    L4Linux
        20
    L4Linux  
       7 小时 26 分钟前 via Android
    你可以研究研究 GIMP 怎么做的,甚至直接问它的开发者。
    yolee599
        21
    yolee599  
       6 小时 18 分钟前 via Android   1
    不是封闭,就是单纯的功能没做出来,Wayland 相当于推翻原来的 X11 重做了
    crackidz
        22
    crackidz  
       6 小时 14 分钟前   1
    大哥封闭是权限封闭的意思吗?你的意思是随意提权的系统才是“开放的”系统?那么病毒和恶意软件作者可要笑嘻了
    Danswerme
        23
    Danswerme  
       6 小时 12 分钟前   1
    Wayland 发展这么缓慢呀,记得 N 年前我研究怎么安装 ArchLinux 时许多人就推荐 Wayland ,说它才是未来,这么些年过去了还是没彻底取代 X11
    sir283
        24
    sir283  
       6 小时 9 分钟前
    不是封闭,是压根没有,但是你可以拉取 Wayland 的源码,自己搞一套这样的通用标准,然后提 pr 过去,我相信如果你的代码水平过关的话,他们肯定很愿意接受你的 pr ,那样的话,在下个版本,他们就会加上你的这个标准了,那样就可以适配 Linux 端了,你说是吧?#(滑稽)
    tolbkni
        25
    tolbkni  
       6 小时 8 分钟前
    @Danswerme #23 也就今年才有全面取代 X11 的苗头
    Cooky
        26
    Cooky  
       6 小时 7 分钟前   2
    @levelworm 屁的历史包袱,Wayland 现在都一堆包袱
    bruce0
        27
    bruce0  
       6 小时 3 分钟前
    我之前一直用 X11,上周不知道为啥,更新 apt upgrade 了一次,然后就是桌面无限卡死,用的 Debian13+gnome,没办法换到 wayland 了,缺点就是不支持搜狗输入法了,换到 rime 了,clion 里偶发的弹窗只显示黑框,重新打开可能就好了
    stinkytofux
        28
    stinkytofux  
    OP
       5 小时 58 分钟前
    @crackidz #22 "随意提权"这个帽子扣大了, 例如注册全局热键是很基本的需求, 在 mac 甚至都不需要授权. 很遗憾在 Wayland 完全没办法实现.
    Narcissu5
        29
    Narcissu5  
       5 小时 42 分钟前   3
    Wayland 也出来好多年了,这些问题不是“不成熟”,而是项目组脑子有,这个很多地方都有吐槽
    realpg
        30
    realpg  
    PRO
       5 小时 38 分钟前
    wayland 的开放指的是我可以让你看到我的屎山是怎么写的
    minami
        31
    minami  
       5 小时 31 分钟前
    @levelworm 红帽故意打压 Xorg 罢了
    kapr1k0rn
        32
    kapr1k0rn  
       5 小时 31 分钟前
    11 楼是正解,OP 属于用 Windows 的 UI 思维去套 linux 了
    minami
        33
    minami  
       5 小时 29 分钟前   2
    @sir283 说明你没跟 wayland 开发团队打过交道,他们就是一群脑子有病的人,社区写好的 pr 都被他们拒绝多少次了,问就是不符合他们的哲学
    wwwz
        34
    wwwz  
       5 小时 28 分钟前   1
    不需要适配,不能理解使用 Linux 桌面的人
    w568w
        35
    w568w  
       4 小时 42 分钟前   3
    天下苦 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  
       4 小时 36 分钟前
    允许但之前没人修这条路 vs 你想修但不允许你修,这是两回事。
    LokiSharp
        37
    LokiSharp  
       4 小时 23 分钟前
    你直接去给 Wayland 写个 PR ,通不过就开个分支不就好了
    Esec
        38
    Esec  
       4 小时 3 分钟前 via Android
    不要有太多包袱,该 root 就上,怕收不住就留个自毁按钮吧
    blumia
        39
    blumia  
       3 小时 46 分钟前   2
    现阶段还是只兼容 X11 吧,Wayland 的无障碍支持是惨不忍睹状态,你甚至都无法控制己窗口所在位于屏幕上的位置,甚至无法置顶自己的窗口。自动化的功能全靠桌面环境(对应的合成器)有没有提供相关的辅助功能,非常碎片化。
    takeshima
        40
    takeshima  
       16 分钟前 via iPhone
    x11 确实太落后了,比如两个显示器用不同缩放比例、不同分辨率,x11 支持不了,wayland 可以。但是 wayland 目前状况就是个半成品,很多该有的基础功能还没做好,只能说 Linux 桌面这块儿目前确实不太行
    moooxin
        41
    moooxin  
       8 分钟前
    刚被 Wayland 折磨过的人来说。。 真的是 SB 。。。 为了所谓的安全。。?? 就降低的电动车的标准吗??
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5210 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 07:15 PVG 15:15 LAX 23:15 JFK 02:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86