Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save coramuirgen/94ba1d587cb2093c71f6ef4f0b371069 to your computer and use it in GitHub Desktop.
Save coramuirgen/94ba1d587cb2093c71f6ef4f0b371069 to your computer and use it in GitHub Desktop.
//▔▔▔▔▔▔▔▔▔▔
// ➤ 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 {
}*/
`;
@jaredbidlow
Copy link

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.

@jaredbidlow
Copy link

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