Uzbl-tabbed, mon nouveau navigateur hors développement, scripts
J'utilise à présent Uzbl-tabbed comme navigateur (hormis quand je fais du développement web). Il fonctionne à merveille, sans compter l'incroyable facilité de personnalisation.
Voici quelques éléments de ma configuration :
Clique molette : ouverture dans un onglet
@bind <Button2> = sh 'if [ "$1" ]; then echo "event NEW_TAB $1" > "$UZBL_FIFO"; else echo "uri $(xclip -o | sed s/\\\\\\@/%40/g)" > "$UZBL_FIFO"; fi' '\\@SELECTED_URI'
Divers binds
@cbind <Ctrl>n = event REQ_NEW_WINDOW # nouvelle fenêtre @cbind <Ctrl>r = reload # rechargement @cbind <Ctrl>R = reload_ign_cache # rechargement sans cache @cbind <Mod1>b = back # précédent @cbind <Mod1>n = forward suivant @cbind <Ctrl>w = exit # fermerture d'onglet/fenêtre @on_event NEW_WINDOW sh 'uzbl-tabbed "$1"' %r @cbind clone = event REQ_NEW_WINDOW \\@uri # copie de fenêtre/fenêtre
Gestion de bookmarks avec des tags
Ce script est un hack de celui présent sur le site d'Uzbl.
- Emplacement :
@scripts_dir/bookmark_with_tags_for_folders.sh
- Bind :
@cbind <Ctrl>d = spawn @scripts_dir/bookmark_with_tags_for_folders.sh
#!/bin/bash # @scripts_dir/bookmark_with_tags_for_folders.sh #NOTE: it's the job of the script that inserts bookmarks to make sure there are no dupes. file=${XDG_DATA_HOME:-$HOME/.local/share}/uzbl/bookmarks [ -r "$file" ] || exit DMENU_SCHEME="bookmarks" DMENU_OPTIONS="xmms vertical resize" . "$UZBL_UTIL_DIR/dmenu.sh" . "$UZBL_UTIL_DIR/uzbl-dir.sh" TAG=`cat $file | cut -d" " -f2 | sort -u | $DMENU -nb \\#303030 -nf khaki -sb \\#CCFFAA -sf \\#303030` goto=`grep $TAG $file | cut -d" " -f1,3- | while read url name; do [ -z "\\$name" ] || name="\\$name "; echo "\\$name: $url"; done | $DMENU $COLORS | cut -d":" -f2-` [ -n "$goto" ] && echo "uri $goto" > "$UZBL_FIFO"
Le contrôle+L de Firefox
- Emplacement :
@scripts_dir/prompt_url.sh
- Bind :
@cbind <Ctrl>l = spawn @scripts_dir/prompt_url.sh
#!/bin/sh goto=$(zenity --entry --text "$UZBL_TITLE" --entry-text "$UZBL_URI" --title "$UZBL_TITLE") if [ $? -eq 0 ]; then echo "uri $goto" > "$UZBL_FIFO" fi
Le contrôle+K de Firefox
- Emplacement :
@scripts_dir/prompt_search.sh
- Bind :
@cbind <Ctrl>k = spawn @scripts_dir/prompt_search.sh
#!/bin/sh search=$(zenity --entry --text "Effectuer une recherche" --entry-text "" --title "UZBL : Effectuer une recherche") if [ $? -eq 0 ]; then echo "uri http://www.google.fr/search?q=$(echo "$search" | sed 's/ /%20/g')" > "$UZBL_FIFO" fi
Gestion du zoom à la Firefox (contenu + conteneur)
Binds :
@cbind <Ctrl>i = js (function() { var event = document.createEvent('HTMLEvents'); event.initEvent('uzbl_zoom_in', true, true); document.dispatchEvent(event); } )(); @cbind <Ctrl><Shift>I = js (function() { var event = document.createEvent('HTMLEvents'); event.initEvent('uzbl_zoom_out', true, true); document.dispatchEvent(event); } )(); @cbind <Ctrl>à = js (function() { var event = document.createEvent('HTMLEvents'); event.initEvent('uzbl_zoom_init', true, true); document.dispatchEvent(event); } )(); @on_event LOAD_COMMIT script @scripts_dir/zoom.js
Dans @scripts_dir/zoom.js
:
function get_cookie(name) { var dc = document.cookie; var prefix = name + '='; var begin = dc.indexOf('; ' + prefix); if (begin == -1) { begin = dc.indexOf(prefix); if (begin!= 0) { return null; } } else { begin += 2; } var end = document.cookie.indexOf(';', begin); if (end == -1) { end = dc.length; } return unescape(dc.substring(begin + prefix.length, end)); } var step = function() { return 0.1; } var get_body = function() { var body = document.getElementsByTagName('body'); return body ? body[0] : null; } var get_body_zoom = function() { return get_body().getAttribute('data-zoom') ? parseFloat(get_body().getAttribute('data-zoom')) : 1; } var set_body_zoom = function(zoom) { get_body().setAttribute('data-zoom', zoom); get_body().style.zoom = zoom; document.cookie='uzbl_zoom='+zoom+';path=/;expires=Tue, 2 Jun 2020 00:00:00 UTC;' } var zoom_in = function() { set_body_zoom(get_body_zoom() + step()); } var zoom_out = function() { set_body_zoom(get_body_zoom() - step()); } var zoom_init = function() { set_body_zoom(1); } var zoom_retrieve = function() { var zoom = get_cookie('uzbl_zoom'); if (zoom) { set_body_zoom(zoom); } } document.addEventListener('uzbl_zoom_in', zoom_in, true); document.addEventListener('uzbl_zoom_out', zoom_out, true); document.addEventListener('uzbl_zoom_init', zoom_init, true); document.addEventListener('DOMContentLoaded', zoom_retrieve, true);
J'espère que ça vous sera utile :)