You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过终端在KDE中将窗口移至第二显示器

刚好碰到过类似的问题,结合CentOS7+KDE的环境,给你几个靠谱的解决方案:

一、调整KDE显示器配置,让xdotools能跨屏工作

KDE默认会把每个显示器设为独立的X11 Screen,这也是xdotools搞不定跨屏的核心原因——它默认只在单个Screen范围内操作。你可以改成合并显示器模式,把多屏变成一个大的逻辑桌面:

  • 打开KDE的「系统设置」,找到「显示和监控」
  • 在显示器配置页,点击顶部的「配置」下拉框,选「合并显示器」(别选「独立配置每个显示器」)
  • 应用设置后注销再登录,这时所有显示器会拼成一个大桌面空间,xdotools的windowmove命令就能正常跨屏了,只要算好目标屏幕的坐标就行(比如第二个屏幕的起始X坐标就是第一个屏幕的宽度)
二、用wmctrl替代xdotools,适配KDE独立屏幕

如果不想改显示器配置,wmctrl是更适配KDE窗口管理的工具,它能识别KDE的独立屏幕:

  • 先安装:sudo yum install wmctrl(CentOS7默认源里直接能装)
  • 查窗口ID:wmctrl -l,会列出所有窗口的ID和标题,找到你要移动的那个
  • 移到指定屏幕:
    • 用坐标指定:wmctrl -r <窗口标题/ID> -e 0,<X坐标>,<Y坐标>,<宽度>,<高度>,比如第一个屏是1920x1080,移到第二个屏就写wmctrl -r "Firefox" -e 0,1920,0,1920,1080
    • 更省事的指定屏幕编号:先wmctrl -d看屏幕编号(比如第二个屏是1),然后wmctrl -r <窗口ID> -t 1,直接把窗口扔到对应屏幕
三、终端实现KDE右键的「切换屏幕」功能

你看到的右键切换屏幕,其实是调用了KWin(KDE的窗口管理器)的内置功能,用qdbus直接调用接口就能在终端实现:

  • 先拿窗口ID:用wmctrl -l或者xwininfo(运行后点击目标窗口就能获取ID)
  • 切换到下一个屏幕:qdbus org.kde.KWin /KWin moveWindowToNextScreen <窗口ID>
  • 切换到上一个屏幕:qdbus org.kde.KWin /KWin moveWindowToPreviousScreen <窗口ID>
  • 指定具体屏幕:先qdbus org.kde.KWin /KWin screenCount看总屏幕数,然后用qdbus org.kde.KWin /KWin moveWindowToScreen <窗口ID> <屏幕索引>(索引从0开始)

注意:如果你的CentOS7装的是老版Plasma 4,qdbus的服务名是org.kde.kwin(小写k),命令改成qdbus org.kde.kwin /KWin moveWindowToNextScreen <窗口ID>就行

小提示
  • 测试的时候可以开个终端窗口,用wmctrl -l拿到它的ID,再用上面的命令测试移动,这样能快速验证是否生效
  • CentOS7的KDE默认是X11环境,所以这些方法都适用;如果是Wayland的话(不过CentOS7基本不会默认用),方法会不一样

内容的提问来源于stack exchange,提问作者Husk Rekoms

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:20:50