Отображение температуры и загрузки процессора поверх всех окон [Решено]

rutgerg
Как пример с conky
В принципе годно, только к коням еще picom прилип :(

Спасибо огромное ребят за помощ и отзывчивость!

--[[
Conky, a system monitor, based on torsmo

Any original torsmo code is licensed under the BSD license

All code written since the fork of torsmo is licensed under the GPL

Please see COPYING for details

Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
Copyright (c) 2005-2019 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS)
All rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
]]
conky.config = {
    use_xft = true,
    xftfont = 'Terminus:size = 7',
    xftalpha = 0.1,
    total_run_times = 0,
    update_interval = 1,

    own_window = true,
    own_window_type = 'desktop',
    own_window_transparent = true,
    own_window_hints = 'above','sticky','skip_taskbar','skip_pager',
    own_window_colour = 000000,
    own_window_argb_visual = true,
    own_window_argb_value = 0,
    draw_shades =false,
    draw_outline = false,
    draw_borders = false,
    draw_graph_borders=false,
    default_color = 'white',
    default_shade_color = 'red',
    default_outline_color = 'green',
    alignment = 'top_right',
    no_buffers = true,
    uppercase = false,
    cpu_avg_samples = 1,
    net_avg_samples = 1,
    override_utf8_locale = true,
    use_spacer = true,
    background = true,
    temperature_unit = 'celsius',

    double_buffer = true,
    no_buffers = true,
    text_buffer_size = 2048,
    override_utf8_locale = true,
    use_xft = true,
    xftfont = 'Terminus:size = 7',
    xftalpha = 0.5,
    uppercase = false,

    gap_x = 20,
    gap_y = 50,
    minimum_size = 3400,
    maximum_width = 650,

    border_inner_margin = 0,
    border_outer_margin = 0,
    alignment = 'top_right',

    draw_shades = false,
    draw_outline = false,
    draw_borders = false,
    draw_graph_borders = false,

    default_color = 'FFFFFF',
    color1 = 'DDDDDD',
    color2 = 'FFFFFF',
    color3 = '888888',
    color4 = 'EF5A29',
    color5 = '77B753',
}

conky.text = [[
${#FFFF00}${cpu cpu0}%
${font Terminus:style=Medium:size=9}CPU Temp: ${alignr}${execi 300 sensors | grep Core\ 0 | cut -c17-18 ;}°С
]]

Почти решено, own_window_hints = 'above' вот только при просмотре видео наполный экран оно перекрывается тоесть не отрисовывается, пропадает
В Cinnamon есть аплет "Monitor ...", он включает индикаторы на панели задач справа. Отключаю сеть и диск, оставляю память и ядра процессора и уменьшаю в размерах, память 40 (цвет красный), ядра по 12 (в реальности полоски по 2-3 пиксела), время обновления увеличиваю до 1,5-2 сек. Всегда вижу сколько памяти занято и на сколько процессоры в покое или молотят. В XFCE тоже есть датчики, памяти и проца, только память тут полоской, а не сектором в круге. Тоже в трее, аккуратно. Конечно в полноэкранном режиме их не видно, но в большинстве этого и не надо.
Забыл название по скринам "Multi-Core System Monitor", я сейчас не в Linux. Тут на скрине есть
мои программы
AZJIO
Multi-Core System Monitor
Спасибо буду иметь в виду, если буду пользоваться этими DE

Воспользовался решением предложеным rutgerg спасибо огромное!
/tmp/i3status.conf
---
general {
output_format = "none"
interval = 1
}

order += "cpu_usage"
order += "cpu_temperature cpu"

cpu_usage {
format = "%usage"
}

cpu_temperature cpu {
path = "/sys/devices/platform/coretemp.0/hwmon/hwmon1/temp2_input"
format = "%degrees°"
}
$ i3status -c /tmp/i3status.conf | osd_cat -c grey -o 7 -d 0 -l 1 -s 1 -A right

Прозрачно, размещается в любом месте экрана, видео не перекрывает, шрифт должен менятся, но лень (растровые шрифты уже не актуальны).

Подобную конструкцию можно сделать используюя dzen2, но что там с поверх всех окон и прозрачностью уже не помню.
---
BPOH
Бары это немного не то.
Это не бар. i3status генерирует данные. Вместо него можно что угодно, хоть свой скрипт. osd_cat отображает строку (в данном случае в верхнем правом углу). Просто не хотелось постить полностью экран...
Aivar
Это не бар. i3status генерирует данные.
Ухты!!! пошел пробовать спасибо огромное, это прям то что нужно!
Работает, просто восхитительно! Aivar ты лучший :)
Без коньков без picom-oв какая красота!
Aivar
Прозрачно, размещается в любом месте экрана, видео не перекрывает, шрифт должен менятся, но лень (растровые шрифты уже не актуальны).
у меня отображается 01% | 35 C
Как сделать этот красивый кружочек градусов?

