diff options
-rw-r--r-- | examples/config/config | 13 | ||||
-rw-r--r-- | examples/data/scripts/follow.js | 16 | ||||
-rwxr-xr-x | examples/data/scripts/follow.sh | 5 |
3 files changed, 33 insertions, 1 deletions
diff --git a/examples/config/config b/examples/config/config index 77686a0..11f1d82 100644 --- a/examples/config/config +++ b/examples/config/config @@ -192,6 +192,8 @@ set ebind = @mode_bind global,-insert @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 <Escape> = event ESCAPE @bind <Ctrl>[ = event ESCAPE @@ -323,6 +325,7 @@ set ebind = @mode_bind global,-insert @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 @@ -360,6 +363,16 @@ set follow_hint_keys = 0123456789 @cbind FL* = spawn @scripts_dir/follow.sh \@< uzbl.follow("\@follow_hint_keys", "%s", 'returnuri') >\@ clipboard @cbind fi = 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 diff --git a/examples/data/scripts/follow.js b/examples/data/scripts/follow.js index 88f80f2..83bbf55 100644 --- a/examples/data/scripts/follow.js +++ b/examples/data/scripts/follow.js @@ -326,3 +326,19 @@ uzbl.follow.followLinks = function(str) { this.reDrawHints(leftover, len); } } + +uzbl.follow.followSelection = function(mode) { + var selection = window.getSelection() + if (!selection) + return + + var node = selection.anchorNode + if (!node) + return + + var el = node.parentElement + if (!el) + return + + this.elementSelected(el) +} diff --git a/examples/data/scripts/follow.sh b/examples/data/scripts/follow.sh index ca6b7a0..3518059 100755 --- a/examples/data/scripts/follow.sh +++ b/examples/data/scripts/follow.sh @@ -22,6 +22,10 @@ event NEW_WINDOW $@" > "$UZBL_FIFO" uriaction=$1 uri=${result#XXXRETURNED_URIXXX} + printf 'set mode=\nevent KEYCMD_CLEAR\n' > "$UZBL_FIFO" + + [ -z "$uri" ] && exit + case "$uriaction" in set) printf 'uri '"$uri"'\n' | sed -e 's/@/\\@/' > "$UZBL_FIFO" @@ -30,5 +34,4 @@ event NEW_WINDOW $@" > "$UZBL_FIFO" printf "$uri" | xclip ;; esac - printf 'set mode=\nevent KEYCMD_CLEAR\n' > "$UZBL_FIFO" esac |