概念证明:用户ChromeJS插件+自定义用户脚本

概念证明:用户ChromeJS插件+自定义用户脚本

我正在尝试让我 97 岁的老奶奶的笔记本电脑(Ubuntu 20.04)更方便她使用。她经常感到沮丧,因为她在 Thunderbird 消息撰写窗口中编写的邮件文本消失了。禁用触摸板并使用外接鼠标已经很有帮助了。但我怀疑当她尝试用鼠标放置文本光标(通过拖动或双击)时,她仍然会意外选择文本。当她继续输入时,所选文本将被覆盖。因为她需要在打字时专注于键盘,所以她不会立即注意到发生了什么——这使得“撤消”变得困难。

  1. 是否可以在 Thunderbird 消息撰写窗口中禁用此行为,以便在键入时取消选择而不是替换选定的文本?
  2. 如果无法改变行为,我可以禁用通过鼠标进行的文本选择吗?

感谢您提供任何技术提示或其他关于如何解决此问题的想法!可能的答案可能涉及隐藏的 Thunderbird 设置/解决方法或有关如何通过自定义脚本/(web-)扩展解决此问题的说明。

注意:为了缩小范围,这个问题是关于如何在 Thunderbird 消息撰写窗口中解决这个问题。我还问过这个问题针对 Libreoffice Writer并作为在 askubuntu.com 上提问,寻求系统范围的解决方案

答案1

概念证明:用户ChromeJS插件+自定义用户脚本

回答我自己的问题:我成功地做到了这一点黑客在用户继续输入之前取消当前选择。

如果有人知道如何将其变成真正的Thunderbird 邮件扩展,请随意更新这个答案或者开始您自己的答案!

设置

  1. 安装实验性的 Thunderbird-Addon用户ChromeJS
  2. chrome在 Thunderbird 配置文件目录中创建一个文件夹
  3. 创建一个名为there的文本文件,userChrome.js其内容如下:
    function deselect(e) {
      if(e.ctrlKey || e.altKey || e.metaKey || e.keyCode === 16) {
        return; // don't do anything if those keys are pressed
      }
      let currentWindow = e.view
      let selection = currentWindow.getSelection(); 
      selection.collapseToStart();
    }
    window.addEventListener("keydown", deselect);
    
  4. 重启 Thunderbird

注意事项

  • 用户ChromeJS插件被标记为实验性的
  • 此破解已在 Thunderbird 68.10.0 上进行了测试。它可能不适用于其他版本。
  • 它适用于 Thunderbird 的消息编写器窗口,您可以在其中输入消息内容,但目前不适用于收件人等其他输入。
  • 可能需要进行调整以处理特殊情况
  • 它目前监听所有 Thunderbird 窗口的所有键盘按下操作

相关内容