coolypf
狐狸大王
狐狸大王
  • UID31823
  • 注册日期2010-01-27
  • 最后登录2019-05-09
  • 发帖数357
  • 经验184枚
  • 威望1点
  • 贡献值50点
  • 好评度21点
  • 社区居民
  • 忠实会员
阅读:6676回复:25

修改 Firefox 57 快捷键,使用 F1—F4 控制标签页

楼主#
更多 发布于:2017-11-18 15:51
Firefox 56 及之前的版本可以用 keyconfig 扩展来修改快捷键。
对于 Firefox 57 ,则需要手动修改浏览器文件 omni.ja 。
找到 Firefox 安装目录,解压缩 browser\omni.ja 这个文件。
然后按如下方式修改解压缩的文件夹中的 chrome\browser\content\browser\browser.xul 文件:

--- browser.xul.bak    2010-01-01 00:00:00 +0800
+++ browser.xul    2017-11-18 15:18:13 +0800
@@ -310,8 +310,10 @@
     <key id="key_find" key="&findOnCmd.commandkey;" command="cmd_find" modifiers="accel"/>
     <key id="key_findAgain" key="&findAgainCmd.commandkey;" command="cmd_findAgain" modifiers="accel"/>
     <key id="key_findPrevious" key="&findAgainCmd.commandkey;" command="cmd_findPrevious" modifiers="accel,shift"/>
-    <key keycode="&findAgainCmd.commandkey2;" command="cmd_findAgain"/>
-    <key keycode="&findAgainCmd.commandkey2;"  command="cmd_findPrevious" modifiers="shift"/>
+    <key keycode="VK_F1" command="cmd_newNavigatorTab"/>
+    <key keycode="VK_F2" command="Browser:PrevTab"/>
+    <key keycode="VK_F3" command="Browser:NextTab"/>
+    <key keycode="VK_F4" command="cmd_close"/>
 
     <key id="addBookmarkAsKb" key="&bookmarkThisPageCmd.commandkey;" command="Browser:AddBookmarkAs" modifiers="accel"/>
     <key id="bookmarkAllTabsKb" key="&bookmarkThisPageCmd.commandkey;" oncommand="PlacesCommandHook.bookmarkCurrentPages();" modifiers="accel,shift"/>

修改后的快捷键为:
F1 —— 新建标签页
F2 —— 切换到上个标签页
F3 —— 切换到下个标签页
F4 —— 关闭标签页

改好后,用 zip 格式重新压缩成 omni.ja 并覆盖到 browser 目录下。
删除浏览器 profile 目录下的 startupCache 文件夹,启动 Firefox 即可体验修改后的快捷键。
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2023-10-31
  • 发帖数2765
  • 经验576枚
  • 威望1点
  • 贡献值128点
  • 好评度99点
  • 社区居民
  • 最爱沙发
  • 忠实会员
1楼#
发布于:2017-11-18 16:10
是个好办法,可惜只能修改成全局快捷键。  
我目前的常用功能快捷键都是单键的,改了之后就无法在页面输入文字了。
i —— 新建标签页
h —— 切换到上个标签页
l —— 切换到下个标签页
d —— 关闭标签页
coolypf
狐狸大王
狐狸大王
  • UID31823
  • 注册日期2010-01-27
  • 最后登录2019-05-09
  • 发帖数357
  • 经验184枚
  • 威望1点
  • 贡献值50点
  • 好评度21点
  • 社区居民
  • 忠实会员
2楼#
发布于:2017-11-18 16:13
alanfly:是个好办法,可惜只能修改成全局快捷键。  
我目前的常用功能快捷键都是单键的,改了之后就无法在页面输入文字了。
i —— 新建标签页
h —— 切换到上个标签页
l —— 切换到下个标签页
d —— 关闭标签页
回到原帖
老版本 Firefox 或者其他什么浏览器能满足这种需求?
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2023-10-31
  • 发帖数2765
  • 经验576枚
  • 威望1点
  • 贡献值128点
  • 好评度99点
  • 社区居民
  • 最爱沙发
  • 忠实会员
3楼#
发布于:2017-11-18 16:22
coolypf:老版本 Firefox 或者其他什么浏览器能满足这种需求?回到原帖
keyconfig这样旧版的快捷键扩展都可以。  
webextension版的也可以,就是被弱化限制了,内置页面和amo网站无法使用扩展快捷键,还有页面未加载完也不能用。
其它浏览器没了解过。
coolypf
狐狸大王
狐狸大王
  • UID31823
  • 注册日期2010-01-27
  • 最后登录2019-05-09
  • 发帖数357
  • 经验184枚
  • 威望1点
  • 贡献值50点
  • 好评度21点
  • 社区居民
  • 忠实会员
