Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
A script to copy Chrome's search engine settings into Vimium's settings format
#!/bin/sh
# This script lists user defined search engines in Chromium.
# It replaces {inputEncoding}, which appears in some search engine definitions, with
# UTF-8, {google:baseURL} with the Google URL, and omits other such tokens.
# Location of Chromium's 'Web Data' SQLite3 file
CHROMIUM_WEB_DATA="$HOME/.config/chromium/Default/Web Data"
# Location to create temporary copy of 'Web Data', since the database is locked while
# Chromium is running
COPY=$(mktemp)
cp "$CHROMIUM_WEB_DATA" "$COPY"
sqlite3 <<COMMANDS "$COPY" |
.echo off
.separator ': '
select keyword, url from keywords;
.quit
COMMANDS
sed -e \ '
s#{searchTerms}#%s#g
s#{google:baseURL}#https://google.com/#g
s#{inputEncoding}#UTF-8#g
s#&?[^{}?&]\+={[^}]\+}##g
s#{[^}]\+}##g
'
rm "$COPY"
@smblott-github

This comment has been minimized.

Copy link

smblott-github commented May 31, 2015

If you use Chrome instead of Chromium, then you may have to replace...

CHROMIUM_WEB_DATA="$HOME/.config/chromium/Default/Web Data"

with...

CHROMIUM_WEB_DATA="$HOME/.config/google-chrome/Default/Web Data"
@fhchl

This comment has been minimized.

Copy link

fhchl commented Mar 10, 2017

On Windows using Chrome, you can set the path to

CHROMIUM_WEB_DATA="C:\Users\[username]\AppData\Local\Google\Chrome\User Data\Default\Web Data"

You'll probably need sql3lite. You can just put these somewhere into your path.

@ijoseph

This comment has been minimized.

Copy link

ijoseph commented Sep 4, 2018

I had to mess around with the sqlite3 meta-commands to get this to work with my custom ~/.sqliterc. Please consider updating from my fork.

@LittleboyHarry

This comment has been minimized.

Copy link

LittleboyHarry commented Aug 4, 2020

Thanks!

By the way, it works on windows chromium edge browser by git bash, following this path:

CHROMIUM_WEB_DATA="$HOME\AppData\Local\Microsoft\Edge\User Data\Default\Web Data"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.