Terminal / terminal title update
This commit is contained in:
parent
67ed4177b1
commit
43d9d3750e
1 changed files with 34 additions and 2 deletions
36
spp.pl
36
spp.pl
|
@ -49,6 +49,14 @@ our %CONFIG = (
|
||||||
# - Always generate input line?
|
# - Always generate input line?
|
||||||
layout_input_always => 0 ,
|
layout_input_always => 0 ,
|
||||||
|
|
||||||
|
# TERMINAL TITLE
|
||||||
|
# - Set title from the prompt? 0=no, 1=normal, 2=minimized, 3=both
|
||||||
|
term_set_title => 1 ,
|
||||||
|
# - Generators to use
|
||||||
|
term_generators => [ 'userhost' , 'cwd' , 'pyenv' ] ,
|
||||||
|
# - Separator
|
||||||
|
term_separator => ' ::: ' ,
|
||||||
|
|
||||||
# CURRENT WORKING DIRECTORY
|
# CURRENT WORKING DIRECTORY
|
||||||
# - Max width as a percentage of the terminal's width
|
# - Max width as a percentage of the terminal's width
|
||||||
cwd_max_width => 50 ,
|
cwd_max_width => 50 ,
|
||||||
|
@ -684,6 +692,29 @@ sub gen_ps2
|
||||||
return render( 'ps2' , @line ) . tput_sequence( 'sgr0' );
|
return render( 'ps2' , @line ) . tput_sequence( 'sgr0' );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub gen_term_title
|
||||||
|
{
|
||||||
|
my @parts = @{ $CONFIG{term_generators} };
|
||||||
|
return '' unless @parts && $CONFIG{term_set_title};
|
||||||
|
@parts = gen_prompt_sections( 0 , @parts );
|
||||||
|
my @str_parts = ();
|
||||||
|
foreach my $part ( @parts ) {
|
||||||
|
my $cur = '';
|
||||||
|
foreach my $sub ( @{ $part->{content} } ) {
|
||||||
|
next if ref $sub;
|
||||||
|
$cur .= $sub;
|
||||||
|
}
|
||||||
|
$cur =~ s/[^\x20-\x7f]//g;
|
||||||
|
push @str_parts , $cur if $cur;
|
||||||
|
}
|
||||||
|
return '' unless @str_parts;
|
||||||
|
my $main = join( $CONFIG{term_separator} , @str_parts );
|
||||||
|
my $out = '';
|
||||||
|
$out .= "\\033]0;$main\\007" if $CONFIG{term_set_title} & 1;
|
||||||
|
$out .= "\\033]1;$main\\007" if $CONFIG{term_set_title} & 2;
|
||||||
|
return $out;
|
||||||
|
}
|
||||||
|
|
||||||
sub get_config_overrides
|
sub get_config_overrides
|
||||||
{
|
{
|
||||||
foreach my $k ( keys %CONFIG ) {
|
foreach my $k ( keys %CONFIG ) {
|
||||||
|
@ -711,10 +742,11 @@ sub get_config_overrides
|
||||||
|
|
||||||
get_config_overrides if $CONFIG{allow_env_overrides};
|
get_config_overrides if $CONFIG{allow_env_overrides};
|
||||||
%TLEN = compute_trans_lengths;
|
%TLEN = compute_trans_lengths;
|
||||||
my $ps1 = gen_top_line;
|
my $pg = gen_term_title;
|
||||||
|
my $ps1 = $pg . gen_top_line;
|
||||||
my ( $ill , $ilt ) = gen_input_line;
|
my ( $ill , $ilt ) = gen_input_line;
|
||||||
$ps1 .= $ilt;
|
$ps1 .= $ilt;
|
||||||
my $ps2 = gen_ps2( $ill );
|
my $ps2 = $pg . gen_ps2( $ill );
|
||||||
print "export PS1=\"$ps1\" PS2=\"$ps2\"\n";
|
print "export PS1=\"$ps1\" PS2=\"$ps2\"\n";
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue