alias tabsort jsb browser.tabs.query({}).then(tabs => tabs.sort((t1, t2) => t1.url.localeCompare(t2.url)).forEach((tab, index) => browser.tabs.move(tab.id, {index}))) alias tabuniq jsb browser.tabs.query({}).then(tabs => browser.tabs.remove(tabs.filter((tab, index) => tabs.slice(index + 1).find(t => t.url == tab.url)).map(tab => tab.id))) alias logall js let l=prompt() ; Object.keys(tri.config.get("logging")).forEach(k => tri.config.set("logging", k, l)) alias playAllVideos js tri.native.run("mpv --really-quiet --ontop --keepaspect-window --profile=protocol.http " + Array.from(document.querySelectorAll("a, iframe, video")).reduce((s, e) => {let r=(/^https?:\/\/((www.)?youtu((\.be\/)|(be\.com\/((embed\/)|(watch\?v=))))[^ ]+)|(.+\.webm)$/);let l="";if(e.tagName=="IFRAME")l=e.src.match(r);else if(e.tagName=="A")l=e.href.match(r)||e.innerText.match(r);else if(e.tagName=="VIDEO")l=[e.currentSrc?e.currentSrc:e.src];console.log(l);return s+(l && l.length > 0 && s.indexOf(l[0])<0?"'"+l[0]+"' ":"")},"")) alias gitclone jsb -p tri.native.run("git clone --depth=1 '" + JS_ARG + "' /home/me/prog/" + JS_ARG.split("/").slice(-1)) alias rsssave jsb -p tri.native.run('cat >> ~/.config/newsboat/urls', JS_ARG + "\n") alias openGithubNotifications composite js Array.from(document.querySelectorAll("li.list-group-item > span:nth-child(1) > a:nth-child(2)")).map(e => e.href) | jsb -p JS_ARG.forEach(url => tri.excmds.tabopen(url)) alias tn jsb let a = str.join("").split("/" + "/").slice(-1)[0]; tri.excmds.tabopen(a ? `https://intranet.adacore.com/crm/#/tn/${a}` : `https://intranet.adacore.com/crm/#/Tickets/myTNs`) // alias mktn js tri.native.run(`mkdir -v "$HOME/prog/${document.location.href.split("/").slice(-1)[0]}"`).then(r=>Array.from(document.querySelectorAll("#Files a")).forEach(a=>fetch(a.href).then(r=>r.text()).then(t=>tri.native.write(`${r.content.match(/'.*'\n/)[0].slice(1,-2)}/${a.href.split("/").slice(-1)[0]}`,t)))) autocmd DocLoad twitter.com urlmodify -t twitter.com nitter.net bind O composite url2args | fillcmdline open bind gh followpage prev bind gl followpage next bind gc composite js window.location.href | gitclone bind ;gc hint -qW gitclone bind H tabprev bind L tabnext bind K forward bind J back bind y clipboard yankshort bind Y hint -p bind v composite hint -pipe a href | js -p tri.excmds.shellescape(JS_ARG) | exclaim_quiet mpv --ontop --keepaspect-window --profile=protocol.http bind V js tri.excmds.shellescape(document.location.href).then(url => tri.native.run(`mpv --ontop --keepaspect-window --profile=protocol.http '${url}'`)) bind ;v composite hint -qpipe a href | js -p JS_ARG.map(h => `'${h}'`).join(" ") | ! mpv bind e hint -W js -p tri.native.run(`$HOME/bin/add-magnet '${JS_ARG}'`) bind u undo tab bind U undo window bind s fillcmdline saveas bind S saveas bind ;s hint -a bind ;S hint -s bind playAllVideos " Bind to `buffer 1..$` and to `tabmove 1..$` jsb ["&", "é", '"', "'", "(", "-", "è", "_", "ç", "à"].forEach((l, i) => { i = (i == 9 ? 0 : (i + 1)); ["--mode=insert", "--mode=input", "--mode=normal"].forEach(mode => { tri.excmds.bind(mode, ``, `buffer ${i}`) ; tri.excmds.bind(mode, ``, `tabmove ${i}`) })}) jsb ["--mode=insert", "--mode=input", "--mode=normal"].forEach(mode => { tri.excmds.bind(mode, ``, `tabmove -1`) ; tri.excmds.bind(mode, ``, `tabmove +1`) ; }) bind --mode=normal winopen -private bind --mode=ex text.beginning_of_line bind --mode=insert text.beginning_of_line bind --mode=input text.beginning_of_line bind --mode=ex text.end_of_line bind --mode=insert text.end_of_line bind --mode=input text.end_of_line bind --mode=ex text.forward_word bind --mode=insert text.forward_word bind --mode=input text.forward_word bind --mode=ex text.kill_line bind --mode=insert text.kill_line bind --mode=input text.kill_line bind --mode=ex text.backward_kill_line bind --mode=insert text.backward_kill_line bind --mode=input text.backward_kill_line bind --mode=ex composite getclip selection | text.insert_text bind --mode=insert composite getclip selection | text.insert_text bind --mode=input composite getclip selection | text.insert_text bind --mode=ex text.backward_kill_word bind --mode=insert text.backward_kill_word bind --mode=input text.backward_kill_word " Requires custom firefox build: https://github.com/glacambre/firefox-patches bind --mode=ex ex.next_completion bind --mode=ex ex.prev_completion bind --mode=ex ex.insert_completion bind --mode=ex ex.deselect_completion bind --mode=ex ex.complete bind --mode=ex composite text.beginning_of_line ; text.forward_word ; text.kill_word " Disable bind --mode=insert js alert(" is for quitters.") bind --mode=input js alert(" is for quitters.") bind --mode=normal js alert(" is for quitters.") bind --mode=ex js alert(" is for quitters.") bind --mode=hint js alert(" is for quitters.") unbind yy unbind ys unbind yc unbind ym unbind yt unbind --mode=ex unbind --mode=ex unbind ba bindurl reddit.com urlmodify -t www old bindurl https://github.com/.*/.*/blob f hint -c .blob-num,a bindurl https://github.com/notifications openGithubNotifications bindurl youtu((\.be)|(be\.com)) f hint -J bindurl google(\.[a-zA-Z0-9]+){1,2}/search f hint -Jc #top_nav a, #search a, .card-section a, a.fl, #pnnext, #pnprev bindurl google(\.[a-zA-Z0-9]+){1,2}/search F hint -Jbc #top_nav a, #search a, .card-section a, a.fl, #pnnext, #pnprev bindurl google(\.[a-zA-Z0-9]+){1,2}/search gF hint -Jqbc #top_nav a, #search a, .card-section a, a.fl, #pnnext, #pnprev bindurl lkml.org/lkml gl js let lis = Array.from(document.querySelectorAll(".threadlist:nth-of-type(1)")[0].querySelectorAll("li")); document.location.href = lis[lis.findIndex(li => li.className.match("origin")) + 1].querySelector("a").href bindurl lkml.org/lkml gh js let lis = Array.from(document.querySelectorAll(".threadlist:nth-of-type(1)")[0].querySelectorAll("li")); document.location.href = lis[lis.findIndex(li => li.className.match("origin")) - 1].querySelector("a").href set allowautofocus false set hintchars fdsqjklmrezauiopwxcvghtybn set searchengine g set tabopencontaineraware true set rsscmd rsssave %u set visualenterauto false set wordpattern [^\s\/]+ " Disable all searchurls jsb Object.keys(tri.config.get("searchurls")).reduce((prev, u) => prev.catch(()=>{}).then(_ => tri.excmds.setnull("searchurls." + u)), Promise.resolve()) " Add our own set searchurls.amazon https://www.amazon.fr/s/ref=nb_sb_noss?field-keywords=%s set searchurls.bandcamp https://bandcamp.com/search?q=%s set searchurls.cnrtl http://www.cnrtl.fr/lexicographie/%s set searchurls.conj http://www.les-verbes.com/conjuguer.php?verbe=%s set searchurls.crates https://crates.io/search?q=%s set searchurls.ddg https://duckduckgo.com/html?q=%s set searchurls.deb https://packages.debian.org/search?keywords=%s&searchon=names&suite=all§ion=all set searchurls.fdroid https://search.f-droid.org/?q=%s set searchurls.g https://www.google.com/search?q=%s set searchurls.gh https://github.com/search?utf8=%E2%9C%93&q=%s&ref=simplesearch set searchurls.gi https://www.google.com/search?q=%s&tbm=isch set searchurls.gmaps https://www.google.com/maps/search/%s set searchurls.gw https://wiki.gentoo.org/index.php?title=Special%3ASearch&profile=default&search=%s&fulltext=Search set searchurls.imdb https://www.imdb.com/find?q=%s set searchurls.lqwant https://lite.qwant.com/?q=%s set searchurls.mdn https://developer.mozilla.org/en-US/search?q=%s&topic=api&topic=js set searchurls.monova https://monova.to/search?term=%s set searchurls.npm https://www.npmjs.com/search?q=%s set searchurls.osm https://www.openstreetmap.org/search?query=%s set searchurls.pydoc https://docs.python.org/3/search.html?q=%s set searchurls.qwant https://www.qwant.com/?q=%s set searchurls.ratp https://www.ratp.fr/itineraires?start=%s1&end=%s2&lieu_depart=&lieu_arrivee=&modes[rail]=rail&modes[metro]=metro&modes[bus]=bus&modes[tram]=tram&itinerary_profile=fastest&op=C%27est+parti set searchurls.r https://old.reddit.com/r/%s set searchurls.rustdoc https://doc.rust-lang.org/std/index.html?search=%s set searchurls.searxme https://searx.me/?q=%s&categories=general&language=en-US set searchurls.skyt https://www.skytorrents.to/?search=%s set searchurls.steam https://store.steampowered.com/search/?term=%s set searchurls.torrentz https://torrentz2.eu/search?f=%s set searchurls.tpb https://thepiratebay.org/s/?q=%s&=on&page=0&orderby=99 set searchurls.tre http://www.wordreference.com/redirect/translation.aspx?w=%s&dict=enfr set searchurls.trf http://www.wordreference.com/redirect/translation.aspx?w=%s&dict=fren set searchurls.w https://en.wikipedia.org/w/index.php?search=%s&title=Special%3ASearch set searchurls.wfr https://fr.wikipedia.org/w/index.php?search=%s&title=Sp%E9cial%3ARecherche set searchurls.y https://www.youtube.com/results?search_query=%s set customthemes.custom html, body { -moz-font-feature-settings: "dlig" 0 !important; } span.TridactylHint { font-family: monospace !important; background: transparent !important; color: black !important; text-shadow: cyan -1px -1px 0px, cyan -1px 0px 0px, cyan -1px 1px 0px, cyan 1px -1px 0px, cyan 1px 0px 0px, cyan 1px 1px 0px, cyan 0px 1px 0px, cyan 0px -1px 0px !important; } set theme custom seturl jsfiddle.net allowautofocus true " Native messenger stuff guiset_quiet hoverlink right guiset_quiet tabs count setpref accessibility.typeaheadfind.autostart false setpref accessibility.typeaheadfind.flashBar 0 setpref app.normandy.api_url "" setpref app.normandy.enabled false setpref app.normandy.first_run false setpref app.shield.optoutstudies.enabled false setpref app.update.enabled false setpref beacon.enabled false setpref beacon.enabled false setpref browser.autofocus false setpref browser.aboutHomeSnippets.updateUrl "data:," setpref browser.display.use_document_fonts 0 setpref browser.download.dir "/home/me/downloads" setpref browser.download.folderList 2 setpref browser.download.manager.addToRecentDocs false setpref browser.download.useDownloadDir false setpref browser.eme.ui.enabled false setpref browser.feeds.handler.default "client" setpref browser.feeds.handlers.application "/home/me/bin/add_rss_feed" setpref browser.formfill.enable false setpref browser.helperApps.deleteTempFileOnExit true setpref browser.library.activity-stream.enabled false setpref browser.messaging-system.whatsNewPanel.enabled false setpref browser.newtab.preload false setpref browser.newtab.url "about:blank" setpref browser.newtabpage.enabled false setpref browser.newtabtabpage.enabled false setpref browser.newtabtabpage.enhanced false setpref browser.onboarding.enabled false setpref browser.pagethumbnails.capturing_disabled true setpref browser.ping-centre.telemetry false setpref browser.pocket.api "" setpref browser.pocket.oAuthConsumerKey "" setpref browser.pocket.site "" setpref browser.safebrowsing.appRepURL "" setpref browser.safebrowsing.blockedURIs.enabled false setpref browser.safebrowsing.downloads.remote.enabled false setpref browser.safebrowsing.downloads.remote.url "" setpref browser.safebrowsing.gethashURL "" setpref browser.safebrowsing.malware.enabled false setpref browser.safebrowsing.malware.reportURL "" setpref browser.safebrowsing.phishing.enabled false setpref browser.safebrowsing.provider.google.gethashURL "" setpref browser.safebrowsing.provider.google.lists "" setpref browser.safebrowsing.provider.google.reportMalwareMistakeURL "" setpref browser.safebrowsing.provider.google.reportPhishMistakeURL "" setpref browser.safebrowsing.provider.google.reportURL "" setpref browser.safebrowsing.provider.google.updateURL "" setpref browser.safebrowsing.provider.google4.dataSharing.enabled false setpref browser.safebrowsing.provider.google4.dataSharingURL "" setpref browser.safebrowsing.provider.google4.reportMalwareMistakeURL "" setpref browser.safebrowsing.provider.google4.reportPhishMistakeURL "" setpref browser.safebrowsing.provider.google4.reportURL "" setpref browser.safebrowsing.provider.mozilla.gethashURL "" setpref browser.safebrowsing.provider.mozilla.updateURL "" setpref browser.safebrowsing.reportPhishURL "" setpref browser.safebrowsing.reportURL "" setpref browser.safebrowsing.updateURL "" setpref browser.search.region "US" setpref browser.search.suggest.enabled false setpref browser.send_pings false setpref browser.send_pings.require_same_host true setpref browser.sessionstore.restore_on_demand false setpref browser.shell.checkDefaultBrowser false setpref browser.startup.homepage "about:blank" setpref browser.startup.homepage_override.mstone "ignore" setpref browser.startup.page 3 setpref browser.tabs.closeWindowWithLastTab false setpref browser.tabs.remote.autostart.2 true setpref browser.uidensity 1 setpref browser.urlbar.placeholderName "" setpref browser.urlbar.trimURLs false setpref datareporting.healthreport.uploadEnabled false setpref datareporting.policy.dataSubmissionEnabled false setpref devtools.gcli.hideIntro true setpref devtools.scratchpad.enabled true setpref devtools.scratchpad.wrapText true setpref devtools.webide.autoinstallADBHelper false setpref devtools.webide.enabled false setpref extensions.formautofill.addresses.enabled false setpref extensions.formautofill.available "off" setpref extensions.formautofill.creditCards.enabled false setpref extensions.formautofill.heuristics.enabled false setpref extensions.pocket.enabled false setpref extensions.screenshots.disabled true setpref extensions.screenshots.upload-disabled true setpref extensions.webcompat-reporter.enabled false setpref extensions.webextensions.restrictedDomains "" setpref font.blacklist.underline_offset "" setpref general.warnOnAboutConfig false setpref geo.enabled false setpref geo.wifi.uri "" setpref intl.accept_languages "en-US, en" setpref intl.locale.requested "en-US" setpref intl.regional_prefs.use_os_locales false setpref javascript.use_us_english_locale true setpref layout.css.font-loading-api.enabled false setpref media.autoplay.default 1 setpref media.eme.enabled false setpref media.gmp-gmpopenh264.autoupdate false setpref media.gmp-gmpopenh264.enabled false setpref media.gmp-manager.updateEnabled false setpref media.gmp-manager.url "data:text/plain," setpref media.gmp-manager.url.override "data:text/plain," setpref media.gmp-provider.enabled false setpref media.gmp-widevinecdm.autoupdate false setpref media.gmp-widevinecdm.enabled false setpref media.gmp-widevinecdm.visible false setpref media.gmp.trial-create.enabled false " WebRTC. Might need to re-enable some day setpref media.peerconnection.enabled false setpref network.IDN_show_punycode true setpref network.allow-experiments false setpref network.http.referer.XOriginPolicy 1 setpref network.http.referer.defaultPolicy 3 setpref network.http.referer.defaultPolicy.pbmode 2 setpref network.http.referer.spoofSource false setpref pdfjs.disabled true setpref permissions.default.geo 0 setpref plugin.default.state 0 setpref plugin.defaultXpi.state 0 setpref plugin.sessionPermissionNow.intervalInMinutes 0 setpref plugins.click_to_play true setpref privacy.firstparty.isolate true " Disabled until https://bugzilla.mozilla.org/show_bug.cgi?id=1450398 is fixed setpref privacy.resistFingerprinting false setpref privacy.resistFingerprinting.block_mozAddonManager true setpref privacy.userContext.enabled true setpref privacy.userContext.ui.enabled true setpref privacy.usercontext.about_newtab_segregation.enabled true setpref reader.parse-on-load.enabled false setpref security.dialog_enable_delay 500 setpref security.insecure_field_warning.contextual.enabled true setpref signon.autofillForms false setpref signon.rememberSignons false setpref toolkit.cosmeticAnimations.enabled false setpref toolkit.telemetry.archive.enabled false setpref toolkit.telemetry.bhrPing.enabled false setpref toolkit.telemetry.cachedClientID "" setpref toolkit.telemetry.enabled false setpref toolkit.telemetry.firstShutdownPing.enabled false setpref toolkit.telemetry.hybridContent.enabled false setpref toolkit.telemetry.newProfilePing.enabled false setpref toolkit.telemetry.server "data:," setpref toolkit.telemetry.shutdownPingSender.enabled false setpref toolkit.telemetry.unified false setpref toolkit.telemetry.updatePing.enabled false setpref ui.key.menuAccessKeyFocuses false setpref xpinstall.signatures.required false