пошел курить манулы про i3status чтоб добавить туда еще скорость входящего исходящего трафика
Да ладно... :-/
Я, если нужно что-то мониторить, по хоткею поверх всех окон вызываю i3bar/swaybar, на котором есть вся нужная инфа.
С другой стороны, если в osd_cat оставить маленький шрифт, он может и мешать не будет. Ну там цвет, тень, расположение, смещение подобрать может...

BPOH
Как сделать этот красивый кружочек градусов?
Заменить С на °:
Aivar
format = "%degrees°"

BPOH
пошел курить манулы про i3status чтоб добавить туда еще скорость входящего исходящего трафика
Штатными средствами никак, только добавив внешний скрипт. Это не сложно, но нужно ли? У меня трафик по хоткею показывается 20 сек. Предусмотрено и постоянно, но на практике это лишнее...
Aivar
Штатными средствами никак, только добавив внешний скрипт. Это не сложно, но нужно ли? У меня трафик по хоткею показывается 20 сек. Предусмотрено и постоянно, но на практике это лишнее…
Буду признателен если поделишься скриптом, на постоянной основе точно лишнее, а вот иногда по сети что-то сливаешь или забираешь через pcmanfm xD скорость не отображается, i3 тайлинги хоткеи и pcmanfm жуть) аж сам улыбнулся, но потихоньку пытаюсь себя заставлять учиться пользоваться mc и worker

На оф сайте i3 вот такая штука
wireless wlan0 {
format_up = "W: (%quality at %essid, %bitrate) %ip"
format_down = "W: down"
}

показывает и сеть и ip вот только эта штука не шевелится 0 kb/s

Подскажи пожалуйста на всякий случай, как в 2 строки отображать информацию

Так походу это не работает?)

order += "cpu_usage"
order += "cpu_temperature cpu"
order += "net_mon_u"
order += "net_mon_d"

cpu_usage {
format = "[CPU: %usage"
}

cpu_temperature cpu {
format = "%degrees°]"
path = "/sys/devices/platform/coretemp.0/hwmon/hwmon3/temp2_input"
}

net_mon_u {
path = "/sys/class/net/wlp0s21f0u7/statistics/tx_bytes"
}

net_mon_d {
path = "/sys/class/net/wlp0s21f0u7/statistics/rx_bytes"
}

Разобрался как скрипты запускать

./net.sh | osd_cat -c grey -o 43 -d 0 -l 1 -s 1 -A right

#!/bin/sh

# Authors:
# - Moritz Warning <moritzwarning@web.de> (2016)
# - Zhong Jianxin <azuwis@gmail.com> (2014)
#
# See file LICENSE at the project root directory for license information.
#
# i3status.conf should contain:
# general {
#   output_format = i3bar
# }
#
# i3 config looks like this:
# bar {
#   status_command exec /usr/share/doc/i3status/contrib/net-speed.sh
# }
#
# Single interface:
# ifaces="eth0"
#
# Multiple interfaces:
# ifaces="eth0 wlan0"
#

# Auto detect interfaces
ifaces=$(ls /sys/class/net | grep -E '^(eno|enp|ens|enx|eth|wlan|wlp)')

last_time=0
last_rx=0
last_tx=0
rate=""

readable() {
  local bytes=$1
  local kib=$(( bytes >> 10 ))
  if [ $kib -lt 0 ]; then
    echo "? K"
  elif [ $kib -gt 1024 ]; then
    local mib_int=$(( kib >> 10 ))
    local mib_dec=$(( kib % 1024 * 976 / 10000 ))
    if [ "$mib_dec" -lt 10 ]; then
      mib_dec="0${mib_dec}"
    fi
    echo "${mib_int}.${mib_dec} M"
  else
    echo "${kib} K"
  fi
}

update_rate() {
  local time=$(date +%s)
  local rx=0 tx=0 tmp_rx tmp_tx

  for iface in $ifaces; do
    read tmp_rx < "/sys/class/net/${iface}/statistics/rx_bytes"
    read tmp_tx < "/sys/class/net/${iface}/statistics/tx_bytes"
    rx=$(( rx + tmp_rx ))
    tx=$(( tx + tmp_tx ))
  done

  local interval=$(( $time - $last_time ))
  if [ $interval -gt 0 ]; then
    rate="$(readable $(( (rx - last_rx) / interval ))) $(readable $(( (tx - last_tx) / interval )))"
  else
    rate=""
  fi

  last_time=$time
  last_rx=$rx
  last_tx=$tx
}

i3status | (update_rate && while :
do
  read line
  update_rate
  echo [NET:  ${rate}] || exit 1
done)

BPOH
вот только эта штука не шевелится 0 kb/s
В данном случае это бесполезная функция - показывает паспортную скорость интерфейса.

Короче, варианты есть, но тут пара наводящих вопросов:
1) как этот "мониторчик" запускается и "висит" ли он постоянно?
2) как предусматривается включение информации о трафике (с перезапуском или без)?
3) какие еще будут хотелки? ) Раз уж идет расширение функционала с уклоном в сторону внешних скриптов, то закономерен вопрос о целесообразности i3status.
4) какой процессор? Если слабый, сам мониторинг на баше уже будет отъедать некоторое процессорное время.
 
Зарегистрироваться или войдите чтобы оставить сообщение.