4楼#
发布于:2017-11-18 16:30
alanfly:keyconfig这样旧版的快捷键扩展都可以。  
webextension版的也可以,就是被弱化限制了,内置页面和amo网站无法使用扩展快捷键,还有页面未加载完也不能用。
其它浏览器没了解过。
回到原帖
还好我没有这种需求。
F1—F4 这组快捷键是从 GreenBrowser 和 TheWorld 开始,用了十几年的。
warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
5楼#
发布于:2017-11-19 08:33
使用脚本比这个方法好

// ==/UserScript==
(function(){
var keymap = {
'8':'backspace','9':'tab','12':'tenkey5','13':'enter','16':'shift','17':'ctrl','18':'alt',
'19':'pausebreak','20':'shift+capslock','27':'esc','32':'space',
'33':'pageup','34':'pagedown','35':'end','36':'home',
'37':'left','38':'up','39':'right','40':'down','45':'insert','46':'delete',
'48':'0','49':'1','50':'2','51':'3','52':'4','53':'5','54':'6','55':'7','56':'8','57':'9','59':':','61':';',
'65':'a','66':'b','67':'c','68':'d','69':'e','70':'f','71':'g','72':'h','73':'i',
'74':'j','75':'k','76':'l','77':'m','78':'n','79':'o','80':'p','81':'q','82':'r',
'83':'s','84':'t','85':'u','86':'v','87':'w','88':'x','89':'y','90':'z',
'91':'leftwindows','92':'rightwindows',
'96':'0','97':'1','98':'2','99':'3','100':'4','101':'5','102':'6','103':'7','104':'8','105':'9',
'106':'*','107':'+','109':'-','110':'.','111':'/',
'112':'f1','113':'f2','114':'f3','115':'f4','116':'f5','117':'f6',
'118':'f7','119':'f8','120':'f9','121':'f10','122':'f11','123':'f12',
'144':'numlock','145':'scrolllock',
'188':',','190':'.','191':'/','192':'@','219':'[','220':'\\','221':']','222':'^','226':'\\',
'240':'capslock',
};
 
function $(id){ return document.getElementById(id)}
 
function keyconfig(e){
    if (/^(input|textarea|select|textbox)$/i.test(e.target.localName)) return;
    var keycode = e.keyCode;
    if (keycode >= 16 && keycode <= 18) return;
    var command = keymap[keycode] + (e.ctrlKey?'+ctrl':'') + (e.shiftKey?'+shift':'') + (e.altKey?'+alt':'');
 
/* キーを小文字、スペース無し、+で連結、ctrl・shift・altの順で  小写关键字+ctrl・shift・alt+命令的顺序添加 */
    switch(command){//uc.js脚本默认的快捷键设置
        case 'c' : $("Browser:Back").doCommand(); break;//后退
        case 'v' : $("Browser:Forward").doCommand(); break;//前进
            //keyconfig扩展的快捷键设置和用户自定义设置添加到下面:
 case "e": document.getElementById('History:UndoCloseTab').doCommand(); break;//撤销关闭标签页
 case "space":gBrowser.removeCurrentTab(); break;//关闭当前标签页
 case "i":gBrowser.tabContainer.advanceSelectedTab(+1, true); break;//激活右边的标签
 case "o":gBrowser.tabContainer.advanceSelectedTab(-1, true); break;//激活左边的标签
 //case"f6":Services.appinfo.invalidateCachesOnRestart() || BrowserUtils.restartApplication();//重启浏览器
 case "b":gBrowser.mCurrentBrowser.reload();document.getElementById("Browser:Reload").doCommand(); break;//刷新当前页面
 case "q":gBrowser.removeAllTabsBut(gBrowser.mCurrentTab); break;//关闭其他标签页
 case "j":goDoCommand('cmd_scrollLineDown'); break;//向下移动
 case "k":goDoCommand('cmd_scrollLineUp'); break;//向上移动
 case "a":goDoCommand('cmd_scrollTop'); break;//回到页首
 case "s":goDoCommand('cmd_scrollBottom'); break;//回到尾页
 //case "r":document.getElementById('menu_bookmarkThisPage').doCommand(); break;//书签
 //case "t":document.getElementById('reader-mode-button').click(); break;//阅读


//
        default: return;
        
    }
    e.preventDefault();
}
 
gBrowser.mPanelContainer.addEventListener('keydown', keyconfig, false);
})();//内容自己添加
wisky
小狐狸
小狐狸
  • UID35605
  • 注册日期2011-03-23
  • 最后登录2019-02-15
  • 发帖数58
  • 经验26枚
  • 威望0点
  • 贡献值14点
  • 好评度1点
  • 社区居民
