You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在GNOME 3下通过脚本指定工作区启动应用(Ubuntu 17)

在Ubuntu 17(GNOME环境)中实现开机启动应用并分配到指定工作区

当然可以实现!在GNOME 3.x环境下,我们可以借助wmctrl这个轻量的命令行窗口控制工具,轻松把指定应用分配到对应工作区。下面是一步步的实现方案:

1. 先安装必要工具

首先得安装wmctrl,它能帮我们通过命令行操作窗口和工作区:

sudo apt update && sudo apt install wmctrl

2. 脚本编写思路

这里要注意一个关键点:应用启动后需要一点时间才能加载出窗口,所以脚本里必须加延迟,不然wmctrl找不到窗口就白忙活了。另外,GNOME的工作区编号是从0开始计数的——第一工作区是0,第二是1,第三是2,别搞混啦。

3. 完整脚本示例

创建一个名为start_apps.sh的脚本文件,把下面内容贴进去:

#!/bin/bash

# 启动Firefox并移到第一工作区(编号0)
firefox &
sleep 5  # 延迟时间根据你的电脑性能调整,确保窗口加载完成
wmctrl -r "Mozilla Firefox" -t 0

# 启动Slack并移到第二工作区(编号1)
slack &
sleep 4
wmctrl -r "Slack" -t 1

# 启动Spotify并移到第三工作区(编号2)
spotify &
sleep 3
wmctrl -r "Spotify" -t 2

小细节说明:

  • wmctrl -l命令可以查看当前所有窗口的标题,确保-r后面的标题和实际窗口匹配
  • 如果窗口标题经常变(比如Firefox打开不同网页标题会变),可以用类名来匹配,更可靠。用wmctrl -lx查看窗口类名,然后改成这样:
    wmctrl -r firefox.Firefox -t 0
    
  • 延迟时间sleep可以灵活调整,硬件好的话可以缩短,反之加长。

4. 设置开机自动运行

  1. 先给脚本加执行权限:
chmod +x ~/start_apps.sh
  1. 打开GNOME的「启动应用程序」(直接在搜索栏搜就能找到)
  2. 点击「添加」,在「命令」栏里填脚本的绝对路径(比如/home/你的用户名/start_apps.sh),名称和注释随便填就行
  3. 保存后,下次开机就会自动执行这个脚本,把应用分到对应工作区啦!

额外提醒

如果发现开机时脚本执行太早,桌面环境还没完全加载好,导致工作区分配失败,可以在脚本最开头加个全局延迟:

sleep 10  # 等10秒再启动应用

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

火山引擎 最新活动