From 559c595a189765a6204580d2a537bb57f80f6945 Mon Sep 17 00:00:00 2001 From: inxi-svn Date: Wed, 25 May 2011 21:32:16 +0000 Subject: [PATCH] Improved output, now counts characters and wrapps -S and -G lines, also added tty number for console mode. Now also for greater than 1 video card, prints one per line and puts xorg data line separate always. For 1 card or less, if line is short enough, puts it all one line. System line wraps if too long at desktop, which also shows console and tty number if out of X --- inxi | 86 +++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 65 insertions(+), 21 deletions(-) diff --git a/inxi b/inxi index 4f3dc5f..fdb91f0 100755 --- a/inxi +++ b/inxi @@ -1,8 +1,8 @@ #!/bin/bash ######################################################################## #### Script Name: inxi -#### version: 1.5.3 -#### Date: May 24 2011 +#### version: 1.5.4 +#### Date: May 25 2011 ######################################################################## #### SPECIAL THANKS ######################################################################## @@ -5426,10 +5426,11 @@ print_gfx_data() { eval $LOGFS local gfx_data='' i='' card_id='' root_alert='' root_x_string='' a_gfx_working='' - local screen_resolution="$( get_graphics_res_data )" local b_is_mesa='false' display_full_string='' gfx_bus_id='' gfx_card_data='' - local res_tty='Res' xorg_data='' x_vendor_string='' x_driver_string='' x_driver_plural='' - local spacer='' + local res_tty='Resolution' xorg_data='' x_vendor_string='' line_max='160' + local spacer='' x_driver='' x_driver_string='' x_driver_plural='' direct_render_string='' + local line_starter='Graphics:' + local screen_resolution="$( get_graphics_res_data )" # set A_GFX_CARD_DATA get_graphics_card_data # set A_X_DATA @@ -5446,7 +5447,15 @@ print_gfx_data() # set A_GRAPHIC_DRIVERS get_graphics_driver - local x_driver='' + + # this handles the different, shorter, irc colors strings embedded in variable data + if [[ $B_RUNNING_IN_SHELL != 'true' ]];then + line_max=140 + fi + # and no color string data at all + if [[ $SCHEME -eq 0 ]];then + line_max=100 + fi if [[ ${#A_GRAPHIC_DRIVERS[@]} -eq 0 ]];then x_driver='N/A' @@ -5481,18 +5490,19 @@ print_gfx_data() if [[ $B_ROOT == 'true' ]];then root_x_string='for root ' if [[ $B_RUNNING_IN_SHELL == 'true' || $B_CONSOLE_IRC == 'true' ]];then - res_tty='tty res' + res_tty='tty size' fi fi if [[ $B_RUNNING_IN_X != 'true' ]];then root_x_string="${root_x_string}out of X" - res_tty='tty res' + res_tty='tty size' fi + if [[ -n $root_x_string ]];then - root_x_string="${C1}Gfx Data:${C2} N/A $root_x_string" + root_x_string="${C1}Advanced Graphics Data:${C2} N/A $root_x_string" fi - display_full_string="$x_vendor_string$x_driver_string${C1}${res_tty}:${C2} ${screen_resolution} $root_x_string" + display_full_string="$x_vendor_string$x_driver_string${C1}${res_tty}${C2} ${screen_resolution} $root_x_string" if [[ ${#A_GFX_CARD_DATA[@]} -gt 0 ]];then for (( i=0; i < ${#A_GFX_CARD_DATA[@]}; i++ )) @@ -5514,15 +5524,26 @@ print_gfx_data() else card_id='Card:' fi - gfx_data="$gfx_data${C1}$card_id${C2} $gfx_card_data$gfx_bus_id " + gfx_data="${C1}$card_id${C2} $gfx_card_data$gfx_bus_id " + if [[ ${#A_GFX_CARD_DATA[@]} -gt 1 ]];then + gfx_data=$( create_print_line "$line_starter" "${gfx_data}" ) + print_screen_output "$gfx_data" + line_starter=' ' + fi done # handle cases where card detection fails, like in PS3, where lspci gives no output, or headless boxes.. else gfx_data="${C1}Card:${C2} Failed to Detect Video Card! " fi - gfx_data=$( create_print_line "Graphics:" "${gfx_data}$display_full_string" ) + if [[ $( wc -c <<< ${gfx_data}$display_full_string ) -lt $line_max ]];then + gfx_data=$( create_print_line "$line_starter" "${gfx_data}$display_full_string" ) + else + gfx_data=$( create_print_line "$line_starter" "$gfx_data" ) + print_screen_output "$gfx_data" + line_starter=' ' + gfx_data=$( create_print_line "$line_starter" "$display_full_string" ) + fi print_screen_output "$gfx_data" - # if [[ -z $glx_renderer || -z $glx_version ]];then # b_is_mesa='true' # fi @@ -5539,10 +5560,12 @@ print_gfx_data() if [[ -z $glx_direct_render ]];then glx_direct_render='N/A' fi - gfx_data=$( create_print_line " " "${C1}GLX Renderer${C2} ${glx_renderer} ${C1}GLX Version${C2} ${glx_version}${CN}" ) if [[ $B_HANDLE_CORRUPT_DATA == 'true' || $B_EXTRA_DATA == 'true' ]];then - gfx_data="$gfx_data ${C1}Direct Rendering${C2} ${glx_direct_render}${CN}" + direct_render_string=" ${C1}Direct Rendering${C2} ${glx_direct_render}${CN}" fi + gfx_data="${C1}GLX Renderer${C2} ${glx_renderer} ${C1}GLX Version${C2} ${glx_version}${CN}$direct_render_string" + gfx_data=$( create_print_line " " "$gfx_data" ) + print_screen_output "$gfx_data" fi eval $LOGFE @@ -6290,10 +6313,21 @@ print_sensors_data() print_system_data() { eval $LOGFS - local system_data='' bits='' desktop_environment='' + local system_data='' bits='' desktop_environment='' line_max=170 + local host_kernel_string='' de_distro_string='' host_string='' desktop_type='Desktop' local host_name=$( hostname ) local current_kernel=$( uname -rm ) # | gawk '{print $1,$3,$(NF-1)}' ) local distro="$( get_distro_data )" + local tty_session=$( basename $(tty) | sed 's/[^0-9]*//g' ) + + # this handles the different, shorter, irc colors strings embedded in variable data + if [[ $B_RUNNING_IN_SHELL != 'true' ]];then + line_max=150 + fi + # and no color string data at all + if [[ $SCHEME -eq 0 ]];then + line_max=110 + fi # I think these will work, maybe, if logged in as root and in X if [[ $B_RUNNING_IN_X == 'true' ]];then @@ -6301,9 +6335,11 @@ print_system_data() if [[ -z $desktop_environment ]];then desktop_environment='N/A' fi - desktop_environment="${C1}Desktop${C2} $desktop_environment " + else + desktop_environment="tty $tty_session" + desktop_type='Console' fi - + de_distro_string="${C1}$desktop_type${C2} $desktop_environment ${C1}Distro${C2} $distro" # check for 64 bit first if [[ -n $( uname -m | grep -o 'x86_64' ) ]];then bits="(64 bit)" @@ -6312,11 +6348,19 @@ print_system_data() fi if [[ $B_SHOW_HOST == 'true' ]];then + host_string="${C1}Host${C2} $host_name " system_data=$( create_print_line "System:" "${C1}Host${C2} $host_name ${C1}Kernel${C2}" ) - else - system_data=$( create_print_line "System:" "${C1}Kernel${C2}" ) fi - system_data="$system_data $current_kernel $bits $desktop_environment${C1}Distro${C2} $distro" + host_kernel_string="$host_string${C1}Kernel${C2} $current_kernel $bits " + + if [[ $( wc -c <<< "$host_kernel_string$de_distro_string" ) -lt $line_max ]];then + system_data="$host_kernel_string$de_distro_string" + system_data=$( create_print_line "System:" "$system_data" ) + else + system_data=$( create_print_line "System:" "$host_kernel_string" ) + print_screen_output "$system_data" + system_data=$( create_print_line " " "$de_distro_string" ) + fi print_screen_output "$system_data" eval $LOGFE }