Firefox

From miki
Revision as of 19:42, 21 April 2022 by Mip (talk | contribs) (→‎tridactyl)
Jump to navigation Jump to search

Configuration

  • Last visited tab with Ctrl-Tab — Go to about:config, and set browser.ctrlTab.previews to true [1].

Keyboard shortcuts

Alt-Shift Access key. Eg. Alt-Shift-F to go to search box in MediaWiki
Ctrl-Shift-C Open console and debugger tools.

Extensions

Candidates

Extension I might install in the future:

  • Extension to suspend tabs. ! Careful, this may lead to loss of work if you typed text in a form and the page gets suspended

textern

Textern allows for using any external editor to edit editbox...

Installation
  • Install the plugin
  • Download and install the native app:
git clone --recurse-submodules https://github.com/jlebon/textern
cd textern
sudo make native-install LIBDIR=/usr/lib
  • NEW Configuration:
  • External editor: ["ngvim", "-f", "+sil! call cursor(%l,%c)"]
  • Shortcut: Ctrl+I
  • Extenstion: .txt
  • This reuses configuration we used on pentadactyl. Windows geometry works better, but still sluggish feeling in nvim.
  • OLD Configuration:
  • External editor: ["gnome-terminal", "--geometry=118x62+0+0", "--wait", "--", "nvim", "+call cursor(%l,%c)"]
  • Shortcut: Ctrl+I
  • Extenstion: .txt
  • Issue: This doesn't work great. First window geometry detection is always fucked up and we need to resize the window or nvim display is fucked up. Second, nvim feels sluggish
  • In Vim mediawiki plugin, adapt the ftdetect line:
au BufRead,BufNewFile *%2Fmediawiki%2Findex.php* set filetype=mediawiki

tridactyl

Tridactyl is the new extension similar to pentadactyl but working with recent Firefox.

Install
  • Run :nativeinstall, and run the pasted command in a shell to download the native extension.
  • Set the editor:
set editorcmd /usr/bin/terminator -m --p nvim -i /usr/local/icons/neovim.png -u -T "$PWD" -x env COLORTERM=gnome-terminal nvim %f '+normal!%lGzv%c|'
Install native on offline Windows (for Vim edition)
  • Download .xpi file.
  • Install XPI and run :installnative on a Windows machine connected to Internet.
  • Export registry key at HKCU:\SOFTWARE\Mozilla\NativeMessagingHosts\tridactyl to a file.
  • Copy that file and content of %userprofile%/.tridactyl to offline pc.
  • Install .xpi on offline PC, and run reg file.

pentadactyl

DISCONTINUATED
  • Pentadactyl no longer works since Firefox 57.
  • To keep using pentadactyl, use Firefox 56 (debian package available here).
  • For firefox 57+, consider using tridactyl.


pentadactyl is an add-on that turns Firefox into a powerful vim-like browser.

Repositories
http://5digits.org/nightlies Nightly build.
Configuration
  • See file ~/.pentadactylrc
"1.2pre

loadplugins '\.(js|penta)$'
group user
map -count -description='Next tab' -modes=n,v <C-j> -builtin <count><C-n>
map -count -description='Previous tab' -modes=n,v <C-k> -builtin <count><C-p>
set cdpath=''
set editor='ngvim -f +<line> +"sil! call cursor(0, <column>)" <file>'

" vim: set ft=pentadactyl:
Installation from source (on Firefox 48)
git clone https://github.com/5digits/dactyl.git
  • Make project
cd dactyl/
make -C pentadactyl xpi
  • Then in Firefox, go to add-on tab, and select install .xpi from file located in dactyl/downloads.
Installation
  • First disable add-on signature policy. Go to [about:config] and set xpinstall.signatures.required to false.
  • Download the latest nightly build and install it
I installed pentadactyl-20160121.xpi on Firefox 44.
  • Restore add-on signature policy
Usage
  • See :help for quick help
  • ^i uses vim/nvim for editbox (external editor).
  • ^t uses built-in vim for editbox.
  • f show hints and follow a link.
  • y current location.
  • p paste new location.
  • H L history back/forward.
  • ^n ^p next / previous tab.
  • ^v — Enable passthrough (next) (only next key press)
Tip: To paste text, press ^v twice.
  • ^z — Enable passthrough
  • :mkp to save current configuration
  • To print:
ha[rdcopy][!] to print a given page.
:ha[rdcopy][!] >{filename} to print to a file.
:dialog printpreview to display the print preview dialog.
:dialog printsetup to display the print setup dialog.
Customization

I prefer to use ^j ^k to go to next/previous tab, like I do to navigate between buffers.

:map -builtin -description "Next tab" <C-j> <C-n>
:map -builtin -description "Previous tab" <C-k> <C-p>
:mkp
Configure passthrough

Configure passkeys to tell Pentadactyl what keys must be passed through (k)

:set passkeys+=gabrielecirulli.github.io/2048/:<Up><Down><Left><Right>

Use auto-commands to make Pentadactyl alway pass all of your keys through for a particular URL [2]:

:autocmd LocationChange 'https://cloud.digitalocean.com/droplet/console/*' :normal! <C-z>
Troubleshooting
  • Error ...: options is undefined, usually when entering some commands, like gg or G.
Workaround — just enter and leave command mode (: then Esc).

Tab Groups

Excellent extension for managing tabs.

Video DownloadHelper

The best video downloader on Firefox.

  • Slower but better download success rate than other extensions (for instance, works on RTBF Auvio, especially combined with AdBlock Plus).
  • Can convert on-the-fly.
  • Requires local companion application installation.

AdBlock Plus recommended to skip initial video ad.

AdBlock Plus

Excellent to skip video ad.

More extensions

More extensions to consider installing:

Tips

Tab management

See Mozilla — Tab groups removal.

Interesting extensions:

Disable Firefox update

Recent FF doesn't allow disabling update, and keeps nagging you about update, even though your PC is offline and never connected to Internet.

To disable [3]:

  • Create a folder to store the policy file.
  • On Linux, create a folder /etc/firefox/policies (system-wide) or a folder /usr/bin/distribution (where /usr/bin is the installation directory of firefox).
  • On Win10, create a folder distribution where Firefox EXE is located (typically C:\Program Files\Mozilla Firefox\distribution).
  • In that folder, create a file policies.json (see available policy template):
{
    "policies": {
        "DisableAppUpdate": true
    }
}