1inux
(1inux)
1
前情提要
虽然自己平常还是键盘快捷键关闭用的多,但有时手还是会下意识使用鼠标去关闭。由于换了个鼠标,中键手感比较生硬,觉得双击关闭的方式还是比较方便的,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 个赞
这段代码是用 AutoHotkey 编写的一个脚本,目的是在 Google Chrome 窗口中实现通过双击鼠标左键来关闭当前标签页的功能。下面是对代码的逐行解释:
-
HotIfWinActive "ahk_exe chrome.exe"
:这行代码设置了一个条件热键,只有在 Chrome 窗口处于活动状态时,后面的热键才会生效。
-
~LButton:: {
:这行代码定义了一个热键,表示当左键(LButton)被按下时触发后面的代码块。波浪号(~)表示在执行代码的同时,仍然允许左键的默认行为(例如点击)。
-
MouseGetPos &xpos, &ypos
:这行代码获取当前鼠标光标的位置,并将其存储在变量 xpos
和 ypos
中。
-
if (xpos < 2100 && ypos > 10 && ypos < 80) {
:这行代码检查鼠标光标的位置是否在特定区域内。具体来说,它检查 xpos
是否小于 2100(通常是屏幕宽度的一部分),并且 ypos
是否在 10 到 80 之间(通常是浏览器的标题栏区域)。
-
if (A_PriorHotkey = A_ThisHotkey and A_TimeSincePriorHotkey < 200) {
:这行代码检查是否是双击事件。A_PriorHotkey
是上一个触发的热键,A_ThisHotkey
是当前热键(即左键)。如果它们相同,并且上一个热键触发到现在的时间小于 200 毫秒,则认为是双击。
-
Send "^w"
:如果满足双击条件,则发送 Ctrl + W 的组合键,这个组合键在 Chrome 中用于关闭当前标签页。
-
HotIfWinActive
:这行代码结束了条件热键的定义。
总结:这段代码的功能是在 Chrome 窗口中,当用户在标题栏区域双击鼠标左键时,自动关闭当前标签页。
太强了,得丢给AI才看得懂(我是AHK废物,根本没想到还能这样实现,大佬啊
奔跑的奶酪的定制版也可以双击关闭,就是不知道用什么实现的
1inux
(1inux)
8
脚本还有些不完善的地方,在标签栏右侧的空区域双击也会触发关闭,只能根据个人喜好调节xpos,ypos参数来个性化修改了。之前的想法是判定鼠标是否在标签页控件上,但ahk好像不能精细化识别到标签页。
但是最新版的Chrome,使用Chrome++会有很多bug,很难受
1inux
(1inux)
12
是的,还有鼠标手势,之前用quicker的时候体验过一段时间的下滑关闭,也挺方便的。