aboutsummaryrefslogtreecommitdiffstats
path: root/_config/uzbl/config
blob: 3197adceff93ff25eaddea28c89a16a6a89d2b3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
#
# ~/.config/uzbl/config
#
# Credits:
# [1] VimFx: https://addons.mozilla.org/en-US/firefox/addon/vimfx/
#     For some of the keybindings.
#
# Aaron LI
# Created: 2016-04-10
#

# 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 $UZBL_PREFIX)@
set data_home   @(echo $XDG_DATA_HOME/uzbl)@
set data_dirs   @(echo $(echo ${XDG_DATA_DIRS}|sed 's%:%/uzbl:%g')/uzbl)@
set cache_home  @(echo $XDG_CACHE_HOME/uzbl)@
set config_home @(echo $XDG_CONFIG_HOME/uzbl)@
set local_storage_path @data_home/databases/

# Interface paths.
set comm_dir   @([ -n "$XDG_RUNTIME_DIR" ] && echo "$XDG_RUNTIME_DIR/uzbl" || echo "/tmp/uzbl-$USER")@
set fifo_dir   @comm_dir
set socket_dir @comm_dir

# === General config aliases =================================================

# Config related events (use the event function):
# event MODE_CONFIG <mode> <key> = <value>
set mode_config     event MODE_CONFIG
# event ON_EVENT <EVENT_NAME> <command>
set on_event        event ON_EVENT
# event ON_SET   <key/glob> <command>
set on_set          event ON_SET
# event MODMAP <From> <To>
set modmap          event MODMAP
# event IGNORE_KEY <glob>
set ignore_key      event IGNORE_KEY

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:@data_dirs:@prefix/share/uzbl/examples/data:scripts

# Search case-insensitive by default
search option case_insensitive

# === Hardcoded handlers =====================================================

set navigation_handler     spawn_sync @scripts_dir/scheme.py
#set request_handler        spawn_sync @scripts_dir/request.py
set authentication_handler spawn_sync @scripts_dir/auth.py
set download_handler       spawn_sync @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     spawn_sh 'uzbl-browser ${0:-"$0"}' %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
@on_event   NEW_WINDOW     event NEW_TAB_NEXT %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 @- if (@embedded) "NEW_TAB"; else "NEW_WINDOW" -@ %s

# Load start handler
@on_event   LOAD_START     @set_status <span foreground="khaki">wait</span>
# Reset the keycmd on navigation
@on_event   LOAD_START     @set_mode

# Load commit handlers
@on_event   LOAD_COMMIT    @set_status <span foreground="green">recv</span>

# add some javascript to the page for other 'js' commands to access later.
@on_event   LOAD_COMMIT    js page string 'uzbl = {}'
@on_event   LOAD_COMMIT    js page file @scripts_dir/formfiller.js
@on_event   LOAD_COMMIT    js page file @scripts_dir/follow.js
@on_event   LOAD_COMMIT    js page file @scripts_dir/go_input.js
@on_event   LOAD_COMMIT    js page file @scripts_dir/navigation.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/per-site-settings

# Load finish handlers
@on_event   LOAD_FINISH    @set_status <span foreground="gold">done</span>
@on_event   LOAD_FINISH    spawn @scripts_dir/history.sh

# Switch to insert mode if a (editable) html form is clicked
@on_event   FORM_ACTIVE    @set_mode insert
# Switch to insert mode if a (editable) html form gains focus
@on_event   FOCUS_ELEMENT  spawn_sh 'if [ "$0" = INPUT -o "$0" = TEXTAREA -o "$0" = 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
# Clear input when the page or an element gains focus.
@on_event   ROOT_ACTIVE    event KEYCMD_CLEAR
@on_event   FOCUS_ELEMENT  event KEYCMD_CLEAR

# 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
css add file://@config_home/style.css

set forward_keys      0

set show_status       1
set status_top        0
set status_background #303030

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      <span background="khaki" foreground="black">[\@[\@mode_indicator]\@]</span>
set keycmd_section    [<span \@prompt_style>\@[\@keycmd_prompt]\@</span><span \@modcmd_style>\@modcmd</span><span \@keycmd_style>\@keycmd</span><span \@completion_style>\@completion_list</span>]
set progress_section  <span foreground="#606060">\@[\@progress.output]\@</span>
set scroll_section    <span foreground="#606060">\@[\@scroll_message]\@</span>
set uri_section       <span foreground="\@< if(\@frozen) "#00BFFF"; else "#99FF66"; >\@">\@[\@uri]\@</span>
set name_section      <span foreground="khaki">\@[\@NAME]\@</span>
set status_section    <span foreground="orange">\@status_message</span>
set selected_section  <span foreground="#606060">\@[\@SELECTED_URI]\@</span>

