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 &#039;if [ "$1" ]; then echo "event NEW_TAB $1" > "$UZBL_FIFO"; else echo "uri $(xclip -o | sed s/\\\\\\@/%40/g)" > "$UZBL_FIFO"; fi&#039; &#039;\\@SELECTED_URI&#039;

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&#039;onglet/fenêtre
 
@on_event NEW_WINDOW  sh &#039;uzbl-tabbed "$1"&#039; %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&#039;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 &#039;s/ /%20/g&#039;)" > "$UZBL_FIFO"	
fi

Gestion du zoom à la Firefox (contenu + conteneur)

Binds :
@cbind <Ctrl>i         = js (function() { var event = document.createEvent(&#039;HTMLEvents&#039;); event.initEvent(&#039;uzbl_zoom_in&#039;, true, true); document.dispatchEvent(event); } )();
@cbind <Ctrl><Shift>I  = js (function() { var event = document.createEvent(&#039;HTMLEvents&#039;); event.initEvent(&#039;uzbl_zoom_out&#039;, true, true); document.dispatchEvent(event); } )();
@cbind <Ctrl>à         = js (function() { var event = document.createEvent(&#039;HTMLEvents&#039;); event.initEvent(&#039;uzbl_zoom_init&#039;, 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 + &#039;=&#039;;
	var begin = dc.indexOf(&#039;; &#039; + prefix);
 
	if (begin == -1) {
		begin = dc.indexOf(prefix);
 
		if (begin!= 0) {
			return null;
		}
 
	} 
	else {
		begin += 2;
	}
 
	var end = document.cookie.indexOf(&#039;;&#039;, 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(&#039;body&#039;);
 
	return body ? body[0] : null;
}
 
var get_body_zoom = function()
{
	return get_body().getAttribute(&#039;data-zoom&#039;) ? parseFloat(get_body().getAttribute(&#039;data-zoom&#039;)) : 1;
}
 
var set_body_zoom = function(zoom)
{
	get_body().setAttribute(&#039;data-zoom&#039;, zoom);
	get_body().style.zoom = zoom;
	document.cookie=&#039;uzbl_zoom=&#039;+zoom+&#039;;path=/;expires=Tue, 2 Jun 2020 00:00:00 UTC;&#039;	
}
 
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(&#039;uzbl_zoom&#039;);
 
	if (zoom) {
		set_body_zoom(zoom);
	}
}
 
document.addEventListener(&#039;uzbl_zoom_in&#039;, zoom_in, true);
document.addEventListener(&#039;uzbl_zoom_out&#039;, zoom_out, true);
document.addEventListener(&#039;uzbl_zoom_init&#039;, zoom_init, true);
document.addEventListener(&#039;DOMContentLoaded&#039;, zoom_retrieve, true);

J'espère que ça vous sera utile :)

Vus : 1874
Publié par Simon Vieille : 144