Last active
February 26, 2024 04:41
-
-
Save coramuirgen/94ba1d587cb2093c71f6ef4f0b371069 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//▔▔▔▔▔▔▔▔▔▔ | |
// ➤ NOTES | |
//▁▁▁ | |
// | |
// | |
// Vivaldi keyboard shortcuts are preferred when they need to: | |
// ● work on browser chrome windows :- always available | |
// ● happen in an independent process, not blocked by page events :- faster, snappier | |
// | |
// Surfingkeys keyboard shortcuts are preferred otherwise as they: | |
// ● are vim-based | |
// ● are flexible and work together coherently | |
// | |
// Schema in general: | |
// ● window shortcuts prefer ctrl as is common | |
// ● tab and page shortcuts prefer shift | |
// ● common actions are single letter | |
// ● universal (Windows) mappings are left as is: | |
// ▪ new window: ctrl-n | |
// ▪ new private window: ctrl-shift-n | |
// ▪ settings: ctrl-shift-p | |
// ▪ omnibar command (vivaldi's quick command F2): Alt-d | |
// ▪ task manager: shift-esc | |
// ▪ exit, print: ctrl-q, ctrl-p | |
// ▪ fullscreen: f11 | |
// ▪ force page reload: ctrl-shift-r | ctrl-F5 | |
// ▪ stop: esc | |
// ▪ open file, save page as: ctrl-o, ctrl-s | |
// | |
// Alt-only shortcuts are reserved for other system shortcut schemas (except Alt-d) | |
// | |
// Custom SK mappings for specific urls start with ',' e.g. ',yf' for \\Youtube fullscreen | |
// | |
// Comments after mappings indicate mapping name, coded to indicate for which system: | |
// : V - vivaldi | |
// : SK - surfingkeys | |
// | |
// SK Mappings are normal mode unless specified, e.g. SK-i | |
// | |
//▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | |
// UNMAPS | |
// | |
//▁▁▁ | |
// Unmap undesired defaults | |
var unmaps = [ "e", "d", "x" | |
, "F", "B", "R" | |
, "E", "M", "S" | |
, "D", "U" | |
, ";p", "cp", "se" | |
, ";db", "gx0", ";gxt" | |
, "gxT", "gx$", ";cp" | |
, ";ap", "spa", "spb" | |
, "spd", "sps", "spc" | |
, "sfr" | |
, "<Alt-d>", "<Alt-P>" | |
, "<Ctrl-n>", "<Ctrl-q>", "<Ctrl-p>" | |
, "<Ctrl-m>", "<Ctrl-o>", "<Ctrl-s>" | |
, "<Ctrl-N>", "<Ctrl-P>", "<Ctrl-E>" | |
, "<Ctrl-H>", "<Ctrl-B>", "<Ctrl-I>" | |
, "<Ctrl-T>", "<Ctrl-V>", "<Ctrl-R>" | |
, "<Ctrl-D>" | |
, "<Ctrl-Del>" | |
, "<Shift-Esc>" | |
, "<Ctrl-Shift-/>" | |
, "<Ctrl-Alt-v>" | |
, "<Ctrl-Alt-E>" | |
, "<Ctrl-Alt-L>" | |
, "<Ctrl-Alt-H>" | |
, "<Ctrl-Alt-X>" | |
]; | |
unmaps.forEach(function(u) { | |
unmap(u); | |
}); | |
var rmSearchAliases = | |
{ "s" : [ "g", "d", "b" | |
, "w", "s", "h" ] | |
}; | |
Object.keys(rmSearchAliases).forEach(function(k) { | |
rmSearchAliases[k].forEach(function(v) { | |
removeSearchAliasX(v, k); | |
}); | |
}); | |
//▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | |
// SINGLE-LETTER | |
//▁▁▁ | |
// note that vivaldi single letter (no shift) shortcuts | |
// must be used sparingly as they will trigger during | |
// surfingkey shortcuts (x:=gxT) and hint characters | |
// 3 single-letter-shortcuts are delegated to Vivaldi | |
// e: page up | |
// d: page down | |
// x: close tab | |
// 'e' conflicts | |
// se → ;s ∴ ;s → ;p ∴ ;pp → null | |
// SK.settings → ;s ∴ SK.pdf → ;p ∴ SK.paste html → null | |
////unmap('e'); // V:page up | |
// (see unmaps) unmap(';p'); // SK: paste html on current page -- unmap this to free up ';p' for SK PDF | |
map(';s','se'); // SK: change SK edit settings to ';s' | |
map(';p', ';s'); // SK: change SK PDF mapping to ';p' | |
// 'd' conflicts | |
// ;db → null | |
// SK.remove-page-bookmark → null | |
// (see unmaps) unmap('d'); // V:page down | |
// (see unmaps) unmap(';db'); // SK: remove bookmark for current page | |
// 'x' conflicts | |
// gx0 → null; SK.close-all-tabs-on-left → null | |
// gxt → null; SK.close-tab-on-left → null | |
// gxT → null; SK.close-tab-on-right → null | |
// gx$ → null; SK.close-all-tabs-on-right → null | |
// (see unmaps) unmap('x'); // V:close tab | |
// (see unmaps) unmap('gx0'); // SK: Close all tabs on left, delegate to V:Ctrl-Alt-Shift-h | |
// (see unmaps) unmap('gxt'); // SK: Close tab on left | |
// (see unmaps) unmap('gxT'); // SK: Close tab on right | |
// (see unmaps) unmap('gx$'); // SK: Close all tabs on right, delegate to V:Ctrl-Alt-Shift-l | |
// delegate Close all other tabs (SK:n/a) to V:Ctrl-Alt-Shift-x | |
// Shifts | |
// (see unmaps) unmap('<Shift-Esc>'); // V:task manager | |
// (see unmaps) unmap('F'); // V:next tab (recent) | |
// (see unmaps) unmap('B'); // V:previous tab (recent) | |
// (see unmaps) unmap('R'); // V:next tab | |
// (see unmaps) unmap('E'); // V:previous tab | |
// (see unmaps) unmap('M'); // V:mute all tabs | |
// (see unmaps) unmap('S'); // V:history back | |
// (see unmaps) unmap('D'); // V:history forward | |
// (see unmaps) unmap('U'); // V:history rewind | |
//▔▔▔▔▔▔▔▔▔▔▔▔ | |
// ALT-COMBOS | |
//▁▁▁ | |
// Alt-masked | |
// (see unmaps) unmap('<Alt-d>'); // V:vivaldi's quick command | |
// Alt-only shortcuts are reserved for other system shortcut schemas (except Alt-d) | |
// todo: update new shortcuts to something less complex | |
map('Ctrl-Alt-s', '<Alt-s'); // SK:disable surfingkeys on this page | |
imap('Ctrl-Alt-b', '<Alt-b'); // SK-i:move the cursor backward 1 word | |
imap('Ctrl-Alt-f', '<Alt-f'); // SK-i:move the cursor forward 1 word | |
imap('Ctrl-Alt-w', '<Alt-w'); // SK-i:delete a word backwards | |
imap('Ctrl-Alt-d', '<Alt-d'); // SK-i:delete a word forwards | |
// Alt-Shift-masked | |
// (see unmaps) unmap('<Alt-P>'); // V:toggle view panel | |
// Ctrl-Alt-masked | |
// (see unmaps) unmap('<Ctrl-Alt-v>'); // V:paste as plain text | |
// Ctrl-Alt-Shift-masked | |
// (see unmaps) unmap('<Ctrl-Alt-E>'); // V:export settings | |
// (see unmaps) unmap('<Ctrl-Alt-L>'); // V:close tabs to the left | |
// (see unmaps) unmap('<Ctrl-Alt-H>'); // V:close tabs to the right | |
// (see unmaps) unmap('<Ctrl-Alt-X>'); // V:close other tabs | |
//▔▔▔▔▔▔▔▔▔▔▔▔▔ | |
// CTRL-COMBOS | |
//▁▁▁ | |
//Ctrl-masked | |
// (see unmaps) unmap('<Ctrl-n>'); // V:new window | |
// (see unmaps) unmap('<Ctrl-q>'); // V:exit | |
// (see unmaps) unmap('<Ctrl-p>'); // V:print | |
// (see unmaps) unmap('<Ctrl-m>'); // V:mute tab | |
// (see unmaps) unmap('<Ctrl-o>'); // V:open file | |
// (see unmaps) unmap('<Ctrl-s>'); // V:save page as | |
//Ctrl-Shift-masked | |
// (see unmaps) unmap('<Ctrl-N>'); // V:new private window | |
// (see unmaps) unmap('<Ctrl-P>'); // V:settings | |
// (see unmaps) unmap('<Ctrl-E>'); // V:extensions | |
// (see unmaps) unmap('<Ctrl-H>'); // V:history | |
// (see unmaps) unmap('<Ctrl-B>'); // V:bookmarks | |
// (see unmaps) unmap('<Ctrl-Del>'); // V:clear private data | |
// (see unmaps) unmap('<Ctrl-Shift-/>'); // V:vivaldi keyboard cheat sheet | |
// (see unmaps) unmap('<Ctrl-I>'); // V:developer tools | |
// (see unmaps) unmap('<Ctrl-T>'); // V:mute all tabs | |
// (see unmaps) unmap('<Ctrl-V>'); // V:paste and go | |
// (see unmaps) unmap('<Ctrl-R>'); // V:force page reload | |
// (see unmaps) unmap('<Ctrl-D>'); // V:downloads (panel) | |
// unmap proxy commands except for 'info' | |
// (see unmaps) unmap('cp'); // SK: toggle proxy for current site | |
// (see unmaps) unmap(';cp'); // SK: copy proxy info | |
// (see unmaps) unmap(';ap'); // SK: apply proxy info from clipboard | |
// (see unmaps) unmap('spa'); // SK: set proxy mode 'always' | |
// (see unmaps) unmap('spb'); // SK: set proxy mode 'byhost' | |
// (see unmaps) unmap('spd'); // SK: set proxy mode 'direct' | |
// (see unmaps) unmap('sps'); // SK: set proxy mode 'system' | |
// (see unmaps) unmap('spc'); // SK: set proxy mode 'clear' | |
////unmap('spi'); // SK: show proxy info // leaving this one | |
// (see unmaps) unmap('sfr'); // SK: show failed web requests of current page | |
//▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | |
// NEW MAPPINGS | |
//▁▁▁ | |
// (test this) | |
// Switch the default google search to interactive | |
//unmap('sg'); | |
//map('sg', 'sG', 0, 'Search Google'); | |
// Enable gi to focus the first text box | |
//handy for google | |
mapkey('gi', '#1Go to the first edit box', function() { | |
Hints.create("input[type=text]:nth(0)", Hints.dispatchMouseClick); | |
if(input) { | |
input.click(); | |
input.focus(); | |
} | |
}); | |
//other version | |
//mapkey('gi', '#1Go to edit box', function() { | |
// var inputs = document.getElementsByTagName('input'); | |
// var input = null; | |
// for(var i=0; i<inputs.length; i++) { | |
// if(inputs[i].type=='text') { | |
// input = inputs[i]; | |
// break; | |
// } | |
// } | |
// if(input) { | |
// input.click(); | |
// input.focus(); | |
// } | |
//}); | |
mapkey('gr', '#4Reload the page without cache', 'RUNTIME("reloadTab", { nocache: true })'); | |
mapkey('[[', '#1Click on the \'previous\' link on current page', function() { | |
var prevLinks = $('a').regex(/((<<|prev(ious)?|old(er)?)+)/i); | |
if (prevLinks.length) { | |
clickOn(prevLinks); | |
} else { | |
walkPageUrl(-1); | |
} | |
}); | |
mapkey(']]', '#1Click on the \'next\' link on current page', function() { | |
var nextLinks = $('a').regex(/((>>|next|new(er)?)+)/i); | |
if (nextLinks.length) { | |
clickOn(nextLinks); | |
} else { | |
walkPageUrl(1); | |
} | |
}); | |
mapkey('gQ', '#1QR for clipboard', function(){ | |
Normal.getContentFromClipboard(function(response) { | |
data = response.data ? response.data : window.location.href; | |
data = data.replace(/&/g, '%26'); | |
data = data.replace(/\n/g, '%0A'); | |
Normal.showPopup('<img src="http://qr.topscan.com/api.php?text=' + data + '"/>'); | |
}); | |
}); | |
mapkey('gq', '#1QR for url', function(){ | |
data = window.location.href; | |
data = data.replace(/&/g, '%26'); | |
data = data.replace(/\n/g, '%0A'); | |
Normal.showPopup('<img src="http://qr.topscan.com/api.php?text=' + data + '"/>'); | |
}); | |
mapkey('ym', "#7Copy current page's URL as markdown", function() { | |
Front.writeClipboard('[' + document.title + '](' + window.location.href + ')'); | |
}); | |
// website-specific (start with ,) | |
// todo: generalize | |
mapkey(',f', 'video fullscreen (youtube, tumblr, facebook)', function() { | |
document.querySelector('.ytp-fullscreen-button.ytp-button'|'.vjs-fullscreen-control.vjs-control.vjs-button').click(); | |
}); | |
cmap('<Ctrl-j>', '<Tab>'); | |
cmap('<Ctrl-k>', '<Shift-Tab>'); | |
//▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | |
// SEARCH ALIASES | |
//▁▁▁ | |
// Search leader | |
let sl = 'a'; | |
// Search engines | |
var search = [ | |
{ alias: 'go' | |
, name: 'google' | |
, search: 'https://www.google.com/search?q=' | |
, compl: 'https://www.google.com/complete/search?client=chrome-omni&gs_ri=chrome-ext&oit=1&cp=1&pgcl=7&q=' | |
, callback: function(response) { | |
Omnibar.listWords(JSON.parse(response.text)[1]); | |
} | |
}, | |
{ alias: 'yt' // NOTE: You need to get an API key for the 'YouTube Data API v3' from the API Manager within your Google Cloud Console. | |
, name: 'youtube' | |
, search: 'https://www.youtube.com/search?q=' | |
, compl: 'https://www.googleapis.com/youtube/v3/search?maxResults=20&part=snippet&type=video,channel&key=__YOUR_API_KEY_HERE__&safeSearch=none&q=' | |
, callback: function(response) { | |
var res = JSON.parse(response.text)["items"]; | |
Omnibar.listResults(res, function(s) { | |
switch(s["id"]["kind"]) { | |
case "youtube#channel": | |
return Omnibar.createURLItem({ | |
title: s["snippet"]["channelTitle"] + ": " + s["snippet"]["description"], | |
url: "https://youtube.com/channel/" + s["id"]["channelId"] | |
}); | |
case "youtube#video": | |
return Omnibar.createURLItem({ | |
title: " ▶ " + s["snippet"]["title"], | |
url: "https://youtu.be/" + s["id"]["videoId"] | |
}); | |
} | |
}); | |
} | |
}, | |
{ alias: 'de' | |
, name: 'define' | |
, search: 'http://onelook.com/?w=' | |
, compl: 'https://api.datamuse.com/words?md=d&sp=%s*' | |
, callback: function(response) { | |
var res = JSON.parse(response.text); | |
var defs = []; | |
res.map(function(r){ | |
if (!r.defs || r.defs.length === 0) { | |
defs.push([r.word, "", ""]); | |
return | |
} | |
r.defs.map(function(d) { | |
d = d.split("\t") | |
var sp = "(" + d[0] + ")", | |
def = d[1]; | |
defs.push([r.word, sp, def]); | |
}); | |
}); | |
Omnibar.listResults(defs, function(d) { | |
var li = $('<li/>').html('<div class="title"><strong>{0}</strong> <em>{1}</em> {2}</div>'.format( | |
d[0], d[1], d[2] | |
)); | |
li.data('url', "http://onelook.com/?w=" + d[0]); | |
return li; | |
}); | |
} | |
}, | |
{ alias: 'dg' | |
, name: 'duckduckgo' | |
, search: 'https://duckduckgo.com/?q=' | |
, compl: 'https://duckduckgo.com/ac/?q=' | |
, callback: function(response) { | |
var res = JSON.parse(response.text).map(function(r){ | |
return r.phrase; | |
}); | |
Omnibar.listWords(res); | |
} | |
}, | |
{ alias: 'aw' | |
, name: 'archwiki' | |
, search: 'https://wiki.archlinux.org/index.php?go=go&search=' | |
, compl: 'https://wiki.archlinux.org/api.php?action=opensearch&format=json&formatversion=2&namespace=0&limit=10&suggest=true&search=' | |
, callback: function(response) { | |
Omnibar.listWords(JSON.parse(response.text)[1]); | |
} | |
}, | |
{ alias: 'au' | |
, name: 'AUR' | |
, search: 'https://aur.archlinux.org/packages/?O=0&K=' | |
, compl: 'https://aur.archlinux.org/rpc?type=suggest&arg=' | |
, callback: function(response) { | |
Omnibar.listWords(JSON.parse(response.text)); | |
} | |
}, | |
{ alias: 'al' | |
, name: 'archlinux' | |
, search: 'https://www.archlinux.org/packages/?arch=x86_64&q=' | |
, compl: '' | |
, callback: function() {} | |
}, | |
{ alias: 'wp' | |
, name: 'wikipedia' | |
, search: 'https://en.wikipedia.org/w/index.php?search=' | |
, compl: 'https://en.wikipedia.org/w/api.php?action=query&format=json&list=prefixsearch&utf8&pssearch=' | |
, callback: function(response) { | |
var res = JSON.parse(response.text)["query"]["prefixsearch"] | |
.map(function(r){ | |
return r.title; | |
}); | |
Omnibar.listWords(res); | |
} | |
}, | |
{ alias: 'az' | |
, name: 'amazon' | |
, search: 'https://smile.amazon.com/s/?field-keywords=' | |
, compl: 'https://completion.amazon.com/search/complete?method=completion&mkt=1&search-alias=aps&q=' | |
, callback: function(response) { | |
var res = JSON.parse(response.text)[1]; | |
Omnibar.listWords(res); | |
} | |
}, | |
{ alias: 'yp' | |
, name: 'yelp' | |
, search: 'https://www.yelp.com/search?find_desc=' | |
, compl: 'https://www.yelp.com/search_suggest/v2/prefetch?prefix=' | |
, callback: function(response) { | |
var res = JSON.parse(response.text)["response"]; | |
var words = []; | |
res.map(function(r){ | |
r["suggestions"].map(function(s) { | |
var w = s["query"]; | |
if (words.indexOf(w) === -1) { | |
words.push(w); | |
} | |
}); | |
}); | |
Omnibar.listWords(words); | |
} | |
}, | |
{ alias: 'gh' | |
, name: 'github' | |
, search: 'https://github.com/search?q=' | |
, compl: 'https://api.github.com/search/repositories?sort=stars&order=desc&q=' | |
, callback: function(response) { | |
var res = JSON.parse(response.text)["items"]; | |
Omnibar.listResults(res, function(s) { | |
var prefix = ""; | |
if (s["stargazers_count"]) { | |
prefix += "[★" + s["stargazers_count"] + "] " | |
} | |
return Omnibar.createURLItem({ | |
title: prefix + s["full_name"], | |
url: s["html_url"] | |
}); | |
}); | |
} | |
}, | |
{ alias: 'ho' | |
, name: 'hoogle' | |
, search: 'https://www.haskell.org/hoogle/?hoogle=' | |
, compl: 'https://www.haskell.org/hoogle/?mode=json&hoogle=' | |
, callback: function(response) { | |
var res = JSON.parse(response.text)["results"]; | |
Omnibar.listResults(res, function(s) { | |
return Omnibar.createURLItem({ | |
title: s.self, | |
url: s.location | |
}); | |
}); | |
} | |
}, | |
{ alias: 'hw' | |
, name: 'haskellwiki' | |
, search: 'https://wiki.haskell.org/index.php?go=go&search=' | |
, compl: 'https://wiki.haskell.org/api.php?action=opensearch&format=json&formatversion=2&namespace=0&limit=10&suggest=true&search=' | |
, callback: function(response) { | |
Omnibar.listWords(JSON.parse(response.text)[1]); | |
} | |
}, | |
{ alias: 'hy' | |
, name: 'hayoo' | |
, search: 'http://hayoo.fh-wedel.de/?query=' | |
, compl: 'http://hayoo.fh-wedel.de/json?query=' | |
, callback: function(response) { | |
var res = JSON.parse(response.text)["result"]; | |
Omnibar.listResults(res, function(s) { | |
return Omnibar.createURLItem({ | |
title: "[" + s.resultType + "] " + s.resultName, | |
url: s.resultUri | |
}); | |
}); | |
} | |
}, | |
{ alias: 'ha' | |
, name: 'hackage' | |
, search: 'https://hackage.haskell.org/packages/search?terms=' | |
, compl: 'https://hackage.haskell.org/packages/search.json?terms=' | |
, callback: function(response) { | |
var res = JSON.parse(response.text); | |
Omnibar.listResults(res, function(s) { | |
return Omnibar.createURLItem({ | |
title: s.name, | |
url: 'https://hackage.haskell.org/package/' + s.name | |
}); | |
}); | |
} | |
}, | |
{ alias: 'hn' | |
, name: 'hackernews' | |
, search: 'https://hn.algolia.com/?query=' | |
, compl: 'https://hn.algolia.com/api/v1/search?tags=(story,comment)&query=' | |
, callback: function(response) { | |
var res = JSON.parse(response.text)["hits"]; | |
Omnibar.listResults(res, function(s) { | |
var title = ""; | |
var prefix = ""; | |
if (s["points"]) { | |
prefix += "[↑" + s["points"] + "] "; | |
} | |
if (s["num_comments"]) { | |
prefix += "[↲" + s["num_comments"] + "] "; | |
} | |
switch(s._tags[0]) { | |
case "story": | |
title = s["title"]; | |
break; | |
case "comment": | |
title = s["comment_text"]; | |
break; | |
default: | |
title = s["objectID"]; | |
} | |
return Omnibar.createURLItem({ | |
title: prefix + title, | |
url: "https://news.ycombinator.com/item?id=" + s["objectID"] | |
}); | |
}); | |
} | |
}, | |
{ alias: 're' | |
, name: 'reddit' | |
, search: 'https://www.reddit.com/search?sort=relevance&t=all&q=' | |
, compl: 'https://api.reddit.com/search?syntax=plain&sort=relevance&limit=20&q=' | |
, callback: function(response) { | |
var res = JSON.parse(response.text)["data"]["children"]; | |
Omnibar.listResults(res, function(s) { | |
var d = s["data"]; | |
return Omnibar.createURLItem({ | |
title: "[" + d["score"] + "] " + d["title"], | |
url: "https://reddit.com" + d["permalink"] | |
}); | |
}); | |
} | |
}, | |
{ alias: 'so' | |
, name: 'stackoverflow' | |
, search: 'https://stackoverflow.com/search?q=' | |
, compl: 'https://api.stackexchange.com/2.2/search/advanced?pagesize=10&order=desc&sort=relevance&site=stackoverflow&q=' | |
, callback: function(response) { | |
var res = JSON.parse(response.text)["items"]; | |
Omnibar.listResults(res, function(s) { | |
return Omnibar.createURLItem({ | |
title: "[" + s["score"] + "] " + s["title"], | |
url: s["link"] | |
}); | |
}); | |
} | |
}, | |
{ alias: 'cs' | |
, name: 'chromestore' | |
, search: 'https://chrome.google.com/webstore/search/' | |
, compl: '' | |
, callback: function() {} | |
}, | |
{ alias: 'cl' | |
, name: 'craigslist' | |
, search: 'https://craigslist.org/search/sss?query=' | |
, compl: 'https://craigslist.org/suggest?v=12&type=search&cat=sss&area=1&term=' | |
, callback: function(response) { | |
Omnibar.listWords(JSON.parse(response.text)); | |
} | |
}, | |
]; | |
for(var i = 0; i < search.length; i++) { | |
var s = search[i], // Search object | |
la = sl + s.alias; // Search leader + alias | |
addSearchAliasX(s.alias, s.name, s.search, sl, s.compl, s.callback); | |
mapkey(la, '#8Search ' + s.name, 'Front.openOmnibar({type: "SearchEngine", extra: "' + s.alias + '"})'); | |
} | |
//▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | |
// SETTINGS | |
//▁▁▁ | |
settings.startToShowEmoji = 1; | |
settings.showModeStatus = false; | |
settings.focusFirstCandidate = true; | |
settings.interceptedErrors = ['*']; | |
settings.smoothScroll = false; | |
settings.modeAfterYank = "Normal"; | |
settings.scrollStepSize: 50; | |
settings.cursorAtEndOfInput: false; | |
//▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | |
// HINTS | |
//▁▁▁ | |
Hints.characters = 'asfgqwrtzcvb'; | |
// box-shadow: inset #ff4081 0px 15px 6px -11px; | |
//▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | |
// THEME/STYLES/EMOJI | |
//▁▁▁ | |
Hints.style(" \ | |
font-family: Roboto, sans serif; \ | |
font-size: 13px; \ | |
font-weight: 400; \ | |
border: unset; \ | |
padding: 3px; \ | |
color: #ffffff; \ | |
background: unset; \ | |
background-color: #3d51f5; \ | |
//background-color: rgba(158, 57, 255, 0.19); \ | |
"); | |
Hints.style(" \ | |
font-family: Roboto, sans serif; \ | |
font-size: 13px; \ | |
font-weight: 400; \ | |
border: unset; \ | |
padding: 3px; \ | |
color: #ffffff; \ | |
background: unset; \ | |
background-color: #ff4081 \ | |
", "text"); | |
Visual.style('marks', 'background: unset; background-color: #9c39ff'); | |
Visual.style('cursor', 'background: unset; background-color: #ff4081'); | |
// | |
// Theme | |
// | |
settings.theme = ` | |
.sk_theme { | |
background: ghostwhite; | |
color: #3d51f5; | |
font-family: Roboto, sans serif; | |
} | |
/* focused elements */ | |
.sk_theme .focused { | |
background: #3d51f5 !important; | |
color: ghostwhite; | |
} | |
.sk_theme input { | |
color: #ff4081; | |
} | |
.sk_theme .annotation { | |
color: #1a1d31; | |
font-size: 14px; | |
} | |
.sk_theme kbd { | |
color: #d0d0d0; | |
} | |
.sk_popup { | |
background-color: #ffffff; | |
} | |
/* Help/Guide (#sk_usage) */ | |
/**/ | |
#sk_usage, #sk_popup, #sk_editor { | |
padding: 1rem; | |
border: 1px solid #3d51f5; | |
background: radial-gradient(ghostwhite, white); | |
box-shadow: rgba(134, 134, 134, 0.8) 0px 2px 5px 0px; | |
} | |
#sk_usage > div { | |
vertical-align: top; | |
margin-right: 44px; | |
} | |
#sk_usage .feature_name { | |
padding-bottom: 14px; | |
padding-top: 18px; | |
} | |
.sk_theme .feature_name { | |
color: #ff4081; | |
} | |
#sk_usage .feature_name > span { | |
border-bottom: 2px solid #3d51f5; | |
font-size: 20px; | |
font-weight: bold; | |
font-family: ZillaSlab; | |
} | |
#sk_usage span.annotation { | |
padding-left: 13px; | |
line-height: 36px; | |
} | |
/* Shortcut text bubbles */ | |
#sk_usage .kbd-span { | |
width: 109px; | |
} | |
#sk_usage kbd { | |
background-color: white; | |
padding: 6px 4px 9px 4px; | |
font-family: Inconsolata; | |
font-size: 16px; | |
box-shadow: unset; | |
} | |
/* Slide-down banner for messages */ | |
/**/ | |
#sk_banner { | |
border-radius: 0px 0px 2px 2px; | |
border: 1px solid #ff4081; | |
background: radial-gradient(#ffece4, white); | |
color: #000a4a; | |
font-size: 14px; | |
font-weight: 500; | |
box-shadow: rgba(134, 134, 134, 0.8) 0px 2px 5px 0px; | |
} | |
/* Vim status tab (normal/insert/visual) */ | |
/**/ | |
#sk_status { | |
color: #2d51f5; | |
padding: 11px 8px 0 8px; | |
border: 1px solid #ff4081; | |
border-bottom: ghostwhite; | |
font-family: Nirmala UI Semilight; | |
font-size: 16px; | |
height: 1.8rem; | |
opacity: 0.5; | |
background: radial-gradient(ghostwhite, white); | |
box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.8); | |
border-radius: 2px 2px 0px 0px; | |
} | |
/* status tab inside */ | |
#sk_status > span { | |
line-height: 19px; | |
} | |
/* Omnibar styling */ | |
/**/ | |
#sk_omnibar { | |
background: radial-gradient(ghostwhite, white); | |
box-shadow: rgba(134, 134, 134, 0.8) 0px 2px 5px 0px; | |
border: 1px solid #3d51f5; | |
font-family: Nirmala UI Semilight; | |
} | |
#sk_omnibarSearchArea { | |
background-color: unset; | |
} | |
.sk_theme .prompt { | |
color: #cc9baa; | |
} | |
#sk_omnibarSearchArea > input { | |
color: #6483f9; | |
font-family: Nirmala UI Semilight; | |
margin-bottom: 1px; | |
} | |
.sk_theme .resultPage { | |
color: #6483f9; | |
} | |
#sk_omnibarSearchResult { | |
color: #6483f9; | |
font-size: 15px; | |
} | |
/* omnibar result rows */ | |
#sk_omnibar > #sk_omnibarSearchResult > ul > li { | |
padding: 0.3rem; | |
} | |
.sk_omnibar_middle #sk_omnibarSearchArea { | |
border-bottom: none; | |
} | |
/* omnibar results urls */ | |
.sk_theme .url { | |
color: #829dff; | |
} | |
/* omnibar selected result highlight */ | |
.sk_theme .omnibar_highlight { | |
color: #ff4081; | |
} | |
#sk_omnibar span.omnibar_highlight { | |
text-shadow: unset; | |
} | |
.sk_theme .omnibar_timestamp { | |
color: #86a4d2; | |
} | |
#sk_omnibarSearchResult > ul > li > .title > span.omnibar_folder { | |
color: #00bd55; | |
} | |
#sk_omnibarSearchResult > ul > li.focused > .title > span.omnibar_folder { | |
color: #00ff73; | |
} | |
/* Keystroke hints */ | |
#sk_richKeystroke { | |
border: 1px solid #3d51f5; | |
background: radial-gradient(ghostwhite, white); | |
box-shadow: rgba(134, 134, 134, 0.8) 0px 2px 5px 0px; | |
padding: 0.6rem 1rem 1rem 1rem; | |
border-radius: 2px; | |
} | |
#sk_richKeystroke kbd { | |
background-color: white; | |
padding: 9px 4px 11px 4px; | |
font-family: Inconsolata; | |
font-size: 20px; | |
box-shadow: unset; | |
border-color: #e6eaff; | |
} | |
#sk_richKeystroke .kdb-span { | |
min-width: 43px; | |
} | |
#sk_richKeystroke span.annotation { | |
color: #1a1d31; | |
padding-left: 13px; | |
line-height: 36px; | |
} | |
#sk_richKeystroke kbd > .candidates { | |
color: #ff4081; | |
font-weight: normal; | |
} | |
/* | |
.interstitial-wrapper { | |
}*/ | |
`; |
I am having trouble using any of the shortcuts below a point in the script. 'gi' at least works. At line 380 there is a warning message.
it was a warning message that was distracting enough. There's a fix for line 600-601
settings.scrollStepSize= 50;
settings.cursorAtEndOfInput= false;
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
the style doesn't work in visual mode..