From 504b3cc5d6cbc9ec66c5e89e3ecd4310c8dd5a69 Mon Sep 17 00:00:00 2001 From: Vasil Zlatanov Date: Sun, 1 Feb 2015 21:05:33 +0100 Subject: add uzbl config --- config/uzbl/config | 476 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 476 insertions(+) create mode 100644 config/uzbl/config (limited to 'config/uzbl') diff --git a/config/uzbl/config b/config/uzbl/config new file mode 100644 index 0000000..b66b5cc --- /dev/null +++ b/config/uzbl/config @@ -0,0 +1,476 @@ +# Example uzbl config. All settings are optional. You can use uzbl without +# any config at all (but it won't do much). + +# === Core settings ========================================================== + +# common directory locations +set prefix = @(echo $PREFIX)@ +set data_home = @(echo $XDG_DATA_HOME)@ +set cache_home = @(echo $XDG_CACHE_HOME)@ +set config_home = @(echo $XDG_CONFIG_HOME)@ + +# Interface paths. +set fifo_dir = /tmp +set socket_dir = /tmp + +set shell_cmd = sh -c + +# === General config aliases ================================================= + +# Config related events (use the request function): +# request MODE_CONFIG = +set mode_config = request MODE_CONFIG +# request ON_EVENT +set on_event = request ON_EVENT +# request ON_SET +set on_set = request ON_SET +# request MODMAP +set modmap = request MODMAP +# request IGNORE_KEY +set ignore_key = request IGNORE_KEY +# request TOGGLE_MODES ... +set toggle_modes = request TOGGLE_MODES + +set set_mode = set mode = +set set_status = set status_message = + +# Spawn path shortcuts. In spawn the first dir+path match is used in "dir1:dir2:dir3:executable" +set scripts_dir = @data_home/uzbl:@prefix/share/uzbl/examples/data:scripts + +# === Hardcoded handlers ===================================================== + +# These handlers can't be moved to the new event system yet as we don't +# support events that can wait for a response from a script. +set scheme_handler = sync_spawn @scripts_dir/scheme.py +#set request_handler = sync_spawn @scripts_dir/request.py +set authentication_handler = sync_spawn @scripts_dir/auth.py +set download_handler = sync_spawn @scripts_dir/download.sh + +# === Dynamic event handlers ================================================= + +# What to do when a website wants to open a new window: +# Open link in new window +@on_event NEW_WINDOW sh 'uzbl-browser ${1:+-u "$1"}' %r +# Open in current window (also see the REQ_NEW_WINDOW event handler below) +#@on_event NEW_WINDOW uri %s +# Open in new tab. Other options are NEW_TAB_NEXT, NEW_BG_TAB and NEW_BG_TAB_NEXT. +#@on_event NEW_WINDOW event NEW_TAB %s + +# What to do when the user requests a new window: +# If your the NEW_WINDOW handler opens the uri in the current window, you'll +# probably want to change this handler to open a new window or tab. +@on_event REQ_NEW_WINDOW event NEW_WINDOW %s + +# Load start handler +@on_event LOAD_START @set_status wait +# Reset the keycmd on navigation +@on_event LOAD_START @set_mode + +# Load commit handlers +@on_event LOAD_COMMIT @set_status recv + + # add some javascript to the page for other 'js' and 'script' commands to access later. +@on_event LOAD_COMMIT js uzbl = {}; +@on_event LOAD_COMMIT script @scripts_dir/formfiller.js +@on_event LOAD_COMMIT script @scripts_dir/follow.js + +# Userscripts/per-site-settings. See the script and the example configuration for details +#@on_event LOAD_COMMIT spawn @scripts_dir/per-site-settings.py @data_home/uzbl/per-site-settings + +# Load finish handlers +@on_event LOAD_FINISH @set_status done +@on_event LOAD_FINISH spawn @scripts_dir/history.sh + +# Switch to insert mode if a (editable) html form is clicked +@on_event FOCUS_ELEMENT sh 'if [ "$1" = INPUT -o "$1" = TEXTAREA -o "$1" = SELECT ]; then echo "@set_mode insert" > $UZBL_FIFO; fi' %s +# Switch to command mode if anything else is clicked +@on_event ROOT_ACTIVE @set_mode command + +# Example CONFIG_CHANGED event handler +#@on_event CONFIG_CHANGED print Config changed: %1 = %2 + +# Scroll percentage calculation +@on_event SCROLL_VERT set scroll_message = \@<(function(curr, min, max, size){if(max == size) return '--'; var p=(curr/(max - size)); return Math.round(10000*p)/100;})(%1,%2,%3,%4)>\@% + +# === Behaviour and appearance =============================================== + +# Custom CSS can be defined here, including link follower hint styles +set stylesheet_uri = file://@config_home/uzbl/style.css + +set show_status = 0 +set status_top = 0 +set status_background = #1c1c1c + +set modcmd_style = weight="bold" foreground="red" +set keycmd_style = weight="light" foreground="red" +set prompt_style = foreground="grey" +set cursor_style = underline="single" +set completion_style = foreground="green" +set hint_style = weight="bold" + +set mode_section = [\@[\@mode_indicator]\@] +set keycmd_section = [\@[\@keycmd_prompt]\@\@modcmd\@keycmd\@completion_list] +set progress_section = \@[\@progress.output]\@ +set scroll_section = \@[\@scroll_message]\@ +set uri_section = \@[\@uri]\@ +set name_section = \@[\@NAME]\@ +set status_section = \@status_message +set selected_section = \@[\@SELECTED_URI]\@ + +set download_section = \@downloads + +set status_format = @mode_section @keycmd_section @progress_section @name_section @status_section @scroll_section @selected_section @download_section +set status_format_right = uri: @uri_section + +set title_format_long = \@keycmd_prompt \@raw_modcmd \@raw_keycmd \@TITLE - Uzbl browser <\@NAME> \@SELECTED_URI + +# Progress bar config +# %d = done, %p = pending %c = percent done, %i = int done, %s = spinner, +# %t = percent pending, %o = int pending, %r = sprite scroll +set progress.width = 8 +set progress.format = [%d>%p]%c +set progress.done = = +set progress.pending = + +# === Useragent setup ======================================================== + +set useragent = Uzbl (Webkit @{WEBKIT_MAJOR}.@{WEBKIT_MINOR}) (@(+uname -sm)@ [@ARCH_UZBL]) +# === Configure cookie blacklist ======================================================== + +# Accept 'session cookies' from uzbl.org (when you have a whitelist all other cookies are dropped) +#request WHITELIST_COOKIE domain 'uzbl.org$' expires '^$' + +# Drop google analytics tracking cookies (applied after whitelists if any) +#request BLACKLIST_COOKIE name '^__utm.$' + +# === SSL related configuration ============================================== + +# Set it to certificates store of your distribution, or your own CAfile. +set ssl_ca_file = /etc/ssl/certs/ca-certificates.crt +set ssl_verify = 1 +# Command to toggle ssl_verify value: +@cbind !ssl = chain 'toggle ssl_verify' 'reload' +# Example SSL error handler: +@on_event LOAD_ERROR js var patt=new RegExp('SSL handshake failed'); if (patt.test('%3')) {alert ('%3');} + +# === Key binding configuration ============================================== +# --- Internal modmapping and ignoring --------------------------------------- + +#modmap +@modmap +@modmap +#@modmap +@modmap + +#ignore_key +@ignore_key +@ignore_key +@ignore_key +@ignore_key + +# --- Bind aliases ----------------------------------------------------------- + +# request BIND = +set bind = request MODE_BIND global + +# request MODE_BIND = +set mode_bind = request MODE_BIND + +# Insert mode binding alias +set ibind = @mode_bind insert + +# Command mode binding alias +set cbind = @mode_bind command + +# Non-insert mode bindings alias (ebind for edit-bind). +set ebind = @mode_bind global,-insert + +# --- Global & keycmd editing binds ------------------------------------------ + +# Resets keycmd and returns to default mode. +@on_event ESCAPE @set_mode +@on_event ESCAPE event KEYCMD_CLEAR +@on_event ESCAPE js uzbl.follow.clearHints() +@on_event ESCAPE search_clear +@on_event ESCAPE js window.getSelection().removeAllRanges() +@bind = event ESCAPE +@bind [ = event ESCAPE + +# Commands for editing and traversing the keycmd. +@ebind = event KEYCMD_EXEC_CURRENT +@ebind = event SET_CURSOR_POS 0 +@ebind = event SET_CURSOR_POS -1 +@ebind = event SET_CURSOR_POS - +@ebind = event SET_CURSOR_POS + +@ebind = event KEYCMD_BACKSPACE +@ebind = event KEYCMD_DELETE +@ebind = event START_COMPLETION +# Readline-ish bindings. +@ebind w = event KEYCMD_STRIP_WORD \ -./&?= +@ebind u = event SET_KEYCMD +@ebind a = event SET_CURSOR_POS 0 +@ebind e = event SET_CURSOR_POS -1 + +@ebind = event HISTORY_PREV +@ebind = event HISTORY_NEXT +@ebind r_ = event HISTORY_SEARCH %s +# Keycmd injection/append examples. +#@ebind su = event INJECT_KEYCMD \@uri +#@ebind st = event INJECT_KEYCMD \@title +#@ebind du = event APPEND_KEYCMD \@uri +#@ebind dt = event APPEND_KEYCMD \@title + +# --- Mouse bindings --------------------------------------------------------- + +# Middle click open in new window +@bind = sh 'if [ "$1" ]; then echo "event REQ_NEW_WINDOW $1" > "$UZBL_FIFO"; else echo "uri $(xclip -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"; fi' '\@SELECTED_URI' + +# --- Keyboard bindings ------------------------------------------------------ + +# With this command you can enter in any command at runtime when prefixed with +# a colon. +@cbind :_ = %s + +# open a new window or a new tab (see the on_event NEW_WINDOW settings above) +@cbind w = event REQ_NEW_WINDOW + +# Page movement binds +@cbind j = scroll vertical 20 +@cbind k = scroll vertical -20 +@cbind h = scroll horizontal -20 +@cbind l = scroll horizontal 20 +@cbind = scroll vertical -100% +@cbind = scroll vertical 100% +@cbind f = scroll vertical 100% +@cbind b = scroll vertical -100% +@cbind e = scroll vertical -50% +@cbind s = scroll vertical 50% +@cbind gg = scroll vertical begin +@cbind G = scroll vertical end +@cbind = scroll vertical begin +@cbind = scroll vertical end +@cbind ^ = scroll horizontal begin +@cbind $ = scroll horizontal end +#@cbind = scroll vertical end +@cbind G_ = scroll vertical %r! +@cbind _G_ = scroll horizontal %r! + +# Navigation binds +@cbind b = back +@cbind m = forward +@cbind S = stop +@cbind r = reload +@cbind R = reload_ign_cache + +# Zoom binds +@cbind = = zoom_in +@cbind - = zoom_out +@cbind T = toggle zoom_type +@cbind 1 = set zoom_level = 1.0 +@cbind 2 = set zoom_level = 2.0 + +# Appearance binds +#@cbind t = toggle show_status +@cbind t_ = spawn /usr/bin/uzbl-browser --uri %s + +# Page searching binds +@cbind /* = search %s +@cbind ?* = search_reverse %s +# Jump to next and previous items +@cbind n = search +@cbind N = search_reverse + +# Print pages to a printer +@cbind p = hardcopy + +# Web searching binds +@cbind d_ = uri http://www.google.com/search?q=\@\@ +#@cbind dg_ = uri http://duckduckgo.com/?q=%s +@cbind \\awiki_ = uri http://wiki.archlinux.org/index.php/Special:Search?search=\@\@&go=Go +@cbind \\wiki_ = uri http://en.wikipedia.org/w/index.php?title=Special:Search&search=\@\@&go=Go + +# Handy binds +# Set function shortcut +#@cbind s__ = set %1 = %2 +# Exit binding +@cbind ZZ = exit +@cbind x = exit +# Dump config to stdout +@cbind !dump = sh 'echo dump_config > "$UZBL_FIFO"' +# Reload all variables in the config +@cbind !reload = sh "sed '/^# === Post-load misc commands/,$d' \"$UZBL_CONFIG\" | grep '^set ' > \"$UZBL_FIFO\"" + +# Use socat to directly inject commands into uzbl-core and view events +# raised by uzbl-core: +@cbind t = sh 'xterm -e "socat unix-connect:\"$UZBL_SOCKET\" -"' +#@cbind t = sh 'urxvt -e socat unix-connect:"$UZBL_SOCKET" -' + +# Uri opening prompts +@cbind o_ = uri %s +# Or have it load the current uri into the keycmd for editing +@cbind O_ = uri %s + +# Mode setting binds +@cbind i = @set_mode insert +@bind i = @set_mode insert + +# Hard-bound bookmarks +@cbind gh = uri http://www.uzbl.org + +# New window binds +@cbind gw = event REQ_NEW_WINDOW + +# SSL-ify bindings +@cbind zs = uri \@(echo "$UZBL_URI" | sed -e 's/^http:/https:/')\@ +@cbind zS = event REQ_NEW_WINDOW \@(echo "$UZBL_URI" | sed -e 's/^http:/https:/')\@ + +# Yanking & pasting binds +@cbind yu = sh 'echo -n "$UZBL_URI" | xclip' +@cbind yU = sh 'echo -n "$1" | xclip' '\@SELECTED_URI' +@cbind yy = sh 'echo -n "$UZBL_TITLE" | xclip' +@cbind ys = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('returnuri') >\@ clipboard + +# Clone current window +@cbind c = event REQ_NEW_WINDOW \@uri +# Go the page from primary selection +@cbind p = sh 'echo "uri $(xclip -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"' +# Go to the page in clipboard +@cbind P = sh 'echo "uri $(xclip -selection clipboard -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"' +# Start a new uzbl instance from the page in primary selection +@cbind 'p = sh 'echo "event REQ_NEW_WINDOW $(xclip -o)" > "$UZBL_FIFO"' +# paste primary selection into keycmd at the cursor position +@bind = sh 'echo "event INJECT_KEYCMD $(xclip -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"' + +# Bookmark inserting binds +@cbind m_ = sh 'echo "$UZBL_URI $1" >> "$XDG_DATA_HOME"/uzbl/bookmarks' '%s' +# Or use a script to insert a bookmark. +@cbind M = spawn @scripts_dir/insert_bookmark.sh + +# Bookmark/history loading +@cbind U = spawn @scripts_dir/load_url_from_history.sh +@cbind u = spawn @scripts_dir/load_url_from_bookmarks.sh + +# Temporary bookmarks +@cbind d = spawn @scripts_dir/insert_temp.sh +@cbind D = spawn @scripts_dir/load_url_from_temps.sh + +# Link following (similar to vimperator and konqueror) +# Set custom keys you wish to use for navigation. Some common examples: +set follow_hint_keys = 0123456789 +#set follow_hint_keys = qwerty +#set follow_hint_keys = asdfghjkl; +#set follow_hint_keys = thsnd-rcgmvwb/;789aefijkopquxyz234 + +@cbind * = spawn @scripts_dir/follow.sh \@< uzbl.follow("\@follow_hint_keys", "%s", 'click') >\@ +@cbind f* = spawn @scripts_dir/follow.sh \@< uzbl.follow("\@follow_hint_keys", "%s", 'click') >\@ +@cbind F* = spawn @scripts_dir/follow.sh \@< uzbl.follow("\@follow_hint_keys", "%s", 'newwindow') >\@ +#@cbind gL* = spawn @scripts_dir/follow.sh \@< uzbl.follow("\@follow_hint_keys", "%s", 'returnuri') >\@ set +@cbind gl* = spawn @scripts_dir/follow.sh \@< uzbl.follow("\@follow_hint_keys", "%s", 'returnuri') >\@ clipboard +@cbind gi = spawn @scripts_dir/go_input.sh + +#@cbind fs = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('returnuri') >\@ set +#@cbind fS = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('click') >\@ +#@cbind Fs = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('newwindow') >\@ +#@cbind FS = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('returnuri') >\@ clipboard +# +#@cbind ft* = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'returnuri') >\@ set +#@cbind fT* = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'click') >\@ +#@cbind Ft* = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'newwindow') >\@ +#@cbind FT* = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'returnuri') >\@ clipboard + +@cbind '* = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'click') >\@ + +# Form filler binds +# This script allows you to configure (per domain) values to fill in form +# fields (eg login information) and to fill in these values automatically. +# This implementation allows you to save multiple profiles for each form +# (think about multiple accounts on some website). +set formfiller = spawn @scripts_dir/formfiller.sh +@cbind ze = @formfiller edit +@cbind zn = @formfiller new +@cbind zl = @formfiller load +@cbind zo = @formfiller once + +# --- Uzbl tabbed binds ------------------------------------------------------ + +# Tab opening +@cbind gn = event NEW_TAB +@cbind gN = event NEW_TAB_NEXT +@cbind go_ = event NEW_TAB %s +@cbind gO_ = event NEW_TAB_NEXT %s + +# Closing / resting +@cbind gC = exit +@cbind gQ = event CLEAN_TABS + +# Tab navigating +@cbind g< = event FIRST_TAB +@cbind g> = event LAST_TAB +@cbind gt = event NEXT_TAB +@cbind gT = event PREV_TAB +@cbind gi_ = event GOTO_TAB %s + +# Preset loading +set preset = event PRESET_TABS +@cbind gs_ = @preset save %s +#@cbind glo_ = @preset load %s +@cbind gd_ = @preset del %s +# This doesn't work right now. +#@cbind gli = @preset list + +# === Context menu items ===================================================== + +# Default context menu +menu_add Google = set uri = http://google.com +menu_add Go Home = set uri = http://uzbl.org +menu_separator separator_1 +menu_add Quit uzbl = exit + +# Link context menu +menu_link_add Print Link = print \@SELECTED_URI + +# === Mode configuration ===================================================== + +# Define some mode specific uzbl configurations. +set command = @mode_config command +set insert = @mode_config insert +set stack = @mode_config stack + +# Command mode config. +@command keycmd_style = foreground="red" +@command status_background = #202020 +@command mode_indicator = Cmd +@command keycmd_events = 1 +@command forward_keys = 0 +@command modcmd_updates = 1 + +# Insert mode config. +@insert status_background = #303030 +@insert mode_indicator = Ins +@insert forward_keys = 1 +@insert keycmd_events = 0 +@insert modcmd_updates = 0 + +# Multi-stage-binding mode config. +@stack keycmd_style = foreground="red" +@stack status_background = #202020 +@stack mode_indicator = Bnd +@stack prompt_style = foreground="#888" weight="light" +@stack keycmd_events = 1 +@stack modcmd_updates = 1 +@stack forward_keys = 0 + +set default_mode = command + +# === Post-load misc commands ================================================ +sync_spawn_exec @scripts_dir/load_cookies.sh +sync_spawn_exec @scripts_dir/load_cookies.sh @data_home/uzbl/session-cookies.txt + +# Set the "home" page. +set uri = uzbl.org/doesitwork/@COMMIT + +# vim: set fdm=syntax: + +# Autozoom +#@on_event GEOMETRY_CHANGED script ~/.config/uzbl/scripts/dynzoom.py + -- cgit v1.2.3-54-g00ecf