diff --git a/.config/browser/extensions/surfingkeys.js b/.config/browser/extensions/surfingkeys.js index 67d6ec77..3a40d7f2 100644 --- a/.config/browser/extensions/surfingkeys.js +++ b/.config/browser/extensions/surfingkeys.js @@ -194,4 +194,4 @@
${t}
${a}
- `}));const Me={settings:{digitForRepeat:!1,hintAlign:"left",hintCharacters:"qwertasdfgzxcvb",omnibarSuggestionTimeout:500,focusFirstCandidate:!1,richHintsForKeystroke:1,defaultSearchEngine:"bs",stealFocusOnLoad:!1,theme:"\n:root {\n /* Font */\n --font: 'JetBrainsMono Nerd Font';\n --font-size: 15.0px;\n --font-weight: bold;\n\n --fg: #cad3f5;\n --bg: #24273a;\n --bg-dark: #1e2030;\n --border: #6e738d;\n --main-fg: #cad3f5;\n --accent-fg: #b7bdf8;\n --info-fg: #ed8796;\n --select: #494d64;\n}\n\n/* ---------- Generic ---------- */\n.sk_theme {\nbackground: var(--bg);\ncolor: var(--fg);\n background-color: var(--bg);\n border-color: var(--border);\n font-family: var(--font);\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n}\n\ninput {\n font-family: var(--font);\n font-weight: var(--font-weight);\n}\n\n.sk_theme tbody {\n color: var(--fg);\n}\n\n.sk_theme input {\n color: var(--fg);\n}\n\n#sk_tabs .sk_tab {\n background: var(--bg-dark);\n border: 1px solid var(--border);\n}\n\n#sk_tabs .sk_tab_title {\n color: var(--fg);\n}\n\n#sk_tabs .sk_tab_url {\n color: var(--main-fg);\n}\n\n#sk_tabs .sk_tab_hint {\n background: var(--bg);\n border: 1px solid var(--border);\n color: var(--accent-fg);\n}\n\n.sk_theme #sk_frame {\n background: var(--bg);\n opacity: 0.2;\n color: var(--accent-fg);\n}\n\n/* ---------- Omnibar ---------- */\n/* Uncomment this and use settings.omnibarPosition = 'bottom' for Pentadactyl/Tridactyl style bottom bar */\n/* .sk_theme#sk_omnibar {\n width: 100%;\n left: 0;\n} */\n\n.sk_theme .title {\n color: var(--accent-fg);\n}\n\n.sk_theme .url {\n color: var(--main-fg);\n}\n\n.sk_theme .annotation {\n color: var(--accent-fg);\n}\n\n.sk_theme .omnibar_highlight {\n color: var(--accent-fg);\n}\n\n.sk_theme .omnibar_timestamp {\n color: var(--info-fg);\n}\n\n.sk_theme .omnibar_visitcount {\n color: var(--accent-fg);\n}\n\n.sk_theme #sk_omnibarSearchResult ul li:nth-child(odd) {\n background: var(--bg-dark);\n}\n\n.sk_theme #sk_omnibarSearchResult ul li.focused {\n background: #363a4f;\n}\n\n.sk_theme #sk_omnibarSearchArea {\n border-top-color: var(--border);\n border-bottom-color: var(--border);\n}\n\n.sk_theme #sk_omnibarSearchArea input,\n.sk_theme #sk_omnibarSearchArea span {\n font-size: var(--font-size);\n}\n\n.sk_theme .separator {\n color: var(--accent-fg);\n}\n\n/* ---------- Popup Notification Banner ---------- */\n#sk_banner {\n font-family: var(--font);\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n background: var(--bg);\n border-color: var(--border);\n color: var(--fg);\n opacity: 0.9;\n}\n\n/* ---------- Popup Keys ---------- */\n#sk_keystroke {\n background-color: var(--bg);\n}\n\n.sk_theme kbd .candidates {\n color: var(--info-fg);\n}\n\n.sk_theme span.annotation {\n color: var(--accent-fg);\n}\n\n/* ---------- Popup Translation Bubble ---------- */\n#sk_bubble {\n background-color: var(--bg) !important;\n color: var(--fg) !important;\n border-color: var(--border) !important;\n}\n\n#sk_bubble * {\n color: var(--fg) !important;\n}\n\n#sk_bubble div.sk_arrow div:nth-of-type(1) {\n border-top-color: var(--border) !important;\n border-bottom-color: var(--border) !important;\n}\n\n#sk_bubble div.sk_arrow div:nth-of-type(2) {\n border-top-color: var(--bg) !important;\n border-bottom-color: var(--bg) !important;\n}\n\n/* ---------- Search ---------- */\n#sk_status,\n#sk_find {\n font-size: var(--font-size);\n border-color: var(--border);\n}\n\n.sk_theme kbd {\n background: var(--bg-dark);\n border-color: var(--border);\n box-shadow: none;\n color: var(--fg);\n}\n\n.sk_theme .feature_name span {\n color: var(--main-fg);\n}\n\n/* ---------- ACE Editor ---------- */\n#sk_editor {\n background: var(--bg-dark) !important;\n height: 50% !important;\n /* Remove this to restore the default editor size */\n}\n\n.ace_dialog-bottom {\n border-top: 1px solid var(--bg) !important;\n}\n\n.ace-chrome .ace_print-margin,\n.ace_gutter,\n.ace_gutter-cell,\n.ace_dialog {\n background: var(--bg) !important;\n}\n\n.ace-chrome {\n color: var(--fg) !important;\n}\n\n.ace_gutter,\n.ace_dialog {\n color: var(--fg) !important;\n}\n\n.ace_cursor {\n color: var(--fg) !important;\n}\n\n.normal-mode .ace_cursor {\n background-color: var(--fg) !important;\n border: var(--fg) !important;\n opacity: 0.7 !important;\n}\n\n.ace_marker-layer .ace_selection {\n background: var(--select) !important;\n}\n\n.ace_editor,\n.ace_dialog span,\n.ace_dialog input {\n font-family: var(--font);\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n}\n"},keys:Se,searchEngines:De,siteleader:"a",searchleader:"s",logLevels:["error"]},{categories:je}=ue,{mapkey:ze,map:Fe,unmap:Ve,unmapAllExcept:Be,Clipboard:Ge,Front:Je,removeSearchAlias:We,addSearchAlias:Ke}=t,Ye=(e,t,a)=>{const n=Object.entries(t).flatMap((([t,a])=>a.flatMap((a=>({[a]:e[t]}))))),r=Object.assign({},e,...n);Object.entries(r).forEach((([e,t])=>t.forEach((t=>((e,t,a)=>{const{alias:n,callback:r,leader:o=("global"===e?"":a),category:i=je.misc,description:s="",path:c="(/.*)?"}=t,l={},p=`${o}${n}`;if("global"!==e){const t=e.replace(".","\\.");l.domain=new RegExp(`^http(s)?://(([a-zA-Z0-9-_]+\\.)*)(${t})${c}`)}const d=`#${i} ${s}`;try{void 0!==t.map?Fe(n,t.map):ze(p,d,r,l)}catch(e){console.error(`Error registering key ${n}: ${e}`)}})(e,t,a)))))},Ze=async()=>{if(window.surfingKeys=t,Me.settings&&Object.assign(settings,"function"==typeof Me.settings?Me.settings():Me.settings),Me.logLevels&&await chrome.storage.local.set({logLevels:Me.logLevels}),Me.keys&&Me.keys.unmaps){const{unmaps:e}=Me.keys;e.mappings&&e.mappings.forEach((e=>Ve(e))),e.searchAliases&&Object.entries(e.searchAliases).forEach((([e,t])=>{t.forEach((t=>We(t,e)))})),e.pages&&e.pages.forEach((e=>Be(e.maps,e.url)))}var e,a;if(Me.searchEngines&&(e=Me.searchEngines,a=Me.searchleader??"o",Object.values(e).forEach((e=>{const t={favicon_url:e.favicon,skipMaps:!0};Ke(e.alias,e.name,e.search,"",e.compl,e.callback,void 0,t),ze(`${a}${e.alias}`,`#8Search ${e.name}`,(()=>Je.openOmnibar({type:"SearchEngine",extra:e.alias}))),ze(`c${a}${e.alias}`,`#8Search ${e.name} with clipboard contents`,(()=>{Ge.read((t=>{Je.openOmnibar({type:"SearchEngine",pref:t.data,extra:e.alias})}))}))}))),Me.keys&&Me.keys.maps){const{keys:e}=Me,{maps:t,aliases:a={}}=e;Ye(t,a,Me.siteleader)}};"undefined"!=typeof window&&Ze()})()})(); \ No newline at end of file + `}));const Me={settings:{digitForRepeat:!1,hintAlign:"left",hintCharacters:"qwertasdfgzxcvb",omnibarSuggestionTimeout:200,focusFirstCandidate:!1,richHintsForKeystroke:1,defaultSearchEngine:"bs",stealFocusOnLoad:!1,theme:"\n:root {\n /* Font */\n --font: 'Maple Mono NF';\n --font-size: 18.0px;\n --font-weight: bold;\n\n --fg: #cad3f5;\n --bg: #24273a;\n --bg-dark: #1e2030;\n --border: #6e738d;\n --main-fg: #cad3f5;\n --accent-fg: #b7bdf8;\n --info-fg: #ed8796;\n --select: #494d64;\n}\n\n/* ---------- Generic ---------- */\n.sk_theme {\nbackground: var(--bg);\ncolor: var(--fg);\n background-color: var(--bg);\n border-color: var(--border);\n font-family: var(--font);\n font-size: var(--font-size);\n}\n\ninput {\n font-family: var(--font);\n font-weight: var(--font-weight);\n}\n\n.sk_theme tbody {\n color: var(--fg);\n}\n\n.sk_theme input {\n color: var(--fg);\n}\n\n#sk_tabs .sk_tab {\n background: var(--bg-dark);\n border: 1px solid var(--border);\n}\n\n#sk_tabs .sk_tab_title {\n color: var(--fg);\n}\n\n#sk_tabs .sk_tab_url {\n color: var(--main-fg);\n}\n\n#sk_tabs .sk_tab_hint {\n background: var(--bg);\n border: 1px solid var(--border);\n color: var(--accent-fg);\n}\n\n.sk_theme #sk_frame {\n background: var(--bg);\n opacity: 0.2;\n color: var(--accent-fg);\n}\n\n/* ---------- Omnibar ---------- */\n/* Uncomment this and use settings.omnibarPosition = 'bottom' for Pentadactyl/Tridactyl style bottom bar */\n/* .sk_theme#sk_omnibar {\n width: 100%;\n left: 0;\n} */\n\n.sk_theme .title {\n color: var(--accent-fg);\n}\n\n.sk_theme .url {\n color: var(--main-fg);\n}\n\n.sk_theme .annotation {\n color: var(--accent-fg);\n}\n\n.sk_theme .omnibar_highlight {\n color: var(--accent-fg);\n}\n\n.sk_theme .omnibar_timestamp {\n color: var(--info-fg);\n}\n\n.sk_theme .omnibar_visitcount {\n color: var(--accent-fg);\n}\n\n.sk_theme #sk_omnibarSearchResult ul li:nth-child(odd) {\n background: var(--bg-dark);\n}\n\n.sk_theme #sk_omnibarSearchResult ul li.focused {\n background: #363a4f;\n}\n\n.sk_theme #sk_omnibarSearchArea {\n border-top-color: var(--border);\n border-bottom-color: var(--border);\n}\n\n.sk_theme #sk_omnibarSearchArea input,\n.sk_theme #sk_omnibarSearchArea span {\n font-size: var(--font-size);\n}\n\n.sk_theme .separator {\n color: var(--accent-fg);\n}\n\n/* ---------- Popup Notification Banner ---------- */\n#sk_banner {\n font-family: var(--font);\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n background: var(--bg);\n border-color: var(--border);\n color: var(--fg);\n opacity: 0.9;\n}\n\n/* ---------- Popup Keys ---------- */\n#sk_keystroke {\n background-color: var(--bg);\n}\n\n.sk_theme kbd .candidates {\n color: var(--info-fg);\n}\n\n.sk_theme span.annotation {\n color: var(--accent-fg);\n}\n\n/* ---------- Popup Translation Bubble ---------- */\n#sk_bubble {\n background-color: var(--bg) !important;\n color: var(--fg) !important;\n border-color: var(--border) !important;\n}\n\n#sk_bubble * {\n color: var(--fg) !important;\n}\n\n#sk_bubble div.sk_arrow div:nth-of-type(1) {\n border-top-color: var(--border) !important;\n border-bottom-color: var(--border) !important;\n}\n\n#sk_bubble div.sk_arrow div:nth-of-type(2) {\n border-top-color: var(--bg) !important;\n border-bottom-color: var(--bg) !important;\n}\n\n/* ---------- Search ---------- */\n#sk_status,\n#sk_find {\n font-size: var(--font-size);\n border-color: var(--border);\n}\n\n.sk_theme kbd {\n background: var(--bg-dark);\n border-color: var(--border);\n box-shadow: none;\n color: var(--fg);\n}\n\n.sk_theme .feature_name span {\n color: var(--main-fg);\n}\n\n/* ---------- ACE Editor ---------- */\n#sk_editor {\n background: var(--bg-dark) !important;\n height: 50% !important;\n /* Remove this to restore the default editor size */\n}\n\n.ace_dialog-bottom {\n border-top: 1px solid var(--bg) !important;\n}\n\n.ace-chrome .ace_print-margin,\n.ace_gutter,\n.ace_gutter-cell,\n.ace_dialog {\n background: var(--bg) !important;\n}\n\n.ace-chrome {\n color: var(--fg) !important;\n}\n\n.ace_gutter,\n.ace_dialog {\n color: var(--fg) !important;\n}\n\n.ace_cursor {\n color: var(--fg) !important;\n}\n\n.normal-mode .ace_cursor {\n background-color: var(--fg) !important;\n border: var(--fg) !important;\n opacity: 0.7 !important;\n}\n\n.ace_marker-layer .ace_selection {\n background: var(--select) !important;\n}\n\n.ace_editor,\n.ace_dialog span,\n.ace_dialog input {\n font-family: var(--font);\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n}\n"},keys:Se,searchEngines:De,siteleader:"a",searchleader:"s",logLevels:["error"]},{categories:je}=ue,{mapkey:ze,map:Fe,unmap:Ve,unmapAllExcept:Be,Clipboard:Ge,Front:Je,removeSearchAlias:We,addSearchAlias:Ke}=t,Ye=(e,t,a)=>{const n=Object.entries(t).flatMap((([t,a])=>a.flatMap((a=>({[a]:e[t]}))))),r=Object.assign({},e,...n);Object.entries(r).forEach((([e,t])=>t.forEach((t=>((e,t,a)=>{const{alias:n,callback:r,leader:o=("global"===e?"":a),category:i=je.misc,description:s="",path:c="(/.*)?"}=t,l={},p=`${o}${n}`;if("global"!==e){const t=e.replace(".","\\.");l.domain=new RegExp(`^http(s)?://(([a-zA-Z0-9-_]+\\.)*)(${t})${c}`)}const d=`#${i} ${s}`;try{void 0!==t.map?Fe(n,t.map):ze(p,d,r,l)}catch(e){console.error(`Error registering key ${n}: ${e}`)}})(e,t,a)))))},Ze=async()=>{if(window.surfingKeys=t,Me.settings&&Object.assign(settings,"function"==typeof Me.settings?Me.settings():Me.settings),Me.logLevels&&await chrome.storage.local.set({logLevels:Me.logLevels}),Me.keys&&Me.keys.unmaps){const{unmaps:e}=Me.keys;e.mappings&&e.mappings.forEach((e=>Ve(e))),e.searchAliases&&Object.entries(e.searchAliases).forEach((([e,t])=>{t.forEach((t=>We(t,e)))})),e.pages&&e.pages.forEach((e=>Be(e.maps,e.url)))}var e,a;if(Me.searchEngines&&(e=Me.searchEngines,a=Me.searchleader??"o",Object.values(e).forEach((e=>{const t={favicon_url:e.favicon,skipMaps:!0};Ke(e.alias,e.name,e.search,"",e.compl,e.callback,void 0,t),ze(`${a}${e.alias}`,`#8Search ${e.name}`,(()=>Je.openOmnibar({type:"SearchEngine",extra:e.alias}))),ze(`c${a}${e.alias}`,`#8Search ${e.name} with clipboard contents`,(()=>{Ge.read((t=>{Je.openOmnibar({type:"SearchEngine",pref:t.data,extra:e.alias})}))}))}))),Me.keys&&Me.keys.maps){const{keys:e}=Me,{maps:t,aliases:a={}}=e;Ye(t,a,Me.siteleader)}};"undefined"!=typeof window&&Ze()})()})(); \ No newline at end of file