JaminT
V2EX  ›  macOS

mac 如何实现连接某 wifi 后自动静音

  •  
  •   JaminT · Sep 13, 2021 · 3533 views
    This topic created in 1719 days ago, the information mentioned may be changed or developed.

    想实现连接公司 wifi 自动静音,有没有什么方案呀

    15 replies    2021-09-23 22:14:58 +08:00
    sue0917
        1
    sue0917  
       Sep 13, 2021
    iphone 不是有捷径吗,mac 没有吗
    cnscud
        2
    cnscud  
       Sep 13, 2021   ❤️ 2
    /etc/ppp/ip-up


    #!/bin/sh

    case "$5" in
    192.199.1.100)
    osascript -e "set volume 0"
    ;;
    172.16.0.11)
    /sbin/route add -net 192.168.253 -interface $1
    ;;
    *)
    esac
    JaminT
        3
    JaminT  
    OP
       Sep 13, 2021
    @cnscud #2 新建一个 ip-up 把脚本放进去好像没用呀
    #!/bin/sh

    case "$5" in
    192.168.137.35)
    osascript -e "set volume 0"
    ;;
    *)
    esac
    mansurx
        4
    mansurx  
       Sep 13, 2021
    @sue0917 #1 MacOS 12 才有捷径,还没发正式版
    altchen
        5
    altchen  
       Sep 13, 2021   ❤️ 1
    cnscud
        6
    cnscud  
       Sep 13, 2021
    里面的 IP 是你的网络的网关地址
    cnscud
        7
    cnscud  
       Sep 13, 2021
    @cuixiao603 里面的 IP 是你的网络的网关地址, 不确定的话, 你可以打印 $5 出来看看
    xaoflysho
        8
    xaoflysho  
       Sep 13, 2021
    @mansurx 可惜有捷径也没有自动化
    JaminT
        9
    JaminT  
    OP
       Sep 13, 2021
    @cnscud #7 感觉是 连接 wifi 时候 脚本没有被调用
    minamike
        10
    minamike  
       Sep 13, 2021   ❤️ 1
    用 launchctl 每几秒运行一下检查 ip 地址然后静音的脚本
    https://www.jifu.io/posts/2733308530/
    xem
        11
    xem  
       Sep 13, 2021   ❤️ 1
    据说 hammerspoon 可以解决你这个需求,我没实现过,你可以研究一下
    wg5945
        12
    wg5945  
       Sep 13, 2021   ❤️ 1
    https://github.com/eprev/locationchanger

    然后静音的命令是 osascript -e "set volume output muted 1"

    连接其他 wifi 的话 osascript -e "set volume output muted 0" 关闭静音
    willis
        13
    willis  
       Sep 13, 2021
    hammerspoon 才是正解
    mMartin
        14
    mMartin  
       Sep 14, 2021
    hammerspoon 正解 我实现过连接某个 WiFi 自动连接 smb
    JaminT
        15
    JaminT  
    OP
       Sep 23, 2021
    通过 hammerspoon 实现了代码如下:
    function ssidChangedCallback()
    ssid = hs.wifi.currentNetwork()
    if (ssid == "yyyyyyy" or ssid == "xxxxxxxx") then
    hs.audiodevice.defaultOutputDevice():setVolume(0)
    end
    end


    wifiWatcher = hs.wifi.watcher.new(ssidChangedCallback)
    wifiWatcher:start()
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1011 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 23:24 · PVG 07:24 · LAX 16:24 · JFK 19:24
    ♥ Do have faith in what you're doing.