KWGT 赛高!

刷了新系统才理解,为什么那么华丽实用的小部件风潮很快就降温到少有人提及了——几乎全都收费呀,多数用户不太会为几个小部件花好几块钱的。

本来我以为,刷了新系统就有大把可爱的小部件用了,然后发现需要再次认错——穷是我的错,呜呜呜(要饭——语言直白

所以世界没有变,花里胡哨之后还是那条熟悉的不能再熟悉的旧日小路。KWGT,自己做组件。

这个软件收费,5.99 刀不便宜,够买十来套小部件了。但自由度非常大,当然,前提是你肯动手的话。毕竟其他人做的小部件包要不我不怎么看得习惯,要么也是收费的。

自己做也不复杂嘛,最简单的,桌面添加小部件,调整到自己需要的大小,截图,做个合适大小的图片,用这东西插入显示出来,再插入几个透明的形状,用来触发你需要的动作,就可以实现很多功能了。

动作,不多举例,但是启动应用支持启动到对应活动(Activity),打开链接支持输入各种协议。懂的都懂。

反正我每天摸鱼的时候做一点,渐渐的桌面也就装饰好了,好处是完全贴合自己的使用习惯和审美,有任何需求都可以自己修改添加。

没图,没教程,也没分享。就是老气横秋的冒出来感慨一下。

想看大佬晒桌面 :kissing_closed_eyes:

不好看,自己都看不下去中……

上面时间日期,毫无技术含量的走简洁风,就能看,但是星期几的变色问题还有点怪 df(e) 今天(星期六)获取到的是 0,怪怪的啊。

左侧两个双开关也是简洁风,能看。用起来视觉上有分组感,频率上把常用的放在下方(容易点击)基本是合理的。密度上 2*2 的位置,四个触发,和用图标一样,单纯视觉上讨好。

右侧九宫格就因为配色和图标不一致显得乱,功能上没问题,视觉上各种逼死强迫症。但是难搞啊,图标是方的,但是小部件是矩形(高度大于宽度)。所以这种很容易别人的展示图好看,自己弄的时候稀碎。

尝试开启桌面无字模式,看起来小部件更接近正方形了,但是为什么 MIUI 自己的文件夹里横纵间距不一致……受不了。

密度上 2*2 的位置放九个触发,利用率直接提升一倍多,而且都是一键触发,很赞。如果加上多种方式触发,比如点击进入微信扫一扫,长按则是进入微信收付款,也很方便。但不好做到九个图标都是一样的逻辑,比如我不用支付宝的微信收付款(但可能扫一扫),不用云闪付的扫一扫(但会用收付款),这就乱了。

强迫症满足了,文字部分不知道写什么好,就先放了时间,以为这些在我的第二屏,放个时间用起来还挺舒服。

不用小部件,默认桌面,甚至找应用也是拿Blue Line Console当第二启动器,因为系统搜索不能搜包名而blc可以用包名匹配

手机上的输入体验实在不咋地,懒得打字

哪里有中文版的kwgt文档,没找到怎么进行数学运算

这东西也没啥复杂的运算, 也就完成一些基本的四则运算吧,有一个if语句,但是基本相当于编程里的三元运算符。然后有个简单的循环。


加减运算都没有找到怎么用,前面的倒计时我要改成正计时

不加任何变化的输出,直接写就行了,比如:123+123,就原样输出

要进行计算需要用双美元符号包裹,比如:$123+123$,就输出 246

bi(charging) 这种是函数,bi 表示功能,小括号里的是参数,多个参数的时候用英文逗号分隔,函数会根据功能计算出一个结果。

你的需求在电池类的例子中有:

$if(bi(charging) = 0, "unplugged", "plugged")$ $tf(bi(plugged))$

先解释第一对儿美元符号里的内容:

  • 如果 bi(charging) 即当前充电状态,1 表示正在充电,0 表示没有充电,这里判断 =0
  • 如果没有充电则显示:unplugged,没插充电线,注意,因为这是一个字符串(一串文字),所以要用英文的双引号标记。
  • 如果在充电,则显示 plugged,即插着充电头。这两处文字你可以自己修改

第一对儿美元符号和第二对儿美元符号之间有一个空格,会被直接输出

第二对儿美元符号内就是显示上次充电头插入/拔出的时间距离现在多久。这里的 tf() 是计算时间间隔,小括号里的 plugged 说明是什么时间点(充电头插入状态)。

上述所有拼接起来的结果是:

unplugged 7 分钟 后

我为了写这些内容刚把手机拔下来放在手边参考,所以是 7 分钟以前拔掉了充电头,但上面显示的就有点奇怪呢!这是纯纯翻译的锅。理解为拔了充电头,过了七分钟之后,到了现在。

显然,我实现了你的需求,但是到此为止你并不会满意。于是我们用文字替换再处理一下第二段内容,先看文字替换的示例代码(在文字处理分类):

$tc(reg, "Foobar one", "o+", X)$

这里要说明:这不是传统的文字替换,而是正则替换,注意前面两个 o,被替换成了一个 X。正则表达式部分可以看看这里 正则表达式学习笔记

当然如果不涉及特殊字符,当做一般文字替换用也可以:

$tc(reg, tf(bi(plugged)), "后", 前)$

于是,得到预期结果。其中文字内容你可以根据需求调整,不做赘述。

因为可预期的,这些事件都发生在之前,所以这里只做一种情况的替换即可。不过我没严谨测试,不确定是否在其他时间间隔下显示的文字是否不同。

以上。( 老鼠爱发电

chatgpt写的 :rofl:不过还是给了启发,可以用正则曲线救国,谢谢:mouse:

@dms 前导零有办法解决嘛

哪里的,去掉还是添加?

添加的话用:$tc(lpad, 你的数据, 10, 0)$,表示在你的数据左侧添加 0 ,补足到 10 位

换成 rpad 就是在右侧添加

前面的。而且为什么我实测填5才是补齐到两位?还有请问你这些是哪里找到的(参数),已在官方文档里找到了

刚才又出现了一种情况,直接给前面加了两个零,而且发现了它的规率,那个"10"代表的是输出总位数,不足时会在前面加零凑位。但是,分钟位(mm)并不会在前面加零,看来还得想想别的办法

根本不知道有官方文档这东西,看示例琢磨一下,有编程基础的情况下基本不难理解。

时间格式化中 mm 代表的就是两位分钟数。

在别的地方确实是两位分钟数,但这里就不是
官方文档在这TC - text converter | Kustom HQ

截图啊,我不好把代码搞出来做测试,用 OCR 还得逐个字母标点检查,我可以哭么……

这里确实有问题,不过也能解决。

$if(bi(charging)=0, "已使用:", "已充电:")$$tc(reg,tf(bi(plugged), hhh:mmm),"-","")$,电流:$mu(round,-bi(current),0)$mA

试试吧

我和你的思路差不多,同样使用了多显示一位分钟数,结合前导零
$if(bi(charging) = 0, "已使用: ", "已充电: ")$$tc(lpad,tc(reg,tf(bi(plugged),hh:mmm),"-",""),5,0)$ , 电流: $mu(round,-bi(current),0)$mA
目前只有分钟数为0时显示”00:000”,其它则正常

@dms 请教个问题,sh(shell)脚本内怎么引用变量?

$lv("mg", gv(message))$
$sh(echo #mg)$
$sh(echo gv(message))$

直接引用全局变量不行,转成局部变量也不行
还有,稍微复杂一点shell脚本要被双引号包裹,而变量确不能被包裹,真是奇葩设计