6楼#
发布于:2017-11-20 12:57
warb:使用脚本比这个方法好

// ==/UserScript==
(function(){
var keymap = {
'8':'backspace','9':'tab','12':'tenkey5','13':'enter','16':'s...
回到原帖
用油猴加载脚本就行?还是UC
wisky
小狐狸
小狐狸
  • UID35605
  • 注册日期2011-03-23
  • 最后登录2019-02-15
  • 发帖数58
  • 经验26枚
  • 威望0点
  • 贡献值14点
  • 好评度1点
  • 社区居民
7楼#
发布于:2017-11-20 12:57
楼主的方法不错。收藏了
zjgdlove
小狐狸
小狐狸
  • UID31685
  • 注册日期2010-01-21
  • 最后登录2018-10-16
  • 发帖数93
  • 经验92枚
  • 威望0点
  • 贡献值74点
  • 好评度3点
  • 社区居民
  • 忠实会员
8楼#
发布于:2017-11-20 13:56
alanfly:是个好办法,可惜只能修改成全局快捷键。  
我目前的常用功能快捷键都是单键的,改了之后就无法在页面输入文字了。
i —— 新建标签页
h —— 切换到上个标签页
l —— 切换到下个标签页
d —— 关闭标签页
回到原帖
好怀念keyconfig,没这个简直没法上网了。。。
warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
9楼#
发布于:2017-11-22 10:22
zjgdlove:好怀念keyconfig,没这个简直没法上网了。。。回到原帖
https://github.com/Endor8/userChrome.js/tree/master/userChrome
我使用的是每夜版本一切正常,以前的uc脚本百分99可以使用。
zjgdlove
小狐狸
小狐狸
  • UID31685
  • 注册日期2010-01-21
  • 最后登录2018-10-16
  • 发帖数93
  • 经验92枚
  • 威望0点
  • 贡献值74点
  • 好评度3点
  • 社区居民
  • 忠实会员
10楼#
发布于:2017-11-27 08:46
warb:https://github.com/Endor8/userChrome.js/tree/master/userChrome
我使用的是每夜版本一切正常,以前的uc脚本百分99可以使用。
回到原帖
现在用大神推荐的Saka Key,已经能满足需求了。
warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
11楼#
发布于:2017-11-27 09:10
zjgdlove:现在用大神推荐的Saka Key,已经能满足需求了。回到原帖
扩展在火狐内页上不生效。而脚本在所有内页上都生效
zjgdlove
小狐狸
小狐狸
  • UID31685
  • 注册日期2010-01-21
  • 最后登录2018-10-16
  • 发帖数93
  • 经验92枚
  • 威望0点
  • 贡献值74点
  • 好评度3点
  • 社区居民
  • 忠实会员
12楼#
发布于:2017-11-27 16:16
warb:扩展在火狐内页上不生效。而脚本在所有内页上都生效回到原帖
这个确实是,不过以前也一直没折腾过脚本。。。懒得弄了~
andypku
非常火狐
非常火狐
  • UID23097
  • 注册日期2008-03-05
  • 最后登录2022-08-20
  • 发帖数865
  • 经验740枚
  • 威望0点
  • 贡献值790点
  • 好评度26点
  • 社区居民
  • 忠实会员
13楼#
发布于:2017-11-28 09:05
warb:扩展在火狐内页上不生效。而脚本在所有内页上都生效回到原帖
什么是内页啊?
yucuoyufen
狐狸大王
狐狸大王
  • UID23974
  • 注册日期2008-05-03
  • 最后登录2024-03-04
  • 发帖数346
  • 经验138枚
  • 威望0点
  • 贡献值84点
  • 好评度1点
  • 社区居民
  • 忠实会员
14楼#
发布于:2017-11-28 09:58
andypku:什么是内页啊?回到原帖
附件、选项、定制这些
上一页
游客

返回顶部