New version; updated man page. Changed slightly the output for x server, in preparation

for adding alternate display servers, like Wayland or Mir. Rather than release all the
stuff at once I'm going to do it bit by bit. Currently I have not found a wayland iso
test cd that boots in virtual box so I will have to wait to really add support there.
This commit is contained in:
inxi-svn 2014-03-03 23:31:47 +00:00
parent 73101b5a9d
commit af7336ceba
3 changed files with 167 additions and 146 deletions

291
inxi
View file

@ -1,8 +1,8 @@
#!/usr/bin/env bash
########################################################################
#### Script Name: inxi
#### Version: 1.9.18
#### Date: 2014-01-13
#### Version: 1.9.19
#### Date: 2014-03-03
#### Patch Number: 00
########################################################################
#### SPECIAL THANKS
@ -229,8 +229,8 @@ A_CPU_DATA=''
A_CPU_TYPE_PCNT_CCNT=''
A_DEBUG_BUFFER=''
A_GCC_VERSIONS=''
A_GFX_CARD_DATA=''
A_GLX_DATA=''
A_GRAPHICS_CARD_DATA=''
A_GRAPHIC_DRIVERS=''
A_HDD_DATA=''
A_INTERFACES_DATA=''
@ -244,7 +244,7 @@ A_RAID_DATA=''
A_SENSORS_DATA=''
A_UNMOUNTED_PARTITION_DATA=''
A_WEATHER_DATA=''
A_X_DATA=''
A_DISPLAY_SERVER_DATA=''
### Boolean true/false globals ## usage: 'B_<var>'
## Distro maintainer flags ##
@ -287,6 +287,7 @@ B_PORTABLE='false'
B_RAID_SET='false'
B_ROOT='false'
B_RUN_COLOR_SELECTOR='false'
B_RUNNING_IN_DISPLAY='false' # in x type display server
# Running in a shell? Defaults to false, and is determined later.
B_RUNNING_IN_SHELL='false'
if tty >/dev/null;then
@ -302,6 +303,7 @@ B_SHOW_BASIC_CPU='false'
B_SHOW_BASIC_DISK='false'
B_SHOW_BASIC_OPTICAL='false'
B_SHOW_CPU='false'
B_SHOW_DISPLAY_DATA='false'
B_SHOW_DISK_TOTAL='false'
B_SHOW_DISK='false'
# Show full hard disk output
@ -324,7 +326,6 @@ B_SHOW_RAID='false'
# because many systems have no mdstat file, -b/-F should not show error if no raid file found
B_SHOW_RAID_R='false'
B_SHOW_REPOS='false'
B_RUNNING_IN_X='false'
B_SHOW_SENSORS='false'
# triggers only short inxi output
B_SHOW_SHORT_OUTPUT='false'
@ -332,7 +333,6 @@ B_SHOW_SYSTEM='false'
B_SHOW_UNMOUNTED_PARTITIONS='false'
B_SHOW_UUIDS='false'
B_SHOW_WEATHER='false'
B_SHOW_X_DATA='false'
B_SYSCTL='false'
# triggers various debugging and new option testing
B_TESTING_1='false'
@ -687,7 +687,7 @@ main()
color_scheme=$VIRT_TERM_COLOR_SCHEME
fi
else
if [[ -n $IRC_X_TERM_COLOR_SCHEME && $B_CONSOLE_IRC == 'true' && -n $B_RUNNING_IN_X ]];then
if [[ -n $IRC_X_TERM_COLOR_SCHEME && $B_CONSOLE_IRC == 'true' && -n $B_RUNNING_IN_DISPLAY ]];then
color_scheme=$IRC_X_TERM_COLOR_SCHEME
elif [[ -n $IRC_CONS_COLOR_SCHEME && -z $DISPLAY ]];then
color_scheme=$IRC_CONS_COLOR_SCHEME
@ -808,8 +808,8 @@ initialize_data()
fi
if [[ -n $DISPLAY ]];then
B_SHOW_X_DATA='true'
B_RUNNING_IN_X='true'
B_SHOW_DISPLAY_DATA='true'
B_RUNNING_IN_DISPLAY='true'
fi
if [[ -e $FILE_MDSTAT ]];then
@ -964,16 +964,16 @@ check_required_apps()
depends="$depends sysctl lspci"
fi
# no need to add xprop because it will just give N/A if not there, but if we expand use of xprop,
# should add that here as a test, then use the B_SHOW_X_DATA flag to trigger the tests in de function
# should add that here as a test, then use the B_SHOW_DISPLAY_DATA flag to trigger the tests in de function
local x_apps="xrandr xdpyinfo glxinfo"
if [[ $B_RUNNING_IN_X == 'true' ]];then
if [[ $B_RUNNING_IN_DISPLAY == 'true' ]];then
for app_name in $x_apps
do
app_path=$( type -p $app_name )
if [[ -z $app_path ]];then
script_debugger "Resuming in non X mode: $app_name not found. For package install advice run: $SCRIPT_NAME --recommends"
B_SHOW_X_DATA='false'
B_SHOW_DISPLAY_DATA='false'
break
fi
done
@ -1596,7 +1596,7 @@ debug_data_collector()
fi
fi
if [[ $1 == 'xorg' || $1 == 'all' ]];then
if [[ $B_RUNNING_IN_X != 'true' ]];then
if [[ $B_RUNNING_IN_DISPLAY != 'true' ]];then
echo 'Warning: only some of the data collection can occur if you are not in X'
touch $debug_data_dir/warning-user-not-in-x
fi
@ -3020,7 +3020,7 @@ set_perl_python_konvi()
{
if [[ -z $IRC_CLIENT_VERSION ]];then
# this is a hack to try to show konversation if inxi is running but started via /cmd
if [[ -n $( grep -i 'konversation' <<< "$Ps_aux_Data" | grep -v 'grep' ) && $B_RUNNING_IN_X == 'true' ]];then
if [[ -n $( grep -i 'konversation' <<< "$Ps_aux_Data" | grep -v 'grep' ) && $B_RUNNING_IN_DISPLAY == 'true' ]];then
IRC_CLIENT='Konversation'
IRC_CLIENT_VERSION=" $( konversation --version 2>/dev/null | gawk '/^Konversation/ {print $2}' )"
B_CONSOLE_IRC='false'
@ -4736,7 +4736,7 @@ get_graphics_card_data()
local i='' temp_array=''
IFS=$'\n'
A_GFX_CARD_DATA=( $( gawk -F': ' '
A_GRAPHICS_CARD_DATA=( $( gawk -F': ' '
BEGIN {
IGNORECASE=1
busId=""
@ -4750,15 +4750,15 @@ get_graphics_card_data()
print $NF "," busId
}' <<< "$Lspci_v_Data" ) )
IFS="$ORIGINAL_IFS"
# for (( i=0; i < ${#A_GFX_CARD_DATA[@]}; i++ ))
# for (( i=0; i < ${#A_GRAPHICS_CARD_DATA[@]}; i++ ))
# do
# A_GFX_CARD_DATA[i]=$( sanitize_characters BAN_LIST_NORMAL "${A_GFX_CARD_DATA[i]}" )
# A_GRAPHICS_CARD_DATA[i]=$( sanitize_characters BAN_LIST_NORMAL "${A_GRAPHICS_CARD_DATA[i]}" )
# done
# GFXMEM is UNUSED at the moment, because it shows AGP aperture size, which is not necessarily equal to GFX memory..
# GFXMEM="size=[$(echo "$Lspci_v_Data" | gawk '/VGA/{while (!/^$/) {getline;if (/size=[0-9][0-9]*M/) {size2=gensub(/.*\[size=([0-9]+)M\].*/,"\\1","g",$0);if (size<size2){size=size2}}}}END{print size2}')M]"
temp_array=${A_GFX_CARD_DATA[@]}
log_function_data "A_GFX_CARD_DATA: $temp_array"
temp_array=${A_GRAPHICS_CARD_DATA[@]}
log_function_data "A_GRAPHICS_CARD_DATA: $temp_array"
eval $LOGFE
}
@ -4830,7 +4830,7 @@ get_graphics_glx_data()
{
eval $LOGFS
local temp_array=''
if [[ $B_SHOW_X_DATA == 'true' && $B_ROOT != 'true' ]];then
if [[ $B_SHOW_DISPLAY_DATA == 'true' && $B_ROOT != 'true' ]];then
IFS=$'\n'
A_GLX_DATA=( $( glxinfo | gawk -F ': ' '
# note: function declarations go before BEGIN? It appears so, confirm.
@ -4900,7 +4900,7 @@ get_graphics_res_data()
eval $LOGFS
local screen_resolution='' xdpy_data='' screens_count=0 tty_session=''
if [[ $B_SHOW_X_DATA == 'true' && $B_ROOT != 'true' ]];then
if [[ $B_SHOW_DISPLAY_DATA == 'true' && $B_ROOT != 'true' ]];then
# Added the two ?'s , because the resolution is now reported without spaces around the 'x', as in
# 1400x1050 instead of 1400 x 1050. Change as of X.org version 1.3.0
xdpy_data="$( xdpyinfo )"
@ -4969,20 +4969,20 @@ get_graphics_res_data()
eval $LOGFE
}
## create array of x vendor/version data
get_graphics_x_data()
## create array of display server vendor/version data
get_graphics_display_server_data()
{
eval $LOGFS
local x_vendor='' x_version='' temp_array='' xdpy_info='' a_x_working=''
local vendor='' version='' temp_array='' xdpy_info='' a_display_vendor_working=''
if [[ $B_SHOW_X_DATA == 'true' && $B_ROOT != 'true' ]];then
if [[ $B_SHOW_DISPLAY_DATA == 'true' && $B_ROOT != 'true' ]];then
# X vendor and version detection.
# new method added since radeon and X.org and the disappearance of <X server name> version : ...etc
# Later on, the normal textual version string returned, e.g. like: X.Org version: 6.8.2
# A failover mechanism is in place. (if $x_version is empty, the release number is parsed instead)
# A failover mechanism is in place. (if $version is empty, the release number is parsed instead)
# xdpy_info="$( xdpyinfo )"
IFS=","
a_x_working=( $( xdpyinfo | gawk -F': +' '
a_display_vendor_working=( $( xdpyinfo | gawk -F': +' '
BEGIN {
IGNORECASE=1
vendorString=""
@ -5007,44 +5007,44 @@ get_graphics_x_data()
END {
print vendorString "," version "," vendorRelease
}' ) )
x_vendor=${a_x_working[0]}
x_version=${a_x_working[1]}
vendor=${a_display_vendor_working[0]}
version=${a_display_vendor_working[1]}
# this gives better output than the failure last case, which would only show:
# for example: X.org: 1.9 instead of: X.org: 1.9.0
if [[ -z $x_version ]];then
x_version=$( get_graphics_x_version )
if [[ -z $version ]];then
version=$( get_graphics_display_server_version )
fi
if [[ -z $x_version ]];then
x_version=${a_x_working[2]}
if [[ -z $version ]];then
version=${a_display_vendor_working[2]}
fi
# some distros, like fedora, report themselves as the xorg vendor, so quick check
# here to make sure the vendor string includes Xorg in string
if [[ -z $( grep -E '(X|xorg|x\.org)' <<< $x_vendor ) ]];then
x_vendor="$x_vendor X.org"
if [[ -z $( grep -E '(X|xorg|x\.org)' <<< $vendor ) ]];then
vendor="$vendor X.org"
fi
IFS="$ORIGINAL_IFS"
A_X_DATA[0]="$x_vendor"
A_X_DATA[1]="$x_version"
A_DISPLAY_SERVER_DATA[0]="$vendor"
A_DISPLAY_SERVER_DATA[1]="$version"
else
x_version=$( get_graphics_x_version )
if [[ -n $x_version ]];then
x_vendor='X.org'
A_X_DATA[0]="$x_vendor"
A_X_DATA[1]="$x_version"
version=$( get_graphics_display_server_version )
if [[ -n $version ]];then
vendor='X.org'
A_DISPLAY_SERVER_DATA[0]="$vendor"
A_DISPLAY_SERVER_DATA[1]="$version"
fi
fi
temp_array=${A_X_DATA[@]}
log_function_data "A_X_DATA: $temp_array"
temp_array=${A_DISPLAY_SERVER_DATA[@]}
log_function_data "A_DISPLAY_SERVER_DATA: $temp_array"
eval $LOGFE
}
# if other tests fail, try this one, this works for root, out of X also
get_graphics_x_version()
get_graphics_display_server_version()
{
eval $LOGFS
local x_version='' x_data=''
local version='' x_data=''
# note that some users can have /usr/bin/Xorg but not /usr/bin/X
if [[ -n $( type -p X ) ]];then
# note: MUST be this syntax: X -version 2>&1
@ -5056,7 +5056,7 @@ get_graphics_x_version()
x_data="$( Xorg -version 2>&1)"
fi
if [[ -n $x_data ]];then
x_version=$(
version=$(
gawk '
BEGIN {
IGNORECASE=1
@ -5070,8 +5070,8 @@ get_graphics_x_version()
exit
}' <<< "$x_data" )
fi
echo $x_version
log_function_data " x_version: $x_version"
echo $version
log_function_data " version: $version"
eval $LOGFE
}
@ -5447,20 +5447,20 @@ get_lspci_data()
}
# args: $1 - busid
get_lspci_vendor_product()
get_lspci_chip_id()
{
eval $LOGFS
local vendor_product=''
local chip_id=''
vendor_product=$( gawk '
chip_id=$( gawk '
/^'$1'/ {
if ( $3 != "" ) {
print $3
}
}' <<< "$Lspci_n_Data" )
echo $vendor_product
echo $chip_id
eval $LOGFE
}
@ -5815,7 +5815,7 @@ get_network_advanced_data()
{
eval $LOGFS
local a_network_adv_working='' if_path='' working_path='' working_uevent_path='' dir_path=''
local if_id='' speed='' duplex='' mac_id='' oper_state='' vendor_product=''
local if_id='' speed='' duplex='' mac_id='' oper_state='' chip_id=''
local usb_data='' usb_vendor='' usb_product='' product_path='' driver_test=''
for (( i=0; i < ${#A_NETWORK_DATA[@]}; i++ ))
@ -5830,7 +5830,7 @@ get_network_advanced_data()
mac_id=''
oper_state=''
usb_data=''
vendor_product=''
chip_id=''
if [[ -z $( grep '^usb-' <<< ${a_network_adv_working[4]} ) ]];then
# note although this may exist technically don't use it, it's a virtual path
# and causes weird cat errors when there's a missing file as well as a virtual path
@ -5929,9 +5929,9 @@ get_network_advanced_data()
fi
if [[ -n ${a_network_adv_working[10]} ]];then
vendor_product=${a_network_adv_working[10]}
chip_id=${a_network_adv_working[10]}
fi
A_NETWORK_DATA[i]=${a_network_adv_working[0]}","${a_network_adv_working[1]}","${a_network_adv_working[2]}","${a_network_adv_working[3]}","${a_network_adv_working[4]}","$if_id","$oper_state","$speed","$duplex","$mac_id","$vendor_product
A_NETWORK_DATA[i]=${a_network_adv_working[0]}","${a_network_adv_working[1]}","${a_network_adv_working[2]}","${a_network_adv_working[3]}","${a_network_adv_working[4]}","$if_id","$oper_state","$speed","$duplex","$mac_id","$chip_id
IFS="$ORIGINAL_IFS"
done
@ -6974,7 +6974,7 @@ get_pciconf_card_data()
;;
display)
array_string="$device_string,${a_temp[4]},${a_temp[5]}"
A_GFX_CARD_DATA[j]=$array_string
A_GRAPHICS_CARD_DATA[j]=$array_string
;;
network)
if [[ -n $ip_tool_command && -n ${a_temp[3]} ]];then
@ -8655,7 +8655,7 @@ print_it_out()
print_cpu_data
fi
if [[ $B_SHOW_GRAPHICS == 'true' ]];then
print_gfx_data
print_graphics_data
fi
if [[ $B_SHOW_AUDIO == 'true' ]];then
print_audio_data
@ -8795,7 +8795,7 @@ print_audio_data()
{
eval $LOGFS
local i='' card_id='' audio_data='' a_audio_data='' port_data='' pci_bus_id='' card_string=''
local a_audio_working='' audio_driver='' alsa_data='' port_plural='' module_version=''
local a_audio_working='' audio_driver='' alsa_data='' port_plural='' module_version='' chip_id=''
local bus_usb_text='' bus_usb_id='' line_starter='Audio:' alsa='' alsa_version='' print_data=''
local driver=''
# set A_AUDIO_DATA and get alsa data
@ -8843,7 +8843,8 @@ print_audio_data()
bus_usb_text=''
bus_usb_id=''
print_data=''
vendor_product=''
card_id=''
chip_id=''
if [[ ${#A_AUDIO_DATA[@]} -gt 1 ]];then
card_id="-$(( $i + 1 ))"
@ -8876,26 +8877,26 @@ print_audio_data()
bus_usb_text='bus-ID'
if [[ $B_EXTRA_EXTRA_DATA == 'true' ]];then
if [[ $BSD_TYPE != 'bsd' ]];then
vendor_product=$( get_lspci_vendor_product "${a_audio_working[4]}" )
chip_id=$( get_lspci_chip_id "${a_audio_working[4]}" )
else
vendor_product=${a_audio_working[6]}
chip_id=${a_audio_working[6]}
fi
fi
else
bus_usb_text='usb-ID'
if [[ $B_EXTRA_EXTRA_DATA == 'true' ]];then
vendor_product=${a_audio_working[5]}
chip_id=${a_audio_working[5]}
fi
fi
bus_usb_id=${a_audio_working[4]}
pci_bus_id="${C1}$bus_usb_text$SEP3${C2} $bus_usb_id "
if [[ -n $vendor_product ]];then
vendor_product="${C1}chip-ID$SEP3${C2} $vendor_product "
if [[ -n $chip_id ]];then
chip_id="${C1}chip-ID$SEP3${C2} $chip_id "
fi
fi
if [[ -n ${a_audio_working[0]} ]];then
card_string="${C1}Card$card_id:${C2} ${a_audio_working[0]} "
audio_data="$audio_driver$port_data$pci_bus_id$vendor_product"
audio_data="$audio_driver$port_data$pci_bus_id$chip_id"
fi
# only print alsa on last line if short enough, otherwise print on its own line
if [[ $i -eq 0 ]];then
@ -9115,22 +9116,22 @@ print_cpu_flags_full()
eval $LOGFE
}
print_gfx_data()
print_graphics_data()
{
eval $LOGFS
local gfx_data='' i='' card_id='' root_alert='' root_x_string='' a_gfx_working=''
local b_is_mesa='false' display_full_string='' gfx_bus_id='' gfx_card_data=''
local res_tty='Resolution' xorg_data='' x_vendor_string='' vendor_product=''
local spacer='' x_driver='' x_driver_string='' x_driver_plural='' direct_render_string=''
local graphics_data='' card_id='' i='' root_alert='' root_x_string='' a_graphics_working=''
local b_is_mesa='false' display_full_string='' card_bus_id='' card_data=''
local res_tty='Resolution' xorg_data='' display_vendor_string='' chip_id=''
local spacer='' driver='' driver_string='' driver_plural='' direct_render_string=''
local separator_loaded='' separator_unloaded='' separator_failed=''
local loaded='' unloaded='' failed=''
local loaded='' unloaded='' failed='' display_server_string=''
local line_starter='Graphics:'
local screen_resolution="$( get_graphics_res_data )"
# set A_X_DATA
get_graphics_x_data
local x_vendor=${A_X_DATA[0]}
local x_version=${A_X_DATA[1]}
# set A_DISPLAY_SERVER_DATA
get_graphics_display_server_data
local display_vendor=${A_DISPLAY_SERVER_DATA[0]}
local display_version=${A_DISPLAY_SERVER_DATA[1]}
# set A_GLX_DATA
get_graphics_glx_data
local glx_renderer="${A_GLX_DATA[0]}"
@ -9139,7 +9140,7 @@ print_gfx_data()
# note: using grep -ioE '(No|Yes)' <<< ${A_GLX_DATA[2]} did not work in Arch, no idea why
local glx_direct_render=$( gawk '{print $1}' <<< "${A_GLX_DATA[2]}" )
# set A_GFX_CARD_DATA
# set A_GRAPHICS_CARD_DATA
if [[ $BSD_TYPE == 'bsd' ]];then
if [[ $B_PCICONF_SET == 'false' ]];then
get_pciconf_data
@ -9152,57 +9153,58 @@ print_gfx_data()
get_graphics_driver
if [[ ${#A_GRAPHIC_DRIVERS[@]} -eq 0 ]];then
x_driver=' N/A'
driver=' N/A'
else
for (( i=0; i < ${#A_GRAPHIC_DRIVERS[@]}; i++ ))
do
IFS=","
a_gfx_working=( ${A_GRAPHIC_DRIVERS[i]} )
a_graphics_working=( ${A_GRAPHIC_DRIVERS[i]} )
IFS="$ORIGINAL_IFS"
case ${a_gfx_working[1]} in
case ${a_graphics_working[1]} in
loaded)
loaded="$loaded$separator_loaded${a_gfx_working[0]}"
loaded="$loaded$separator_loaded${a_graphics_working[0]}"
separator_loaded=','
;;
unloaded)
unloaded="$unloaded$separator_unloaded${a_gfx_working[0]}"
unloaded="$unloaded$separator_unloaded${a_graphics_working[0]}"
separator_unloaded=','
;;
failed)
failed="$failed$separator_failed${a_gfx_working[0]}"
failed="$failed$separator_failed${a_graphics_working[0]}"
separator_failed=','
;;
esac
done
fi
if [[ -n $loaded ]];then
x_driver="${x_driver} $loaded"
driver="${driver} $loaded"
fi
if [[ -n $unloaded ]];then
x_driver="${x_driver} (unloaded: $unloaded)"
driver="${driver} (unloaded: $unloaded)"
fi
if [[ -n $failed ]];then
x_driver="${x_driver} ${RED}FAILED:${C2} $failed"
driver="${driver} ${RED}FAILED:${C2} $failed"
fi
# sometimes for some reason there is no driver found but the array is started
if [[ -z $x_driver ]];then
x_driver=' N/A'
if [[ -z $driver ]];then
driver=' N/A'
fi
if [[ ${#A_GRAPHIC_DRIVERS[@]} -gt 1 ]];then
x_driver_plural='s'
driver_plural='s'
fi
x_driver_string="${C1}driver$x_driver_plural$SEP3${C2}$x_driver "
driver_string="${C1}driver$driver_plural$SEP3${C2}$driver "
# some basic error handling:
if [[ -z $screen_resolution ]];then
screen_resolution='N/A'
fi
if [[ -z $x_vendor || -z $x_version ]];then
x_vendor_string="${C1}X-Vendor:${C2} N/A "
if [[ -z $display_vendor || -z $display_version ]];then
display_vendor_string="N/A"
else
x_vendor_string="${C1}$x_vendor$SEP3${C2} $x_version "
display_vendor_string="$display_vendor $display_version"
fi
display_server_string="${C1}Display Server$SEP3${C2}$display_vendor_string "
if [[ $B_ROOT == 'true' ]];then
root_x_string='for root '
@ -9210,7 +9212,7 @@ print_gfx_data()
res_tty='tty size'
fi
fi
if [[ $B_RUNNING_IN_X != 'true' ]];then
if [[ $B_RUNNING_IN_DISPLAY != 'true' ]];then
root_x_string="${root_x_string}out of X"
res_tty='tty size'
fi
@ -9219,68 +9221,68 @@ print_gfx_data()
root_x_string="${C1}Advanced Data:${C2} N/A $root_x_string"
fi
display_full_string="$x_vendor_string$x_driver_string${C1}${res_tty}$SEP3${C2} ${screen_resolution} $root_x_string"
display_full_string="$display_server_string$driver_string${C1}${res_tty}$SEP3${C2} ${screen_resolution} $root_x_string"
if [[ ${#A_GFX_CARD_DATA[@]} -gt 0 ]];then
for (( i=0; i < ${#A_GFX_CARD_DATA[@]}; i++ ))
if [[ ${#A_GRAPHICS_CARD_DATA[@]} -gt 0 ]];then
for (( i=0; i < ${#A_GRAPHICS_CARD_DATA[@]}; i++ ))
do
IFS=","
a_gfx_working=( ${A_GFX_CARD_DATA[i]} )
a_graphics_working=( ${A_GRAPHICS_CARD_DATA[i]} )
IFS="$ORIGINAL_IFS"
gfx_bus_id=''
gfx_card_data=${a_gfx_working[0]}
card_bus_id=''
card_data=${a_graphics_working[0]}
if [[ $B_EXTRA_DATA == 'true' ]];then
if [[ -n ${a_gfx_working[1]} ]];then
gfx_bus_id=" ${C1}bus-ID$SEP3${C2} ${a_gfx_working[1]}"
if [[ -n ${a_graphics_working[1]} ]];then
card_bus_id=" ${C1}bus-ID$SEP3${C2} ${a_graphics_working[1]}"
if [[ $B_EXTRA_EXTRA_DATA == 'true' ]];then
if [[ $BSD_TYPE != 'bsd' ]];then
vendor_product=$( get_lspci_vendor_product "${a_gfx_working[1]}" )
chip_id=$( get_lspci_chip_id "${a_graphics_working[1]}" )
else
vendor_product=${a_gfx_working[2]}
chip_id=${a_graphics_working[2]}
fi
fi
else
gfx_bus_id=" ${C1}bus-ID$SEP3${C2} N/A"
card_bus_id=" ${C1}bus-ID$SEP3${C2} N/A"
fi
fi
if [[ -n $vendor_product ]];then
vendor_product=" ${C1}chip-ID$SEP3${C2} $vendor_product"
if [[ -n $chip_id ]];then
chip_id=" ${C1}chip-ID$SEP3${C2} $chip_id"
fi
if [[ ${#A_GFX_CARD_DATA[@]} -gt 1 ]];then
if [[ ${#A_GRAPHICS_CARD_DATA[@]} -gt 1 ]];then
card_id="Card-$(($i+1)):"
else
card_id='Card:'
fi
gfx_data="${C1}$card_id${C2} $gfx_card_data$gfx_bus_id$vendor_product "
if [[ ${#A_GFX_CARD_DATA[@]} -gt 1 ]];then
gfx_data=$( create_print_line "$line_starter" "${gfx_data}" )
print_screen_output "$gfx_data"
graphics_data="${C1}$card_id${C2} $card_data$card_bus_id$chip_id "
if [[ ${#A_GRAPHICS_CARD_DATA[@]} -gt 1 ]];then
graphics_data=$( create_print_line "$line_starter" "${graphics_data}" )
print_screen_output "$graphics_data"
line_starter=' '
gfx_data=''
graphics_data=''
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! "
graphics_data="${C1}Card:${C2} Failed to Detect Video Card! "
fi
if [[ -n $gfx_data && $( calculate_line_length "${gfx_data}$display_full_string" ) -lt $LINE_MAX ]];then
gfx_data=$( create_print_line "$line_starter" "${gfx_data}$display_full_string" )
if [[ -n $graphics_data && $( calculate_line_length "${graphics_data}$display_full_string" ) -lt $LINE_MAX ]];then
graphics_data=$( create_print_line "$line_starter" "${graphics_data}$display_full_string" )
else
if [[ -n $gfx_data ]];then
gfx_data=$( create_print_line "$line_starter" "$gfx_data" )
print_screen_output "$gfx_data"
if [[ -n $graphics_data ]];then
graphics_data=$( create_print_line "$line_starter" "$graphics_data" )
print_screen_output "$graphics_data"
line_starter=' '
fi
gfx_data=$( create_print_line "$line_starter" "$display_full_string" )
graphics_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
print_screen_output "$graphics_data"
# if [[ -z $glx_renderer || -z $glx_version ]];then
# b_is_mesa='true'
# fi
## note: if glx render or version have no content, then mesa is true
# if [[ $B_SHOW_X_DATA == 'true' ]] && [[ $b_is_mesa != 'true' ]];then
if [[ $B_SHOW_X_DATA == 'true' && $B_ROOT != 'true' ]];then
## note: if glx render or display_version have no content, then mesa is true
# if [[ $B_SHOW_DISPLAY_DATA == 'true' ]] && [[ $b_is_mesa != 'true' ]];then
if [[ $B_SHOW_DISPLAY_DATA == 'true' && $B_ROOT != 'true' ]];then
if [[ -z $glx_renderer ]];then
glx_renderer='N/A'
fi
@ -9293,10 +9295,10 @@ print_gfx_data()
if [[ $B_HANDLE_CORRUPT_DATA == 'true' || $B_EXTRA_DATA == 'true' ]];then
direct_render_string=" ${C1}Direct Rendering$SEP3${C2} ${glx_direct_render}${CN}"
fi
gfx_data="${C1}GLX Renderer$SEP3${C2} ${glx_renderer} ${C1}GLX Version$SEP3${C2} ${glx_version}${CN}$direct_render_string"
gfx_data=$( create_print_line " " "$gfx_data" )
graphics_data="${C1}GLX Renderer$SEP3${C2} ${glx_renderer} ${C1}GLX Version$SEP3${C2} ${glx_version}${CN}$direct_render_string"
graphics_data=$( create_print_line " " "$graphics_data" )
print_screen_output "$gfx_data"
print_screen_output "$graphics_data"
fi
eval $LOGFE
}
@ -9460,7 +9462,7 @@ print_info_data()
if [[ -n $shell_data ]];then
# note, if you start this in tty, it will give 'login' as the parent, which we don't want.
if [[ $B_EXTRA_EXTRA_DATA == 'true' ]];then
if [[ $B_RUNNING_IN_X != 'true' ]];then
if [[ $B_RUNNING_IN_DISPLAY != 'true' ]];then
shell_parent=$( get_tty_number )
shell_parent="tty $shell_parent"
else
@ -9481,7 +9483,7 @@ print_info_data()
info_data="${C1}Processes$SEP3${C2} ${processes} ${C1}Uptime$SEP3${C2} ${up_time} ${C1}Memory$SEP3${C2} ${memory}${CN} "
# this only triggers if no X data is present or if extra data switch is on
if [[ $B_SHOW_X_DATA != 'true' || $B_EXTRA_DATA == 'true' ]];then
if [[ $B_SHOW_DISPLAY_DATA != 'true' || $B_EXTRA_DATA == 'true' ]];then
if [[ $B_EXTRA_EXTRA_DATA == 'true' ]];then
runlvl_default=$( get_runlevel_default )
if [[ -z $runlvl_default ]];then
@ -9742,7 +9744,7 @@ print_networking_data()
eval $LOGFS
local i='' card_id='' network_data='' a_network_working='' port_data='' driver_data=''
local card_string='' port_plural='' module_version='' pci_bus_id='' bus_usb_text=''
local bus_usb_id='' line_starter='Network:' card_string='' card_data='' vendor_product=''
local bus_usb_id='' line_starter='Network:' card_string='' card_data='' chip_id=''
local driver=''
# set A_NETWORK_DATA
if [[ $BSD_TYPE == 'bsd' ]];then
@ -9772,10 +9774,11 @@ print_networking_data()
pci_bus_id=''
port_data=''
port_plural=''
vendor_product=''
card_id=''
chip_id=''
if [[ ${#A_NETWORK_DATA[@]} -gt 1 ]];then
card_id="-$(( $i + 1 ))"
chip_id="-$(( $i + 1 ))"
fi
if [[ -n ${a_network_working[1]} && $B_EXTRA_DATA == 'true' && $BSD_TYPE != 'bsd' ]];then
module_version=$( print_module_version "${a_network_working[1]}" )
@ -9801,25 +9804,25 @@ print_networking_data()
bus_usb_id=${a_network_working[4]}
if [[ $B_EXTRA_EXTRA_DATA == 'true' ]];then
if [[ $BSD_TYPE != 'bsd' ]];then
vendor_product=$( get_lspci_vendor_product "${a_network_working[4]}" )
chip_id=$( get_lspci_chip_id "${a_network_working[4]}" )
else
vendor_product=${a_network_working[10]}
chip_id=${a_network_working[10]}
fi
fi
else
bus_usb_text='usb-ID'
bus_usb_id=$( cut -d '-' -f '2-4' <<< ${a_network_working[4]} )
if [[ $B_EXTRA_EXTRA_DATA == 'true' ]];then
vendor_product=${a_network_working[10]}
chip_id=${a_network_working[10]}
fi
fi
pci_bus_id="${C1}$bus_usb_text$SEP3${C2} $bus_usb_id"
if [[ -n $vendor_product ]];then
vendor_product=" ${C1}chip-ID$SEP3${C2} $vendor_product"
if [[ -n $chip_id ]];then
chip_id=" ${C1}chip-ID$SEP3${C2} $chip_id"
fi
fi
card_string="${C1}Card$card_id:${C2} ${a_network_working[0]} "
card_data="$driver_data$port_data$pci_bus_id$vendor_product"
card_data="$driver_data$port_data$pci_bus_id$chip_id"
if [[ $( calculate_line_length "$card_string$card_data" ) -gt $LINE_MAX ]];then
network_data=$( create_print_line "$line_starter" "$card_string" )
line_starter=' '
@ -10845,7 +10848,7 @@ print_system_data()
local tty_session=''
# I think these will work, maybe, if logged in as root and in X
if [[ $B_RUNNING_IN_X == 'true' ]];then
if [[ $B_RUNNING_IN_DISPLAY == 'true' ]];then
desktop_environment=$( get_desktop_environment )
if [[ -z $desktop_environment ]];then
desktop_environment='N/A'
@ -10873,7 +10876,7 @@ print_system_data()
if [[ $B_EXTRA_EXTRA_DATA == 'true' ]];then
dm_data=$( get_display_manager )
# here we only want the dm info to show N/A if in X
if [[ -z $dm_data && $B_RUNNING_IN_X == 'true' ]];then
if [[ -z $dm_data && $B_RUNNING_IN_DISPLAY == 'true' ]];then
dm_data='N/A'
fi
# only print out of X if dm_data has info, then it's actually useful, but

7
inxi.1
View file

@ -1,4 +1,4 @@
.TH INXI 1 "2014\-01\-13" inxi "inxi manual"
.TH INXI 1 "2014\-03\-03" inxi "inxi manual"
.SH NAME
inxi \- Command line system information script for console and IRC
@ -104,7 +104,10 @@ Does not show extra verbose options like \fB\-x \-d \-f \-u \-l \-o \-p \-t \-r\
that argument.
.TP
.B \-G
Show Graphic card information (card, x type, resolution, glx renderer, version).
Show Graphic card information. Card(s), Display Server (vendor and version number), for example:
\fBDisplay Server: Xorg 1.15.1 \fR
,screen resolution(s), glx renderer, version). At some point Wayland and other display servers
may be added once enough data has been collected.
.TP
.B \-h
This help menu.

View file

@ -1,3 +1,18 @@
=====================================================================================
Version: 1.9.19
Patch Version: 00
Script Date: 2014-03-03
-----------------------------------
Changes:
-----------------------------------
New version; updated man page. Changed slightly the output for x server, in preparation
for adding alternate display servers, like Wayland or Mir. Rather than release all the
stuff at once I'm going to do it bit by bit. Currently I have not found a wayland iso
test cd that boots in virtual box so I will have to wait to really add support there.
-----------------------------------
-- Harald Hope - Mon, 03 Mar 2014 15:27:05 -0800
=====================================================================================
Version: 1.9.18
Patch Version: 00