#!/bin/bash ##/local/bin/quick-system-info-mx ##wrapper script for inxi to do quick "inxi -F" and copy report to clipboard ##part of mx-goodies package ## changes to optimze inxi run #requires xsel package ##locale stuff TEXTDOMAINDIR=/usr/share/locale/ export TEXTDOMAIN="mx-goodies" NOTFND=$(gettext 'Required inxi app not found') COPIED=$(gettext 'Report copied to system clipboard') FORMATTED=$(gettext 'Report is already formatted for forum.') PASTE=$(gettext 'Paste directly into forum post.') ANYKEY=$(gettext 'Press any key to close') DONOTSHOW=$(gettext 'Do not show this message in future') BOLD="" BOLDclosed="" #setup main(){ #check for existing of inxi command -v inxi >/dev/null || quit_error "$NOTFND" run_report quit } run_report(){ local snapshot_created="" if [ -e "/etc/snapshot_created" ]; then snapshot_created="Snapshot created on: "$(cat /etc/snapshot_created) fi local inxi_color="$(( echo VIRT_TERM_COLOR_SCHEME=10; grep -sh '^VIRT_TERM_COLOR_SCHEME=' /etc/inxi.conf ~/.config/inxi.conf) | \ sed 's/^VIRT_TERM_COLOR_SCHEME=//' | tail -1)" local ansi='\x1b\[[0-9;]+[mK]' local host_filter="^(.+Host:(${ansi}|[[:space:]])+)([[:alnum:].-]+)" local uuid_filter="[[:xdigit:]]{8}-([[:xdigit:]]{4}-){3}[[:xdigit:]]{12}" local video_tweaks=/live/config/video-tweaks ( [ -n "$snapshot_created" ] && echo $snapshot_created inxi -Fxxxrza -c$inxi_color | \ sed -r -e "/Host:/{s/${host_filter}(.*)/\1\4/}" \ -e "s/${uuid_filter}//g" [ -r $video_tweaks ] && echo 'Video Tweaks:' && cat $video_tweaks 2>/dev/null ) | \ tee >( ( echo "[code]"; sed -r 's/\x1b\[([0-9]{1,2}(;[0-9]{1,2})?)?m//g'; echo "[/code]" ) | \ xclip -selection clipboard 2>/dev/null ) xclip -o -selection clipboard | xclip -i -selection primary echo echo "$COPIED" echo "$FORMATTED" echo "$PASTE" } #quit(){ #echo #read -n 1 -s -r -p "$ANYKEY" #exit 0 #} quit(){ if [ -x /usr/bin/yad ]; then ##begin message box if [ ! -e "$HOME/.config/MX-Linux/qsi.chk" ]; then selections=$(yad --form \ --title="Quick System Info" \ --class="Quick System Info" \ --center \ --window-icon=mx-qsi \ --fixed --button='OK!gtk-ok:0' \ --width=350 \ --height=100 \ --align=center \ --selectable-labels --focus-field=0 \ --field="\0":LBL ""\ --field="$BOLD$COPIED$BOLDclosed":LBL ""\ --field=" ":LBL ""\ --field="$BOLD$FORMATTED$BOLDclosed":LBL ""\ --field=" ":LBL ""\ --field="$BOLD$PASTE$BOLDclosed":LBL ""\ --field=" ":LBL ""\ --field="$DONOTSHOW":CHK "false" 2>/dev/null) RET=$? selections=${selections##"|||||||"} selections=${selections%%"|"} #echo $selections if [ $RET = 0 ] && [ "$selections" = "TRUE" ]; then if [ ! -d "$HOME/.config/MX-Linux/" ]; then mkdir -p "$HOME/.config/MX-Linux/" fi touch "$HOME/.config/MX-Linux/qsi.chk" fi fi ##end message box fi echo read -n 1 -s -r -p "$ANYKEY" exit 0 } quit_error(){ local msg msg=$1 echo "$msg" exit 1 } main "$@"