… | |
… | |
56 | is behind the text, replacing the normal background colour. |
56 | is behind the text, replacing the normal background colour. |
57 | |
57 | |
58 | It does so by evaluating a Perl expression that I<calculates> the image on |
58 | It does so by evaluating a Perl expression that I<calculates> the image on |
59 | the fly, for example, by grabbing the root background or loading a file. |
59 | the fly, for example, by grabbing the root background or loading a file. |
60 | |
60 | |
61 | While the full power of Perl is available, the operators have been design |
61 | While the full power of Perl is available, the operators have been |
62 | to be as simple as possible. |
62 | designed to be as simple as possible. |
63 | |
63 | |
64 | For example, to load an image and scale it to the window size, you would |
64 | For example, to load an image and scale it to the window size, you would |
65 | use: |
65 | use: |
66 | |
66 | |
67 | urxvt --background-expr 'scale keep { load "/path/to/mybg.png" }' |
67 | urxvt --background-expr 'scale keep { load "/path/to/mybg.png" }' |
… | |
… | |
986 | |
986 | |
987 | return $img |
987 | return $img |
988 | if FOCUS; |
988 | if FOCUS; |
989 | |
989 | |
990 | my $fade = @_ >= 1 ? $_[0] : defined $self->resource ("fade") ? $self->resource ("fade") * 0.01 : 0; |
990 | my $fade = @_ >= 1 ? $_[0] : defined $self->resource ("fade") ? $self->resource ("fade") * 0.01 : 0; |
991 | my $color = @_ >= 2 ? $_[1] : $self->resource ("color+" . urxvt::Color_fade); |
991 | my $color = @_ >= 2 ? $_[1] : $self->resource ("color+" . &urxvt::Color_fade ()); # Color_fade not always available |
992 | |
992 | |
993 | $img = $img->tint ($color) if $color ne "rgb:00/00/00"; |
993 | $img = $img->tint ($color) if $color ne "rgb:00/00/00"; |
994 | $img = $img->muladd (1 - $fade, 0) if $fade; |
994 | $img = $img->muladd (1 - $fade, 0) if $fade; |
995 | |
995 | |
996 | $img |
996 | $img |
… | |
… | |
1448 | } |
1448 | } |
1449 | } |
1449 | } |
1450 | } |
1450 | } |
1451 | |
1451 | |
1452 | # helper function, quote string as perl without allowing |
1452 | # helper function, quote string as perl without allowing |
1453 | # any code execution or other shenanigans. does not |
1453 | # any code execution or other shenanigans. |
1454 | # support binary NULs in string. |
|
|
1455 | sub q0 { |
1454 | sub q0 { |
1456 | (my $str = shift) =~ s/\x00//g; # make sure there really aren't any embedded NULs |
|
|
1457 | "q\x00$str\x00" |
1455 | "qq\x00\Q$_\E\x00" |
1458 | } |
1456 | } |
1459 | |
1457 | |
1460 | sub old_bg_expr { |
1458 | sub old_bg_expr { |
1461 | my ($self) = @_; |
1459 | my ($self) = @_; |
1462 | |
1460 | |