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

Fedora 27下能否通过Bash脚本自动接听Google Hangouts来电?

自动完成Google Hangouts来电接听的Bash脚本优化方案

当然可以!在Fedora 27上,我们可以借助几个Linux工具把这个流程完全自动化——从打开Chrome、定位Hangouts标签,到模拟点击接听按钮,彻底省去那三次手动操作。下面是具体的实现方案:

1. 安装必备工具

我们需要两个工具来实现窗口控制和模拟输入:xdotool(模拟键盘鼠标操作)和wmctrl(管理窗口)。在Fedora上用dnf安装即可:

sudo dnf install xdotool wmctrl

确保你已经安装了Google Chrome,要是还没装,用sudo dnf install google-chrome-stable搞定。

2. 完整自动化脚本示例

把下面的代码保存为hangouts-auto-answer.sh,记得替换掉你自己的音频切换逻辑和接听按钮坐标:

#!/bin/bash

# --------------------------
# 第一步:切换音频到耳机(保留你已有的逻辑)
# --------------------------
echo "正在切换音频输出到耳机..."
# 替换成你实际使用的音频切换命令,比如pactl或amixer的指令
# 示例(针对PulseAudio):
pactl set-sink-port @DEFAULT_SINK@ analog-output-headphones

# --------------------------
# 第二步:启动/激活Chrome并打开Hangouts页面
# --------------------------
# 检查Chrome是否在运行
if ! pgrep -x "chrome" > /dev/null; then
    echo "Chrome未运行,启动并打开Hangouts..."
    # 用--app参数打开独立的Hangouts窗口,更方便后续定位
    google-chrome --app=https://hangouts.google.com/ &
    # 等待Chrome加载完成,根据你的网速调整时间(比如5-10秒)
    sleep 7
else
    echo "Chrome已运行,切换到Hangouts窗口..."
    # 激活Chrome窗口
    wmctrl -a "Hangouts"
    # 如果Hangouts标签没打开,就导航到页面
    xdotool key ctrl+l
    xdotool type "https://hangouts.google.com/"
    xdotool key Return
    sleep 4
fi

# --------------------------
# 第三步:模拟点击"Answer call"按钮
# --------------------------
echo "尝试自动接听来电..."
# 先获取Hangouts窗口的ID
HANGOUTS_WINDOW=$(wmctrl -l | grep "Hangouts" | awk '{print $1}')

# 替换下面的X和Y为接听按钮的相对坐标(相对于窗口左上角)
# 获取坐标方法:打开Hangouts来电页面,把鼠标移到接听按钮上,运行`xdotool getmouselocation`
# 然后用输出的x/y减去窗口左上角的x/y(可以用`xdotool getwindowgeometry $HANGOUTS_WINDOW`查看)
X=350
Y=400

# 移动鼠标到按钮位置并点击
xdotool mousemove --window $HANGOUTS_WINDOW $X $Y
xdotool click 1

echo "自动操作完成!"

3. 关键细节说明

  • 音频切换:一定要把脚本里的音频命令替换成你自己正在使用的逻辑,不然这部分会失效。
  • 坐标获取:手动把鼠标移到接听按钮上,运行xdotool getmouselocation得到绝对坐标;再运行xdotool getwindowgeometry $(wmctrl -l | grep "Hangouts" | awk '{print $1}')得到窗口左上角的坐标,用绝对坐标减去窗口坐标就是相对坐标,替换脚本里的X和Y。
  • 等待时间sleep的时间要根据你的电脑性能和网速调整,确保页面完全加载后再执行点击操作,不然可能会点空。
  • 权限设置:给脚本加上执行权限:chmod +x hangouts-auto-answer.sh

4. 常见问题解决

  • 点击位置不准:如果Chrome窗口大小变化,相对坐标可能失效。可以先把Chrome设置为固定大小,或者用xdotool search --name "Answer call"尝试通过文本定位按钮(不过这个方法对网页元素支持有限,坐标法更可靠)。
  • 找不到Hangouts窗口:如果wmctrl -a "Hangouts"没反应,可能是窗口标题不对,运行wmctrl -l查看所有窗口的标题,替换成实际的标题。
  • Chrome启动慢:延长sleep的时间,比如改成10秒,确保页面加载完成。

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

火山引擎 最新活动