Elektra
0.8.19
|
This file explains how Firefox preferences can be manipulated at runtime using Elektras intercept open and a custom autoconfig script.
kdb configure-firefox -s
will configure everything needed to get started.
/usr/lib/firefox
/ /usr/lib/firefox-esr
defaults/pref/autoconfig.js
Loads elektra.cfg
``` pref("general.config.filename", "elektra.cfg"); pref("general.config.obscure_value", 0); ```
elektra.cfg
Contains the autoconfig code~/.mozilla/firefox/<profile>/prefs.js
Contains the user preferences. The configure-firefox script will append the config for our autoconfig script:
``` user_pref("elektra.config.file", "/tmp/imnotreal.js"); user_pref("elektra.config.reload_trigger_port", 65432); ```
Every time the string reload
is send to localhost:elektra.config.reload_trigger_port
the autoconfig script will import the preferences from elektra.config.file
elektry.config.file
contains the name of the dummy file for intercept open
. open
calls to this file will be intercepted and the content generated by intercept open
Running kdb configure-firefox -a
provides a guided setup for adding http_proxy and homepage preferences.
``` % kdb configure-firefox -a Add new preferences Config Setup:
1) Proxy 2) Homepage 0) Exit 1
Setting up HTTP Proxy 1) lock 2) default 3) user 0) Exit 1
Proxy Type 0) No Proxy 1) Manual Setup 2) PAC 4) Auto-detect 5) System Settings 1
Set string to 1 Host/IP: 127.0.0.1 Port: 8080 Setting lockPref HTTP Proxy to 127.0.0.1:8080 ```
This example shows how to manually setup a preferences. It's equivalent to the example shown above in the Guided setup
``` kdb setmeta user/prefs/lock/network/proxy/type type integer kdb set user/prefs/lock/network/proxy/type 1 kdb setmeta user/prefs/lock/network/proxy/http type string kdb set user/prefs/lock/network/proxy/http 127.0.0.1 kdb setmeta user/prefs/lock/network/proxy/http_port type integer kdb set user/prefs/lock/network/proxy/http_port 8080 ```
Running kdb configure-firefox -t
will set up some test values.
``` % kdb export /preload
[open] \/tmp\/imnotreal.js = \/tmp\/imnotreal.js/generate = user/prefs \/tmp\/imnotreal.js/generate/plugin = mozprefs
% kdb export user/prefs
[lock/a/lock] 1 = lock1 2 = lock2 [pref/a/default] 1 = 1 2 = 2 [user/a/user] f = false t = true
% kdb export user/prefs mozprefs
lockPref("a.lock.1", "lock1"); lockPref("a.lock.2", "lock2"); pref("a.default.1", 1); pref("a.default.2", 2); user_pref("a.user.f", false); user_pref("a.user.t", true); ```
``` % kdb elektrify-open firefox-esr "about:config" ```
``` % kdb setmeta user/prefs/lock/a/lock/3 type boolean % kdb set user/prefs/lock/a/lock/3 true % kdb export user/prefs
[lock/a/lock] 1 = lock1 2 = lock2 3 = true [pref/a/default] 1 = 1 2 = 2 [user/a/user] f = false t = true ```
Changing locked values doesn't work without restarting.