如何在xterm.js中使用铃声字符(BEL,CTRL-G,\ x07)?

时间:2017-10-03 00:34:52

标签: xtermjs

如何在Xterm.js中添加使用铃声字符?我在源'options'的默认值中看到了几个条目,但是无论是从shell发送还是直接写入终端都没有得到任何东西,即使设置为true也是如此。我尝试将term.bell函数重载为一个包含window.navigator.vibrate的函数,如果我直接调用它,它就会起作用,但是响应一个钟形字符不会触发。

1 个答案:

答案 0 :(得分:1)

确定。所以测试确定没有阻止铃声角色(" \ x07"或者#34; \ u0007")从进入xterm.js。它只是没有响应,即使您启用选项中的标志。源代码看起来应该可以工作,但内部的东西没有连接。由于我避免对源代码进行实际更改以使xterm.js升级直接且开箱即用,因此我的工作有点神奇。这是一个让钟形角色工作的黑客攻击:

制作一个触发"消息的功能"来自你的websocket的事件。在其中,检查BEL的匹配。如果检测到它,那就让它做你的伏都教。类似的东西:

sock.addEventListener('message',function(v){  if(v.match(/\x07/)){ /*voodoo here*/ }  });

如果v是事件,\ x07是BEL,而voodoo是代码或调用,可以短暂地将屏幕白屏,唧唧喳喳,如果你在"移动"或打开一个门户,就会振动到了单袜子尺寸。

令人讨厌的是,现在我需要查找更多的ansi代码并找到一个模式,因为有些人以BEL字符结尾。所以这本身就可以工作,但会被一些不打算充当BEL的代码所引发,因为它们包含了这个角色。稍后会详细介绍......

仅供参考,不确定这是否适用于term.attach()。我有自己的东西,无论如何做一些预处理,所以基本上所有我必须做的是拼接if / match,但切出来,上面的代码是最小的剪切版本。

希望这有助于其他人。错了。

enter image description here enter image description here