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

如何在GNOME 17.10启动时将指定窗口分配到对应工作区?

解决方案:GNOME 17.10 自动固定窗口到指定工作区和位置

针对你在GNOME 17.10下想要自动固定窗口位置和工作区的需求,结合你已经在用的Auto Move Windows和Workspace Grid扩展,我们可以通过窗口类名精准匹配+自动化窗口规则工具来实现完全无需手动操作的效果。下面是分步实现方案:

1. 让Auto Move Windows精准识别目标程序

很多程序的窗口类名和进程名不一致,这是导致Auto Move Windows失效的常见原因。你需要先获取Keep和Hangouts的真实窗口类名:

  • 打开Keep窗口,终端运行命令:
    xprop WM_CLASS
    
    点击Keep窗口,终端会输出类似WM_CLASS(STRING) = "keep", "Google Keep"的内容,记住第二个值(比如Google Keep)——这是后续匹配要用的核心标识。
  • 用同样方法获取Hangouts的窗口类名。

接下来打开GNOME Tweaks(或直接进入Auto Move Windows扩展设置),添加这两个类名,将它们分配到工作区1。这样程序启动时会自动跳转到目标工作区,但还需要调整位置。

2. 用devilspie2自动调整窗口大小和位置

devilspie2是轻量的窗口规则工具,能实时监控窗口创建并自动应用预设的大小、位置规则,完美适配你的场景:

安装devilspie2

终端运行:

sudo apt update && sudo apt install devilspie2

创建窗口规则脚本

先创建配置目录(如果不存在):mkdir -p ~/.config/devilspie2,然后在该目录下创建两个Lua脚本:

Keep的规则脚本(keep.lua)

-- 匹配Google Keep窗口
if get_window_class() == "Google Keep" then
  -- 设置窗口到屏幕左侧,宽度为屏幕一半、高度全屏
  -- 请根据你的屏幕分辨率修改数值,比如1920x1080的屏幕,宽度设为960
  set_window_geometry(0, 0, 960, 1080)
  -- 固定到工作区1(Workspace Grid的工作区编号从1开始)
  set_window_workspace(1)
end

Hangouts的规则脚本(hangouts.lua)

-- 匹配Google Hangouts窗口
if get_window_class() == "Google Hangouts" then
  -- 设置窗口到屏幕右侧,尺寸与Keep对称
  set_window_geometry(960, 0, 960, 1080)
  set_window_workspace(1)
end

添加devilspie2到启动项

打开GNOME的“启动应用程序”设置,添加新项:

  • 名称:Window Auto Setup
  • 命令:devilspie2
  • 备注:自动调整固定窗口的位置和大小

这样devilspie2会随系统启动,一旦Keep或Hangouts窗口创建,就会自动应用规则。

3. 备选方案:用wmctrl写bash脚本

如果你更习惯命令行工具,可以用wmctrl实现同样效果:

安装wmctrl

sudo apt install wmctrl

创建调整脚本

创建~/setup_fixed_windows.sh文件,内容如下:

#!/bin/bash
# 等待程序启动(根据电脑速度调整延迟时间)
sleep 5

# 调整Keep窗口:移动到工作区1(wmctrl工作区编号从0开始计数),设置位置大小
wmctrl -r "Google Keep" -t 0
wmctrl -r "Google Keep" -e 0,0,0,960,1080

# 调整Hangouts窗口
wmctrl -r "Google Hangouts" -t 0
wmctrl -r "Google Hangouts" -e 0,960,0,960,1080

配置脚本权限和启动项

给脚本添加执行权限:

chmod +x ~/setup_fixed_windows.sh

然后在“启动应用程序”里添加这个脚本,注意把它放在Keep和Hangouts的启动项之后,确保程序启动后再执行调整。

测试和调整

  • 先手动运行脚本或启动devilspie2,打开Keep和Hangouts验证效果
  • 如果窗口位置不对,根据实际屏幕分辨率修改脚本里的数值
  • 若Auto Move Windows仍不生效,用wmctrl -lx查看所有窗口的类名,检查匹配是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:46:21