让MAC在TouchBar显示网速

玩过bettertouchtool的人都知道是个神器可以自定义很多功能。这段时间觉得全屏上网时想观察一下网速看正不正常,于是就找资料看有没相关的配置方法。无奈很多都是基本教程,如果需要实时显示网速,需要结合脚本来用。折腾了一个晚上总算做得有点满意了,发个教程让有需要的人少绕点弯路。
帖子适合有bettertouchtool经验的人使用,如果不会用,建议看扫盲贴。
bettertouchtool使用教程
我其实也是个搬运工,只不过修改了部分代码,源代码参考。
https://community.folivora.ai/t/way-to-get-network-traffic-on-the-touchbar/1714
下面为教程

1、新建一个命令形式的widget
在这里插入图片描述
2、找个地方新建一个Python脚本,脚本内容

import time
import psutil

def main():
    old_value = 0
    old_value_send = 0

    while True:
        new_value = psutil.net_io_counters().bytes_recv
        new_value_send = psutil.net_io_counters().bytes_sent
        if old_value:
            send_stat(new_value - old_value, new_value_send - old_value_send)
            break

        old_value = new_value
        old_value_send = new_value_send

        time.sleep(1)

def convert_to_mbit(value):
    return value/1024./1024.

def send_stat(value_recv, value_send):
    print "{0:.2f}\t{1:.2f}".format(convert_to_mbit(value_recv), convert_to_mbit(value_send))

main()

3、编辑刚新建的widget,将以下脚本添加上去。
在这里插入图片描述
记得将圈红的地方改为自己Python的路径
↑记得将圈红的地方改为自己Python的路径

set value to do shell script "python /Users/xx/Public/getNetStats.py"

set myArray to my theSplit(value, "	")

on theSplit(theString, theDelimiter)
	-- save delimiters to restore old settings
	set oldDelimiters to AppleScript's text item delimiters
	-- set delimiters to delimiter to be used
	set AppleScript's text item delimiters to theDelimiter
	-- create the array
	set theArray to every text item of theString
	-- restore the old setting
	set AppleScript's text item delimiters to oldDelimiters
	-- return the result
	return theArray
end theSplit

set value1 to item 1 of myArray & " MB▼
" & item 2 of myArray & " MB▲"

return value1

点击run测试一下
在这里插入图片描述
显示正常,如果Python报错就是没装psutil插件

4、安装psutil
打开终端,输入sudo pip install psutil,输入密码安装即可。

5、调整显示窗口将字体改为10
在这里插入图片描述
最后成果展示
在这里插入图片描述
==============7月11日更新=
发现单纯网速不多够,又找方法把CPU温度和风扇速度弄了上去,这样打游戏的时候就可以实时看到风扇速度了。
第一步 终端输入sudo gem install iStats安装iStats

第二部 新建一个叫做温度的widget,选择apple script,输入下面代码

set myTestString to do shell script "/usr/local/bin/istats"

set myArray to my theSplit(myTestString, "--- CPU Stats ---
CPU temp:               ")
set CPUArray to my theSplit(item 2 of myArray, "°C ")
set FanArray to my theSplit(item 2 of myArray, "Fan 0 speed:            ")
set FanArray to my theSplit(item 2 of FanArray, " RPM")
set CPUArray to my theSplit(item 2 of myArray, ".")
on theSplit(theString, theDelimiter)
	-- save delimiters to restore old settings
	set oldDelimiters to AppleScript's text item delimiters
	-- set delimiters to delimiter to be used
	set AppleScript's text item delimiters to theDelimiter
	-- create the array
	set theArray to every text item of theString
	-- restore the old setting
	set AppleScript's text item delimiters to oldDelimiters
	-- return the result
	return theArray
end theSplit

return "? " & item 1 of CPUArray & "  
❄️ " & item 1 of FanArray --温度

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值