set download_section  <span foreground="white">\@downloads</span>
set proxy_section     <span foreground="cyan">\@[\@proxy_url]\@</span>

set status_format       <span font_family="monospace">@mode_section @keycmd_section @progress_section @name_section @status_section @scroll_section @selected_section @download_section</span>
set status_format_right <span font_family="monospace"><span foreground="#666">uri:</span> @uri_section</span>
set status_format_right <span font_family="monospace"><span foreground="#666">proxy:</span> @proxy_section <span foreground="#666">uri:</span> @uri_section</span>

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 Mozilla/5.0 (X11; @(+uname -sm)@) AppleWebKit/602.1 (KHTML; like Gecko) Uzbl/@COMMIT

# === Configure cookie blacklist =============================================

set cookie_policy always

# Accept 'session cookies' from uzbl.org (when you have a whitelist all other cookies are dropped)
#event WHITELIST_COOKIE domain '(^|\.)uzbl\.org$' expires '^$'

# Drop google analytics tracking cookies (applied after whitelists, if any)
#event BLACKLIST_COOKIE name '^__utm.$'

# === Javascript configuration  ==============================================

# Turn off javascript support
# set enable_scripts 0

# === Key binding configuration ==============================================
# --- Internal modmapping and ignoring ---------------------------------------

#modmap <From>          <To>
@modmap <Control>       <Ctrl>
@modmap <ISO_Left_Tab>  <Shift-Tab>
@modmap <KP_Enter>      <Enter>
@modmap " "             <Space>

#ignore_key <glob>
@ignore_key <ISO_*>
@ignore_key <Shift>
@ignore_key <Multi_key>
@ignore_key <Mod2>

# --- Bind aliases -----------------------------------------------------------

# event MODE_BIND <mode> <bind cmd> = <command>
set mode_bind event MODE_BIND

# event BIND <bind cmd> = <command>
set bind      @mode_bind global

