aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/firefox/.config/tridactyl/tridactylrc
blob: 058dea4678e0560e8b3d87af3109800f180869a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
" vim: filetype=vim

" tridactyl config
" Ref: https://raw.githubusercontent.com/glacambre/.dotfiles/master/default/.config/tridactyl/tridactylrc
" Ref: https://raw.githubusercontent.com/BurntSushi/dotfiles/master/.config/tridactyl/tridactylrc

sanitize tridactyllocal tridactylsync

alias save_rss jsb -p tri.native.run("r2e add '" + JS_ARG + "'") set rsscmd save_rss %u
alias gitclone jsb -p tri.native.run("git clone --depth=1 '" + JS_ARG + "' /home/tobyv/src/" + JS_ARG.split("/").slice(-1))
alias jse js 'use strict'; function $all(q, root=document) { return Array.from(root.querySelectorAll(q)) }; function $(q, root=document) { return root.querySelector(q) }; let $ex = (s) => tri.controller.acceptExCmd(s) ; let $set = (...args) => tri.config.set(...args);
alias jsep js -p 'use strict'; function $all(q, root=document) { return Array.from(root.querySelectorAll(q)) }; function $(q, root=document) { return root.querySelector(q) }; let $ex = (s) => tri.controller.acceptExCmd(s) ; let $set = (...args) => tri.config.set(...args);
alias video_goby js -d@ let time = JS_ARGS.filter(Boolean); let sign = '+'; if (time[0].match(/^[-+]/)) { sign = time[0].charAt(0); time[0] = time[0].slice(1) } time = time.filter(Boolean).map(Number); const second = time.reduce((s, n) => s*60+n, 0); tri.controller.acceptExCmd(`video_with video.currentTime ${sign}= ${second}`) @
alias video_goto js -d@ let time = JS_ARGS.filter(Boolean); let sign = '+'; if (time[0].match(/^[-+]/)) { sign = time[0].charAt(0); time[0] = time[0].slice(1) } time = time.filter(Boolean).map(Number); let second = time.reduce((s, n) => s*60+n, 0); if (sign == '-') second = `video.duration - ${second}`; tri.controller.acceptExCmd(`video_with video.currentTime = ${second}`) @
alias video_with jse let video; if (document.activeElement.name == 'VIDEO') video = document.activeElement; else video = $all('video').find(v => !v.paused); if (!video) video = $('video'); video;
alias video_mark_add jsep void $ex('video_with').then(video => { const mark = JS_ARG; tri.videoMark.addMark(mark, video.currentTime); $ex('video_mode') })
alias video_mark_empty js const vm = tri.videoMark; vm.historyStore = Object.values(vm.mark).sort((a,b) => a-b);
alias video_mark_goby jsep void $ex('video_with').then(video => { const current = video.currentTime; const n = Number(JS_ARG); const time = tri.videoMark.goby(current, n); video.currentTime = time; $ex('video_mode'); })
alias video_mark_goto jsep void $ex('video_with').then(video => { const mark = JS_ARG; tri.videoMark.addBlur(video.currentTime); const time = tri.videoMark.mark[mark]; if (typeof time == 'number') video.currentTime = time; $ex('video_mode') })
alias video_mark_init jse if(!tri.videoMark){tri.videoMark={historyStore:[],mark:{},goby(current,n){const index=this.historyStore.findIndex(t=>{if(t>current)return true});const move=n<0?n:n-1;let time;if(~index)time=this.historyStore.at(index+move);else time=this.historyStore.at(move);if(Math.abs(time-current)>this.tollorance)return time;else return this.goby(current,n>0?n+1:n-1)},add(time){this.historyStore.push(time);this.historyStore.sort((a,b)=>a-b)},addBlur(time){const exist=this.historyStore.some(t=>Math.abs(t-time)<this.tollorance);if(!exist)this.add(time);return!exist},addMark(mark,time){this.mark[mark]=time;const index=this.historyStore.findIndex(t=>Math.abs(t-time)<this.tollorance);if(~index)this.historyStore[index]=time;else this.add(time)},tollorance:Number(get('video_mark_tollorance')) || 1,markEventHandler(videoEvent){const video=videoEvent.target;const time=video.currentTime;this.addBlur(time);const previousTime=this.getTimerTime();this.addBlur(previousTime)},timerEventHandler(event){const video=event.target;this.videoTimer={epoch:Date.now(),video:video.currentTime,rate:video.playbackRate}},videoTimer:null,getTimerTime(){const now=Date.now();const t=this.videoTimer;if(t)return(now-t.epoch)/1e3*t.rate+t.video}};void async function(){const vm=tri.videoMark;while(true){await sleep(800);const video=await $ex("video_with");if(video){const handler=tri.videoMark.markEventHandler.bind(tri.videoMark);video.addEventListener("seeked",handler);video.addEventListener("pause",handler);const timer=vm.timerEventHandler.bind(vm);video.addEventListener("playing",timer);video.addEventListener("ratechange",timer);timer({target:video});break}}}()}
alias video_mode composite mode video ; video_mark_init
alias exit_video mode normal

set findcase smart
set smoothscroll true
set editorcmd alacritty -e tmux new -As tridactylrc nvim -S $XDG_DATA_HOME/nvim/session/tridactylrc.vim
set video_seek 5
set videomaps.w jsep $ex('video_with').then(video => {const count = Number(JS_ARG) || 1; const tic = Number(get('video_seek')); video.currentTime += tic * count }); 1;
set videomaps.b jsep $ex('video_with').then(video => {const count = Number(JS_ARG) || 1; const tic = Number(get('video_seek')); video.currentTime -= tic * count }); 1;
set video_seek_op 120
set videomaps.C video_with video.currentTime = Number(get('video_seek_op'))
set videomaps.a video_with video.currentTime = 0
set videomaps.A video_with video.currentTime = video.duration
set videomaps.gt fillcmdline video_goto
set videomaps.i fillcmdline video_goto
set videomaps.I fillcmdline video_goby
set videomaps.m gobble 1 video_mark_add
set videomaps.' gobble 1 video_mark_goto
set videomaps.ge video_mark_empty
set videomaps.E video_mark_goby +1
set videomaps.e video_mark_goby -1
set video_mark_tollorance 1
set videomaps.V exit_video
set videomaps.z mode normal
set videomaps.gf fullscreen
set videomaps.q fullscreen
set videomaps.🕷🕷INHERITS🕷🕷 nmaps
seturl ^https://www.youtube.com/watch\?v=116OjLa1DwY video_seek_op 42

unbind <C-f>
unbind s
unbind d
unbind f
bind <C-Space> hint
bind / fillcmdline find
bind ? fillcmdline find --reverse
bind n findnext
bind N findnext --reverse
bind <C-l> nohlsearch
bind j scrollline 5
bind k scrollline -5
bind J tabprev
bind K tabnext
bind x tabclose
bind gs fillcmdline open search
bind zv composite js document.location.href | exclaim_quiet mpv --loop
bind zz composite jsb tri.native.run('cat /home/tobyv/.config/firefox/userscripts/rustdoc-condensed.js') | js -p eval(JS_ARG.content)
bind gv video_mode
bindurl ^https://www.youtube.com/watch\? v video_mode

autocmd DocStart mail.google.com mode ignore
autocmd DocStart discordapp.com mode ignore
autocmd DocLoad ^https://www.youtube.com/watch\? video_mode

fixamo_quiet

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