Created
July 21, 2014 01:05
-
-
Save philc/e849b48e6c5f32592d62 to your computer and use it in GitHub Desktop.
A script to copy Chrome's search engine settings into Vimium's settings format
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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" |
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.
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"
Similar to @ijoseph 's fork, I'm using awk
to do the same. 😄
#!/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/microsoft-edge-dev/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
select keyword, url, short_name 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
' |
awk -v FS='|' '{ print $1": "$2" "$3}'
rm "$COPY"
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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"