mirror of
https://github.com/smxi/inxi.git
synced 2024-11-17 00:31:19 +00:00
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
This commit is contained in:
parent
b6fca3c48b
commit
559c595a18
86
inxi
86
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
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue