summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2012-02-09 10:06:45 +0100
committerPaul Buetow <paul@buetow.org>2012-02-09 10:06:45 +0100
commitcafe0d509eeb356c5478e109f5344c6a27300907 (patch)
tree0173289366150ae1fe83c88e6524b88c5904475d
parent7e01fbd0789a0da22314fca7c2c9476c4d294fef (diff)
write config support
-rw-r--r--CHANGELOG1
-rwxr-xr-xloadbars567
2 files changed, 292 insertions, 276 deletions
diff --git a/CHANGELOG b/CHANGELOG
index f1d3054..8e51310 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -3,6 +3,7 @@
just use the '#' sign. Sample config:
showcores=1 # Always show cores on startup
showtext=0 # Always don't display text on startup
+* Add hotkey 'w' which writes current settings to the configfile
* Remove --title option (no need anyway)
* Some code cleanups
* Some bugfixes
diff --git a/loadbars b/loadbars
index 817d163..2abfdf3 100755
--- a/loadbars
+++ b/loadbars
@@ -174,6 +174,17 @@ sub read_config () {
close $conffile;
}
+sub write_config () {
+ display_warn "Overwriting config file " . CONFFILE if -f CONFFILE;
+ open my $conffile, '>', CONFFILE or die "$!: " . CONFFILE . "\n";
+
+ for (keys %C) {
+ print $conffile "$_=$C{$_}\n";
+ }
+
+ close $conffile;
+}
+
sub stats_thread ($;$) {
my ( $host, $user ) = @_;
$user = defined $user ? "-l $user" : '';
@@ -436,309 +447,312 @@ sub main_loop ($@) {
$quit = 1;
return;
- } elsif ( $key_name eq 'a' ) {
- ++$C{average};
- display_info "Set sample average to $C{average}";
- } elsif ( $key_name eq 'y' or $key_name eq 'z' ) {
- my $avg = $C{average};
- --$avg;
- $C{average} = $avg > 1 ? $avg : 2;
- display_info "Set sample average to $C{average}";
-
- } elsif ( $key_name eq 's' ) {
- $C{factor} += 0.1;
- display_info "Set scale factor to $C{factor}";
- } elsif ( $key_name eq 'x' or $key_name eq 'z' ) {
- $C{factor} -= 0.1;
- display_info "Set scale factor to $C{factor}";
-
- } elsif ( $key_name eq 'left') {
- $newsize{width} = $C{width} - 100;
- $newsize{height} = $C{height};
- $resize_window = 1;
- } elsif ( $key_name eq 'right' ) {
- $newsize{width} = $C{width} + 100;
- $newsize{height} = $C{height};
- $resize_window = 1;
-
- } elsif ( $key_name eq 'up' ) {
- $newsize{width} = $C{width};
- $newsize{height} = $C{height} - 100;
- $resize_window = 1;
- } elsif ( $key_name eq 'down' ) {
- $newsize{width} = $C{width};
- $newsize{height} = $C{height} + 100;
- $resize_window = 1;
+ } elsif ( $key_name eq 'w' ) {
+ write_config;
+
+ } elsif ( $key_name eq 'a' ) {
+ ++$C{average};
+ display_info "Set sample average to $C{average}";
+ } elsif ( $key_name eq 'y' or $key_name eq 'z' ) {
+ my $avg = $C{average};
+ --$avg;
+ $C{average} = $avg > 1 ? $avg : 2;
+ display_info "Set sample average to $C{average}";
+
+ } elsif ( $key_name eq 's' ) {
+ $C{factor} += 0.1;
+ display_info "Set scale factor to $C{factor}";
+ } elsif ( $key_name eq 'x' or $key_name eq 'z' ) {
+ $C{factor} -= 0.1;
+ display_info "Set scale factor to $C{factor}";
+
+ } elsif ( $key_name eq 'left') {
+ $newsize{width} = $C{width} - 100;
+ $newsize{height} = $C{height};
+ $resize_window = 1;
+ } elsif ( $key_name eq 'right' ) {
+ $newsize{width} = $C{width} + 100;
+ $newsize{height} = $C{height};
+ $resize_window = 1;
+
+ } elsif ( $key_name eq 'up' ) {
+ $newsize{width} = $C{width};
+ $newsize{height} = $C{height} - 100;
+ $resize_window = 1;
+ } elsif ( $key_name eq 'down' ) {
+ $newsize{width} = $C{width};
+ $newsize{height} = $C{height} + 100;
+ $resize_window = 1;
+ }
}
- }
- };
+ };
- do {
- my ( $x, $y ) = ( 0, 0 );
+ do {
+ my ( $x, $y ) = ( 0, 0 );
- # Also substract 1 (each bar is followed by an 1px separator bar)
- my $width = $C{width} / notnull($num_stats) - 1;
+ # Also substract 1 (each bar is followed by an 1px separator bar)
+ my $width = $C{width} / notnull($num_stats) - 1;
- my ( $current_barnum, $current_corenum ) = ( -1, -1 );
+ my ( $current_barnum, $current_corenum ) = ( -1, -1 );
- for my $key ( sort keys %CPUSTATS ) {
- last if (++$current_barnum > $num_stats);
- ++$current_corenum;
- my ( $host, $name ) = split ';', $key;
+ for my $key ( sort keys %CPUSTATS ) {
+ last if (++$current_barnum > $num_stats);
+ ++$current_corenum;
+ my ( $host, $name ) = split ';', $key;
- next unless defined $CPUSTATS{$key};
+ next unless defined $CPUSTATS{$key};
- my %stat = map {
- my ( $k, $v ) = split '=';
- $k => $v
+ my %stat = map {
+ my ( $k, $v ) = split '=';
+ $k => $v
- } split ';', $CPUSTATS{$key};
+ } split ';', $CPUSTATS{$key};
+
+ unless ( exists $prev_stats{$key} ) {
+ $prev_stats{$key} = \%stat;
+ next;
+ }
+
+ my $prev_stat = $prev_stats{$key};
+ my %loads =
+ null $stat{TOTAL} == null $prev_stat->{TOTAL}
+ ? %stat
+ : map { $_ => $stat{$_} - $prev_stat->{$_} } keys %stat;
- unless ( exists $prev_stats{$key} ) {
$prev_stats{$key} = \%stat;
- next;
- }
- my $prev_stat = $prev_stats{$key};
- my %loads =
- null $stat{TOTAL} == null $prev_stat->{TOTAL}
- ? %stat
- : map { $_ => $stat{$_} - $prev_stat->{$_} } keys %stat;
-
- $prev_stats{$key} = \%stat;
-
- %loads = normalize_loads %loads;
- push @{ $last_loads{$key} }, \%loads;
- shift @{ $last_loads{$key} }
- while @{ $last_loads{$key} } >= $C{average};
-
- my ( $cpumax, $cpuaverage ) = get_cpuaverage $C{factor},
- @{ $last_loads{$key} };
-
- my %heights = map {
- $_ => defined $cpuaverage->{$_}
- ? $cpuaverage->{$_} * ( $C{height} / 100 )
- : 1
- } keys %$cpuaverage;
-
- my $is_host_summary = $name eq 'cpu' ? 1 : 0;
-
- my $rect_separator = undef;
-
- my $rect_idle = get_rect $rects, "$key;idle";
- my $rect_steal = get_rect $rects, "$key;steal";
- my $rect_guest = get_rect $rects, "$key;guest";
- my $rect_irq = get_rect $rects, "$key;irq";
- my $rect_softirq = get_rect $rects, "$key;softirq";
- my $rect_nice = get_rect $rects, "$key;nice";
- my $rect_iowait = get_rect $rects, "$key;iowait";
- my $rect_user = get_rect $rects, "$key;user";
- my $rect_system = get_rect $rects, "$key;system";
-
- my $rect_peak;
-
- $y = $C{height} - $heights{system};
- $rect_system->width($width);
- $rect_system->height( $heights{system} );
- $rect_system->x($x);
- $rect_system->y($y);
-
- $y -= $heights{user};
- $rect_user->width($width);
- $rect_user->height( $heights{user} );
- $rect_user->x($x);
- $rect_user->y($y);
-
- $y -= $heights{nice};
- $rect_nice->width($width);
- $rect_nice->height( $heights{nice} );
- $rect_nice->x($x);
- $rect_nice->y($y);
-
- $y -= $heights{idle};
- $rect_idle->width($width);
- $rect_idle->height( $heights{idle} );
- $rect_idle->x($x);
- $rect_idle->y($y);
-
- $y -= $heights{iowait};
- $rect_iowait->width($width);
- $rect_iowait->height( $heights{iowait} );
- $rect_iowait->x($x);
- $rect_iowait->y($y);
-
- $y -= $heights{irq};
- $rect_irq->width($width);
- $rect_irq->height( $heights{irq} );
- $rect_irq->x($x);
- $rect_irq->y($y);
-
- $y -= $heights{softirq};
- $rect_softirq->width($width);
- $rect_softirq->height( $heights{softirq} );
- $rect_softirq->x($x);
- $rect_softirq->y($y);
-
- $y -= $heights{guest};
- $rect_guest->width($width);
- $rect_guest->height( $heights{guest} );
- $rect_guest->x($x);
- $rect_guest->y($y);
-
- $y -= $heights{steal};
- $rect_steal->width($width);
- $rect_steal->height( $heights{steal} );
- $rect_steal->x($x);
- $rect_steal->y($y);
-
- my $all = 100 - $cpuaverage->{idle};
- my $max_all = 0;
-
- $app->fill( $rect_idle, Loadbars::BLACK );
- $app->fill( $rect_steal, Loadbars::RED );
- $app->fill( $rect_guest, Loadbars::RED );
- $app->fill( $rect_irq, Loadbars::WHITE );
- $app->fill( $rect_softirq, Loadbars::WHITE );
- $app->fill( $rect_nice, Loadbars::GREEN );
- $app->fill( $rect_iowait, Loadbars::PURPLE );
-
- my $add_x = 0;
- my $rect_memused = get_rect $rects, "$host;memused";
- my $rect_memfree = get_rect $rects, "$host;memfree";
- my $rect_buffers = get_rect $rects, "$host;buffers";
- my $rect_cached = get_rect $rects, "$host;cached";
- my $rect_swapused = get_rect $rects, "$host;swapused";
- my $rect_swapfree = get_rect $rects, "$host;swapfree";
-
- my %meminfo;
- if ( $is_host_summary ) {
- if ( $C{showmem} ) {
- $add_x = $width + 1;
-
- my $ram_per = percentage $MEMSTATS{"$host;MemTotal"}, $MEMSTATS{"$host;MemFree"};
- my $swap_per = percentage $MEMSTATS{"$host;SwapTotal"}, $MEMSTATS{"$host;SwapFree"};
-
- %meminfo = (
- ram_per => $ram_per,
- swap_per => $swap_per,
- );
-
- my %heights = (
- MemFree => $ram_per * ( $C{height} / 100 ),
- MemUsed => (100 - $ram_per) * ( $C{height} / 100 ),
- SwapFree => $swap_per * ( $C{height} / 100 ),
- SwapUsed => (100 - $swap_per) * ( $C{height} / 100 ),
- );
-
- my $half_width = $width / 2;
- $y = $C{height} - $heights{MemUsed};
- $rect_memused->width($half_width);
- $rect_memused->height( $heights{MemUsed} );
- $rect_memused->x($x+$add_x);
- $rect_memused->y($y);
-
- $y -= $heights{MemFree};
- $rect_memfree->width($half_width);
- $rect_memfree->height( $heights{MemFree} );
- $rect_memfree->x($x+$add_x);
- $rect_memfree->y($y);
-
- $y = $C{height} - $heights{SwapUsed};
- $rect_swapused->width($half_width);
- $rect_swapused->height( $heights{SwapUsed} );
- $rect_swapused->x($x+$add_x+$half_width);
- $rect_swapused->y($y);
-
- $y -= $heights{SwapFree};
- $rect_swapfree->width($half_width);
- $rect_swapfree->height( $heights{SwapFree} );
- $rect_swapfree->x($x+$add_x+$half_width);
- $rect_swapfree->y($y);
-
- $app->fill( $rect_memused, Loadbars::DARK_GREY );
- $app->fill( $rect_memfree, Loadbars::BLACK );
-
- $app->fill( $rect_swapused, Loadbars::GREY );
- $app->fill( $rect_swapfree, Loadbars::BLACK );
- }
+ %loads = normalize_loads %loads;
+ push @{ $last_loads{$key} }, \%loads;
+ shift @{ $last_loads{$key} }
+ while @{ $last_loads{$key} } >= $C{average};
- if ( $C{showcores} ) {
- $current_corenum = 0;
- $rect_separator = get_rect $rects, "$key;separator";
- $rect_separator->width(1);
- $rect_separator->height( $C{height} );
- $rect_separator->x( $x - 1 );
- $rect_separator->y(0);
- $app->fill( $rect_separator, Loadbars::GREY );
- }
- }
+ my ( $cpumax, $cpuaverage ) = get_cpuaverage $C{factor},
+ @{ $last_loads{$key} };
- if ( $C{extended} ) {
- my %maxheights = map {
- $_ => defined $cpumax->{$_}
- ? $cpumax->{$_} * ( $C{height} / 100 )
+ my %heights = map {
+ $_ => defined $cpuaverage->{$_}
+ ? $cpuaverage->{$_} * ( $C{height} / 100 )
: 1
- } keys %$cpumax;
-
- $rect_peak = get_rect $rects, "$key;max";
- $rect_peak->width($width);
- $rect_peak->height(1);
- $rect_peak->x($x);
- $rect_peak->y( $C{height} - $maxheights{system} - $maxheights{user} );
+ } keys %$cpuaverage;
+
+ my $is_host_summary = $name eq 'cpu' ? 1 : 0;
+
+ my $rect_separator = undef;
+
+ my $rect_idle = get_rect $rects, "$key;idle";
+ my $rect_steal = get_rect $rects, "$key;steal";
+ my $rect_guest = get_rect $rects, "$key;guest";
+ my $rect_irq = get_rect $rects, "$key;irq";
+ my $rect_softirq = get_rect $rects, "$key;softirq";
+ my $rect_nice = get_rect $rects, "$key;nice";
+ my $rect_iowait = get_rect $rects, "$key;iowait";
+ my $rect_user = get_rect $rects, "$key;user";
+ my $rect_system = get_rect $rects, "$key;system";
+
+ my $rect_peak;
+
+ $y = $C{height} - $heights{system};
+ $rect_system->width($width);
+ $rect_system->height( $heights{system} );
+ $rect_system->x($x);
+ $rect_system->y($y);
+
+ $y -= $heights{user};
+ $rect_user->width($width);
+ $rect_user->height( $heights{user} );
+ $rect_user->x($x);
+ $rect_user->y($y);
+
+ $y -= $heights{nice};
+ $rect_nice->width($width);
+ $rect_nice->height( $heights{nice} );
+ $rect_nice->x($x);
+ $rect_nice->y($y);
+
+ $y -= $heights{idle};
+ $rect_idle->width($width);
+ $rect_idle->height( $heights{idle} );
+ $rect_idle->x($x);
+ $rect_idle->y($y);
+
+ $y -= $heights{iowait};
+ $rect_iowait->width($width);
+ $rect_iowait->height( $heights{iowait} );
+ $rect_iowait->x($x);
+ $rect_iowait->y($y);
+
+ $y -= $heights{irq};
+ $rect_irq->width($width);
+ $rect_irq->height( $heights{irq} );
+ $rect_irq->x($x);
+ $rect_irq->y($y);
+
+ $y -= $heights{softirq};
+ $rect_softirq->width($width);
+ $rect_softirq->height( $heights{softirq} );
+ $rect_softirq->x($x);
+ $rect_softirq->y($y);
+
+ $y -= $heights{guest};
+ $rect_guest->width($width);
+ $rect_guest->height( $heights{guest} );
+ $rect_guest->x($x);
+ $rect_guest->y($y);
+
+ $y -= $heights{steal};
+ $rect_steal->width($width);
+ $rect_steal->height( $heights{steal} );
+ $rect_steal->x($x);
+ $rect_steal->y($y);
+
+ my $all = 100 - $cpuaverage->{idle};
+ my $max_all = 0;
+
+ $app->fill( $rect_idle, Loadbars::BLACK );
+ $app->fill( $rect_steal, Loadbars::RED );
+ $app->fill( $rect_guest, Loadbars::RED );
+ $app->fill( $rect_irq, Loadbars::WHITE );
+ $app->fill( $rect_softirq, Loadbars::WHITE );
+ $app->fill( $rect_nice, Loadbars::GREEN );
+ $app->fill( $rect_iowait, Loadbars::PURPLE );
+
+ my $add_x = 0;
+ my $rect_memused = get_rect $rects, "$host;memused";
+ my $rect_memfree = get_rect $rects, "$host;memfree";
+ my $rect_buffers = get_rect $rects, "$host;buffers";
+ my $rect_cached = get_rect $rects, "$host;cached";
+ my $rect_swapused = get_rect $rects, "$host;swapused";
+ my $rect_swapfree = get_rect $rects, "$host;swapfree";
+
+ my %meminfo;
+ if ( $is_host_summary ) {
+ if ( $C{showmem} ) {
+ $add_x = $width + 1;
+
+ my $ram_per = percentage $MEMSTATS{"$host;MemTotal"}, $MEMSTATS{"$host;MemFree"};
+ my $swap_per = percentage $MEMSTATS{"$host;SwapTotal"}, $MEMSTATS{"$host;SwapFree"};
+
+ %meminfo = (
+ ram_per => $ram_per,
+ swap_per => $swap_per,
+ );
+
+ my %heights = (
+ MemFree => $ram_per * ( $C{height} / 100 ),
+ MemUsed => (100 - $ram_per) * ( $C{height} / 100 ),
+ SwapFree => $swap_per * ( $C{height} / 100 ),
+ SwapUsed => (100 - $swap_per) * ( $C{height} / 100 ),
+ );
+
+ my $half_width = $width / 2;
+ $y = $C{height} - $heights{MemUsed};
+ $rect_memused->width($half_width);
+ $rect_memused->height( $heights{MemUsed} );
+ $rect_memused->x($x+$add_x);
+ $rect_memused->y($y);
+
+ $y -= $heights{MemFree};
+ $rect_memfree->width($half_width);
+ $rect_memfree->height( $heights{MemFree} );
+ $rect_memfree->x($x+$add_x);
+ $rect_memfree->y($y);
+
+ $y = $C{height} - $heights{SwapUsed};
+ $rect_swapused->width($half_width);
+ $rect_swapused->height( $heights{SwapUsed} );
+ $rect_swapused->x($x+$add_x+$half_width);
+ $rect_swapused->y($y);
+
+ $y -= $heights{SwapFree};
+ $rect_swapfree->width($half_width);
+ $rect_swapfree->height( $heights{SwapFree} );
+ $rect_swapfree->x($x+$add_x+$half_width);
+ $rect_swapfree->y($y);
+
+ $app->fill( $rect_memused, Loadbars::DARK_GREY );
+ $app->fill( $rect_memfree, Loadbars::BLACK );
+
+ $app->fill( $rect_swapused, Loadbars::GREY );
+ $app->fill( $rect_swapfree, Loadbars::BLACK );
+ }
- $max_all = sum @{$cpumax} {qw(user system iowait irq softirq steal guest)};
+ if ( $C{showcores} ) {
+ $current_corenum = 0;
+ $rect_separator = get_rect $rects, "$key;separator";
+ $rect_separator->width(1);
+ $rect_separator->height( $C{height} );
+ $rect_separator->x( $x - 1 );
+ $rect_separator->y(0);
+ $app->fill( $rect_separator, Loadbars::GREY );
+ }
+ }
- $app->fill( $rect_peak, $max_all > Loadbars::USER_ORANGE ? Loadbars::ORANGE
- : ( $max_all > Loadbars::USER_YELLOW0 ? Loadbars::YELLOW0 : (Loadbars::YELLOW)));
- }
+ if ( $C{extended} ) {
+ my %maxheights = map {
+ $_ => defined $cpumax->{$_}
+ ? $cpumax->{$_} * ( $C{height} / 100 )
+ : 1
+ } keys %$cpumax;
+
+ $rect_peak = get_rect $rects, "$key;max";
+ $rect_peak->width($width);
+ $rect_peak->height(1);
+ $rect_peak->x($x);
+ $rect_peak->y( $C{height} - $maxheights{system} - $maxheights{user} );
+
+ $max_all = sum @{$cpumax} {qw(user system iowait irq softirq steal guest)};
+
+ $app->fill( $rect_peak, $max_all > Loadbars::USER_ORANGE ? Loadbars::ORANGE
+ : ( $max_all > Loadbars::USER_YELLOW0 ? Loadbars::YELLOW0 : (Loadbars::YELLOW)));
+ }
- $app->fill( $rect_user, $all > Loadbars::USER_ORANGE ? Loadbars::ORANGE
- : ( $all > Loadbars::USER_YELLOW0 ? Loadbars::YELLOW0 : (Loadbars::YELLOW)));
- $app->fill( $rect_system, $cpuaverage->{system} > Loadbars::SYSTEM_BLUE0
- ? Loadbars::BLUE0 : Loadbars::BLUE );
+ $app->fill( $rect_user, $all > Loadbars::USER_ORANGE ? Loadbars::ORANGE
+ : ( $all > Loadbars::USER_YELLOW0 ? Loadbars::YELLOW0 : (Loadbars::YELLOW)));
+ $app->fill( $rect_system, $cpuaverage->{system} > Loadbars::SYSTEM_BLUE0
+ ? Loadbars::BLUE0 : Loadbars::BLUE );
- my ( $y, $space ) = ( 5, $font_height );
+ my ( $y, $space ) = ( 5, $font_height );
- my @loadavg = split ';', $AVGSTATS{$host};
+ my @loadavg = split ';', $AVGSTATS{$host};
- if ( $C{showtext} ) {
- if ( $C{showmem} && $is_host_summary ) {
- my $y_ = $y;
- $app->print( $x+$add_x, $y_, 'Ram:');
- $app->print( $x+$add_x, $y_ += $space, sprintf '%02d', (100-$meminfo{ram_per}));
- $app->print( $x+$add_x, $y_ += $space, 'Swp:');
- $app->print( $x+$add_x, $y_ += $space, sprintf '%02d', (100-$meminfo{swap_per}));
- }
- if ( $C{showtexthost} && $is_host_summary ) {
- # If hostname is printed don't use FQDN
- # because of its length.
- $host =~ /([^\.]*)/;
- $app->print( $x, $y, sprintf '%s:', $1 );
+ if ( $C{showtext} ) {
+ if ( $C{showmem} && $is_host_summary ) {
+ my $y_ = $y;
+ $app->print( $x+$add_x, $y_, 'Ram:');
+ $app->print( $x+$add_x, $y_ += $space, sprintf '%02d', (100-$meminfo{ram_per}));
+ $app->print( $x+$add_x, $y_ += $space, 'Swp:');
+ $app->print( $x+$add_x, $y_ += $space, sprintf '%02d', (100-$meminfo{swap_per}));
+ }
+ if ( $C{showtexthost} && $is_host_summary ) {
+ # If hostname is printed don't use FQDN
+ # because of its length.
+ $host =~ /([^\.]*)/;
+ $app->print( $x, $y, sprintf '%s:', $1 );
- }
- else {
- $app->print( $x, $y, sprintf '%i:', $C{showcores} ? $current_corenum : $current_barnum + 1 );
- }
+ }
+ else {
+ $app->print( $x, $y, sprintf '%i:', $C{showcores} ? $current_corenum : $current_barnum + 1 );
+ }
- if ( $C{extended} ) {
- $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{steal}, 'st');
- $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{guest}, 'gt');
- $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{softirq}, 'sr');
- $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{irq}, 'ir');
- }
+ if ( $C{extended} ) {
+ $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{steal}, 'st');
+ $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{guest}, 'gt');
+ $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{softirq}, 'sr');
+ $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{irq}, 'ir');
+ }
- $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{iowait}, 'io');
+ $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{iowait}, 'io');
- $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{idle}, 'id') if $C{extended};
+ $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{idle}, 'id') if $C{extended};
- $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{nice}, 'ni');
- $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{user}, 'us');
- $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{system}, 'sy');
- $app->print( $x, $y += $space, sprintf '%02d%s', norm $all, 'to');
+ $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{nice}, 'ni');
+ $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{user}, 'us');
+ $app->print( $x, $y += $space, sprintf '%02d%s', norm $cpuaverage->{system}, 'sy');
+ $app->print( $x, $y += $space, sprintf '%02d%s', norm $all, 'to');
- $app->print( $x, $y += $space, sprintf '%02d%s', norm $max_all, 'pk') if $C{extended};
+ $app->print( $x, $y += $space, sprintf '%02d%s', norm $max_all, 'pk') if $C{extended};
- if ($is_host_summary) {
+ if ($is_host_summary) {
if ( defined $loadavg[0] ) {
$app->print( $x, $y += $space, 'Avg:' );
$app->print( $x, $y += $space, sprintf "%.2f", $loadavg[0]);
@@ -992,6 +1006,7 @@ END
},
quit_hot => { menupos => 16, cmd => 'q', help => 'Quits', mode => 1 },
+ writeconfig_hot => { menupos => 16, cmd => 'w', help => 'Write config to config file', mode => 1 },
samples => {
menupos => 17,