一个在Chrome中实现双击关闭标签页的方式

前情提要

虽然自己平常还是键盘快捷键关闭用的多,但有时手还是会下意识使用鼠标去关闭。由于换了个鼠标,中键手感比较生硬,觉得双击关闭的方式还是比较方便的,Edge、Firefox都内置了此功能,而Chrome并未实现该特性,只能“曲线救国”了。

鼠标实现方式

刚好平常AutoHotkey用的比较多,写了如下脚本实现,大家可根据需求自己修改相关参数。如果你有更好的实现方式,欢迎分享。

; Chrome close tab by double click
HotIfWinActive "ahk_exe chrome.exe"
~LButton:: {  ; press
    MouseGetPos &xpos, &ypos ; get cursor position
    if (xpos < 2100 && ypos > 10 && ypos < 80) {
        ; double click
        if (A_PriorHotkey = A_ThisHotkey and A_TimeSincePriorHotkey < 200) {
            Send "^w"
        }
    }
}
HotIfWinActive

键盘实现方式

在键盘上你也可以通过映射相关快捷键发送 Ctrl+W 的方式来关闭标签页,不过我更推荐你下载个VIM拓展,可以像使用VIM一样来操控浏览器。

5 个赞

用的修改版chrome ,可以

还是习惯了鼠标中键

这段代码是用 AutoHotkey 编写的一个脚本,目的是在 Google Chrome 窗口中实现通过双击鼠标左键来关闭当前标签页的功能。下面是对代码的逐行解释:

  1. HotIfWinActive "ahk_exe chrome.exe":这行代码设置了一个条件热键,只有在 Chrome 窗口处于活动状态时,后面的热键才会生效。

  2. ~LButton:: {:这行代码定义了一个热键,表示当左键(LButton)被按下时触发后面的代码块。波浪号(~)表示在执行代码的同时,仍然允许左键的默认行为(例如点击)。

  3. MouseGetPos &xpos, &ypos:这行代码获取当前鼠标光标的位置,并将其存储在变量 xposypos 中。

  4. if (xpos < 2100 && ypos > 10 && ypos < 80) {:这行代码检查鼠标光标的位置是否在特定区域内。具体来说,它检查 xpos 是否小于 2100(通常是屏幕宽度的一部分),并且 ypos 是否在 10 到 80 之间(通常是浏览器的标题栏区域)。

  5. if (A_PriorHotkey = A_ThisHotkey and A_TimeSincePriorHotkey < 200) {:这行代码检查是否是双击事件。A_PriorHotkey 是上一个触发的热键,A_ThisHotkey 是当前热键(即左键)。如果它们相同,并且上一个热键触发到现在的时间小于 200 毫秒,则认为是双击。

  6. Send "^w":如果满足双击条件,则发送 Ctrl + W 的组合键,这个组合键在 Chrome 中用于关闭当前标签页。

  7. HotIfWinActive:这行代码结束了条件热键的定义。

总结:这段代码的功能是在 Chrome 窗口中,当用户在标题栏区域双击鼠标左键时,自动关闭当前标签页。

太强了,得丢给AI才看得懂(我是AHK废物,根本没想到还能这样实现,大佬啊

奔跑的奶酪的定制版也可以双击关闭,就是不知道用什么实现的

我喜欢右键关闭标签

可以用鼠标手势,关闭窗口、标签一律画L

脚本还有些不完善的地方,在标签栏右侧的空区域双击也会触发关闭,只能根据个人喜好调节xpos,ypos参数来个性化修改了。之前的想法是判定鼠标是否在标签页控件上,但ahk好像不能精细化识别到标签页。


我还是习惯这样

chrome++

但是最新版的Chrome,使用Chrome++会有很多bug,很难受

是的,还有鼠标手势,之前用quicker的时候体验过一段时间的下滑关闭,也挺方便的。