LINUX.ORG.RU

i3-bar выдает ошибку при ручной подаче данных

 ,


0

1

в общем есть i3wm, в i3-bar вписана команда

status_command ~/.config/i3/i3bar-main.sh

содержимое i3bar-main.sh

 
  1 #!/bin/sh
  2 
  3 # Send the header so that i3bar knows we want to use JSON:
  4 echo '{"version":1}'
  5 
  6 
  7 # Begin the endless array.
  8 echo '['
  9 
 10 #echo '[],'
 11 echo '[' 
 12 echo '{ "full_text": "fdsafdsafdsafdsa"  , "color" : "\#fff555" }'
 13 echo '],'
 14 # We send an empty first array of blocks to make the loop simpler:
 15 
 16 echo '],'
 17 # Now send blocks with information forever:
 18 #exec conky -c $HOME/.config/i3/conkyrc-main
закоментировал поток с коньков, решил сам подать строку в status_command.

но почему то i3-bar выдает ошибку.

★★

Последнее исправление: cetjs2 (всего исправлений: 2)

Ну так status_command ожидает от твоего скрипта бесконечный поток сознания, а он вместо этого что-то выводит и завершается.

Deleted
()
Ответ на: комментарий от Deleted

хмм... но например коньки тоже передают разовые сообщения, только периодически. там же выход такой же получается.

--> conky -c $HOME/.config/i3/conkyrc-main
conky: Syntax error (/home/safff/.config/i3/conkyrc-main:1: syntax error near 'no') while reading config file. 
conky: Assuming it's in old syntax and attempting conversion.
[
{ "full_text" : "Arch-linux-4.9.0-pf5" , "color" : "#fff555" },
{ "full_text" : " 57,15  60,65  71,35 " , "color" : "#ffffff" },
{ "full_text" : "GPU 56°C" , "color" : "#00AB11" },
{ "full_text" : "RAM 35%" , "color" : "#ff8000"},
{"full_text" : "CPU 5%" , "color" : "#00e0ff"},
{ "full_text" : " 48°C" , "color" : "#00e0ff" },
{"full_text" : " ↓   0B ↑   0B" , "color" : "#0080ff"},
{ "full_text" : "♪:100" },
{ "full_text" : " Пятница 17.02.2017  11:25" , "color" : "#FFFFFF"},
{ "full_text" : "Eng" , "color" : "#FFFFFF"}
],

safocl ★★
() автор топика
Ответ на: комментарий от safocl

разовые сообщения

Это на самом деле одно длинное сообщение с периодическими паузами. Тебе надо в цикле писать в stdout. Добавь в цикл sleep для пауз.

Лично у меня собственный скрипт на питоне работает как часы уже не первый год.

anonymous
()
Ответ на: комментарий от safocl

коньки тоже передают разовые сообщения

Нет, они постоянно дописывают в конец новые строки, не завершаясь при этом.

Добавь в конце своего скрипта sleep 10 и посмотри что будет(и \ перед решеткой убери).

Deleted
()
Ответ на: комментарий от Deleted

так и смсл вопроса то есть в том чо бы не печатать постоянно используя ресурсы проца какую то строчку

safocl ★★
() автор топика
Ответ на: комментарий от safocl

Ты хочешь один раз напечатать строчку? Тогда тебе как-то надо остановить свой скрипт. Если он на нормальном языке, то сделай системный вызов pause, если на баше, то sleep infinity или kill -STOP $$.

anonymous
()
Ответ на: комментарий от anonymous

так енто ж весь скрипт замрет... а мне надо другую инфу то выводить периодически... в общем я понял чо низя наверна вызвать однажды строковый вывод. а жаль... хател вывести некоторые значения однажды а не переодически, дабы сберечь процессорное время)))

safocl ★★
() автор топика
Ответ на: комментарий от safocl

Ты хочешь часть информации вывести один раз, а другую часть периодически обновлять? Да, так не получится, по крайней мере без правки исходников. Вся информация выводится одновременно.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.