# 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 page string uzbl.follow.clearHints()
@on_event  ESCAPE    search clear
@on_event  ESCAPE    js page string window.getSelection().removeAllRanges()
@bind   <Escape>     = event ESCAPE
@bind   <Ctrl>[      = event ESCAPE

# Commands for editing and traversing the keycmd.
@ebind  <Return>     = event KEYCMD_EXEC_CURRENT
@ebind  <Home>       = event SET_CURSOR_POS 0
@ebind  <End>        = event SET_CURSOR_POS -1
@ebind  <Left>       = event SET_CURSOR_POS -
@ebind  <Right>      = event SET_CURSOR_POS +
@ebind  <BackSpace>  = event KEYCMD_BACKSPACE
@ebind  <Delete>     = event KEYCMD_DELETE
@ebind  <Tab>        = event START_COMPLETION
# Readline-ish bindings.
@ebind  <Ctrl>w      = event KEYCMD_STRIP_WORD \ -./&?=
@ebind  <Ctrl>u      = event SET_KEYCMD
@ebind  <Ctrl>a      = event SET_CURSOR_POS 0
@ebind  <Ctrl>e      = event SET_CURSOR_POS -1

@ebind <Up>          = event HISTORY_PREV
@ebind <Down>        = event HISTORY_NEXT
@ebind <Ctrl>r<search:>_ = event HISTORY_SEARCH %s
set history_disable_easter_egg 1
# Keycmd injection/append examples.
#@ebind  <Ctrl>su = event INJECT_KEYCMD \@uri
#@ebind  <Ctrl>st = event INJECT_KEYCMD \@title
#@ebind  <Ctrl>du = event APPEND_KEYCMD \@uri
#@ebind  <Ctrl>dt = event APPEND_KEYCMD \@title

# --- Mouse bindings ---------------------------------------------------------

# Middle click open in new window
@bind  <Button2>  = spawn_sh 'if [ "$0" ]; then echo "event REQ_NEW_WINDOW $0" > "$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  j            = scroll vertical 50
@cbind  k            = scroll vertical -50
@cbind  h            = scroll horizontal -50
@cbind  l            = scroll horizontal 50
@cbind  <Page_Up>    = scroll vertical -100%
@cbind  <Page_Down>  = scroll vertical 100%
@cbind  <Ctrl>f      = scroll vertical 100%
@cbind  <Ctrl>b      = scroll vertical -100%
@cbind  gg           = scroll vertical begin
@cbind  G            = scroll vertical end
@cbind  <<           = scroll vertical begin
@cbind  >>           = scroll vertical end
@cbind  <Home>       = scroll vertical begin
@cbind  <End>        = scroll vertical end
@cbind  ^            = scroll horizontal begin
@cbind  $            = scroll horizontal end
@cbind  <Space>      = scroll vertical 100%
#@cbind  G<"Go To":>_   = scroll vertical %r!
# The first '_' is literal, so type '_G' to trigger this binding.
#@cbind  _G<"Go To":>_  = scroll horizontal %r!

# Frozen binding
@cbind  <Shift><Ctrl>F  = toggle frozen

# Navigation binds
@cbind  b   = back
@cbind  m   = forward
@cbind  H   = back
@cbind  L   = forward
@cbind  gb  = uri \@< encodeURI(uzbl.navigation.prev()) >\@
@cbind  gf  = uri \@< encodeURI(uzbl.navigation.next()) >\@
@cbind  S   = stop
@cbind  r   = reload cached
@cbind  R   = reload full

# Zoom binds
@cbind  +   = zoom in
@cbind  -   = zoom out
@cbind  T   = toggle zoom_text_only
@cbind  1   = set zoom_level 1.0
@cbind  2   = set zoom_level 2.0

# Appearance binds
#@cbind  t   = toggle show_status
@cbind  z   = toggle show_status

# Page searching binds
@cbind  /*                           = search find %s
@cbind  <Ctrl>/<search:>_            = search find %s
@cbind  ?*                           = search rfind %s
@cbind  <Ctrl>?<'reverse search':>_  = search rfind %s
# Jump to next and previous items
@cbind  n   = search next
@cbind  N   = search prev

# Print pages to a printer
@cbind  <Ctrl>p = hardcopy page

# Web searching binds
@cbind  gG<Google:>_         = uri https://www.google.com/search?q=\@<encodeURIComponent(%r)>\@
@cbind  gD<DuckDuckGo:>_     = uri https://duckduckgo.com/?q=%s
@cbind  gW<Wikipedia:>_      = uri https://en.wikipedia.org/w/index.php?title=Special:Search&search=\@<encodeURIComponent(%r)>\@&go=Go

# Handy binds
# Set function shortcut
@cbind  s<var:>_<value:>_  = set %1 %2
# Exit binding
@cbind  ZZ                 = exit
# Dump config to stdout
@cbind  !dump              = spawn_sh 'echo dump_config > "$UZBL_FIFO"'
# Reload all variables in the config
@cbind  !reload            = spawn_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  <Ctrl><Mod1>t  = spawn_sh 'xterm -e "socat unix-connect:\"$UZBL_SOCKET\" -"'
#@cbind  <Ctrl><Mod1>t  = spawn_sh 'urxvt -e socat unix-connect:"$UZBL_SOCKET" -'

# Uri opening prompts
@cbind  o<uri:>_       = uri %s
# Or have it load the current uri into the keycmd for editing
@cbind  O<uri:\@uri>_  = uri %s

# Mode setting binds
@cbind  i        = @set_mode insert
@bind   <Ctrl>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  = spawn_sh 'echo -n "$UZBL_URI" | xclip'
@cbind  yU  = spawn_sh 'echo -n "$0" | xclip' '\@SELECTED_URI'
@cbind  yy  = spawn_sh 'echo -n "$UZBL_TITLE" | xclip'
@cbind  ys  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('returnuri') >\@ clipboard

# Selection bindings
@cbind <Ctrl>a = js (function () { var r = document.createRange(), s = window.getSelection(); r.selectNodeContents(document); s.removeAllRanges(); s.addRange(r); })();
@cbind <Ctrl>c = sh 'echo '\@< window.getSelection().toString().replace(/'/g, "\\'"); >\@' | xclip -selection clipboard -i'

# Clone current window
@cbind  c   = event REQ_NEW_WINDOW \@uri
# Go the page from primary selection
@cbind  p   = spawn_sh 'echo "uri $(xclip -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"'
# Go to the page in clipboard
@cbind  P   = spawn_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"  = spawn_sh 'echo "event REQ_NEW_WINDOW $(xclip -o)" > "$UZBL_FIFO"'
# paste primary selection into keycmd at the cursor position
@bind <Shift><Insert> = spawn_sh 'echo "event INJECT_KEYCMD $(xclip -o | sed s/\\\@/%40/g)" > "$UZBL_FIFO"'

# Bookmark inserting binds
@cbind <Ctrl>m<tags:>_  = spawn_sh 'echo "$UZBL_URI	$0" >> "@data_home/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  <Ctrl>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

# follow links
# The structure for these calls is to call a shell script (follow.sh) with the
# output of some JavaScript code (follow.js) which gets a URI from the page to
# act on. The first argument to followLinks() is the list of characters to use
# for labelling links, the second is the currently entered keys, and the third
# is the 'mode' to use. The modes are 'click', 'newwindow', and 'returnuri'.
# The 'click' and 'newwindow' modes are handled in follow.js completely. When
# using 'returnuri' the second argument to follow.sh is the action to use for
# the URI. Currently implemented are 'set' (uses the 'uri' command),
# 'newwindow' (uses the REQ_NEW_WINDOW event), and 'clipboard' (copies the URI
# to the clipboard).

# follow hint keys:
#   fl -> emulate a click on the link
#   Fl -> open in a new window
#   fL -> take the url and navigate directly to it
#   FL -> copy the url to the clipboard
@cbind  fl*  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followLinks("\@follow_hint_keys", "%s", 'click') >\@
@cbind  Fl*  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followLinks("\@follow_hint_keys", "%s", 'newwindow') >\@ newwindow
@cbind  fL*  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followLinks("\@follow_hint_keys", "%s", 'returnuri') >\@ set
@cbind  FL*  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followLinks("\@follow_hint_keys", "%s", 'returnuri') >\@ clipboard
@cbind  fi   = spawn @scripts_dir/go_input.sh

# follow selected link:
# NOTE "selected" refers to marked text (e.g. via mouse or search), not by simply "tabbing" to a certain link.
#   fs -> emulate a click on the link
#   Fs -> open in a new window
#   fS -> take the url and navigate directly to it
#   FS -> copy the url to the clipboard
@cbind  fs  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('click') >\@
@cbind  fS  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('newwindow') >\@ newwindow
@cbind  Fs  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('returnuri') >\@ set
@cbind  FS  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followSelection('returnuri') >\@ clipboard

# follow by link text (i.e., <a>foo</a> is selected with "ftfoo" or "'foo")
#   ft -> emulate a click on the link
#   Ft -> open in a new window
#   fT -> take the url and navigate directly to it
#   FT -> copy the url to the clipboard
@cbind  ft*  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'click') >\@
@cbind  fT*  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'newwindow') >\@ newwindow
@cbind  Ft*  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'returnuri') >\@ set
@cbind  FT*  = spawn @scripts_dir/follow.sh \@< uzbl.follow.followTextContent("%s", 'returnuri') >\@ clipboard

# 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  t               = event NEW_TAB
@cbind  T               = event NEW_TAB_NEXT
@cbind  go<uri:>_       = event NEW_TAB %s
@cbind  gO<uri:>_       = event NEW_TAB_NEXT %s

# Closing / resetting
@cbind  gC              = exit
@cbind  x               = 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  J               = event NEXT_TAB
@cbind  K               = event PREV_TAB
@cbind  gi<index:>_     = event GOTO_TAB %s
@cbind  <Ctrl><Left>    = event MOVE_CURRENT_TAB_LEFT
@cbind  <Ctrl><Right>   = event MOVE_CURRENT_TAB_RIGHT
@cbind  gm<index:>_     = event MOVE_CURRENT_TAB %s

# Preset loading
set preset event PRESET_TABS
@cbind  gs<"preset save":>_   = @preset save %s
@cbind  glo<"preset load":>_  = @preset load %s
@cbind  gd<"preset del":>_    = @preset del %s
# This doesn't work right now.
#@cbind  gli                 = @preset list

# === Context menu items =====================================================

# Default context menu
menu add link Google "uri https://google.com"
menu add link "Go Home" "uri http://uzbl.org"
menu add_separator separator_1
menu add link "Quit uzbl" exit

# Link context menu
menu add link "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

# === SSL related configuration ==============================================

set ssl_policy fail
# Command to toggle ssl_policy value:
@cbind  !ssl = chain 'toggle ssl_policy fail ignore' 'reload'
# Example SSL error handler:
@on_event   LOAD_ERROR    js page string 'if (/SSL handshake failed/.test("%3")) {alert ("%3");}'

# === Post-load misc commands ================================================
spawn_sync_exec @scripts_dir/load_cookies.sh
spawn_sync_exec @scripts_dir/load_cookies.sh @(echo "${UZBL_SESSION_COOKIE_FILE:-@data_home/session-cookies.txt}")@

# Set the "home" page.
#uri uzbl.org/doesitwork/@COMMIT


# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=conf: #