===Zoom In===
A perl script to zoom in and out, and remember the zoom level next time you visit that page.
===Script===
#!/usr/bin/perl
use strict;
use warnings;
my $config_dir = $ENV{HOME} . "/.config/uzbl"; # Edit this to where to store the file of zoom levels
my $file = $config_dir . "/zoom_levels";
my $fh;
my $url = $ARGV[0];
$url =~ s|^\w+://||;
$url =~ s|/.*||;
my $socket = $ARGV[1];
my $amount = $ARGV[2];
my @lines;
my $zoom;
if (-e $file) {
open $fh, $file or die "Couldn't open '$file': $!";
while (<$fh>) {
chomp;
my ($check, $z) = split /\s+/;
if ($check eq $url) {
$zoom = $z += $amount;
}
push @lines, "$check $z";
}
close $fh;
}
if (!defined $zoom) {
$zoom = `uzblctrl -s $socket -c 'print \@zoom_level'`;
if ($zoom == 0) { # If you don't set the zoom level, uzbl defaults it to 0 ???
$zoom = 1.0;
}
$zoom += $amount;
push @lines, "$url $zoom";
}
`uzblctrl -s $socket -c 'set zoom_level = $zoom'`;
open $fh, ">", $file or die "Cannot open $file: $!";
for my $line (@lines) {
print $fh "$line\n";
}
close $fh;
===Binding===
To bind this script to your + and - keys use:
bind + = sh "$XDG_DATA_HOME/uzbl/scripts/zoom_in.pl \"$6\" $5 0.1"
bind - = sh "$XDG_DATA_HOME/uzbl/scripts/zoom_in.pl \"$6\" $5 -0.1"
The final argument is the amount to zoom by. To have it remember zoom levels set your load_commit_handler to zoom by 0.
set load_commit_handler = chain ... 'sh "$XDG_DATA_HOME/uzbl/scripts/zoom_in.pl \"$6\" $5 0.0"'