function orgCapture() {
    location.href = 'org-protocol://capture?'
        + new URLSearchParams({
            template: 'U',
            url: window.location.href,
            title: document.title,
            body: window.getSelection()});
}


api.addSearchAlias('aw', 'archlinux wiki', 'https://wiki.archlinux.org/index.php?search=%s');
api.addSearchAlias('ap', 'archlinux packages', 'https://archlinux.org/packages/?q=%s');
api.addSearchAlias('m', 'melpa', 'https://melpa.org/#/?q=%s');
api.addSearchAlias('e', 'emacswiki', 'https://duckduckgo.com/?q=site%3Aemacswiki.org+%s&atb=v98-1&ia=web');
api.addSearchAlias(
    'w',
    'wikipedia',
    'https://en.wikipedia.org/wiki/',
    's',
    'https://en.wikipedia.org/w/api.php?action=opensearch&format=json&formatversion=2&namespace=0&limit=40&search=',
    function(response) {
        return JSON.parse(response.text)[1];
    }
);

api.unmap(':');
api.mapkey('<Alt-x>', '#7Open commands', function() {
    api.Front.openOmnibar({type: "Commands"});
});

api.mapkey('<Ctrl-c>g', '#14Load new posts', function() {
    document.querySelector('button.updates-button').click();
}, { domain: /phanpy\.social/i });

api.mapkey('cc', '#13Capture current page', orgCapture);

api.map('<Ctrl-b>', 'h');
api.map('<Ctrl-n>', 'j');
api.map('<Ctrl-p>', 'k');
api.map('<Ctrl-f>', 'l');
api.map('<Ctrl-x>xg', 'r');
api.map('l', 'S');
api.map('r', 'D');
api.map('c0', 'yy');
api.map('cl', 'ya');
api.map('<Alt-p>', 'E');
api.map('<Alt-n>', 'R');
api.map('<Ctrl-u>f', 'af');

api.unmap('h');
api.unmap('j');
api.unmap('k');
api.unmap('S');
api.unmap('D');
api.unmap('yy');
api.unmap('E');
api.unmap('R');
api.unmap('af');

api.map('<Ctrl-v>', 'P');
api.map('<Alt-v>', 'U');
api.map('<Alt->>', 'G');
api.map('<Alt-<>', 'gg');

api.unmap('P');
api.unmap('U');
api.unmap('G');
api.unmap('gg');

api.cmap('<Ctrl-g>', '<Esc>');
api.imap('<Ctrl-g>', '<Esc>');

api.Hints.setCharacters('arstdhneio');
api.hintAlign = "left";

settings.aceKeybindings = 'emacs';
settings.defaultSearchEngine = 'd';
settings.omnibarPosition = "bottom";

const hintsCss = "font-size: 13pt; font-family: 'Fantasque Sans Mono'; border: 1px solid #787f7f; color: #bfbfbf !important; background: #222424; padding: 0; line-height: 1;"
api.Hints.style(hintsCss);
api.Hints.style(hintsCss, "text");

