背景介绍
Unified Remote这个软件想必有很多人在用,小众软件也介绍过两次了,不知道的小伙伴快去看看。
这个软件可以通过蓝牙或者同WiFi,把手机变成电脑的触摸板,键盘,ppt翻页等等,以及很多为其他程序定制的遥控
然而,这些定制的遥控,和我们国人需求完全不搭,比如Spotify、netflix等,让人不禁思考,要是能定制自己的遥控器就好了。
这篇文章就来介绍一下,无需编程基础,如何用最简单的方法,按照自己的需求,定制自己的遥控器。
同时,看到有坛友发问
这篇文章同时也介绍一个通过双键盘解决中英文输入法切换难题的方案,即在手机上虚拟一个键盘,作为单纯英文键盘,实体键盘则作为中文键盘,妈妈再也不用担心我的输入法切换了!
方法介绍
unfied remote是有一个自定义遥控器的功能的,但是需要写代码,代码规则未知。不过,我们可以修改它现有的遥控器的代码,化为己用。
我的想法是通过unfied remote的send text to clipboard功能,把想要进行的操作发送到电脑的剪贴板,再通过autohotkey的 OnClipboardChange功能监听剪贴板,根据剪贴板内容的不同,执行不同的功能。
具体方法
-
第一步
· 打开文件夹路径C:\ProgramData\Unified Remote\Remotes\Bundled\Unified\Main\Send Text
复制路径下的所有文件。
· 打开文件夹路径C:\ProgramData\Unified Remote\Remotes\Bundled\Unified\Examples
新建文件夹命名为englishkeyboard(也就是英语键盘)。把上一步复制的东西都粘贴进新建的文件夹。 -
第二步
· 用记事本打开meta.prop,随便改一改
·用记事本打开remote.lua,和layout.xml
删掉无用的部分,变成如下。
-
第三步
·照猫画虎
复制并且微改这两部分代码,实现把自定义的指令发送到电脑的剪贴板
<row weight="1">
<button text="To Clipboard" onTap="copy" />
</row>
--@help Copy to clipboard
actions.copy = function()
local code = utf8.replace(_text, "\"", "\\\"");
print("Copying " .. code .. " into clipboard");
if OS_WINDOWS then
script.shell("echo \"" .. code .. "\" | clip");
elseif OS_OSX then
script.apple("set the clipboard to \"" .. code .."\"");
elseif OS_LINUX then
-- Might not work on every distribution..
script.shell("echo \"" .. code .. "\" | xclip -selection c")
else
print("WTF!?");
end
end
例如,想要把“autodogkey_doga”发送到电脑剪贴板。
分别修改代码如下:
<row weight="1">
<button text="我是一只快乐的狗A" onTap="doga" />
</row>
--@help Copy to clipboard
actions.doga = function()
local _text = "autodogkey_doga";
local code = utf8.replace(_text, "\"", "\\\"");
print("Copying " .. code .. " into clipboard");
if OS_WINDOWS then
script.shell("echo \"" .. code .. "\" | clip");
elseif OS_OSX then
script.apple("set the clipboard to \"" .. code .."\"");
elseif OS_LINUX then
-- Might not work on every distribution..
script.shell("echo \"" .. code .. "\" | xclip -selection c")
else
print("WTF!?");
end
end
-第四步,重启两端软件测试一下
手机端会提示新建了englishkeyboard。
因为meta.prop文件中meta.tags.category: input。也就是分类是input分类。
在input分类下找到englishkeyboard添加,我做了两个按钮。
测试结果很ok,不过不知道为什么左右会多两个引号,不过完全没关系
- 第五步,电脑端运行autohotkey代码
#Persistent
return
OnClipboardChange:
{
Clipboardtemp := Clipboard
num := StrLen(Clipboardtemp)
if ((SubStr(Clipboardtemp,2,10) ="autodogkey") and (num < 30))
{
Clipboardtemp := SubStr(Clipboard,13,num-16)
Switch Clipboardtemp
{
case "doga":
sendinput,{text}a
Return
case "dogb":
sendinput,{text}b
Return
case "任意语句":
;任意ahk代码
Return
Default:
}
}
else
{
}
return
}
最终效果展示
可以看到,我用实体键盘打的字,是中文输入法,而用手机虚拟键盘打的字,是英文,互不干扰!并且,打字速度丝毫没有迟钝!
后续可以参照其内置的english keyboard的界面,完善和美化这一英文键盘
优点讨论
**通过这一方法,可以非常轻松地批量化制造属于自己的手机万能键盘了!**只需要改动传递的粘贴板数值(注意,最好是纯字母)和添加对应的autohotkey代码的case!
更更厉害的是,这一过程完全不需要手机的参与!完全在电脑上完成,你可以在你的所有安卓苹果甚至windows手机上安装这一app,会自动添加你的私人遥控器!
更更更棒的是,这些键盘是可以非常方便地进行代码共享的!只需要把两边的代码分别添加到对应文件夹和ahk的case列表中就哦了!
更更更更棒的是,linux和macos也是可以用同样办法的!
示例中的英文遥控器分享
两个键的demo版本链接:https://pan.baidu.com/s/1m4JwGLL-1AsxkOKlfum5_g
提取码:roum
完整版英文键盘的百度网盘链接
链接:百度网盘 请输入提取码
提取码:acyp
解压后,将englishkeyboard文件夹复制到C:\ProgramData\Unified Remote\Remotes\Bundled\Unified\Examples
运行audog.ahk,打开手机,开始体验吧!