Я нашел решение. Я просто недостаточно хорошо понял его синтаксис. Мне просто нужно было отредактировать файл ~/.i3/i3status.sh
. Теперь:
#!/bin/sh
/usr/bin/i3status -c $HOME/.i3status.conf | while :
do
read line
RAM=`free -kh | grep Mem | awk '{print $3}'`
TOTR=$(cat /proc/meminfo | grep MemT | sed 's/.*\://g' | sed 's/ *//g' | sed 's/kB//g')
TOT=$(octave --eval "$TOTR/1024^2" | sed 's/ans = *//g' | sed 's/$/G/g' )
# Put uptime
uptime=`uptime | awk '{print $3 " " $4}' | sed 's/,.*//'`
hour=$(echo $uptime | sed 's/\:.*//g')
min=$(echo $uptime | sed 's/.*\://g')
UP="$hour h $min m"
# Compile C++ CPU prog and run it
g++ -o cpu.o $HOME/.i3/cpu.cpp
CPU=$(./cpu.o)
printf "%s\n" "Up: $UP | CPU: $CPU% | RAM: $RAM/$TOT | $line"
done
Наиболее релевантные строки для uptime находятся между # Put uptime
и # Compile C++...
и окончательным printf "%s\n" ...
команда. Мои полные файлы конфигурации i3 можно найти в этом репозитории.
Мне удалось решить проблему после того, как я вручную установил более старую версию (v1.14.0
) libiscsi, где qemu смог найти libiscsi.so.4
файл.
Сначала я удалил v1.17.0-2
, установленный с помощью pacman.
sudo pacman -Rddn libiscsi
без деинсталляции зависимости qemu-block-iscsi.
Я клонировал исходный код с github sahlberg/libiscsi и после сборки установил библиотеку с помощью libtool. Я понимаю, что это не лучшее решение, потому что при следующем обновлении qemu мне придется удалить ручную установку и снова использовать пакет pacman
.
На данный момент я вижу, что на странице arch linux qemu-page пакет :
Flagged out-of-date on 2016-05-10 Version 2.6.0-1 in testing
код выполнен от имени root:
# git clone folder - libiscsi/
# Making install in lib
# directory 'libiscsi/lib'
mkdir -p '/usr/lib'
/bin/sh ../libtool --mode=install /usr/bin/install -c libiscsi.la '/usr/lib'
libtool --finish /usr/lib
----------------------------------------------------------------------
# Libraries have been installed in: /usr/lib
----------------------------------------------------------------------
# Making install in utils
# directory 'libiscsi/utils'
mkdir -p '/usr/bin'
/bin/sh ../libtool --mode=install /usr/bin/install -c iscsi-inq iscsi-ls iscsi-perf iscsi-readcapacity16 iscsi-swp '/usr/bin'
----------------------------------------------------------------------
# directory 'libiscsi/examples'
mkdir -p '/usr/bin'
install -c ld_iscsi.so '/usr/bin'
----------------------------------------------------------------------
# directory 'libiscsi/
mkdir -p '/usr/include/iscsi'
install -c -m 644 include/iscsi.h include/scsi-lowlevel.h '/usr/include/iscsi'
mkdir -p '/usr/lib/pkgconfig'
install -c -m 644 libiscsi.pc '/usr/lib/pkgconfig'
Я выполнил команды вручную, потому что по умолчанию make install
из libiscsi устанавливал либы в /usr/local/bin
и /usr/local/lib
.
Любые комментарии и предложения приветствуются!