surfingkeys-conf/keys.js

500 lines
12 KiB
JavaScript
Raw Normal View History

const actions = require("./actions")
const { categories } = require("./help")
// Remove undesired default mappings
const unmaps = {
mappings: [
"sb", "sw", "ob",
"ow", "cp", ";cp",
";ap", "spa", "spb",
"spd", "sps", "spc",
"spi", "sfr", "zQ",
"zz", "zR", "ab",
"Q", "q", "ag",
"af", ";s", "yp",
],
searchAliases: {
s: ["g", "d", "b",
"w", "s", "h"],
},
}
const maps = {
global: [
{
alias: "w",
map: "k",
category: categories.scroll,
description: "Scroll up",
},
{
alias: "s",
map: "j",
category: categories.scroll,
description: "Scroll down",
},
{
alias: "gi",
category: categories.pageNav,
description: "Edit current URL with vim editor",
callback: actions.vimEditURL,
},
{
alias: "gi",
category: categories.pageNav,
description: "Edit current URL with vim editor",
callback: actions.vimEditURL,
},
{
alias: "gI",
category: categories.pageNav,
description: "View image in new tab",
callback: actions.createHint("img", i => actions.openLink(i.src)()),
},
{
alias: "yp",
category: categories.clipboard,
description: "Copy URL path of current page",
callback: actions.copyURLPath(),
},
{
alias: "yI",
category: categories.clipboard,
description: "Copy Image URL",
callback: actions.createHint("img", i => Clipboard.write(i.src)),
},
{
alias: ";se",
category: categories.settings,
description: "Edit Settings",
callback: actions.editSettings,
},
{
alias: "gS",
category: categories.chromeURLs,
description: "Open Chrome settings",
},
{
alias: "=w",
category: categories.misc,
description: "Lookup whois information for domain",
callback: actions.showWhois(),
},
{
alias: "=d",
category: categories.misc,
description: "Lookup dns information for domain",
callback: actions.showDns(),
},
{
alias: "=D",
category: categories.misc,
description: "Lookup all information for domain",
callback: actions.showDns({ verbose: true }),
},
{
alias: ";pd",
category: categories.misc,
description: "Toggle PDF viewer from SurfingKeys",
callback: actions.togglePdfViewer,
},
],
"amazon.com": [
{
alias: "fs",
description: "Fakespot",
callback: actions.fakeSpot,
},
],
"google.com": [
{
alias: "a",
description: "Open search result",
callback: actions.createHint(".r>a"),
},
{
alias: "A",
description: "Open search result (new tab)",
callback: actions.createHint(".r>a", actions.openAnchor({ newTab: true })),
},
],
"yelp.com": [
{
alias: "fs",
description: "Fakespot",
callback: actions.fakeSpot,
},
],
"youtube.com": [
{
leader: "",
alias: "A",
description: "Open video",
callback: actions.createHint("*[id='video-title']", actions.openAnchor({ newTab: true })),
},
{
leader: "",
alias: "C",
description: "Open channel",
callback: actions.createHint("*[id='byline']"),
},
{
leader: "",
alias: "gH",
description: "Goto homepage",
callback: actions.openLink("https://www.youtube.com/feed/subscriptions?flow=2"),
},
{
leader: "",
alias: "F",
description: "Toggle fullscreen",
callback: () => document.querySelector(".ytp-fullscreen-button.ytp-button").click(),
},
{
leader: "",
alias: "<Space>",
description: "Play/pause",
callback: actions.createHint(".ytp-play-button"),
},
],
"vimeo.com": [
{
alias: "F",
description: "Toggle fullscreen",
callback: () => document.querySelector(".fullscreen-icon").click(),
},
],
"github.com": [
2018-11-09 01:46:22 +00:00
{
alias: "a",
description: "View Repository",
callback: actions.gh.openRepo,
},
{
alias: "u",
description: "View User",
callback: actions.gh.openUser,
},
{
alias: "f",
description: "View File",
callback: actions.gh.openFile,
},
{
alias: "i",
description: "View Issue",
callback: actions.gh.openIssue,
},
{
leader: "",
2018-11-09 01:46:22 +00:00
alias: "gp",
description: "Go to parent",
callback: actions.gh.goParent,
},
{
alias: "s",
description: "Toggle Star",
callback: actions.gh.star({ toggle: true }),
},
{
alias: "S",
description: "Check Star",
callback: actions.gh.star({ toggle: false }),
},
{
alias: "y",
description: "Copy Project Path",
callback: actions.copyURLPath({ count: 2 }),
},
{
alias: "Y",
description: "Copy Project Path (including domain)",
callback: actions.copyURLPath({ count: 2, domain: true }),
},
{
alias: "D",
description: "View GoDoc for Project",
callback: actions.viewGodoc,
},
],
"gitlab.com": [
{
alias: "s",
description: "Toggle Star",
callback: actions.gl.star,
},
{
alias: "y",
description: "Copy Project Path",
callback: actions.copyURLPath({ count: 2 }),
},
{
alias: "Y",
description: "Copy Project Path (including domain)",
callback: actions.copyURLPath({ count: 2, domain: true }),
},
{
alias: "D",
description: "View GoDoc for Project",
callback: actions.viewGodoc,
},
],
"twitter.com": [
{
alias: "f",
description: "Follow user",
callback: actions.createHint(".follow-button"),
},
{
alias: "s",
description: "Like tweet",
callback: actions.createHint(".js-actionFavorite"),
},
{
alias: "R",
description: "Retweet",
callback: actions.createHint(".js-actionRetweet"),
},
{
alias: "c",
description: "Comment/Reply",
callback: actions.createHint(".js-actionReply"),
},
{
alias: "t",
description: "New tweet",
callback: actions.createHint(".js-global-new-tweet"),
},
{
alias: "T",
description: "Tweet to",
callback: actions.createHint(".NewTweetButton"),
},
{
alias: "r",
description: "Load new tweets",
callback: actions.createHint(".new-tweets-bar"),
},
{
alias: "g",
description: "Goto user",
callback: actions.createHint(".js-user-profile-link"),
},
],
"reddit.com": [
{
alias: "x",
description: "Collapse comment",
callback: actions.createHint(".expand"),
},
{
alias: "X",
description: "Collapse next comment",
callback: actions.re.collapseNextComment,
},
{
alias: "s",
description: "Upvote",
callback: actions.createHint(".arrow.up"),
},
{
alias: "S",
description: "Downvote",
callback: actions.createHint(".arrow.down"),
},
{
alias: "e",
description: "Expand expando",
callback: actions.createHint(".expando-button"),
},
{
alias: "a",
description: "View post (link)",
callback: actions.createHint(".title"),
},
{
alias: "A",
description: "View post (link) (new tab)",
callback: actions.createHint(".title", actions.openAnchor({ newTab: true })),
},
{
alias: "c",
description: "View post (comments)",
callback: actions.createHint(".comments"),
},
{
alias: "C",
description: "View post (comments) (new tab)",
callback: actions.createHint(".comments", actions.openAnchor({ newTab: true })),
},
],
"news.ycombinator.com": [
{
alias: "x",
description: "Collapse comment",
callback: actions.createHint(".togg"),
},
{
alias: "X",
description: "Collapse next comment",
callback: actions.hn.collapseNextComment,
},
{
alias: "s",
description: "Upvote",
callback: actions.createHint(".votearrow[title='upvote']"),
},
{
alias: "S",
description: "Downvote",
callback: actions.createHint(".votearrow[title='downvote']"),
},
{
alias: "a",
description: "View post (link)",
callback: actions.createHint(".storylink"),
},
{
alias: "A",
description: "View post (link) (new tab)",
callback: actions.createHint(".storylink", actions.openAnchor({ newTab: true })),
},
{
alias: "c",
description: "View post (comments)",
callback: actions.createHint("td > a[href*='item']:not(.storylink)"),
},
{
alias: "C",
description: "View post (comments) (new tab)",
callback: actions.createHint("td > a[href*='item']:not(.storylink)", actions.openAnchor({ newTab: true })),
},
{
leader: "",
alias: "gp",
description: "Go to parent",
callback: actions.hn.goParent,
},
2019-03-07 23:08:10 +00:00
{
leader: "",
alias: "]]",
description: "Next page",
callback: () => actions.hn.goPage(1),
},
{
leader: "",
alias: "[[",
description: "Prev page",
callback: () => actions.hn.goPage(-1),
},
],
"producthunt.com": [
{
alias: "a",
description: "View product (external)",
callback: actions.ph.openExternal,
},
{
alias: "v",
description: "View product",
callback: actions.createHint("ul[class^='postsList_'] > li > div[class^='item_'] > a"),
},
{
alias: "s",
description: "Upvote product",
callback: actions.createHint("button[data-test='vote-button']"),
},
],
"dribbble.com": [
{
alias: "s",
description: "Heart Shot",
callback: actions.createHint(".toggle-fav, .like-shot"),
},
{
alias: "a",
description: "View shot",
callback: actions.createHint(".dribbble-over, .gif-target, .more-thumbs a"),
},
{
alias: "A",
description: "View shot (new tab)",
callback: actions.createHint(".dribbble-over, .gif-target, .more-thumbs a", actions.openAnchor({ newTab: true })),
},
{
alias: "v",
description: "View attachment image",
callback: actions.dr.attachment(),
},
{
alias: "V",
description: "Yank attachment image source URL",
callback: actions.dr.attachment(a => Clipboard.write(a)),
},
{
alias: "z",
description: "Zoom shot",
callback: actions.createHint(".single-img picture, .detail-shot img"),
},
],
"behance.net": [
{
alias: "s",
description: "Appreciate project",
callback: actions.createHint(".appreciation-button"),
},
{
alias: "b",
description: "Add project to collection",
callback: () => document.querySelector(".qa-action-collection").click(),
},
{
alias: "a",
description: "View project",
callback: actions.createHint(".rf-project-cover__title"),
},
{
alias: "A",
description: "View project (new tab)",
callback: actions.createHint(".rf-project-cover__title", actions.openAnchor({ newTab: true })),
},
],
"fonts.adobe.com": [
{
alias: "a",
description: "Activate font",
callback: actions.createHint(".spectrum-ToggleSwitch-input"),
},
{
alias: "s",
description: "Favorite font",
callback: actions.createHint(".favorite-toggle-icon"),
},
],
"wikipedia.org": [
{
alias: "s",
description: "Toggle simple version of current article",
callback: actions.wp.toggleSimple,
},
],
}
module.exports = { unmaps, maps }