settings.theme = `
  .sk_theme {
    background: #222424;
    color: #bfbfbf;
  }
  .sk_theme input {
      color: #bfbfbf;
  }
  .sk_theme .url {
      color: #f1b572;
  }
  .sk_theme .annotation {
      color: #f172b5;
  }
  .sk_theme kbd {
      background: #3f4242;
      color: #bfbfbf;
  }
  .sk_theme .frame {
      background: #ff00ff;
  }
  .sk_theme .omnibar_highlight {
      color: #72f1f1;
  }
  .sk_theme .omnibar_folder {
      color: #ff00ff;
  }
  .sk_theme .omnibar_timestamp {
      color: #8872f1;
  }
  .sk_theme .omnibar_visitcount {
    color: #ff00ff;
  }
  .sk_theme .prompt, .sk_theme .resultPage {
    color: #ff00ff;
  }
  .sk_theme .feature_name {
    color: #e0def4;
  }
  .sk_theme .separator {
    color: #56526e;
  }
  body {
    margin: 0;

    font-family: "JetBrains Mono NL", "Cascadia Code", "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 12px;
  }
  #sk_omnibar {
    overflow: hidden;
    position: fixed;
    width: 80%;
    max-height: 80%;
    left: 10%;
    text-align: left;
    box-shadow: 0px 2px 10px #2a283e;
    z-index: 2147483000;
  }
  .sk_omnibar_middle {
    top: 10%;
    border-radius: 4px;
  }
  .sk_omnibar_bottom {
    bottom: 0;
    border-radius: 4px 4px 0px 0px;
  }
  #sk_omnibar span.omnibar_highlight {
    text-shadow: 0 0 0.01em;
  }
  #sk_omnibarSearchArea .prompt, #sk_omnibarSearchArea .resultPage {
    display: inline-block;
    font-size: 20px;
    width: auto;
  }
  #sk_omnibarSearchArea>input {
    display: inline-block;
    width: 100%;
    flex: 1;
    font-size: 20px;
    margin-bottom: 0;
    padding: 0px 0px 0px 0.5rem;
    background: transparent;
    border-style: none;
    outline: none;
  }
  #sk_omnibarSearchArea {
    display: flex;
    align-items: center;
    border-bottom: 1px solid #56526e;
  }
  .sk_omnibar_middle #sk_omnibarSearchArea {
    margin: 0.5rem 1rem;
  }
  .sk_omnibar_bottom #sk_omnibarSearchArea {
    margin: 0.2rem 1rem;
  }
  .sk_omnibar_middle #sk_omnibarSearchResult>ul {
    margin-top: 0;
  }
  .sk_omnibar_bottom #sk_omnibarSearchResult>ul {
    margin-bottom: 0;
  }
  #sk_omnibarSearchResult {
    max-height: 60vh;
    overflow: hidden;
    margin: 0rem 0.6rem;
  }
  #sk_omnibarSearchResult:empty {
    display: none;
  }
  #sk_omnibarSearchResult>ul {
    padding: 0;
  }
  #sk_omnibarSearchResult>ul>li {
    padding: 0.2rem 0rem;
    display: block;
    max-height: 600px;
    overflow-x: hidden;
    overflow-y: auto;
  }
  .sk_theme #sk_omnibarSearchResult>ul>li:nth-child(odd) {
    background: #3f4242;
  }
  .sk_theme #sk_omnibarSearchResult>ul>li.focused {
    background: #72aff1;
    color: #3f4242;
  }
  .sk_theme #sk_omnibarSearchResult>ul>li.window {
    border: 2px solid #56526e;
    border-radius: 8px;
    margin: 4px 0px;
  }
  .sk_theme #sk_omnibarSearchResult>ul>li.window.focused {
    border: 2px solid #c4a7e7;
  }
  .sk_theme div.table {
    display: table;
  }
  .sk_theme div.table>* {
    vertical-align: middle;
    display: table-cell;
  }
  #sk_omnibarSearchResult li div.title {
    text-align: left;
  }
  #sk_omnibarSearchResult li div.url {
    font-weight: normal;
    white-space: nowrap;
  }
  #sk_omnibarSearchResult li.focused div.url {
    white-space: normal;
  }
  #sk_omnibarSearchResult li span.annotation {
    float: right;
  }
  #sk_omnibarSearchResult .tab_in_window {
    display: inline-block;
    padding: 5px;
    margin: 5px;
    box-shadow: 0px 2px 10px #2a283e;
  }
  #sk_status {
    position: fixed;
    bottom: 0;
    right: 20%;
    z-index: 2147483000;
    padding: 4px 8px 0 8px;
    border-radius: 4px 4px 0px 0px;
    border: 1px solid #56526e;
    font-size: 12px;
  }
  #sk_status>span {
    line-height: 16px;
  }
  .expandRichHints span.annotation {
    padding-left: 4px;
    color: #ea9a97;
  }
  .expandRichHints .kbd-span {
    min-width: 30px;
    text-align: right;
    display: inline-block;
  }
  .expandRichHints kbd>.candidates {
    color: #e0def4;
    font-weight: bold;
  }
  .expandRichHints kbd {
    padding: 1px 2px;
  }
  #sk_find {
    border-style: none;
    outline: none;
  }
  #sk_keystroke {
    padding: 6px;
    position: fixed;
    float: right;
    bottom: 0px;
    z-index: 2147483000;
    right: 0px;
    background: #232136;
    color: #e0def4;
  }
  #sk_usage, #sk_popup, #sk_editor {
    overflow: auto;
    position: fixed;
    width: 80%;
    max-height: 80%;
    top: 10%;
    left: 10%;
    text-align: left;
    box-shadow: #2a283e;
    z-index: 2147483298;
    padding: 1rem;
  }
  #sk_nvim {
    position: fixed;
    top: 10%;
    left: 10%;
    width: 80%;
    height: 30%;
  }
  #sk_popup img {
    width: 100%;
  }
  #sk_usage>div {
    display: inline-block;
    vertical-align: top;
  }
  #sk_usage .kbd-span {
    width: 80px;
    text-align: right;
    display: inline-block;
  }
  #sk_usage .feature_name {
    text-align: center;
    padding-bottom: 4px;
  }
  #sk_usage .feature_name>span {
    border-bottom: 2px solid #56526e;
  }
  #sk_usage span.annotation {
    padding-left: 32px;
    line-height: 22px;
  }
  #sk_usage * {
    font-size: 10pt;
  }
  kbd {
    white-space: nowrap;
    display: inline-block;
    padding: 3px 5px;
    font: 11px "JetBrains Mono NL", "Cascadia Code", "Helvetica Neue", Helvetica, Arial, sans-serif;
    line-height: 10px;
    vertical-align: middle;
    border: solid 1px #56526e;
    border-bottom-lolor: #56526e;
    border-radius: 3px;
    box-shadow: inset 0 -1px 0 #2a283e;
  }
  #sk_banner {
    padding: 0.5rem;
    position: fixed;
    left: 10%;
    top: -3rem;
    z-index: 2147483000;
    width: 80%;
    border-radius: 0px 0px 4px 4px;
    border: 1px solid #56526e;
    border-top-style: none;
    text-align: center;
    background: #232136;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
  }
  #sk_tabs {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    overflow: auto;
    z-index: 2147483000;
  }
  div.sk_tab {
    display: inline-block;
    border-radius: 3px;
    padding: 10px 20px;
    margin: 5px;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#232136), color-stop(100%,#232136));
    box-shadow: 0px 3px 7px 0px #2a283e;
  }
  div.sk_tab_wrap {
    display: inline-block;
  }
  div.sk_tab_icon {
    display: inline-block;
    vertical-align: middle;
  }
  div.sk_tab_icon>img {
    width: 18px;
  }
  div.sk_tab_title {
    width: 150px;
    display: inline-block;
    vertical-align: middle;
    font-size: 10pt;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    padding-left: 5px;
    color: #e0def4;
  }
  div.sk_tab_url {
    font-size: 10pt;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    color: #c4a7e7;
  }
  div.sk_tab_hint {
    display: inline-block;
    float:right;
    font-size: 10pt;
    font-weight: bold;
    padding: 0px 2px 0px 2px;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#232136), color-stop(100%,#232136));
    color: #e0def4;
    border: solid 1px #56526e;
    border-radius: 3px;
    box-shadow: #2a283e;
  }
  #sk_bubble {
    position: absolute;
    padding: 9px;
    border: 1px solid #56526e;
    border-radius: 4px;
    box-shadow: 0 0 20px #2a283e;
    color: #e0def4;
    background-color: #232136;
    z-index: 2147483000;
    font-size: 14px;
  }
  #sk_bubble .sk_bubble_content {
    overflow-y: scroll;
    background-size: 3px 100%;
    background-position: 100%;
    background-repeat: no-repeat;
  }
  .sk_scroller_indicator_top {
    background-image: linear-gradient(#232136, transparent);
  }
  .sk_scroller_indicator_middle {
    background-image: linear-gradient(transparent, #232136, transparent);
  }
  .sk_scroller_indicator_bottom {
    background-image: linear-gradient(transparent, #232136);
  }
  #sk_bubble * {
    color: #e0def4 !important;
  }
  div.sk_arrow>div:nth-of-type(1) {
    left: 0;
    position: absolute;
    width: 0;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    background: transparent;
  }
  div.sk_arrow[dir=down]>div:nth-of-type(1) {
    border-top: 12px solid #56526e;
  }
  div.sk_arrow[dir=up]>div:nth-of-type(1) {
    border-bottom: 12px solid #56526e;
  }
  div.sk_arrow>div:nth-of-type(2) {
    left: 2px;
    position: absolute;
    width: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    background: transparent;
  }
  div.sk_arrow[dir=down]>div:nth-of-type(2) {
    border-top: 10px solid #e0def4;
  }
  div.sk_arrow[dir=up]>div:nth-of-type(2) {
    top: 2px;
    border-bottom: 10px solid #e0def4;
  }
  .ace_editor.ace_autocomplete {
    z-index: 2147483300 !important;
    width: 80% !important;
  }
  @media only screen and (max-width: 767px) {
    #sk_omnibar {
      width: 100%;
      left: 0;
    }
    #sk_omnibarSearchResult {
      max-height: 50vh;
      overflow: scroll;
    }
    .sk_omnibar_bottom #sk_omnibarSearchArea {
      margin: 0;
      padding: 0.2rem;
    }
  }
`;

// Local Variables:
// js2-additional-externs: ("api" "settings")
// End: