Dúvida - erro no meu script personalizado do i3status (any_position_wrapper) [RESOLVIDO]

1. Dúvida - erro no meu script personalizado do i3status (any_position_wrapper) [RESOLVIDO]

Tadeu
T.D.Reis

(usa Mageia)

Enviado em 19/11/2023 - 19:27h

Fala galera, tudo beleza? To tentando adicionar duas novas informações ao meu i3status modificando o seguinte script: https://github.com/i3/i3status/blob/main/contrib/any_position_wrapper.sh

Meu script modificado está assim:

#!/usr/bin/env bash

function update_holder {

local instance="$1"
local replacement="$2"
echo "$json_array" | jq --argjson arg_j "$replacement" "(.[] | (select(.instance==\"$instance\"))) |= \$arg_j"
}

function remove_holder {

local instance="$1"
echo "$json_array" | jq "del(.[] | (select(.instance==\"$instance\")))"
}

function cmus {

artist=$(printf $(cmus-remote -C status | grep "tag artist" | cut -c 12-))

if [[ $artist = *[!\ ]* ]]; then
song=$(printf $(cmus-remote -C status | grep title | cut -c 11-))
printf "$artist ﱘ $song"
else
json_array=$(remove_holder holder__i3_layout)
fi
}

function split {

local layout=$(i3-msg -t get_tree | jq --raw-output 'recurse(.nodes[]; .nodes !=null) | select(.nodes[].focused).layout')
if [ "$layout" == splith ] ; then
local json='{ "full_text": "[horizontal]", "color": "#92BFEB" }'
json_array=$(update_holder holder__split "$json")
elif [ "$layout" == splitv ] ; then
local json='{ "full_text": "[vertical]", "color": "#92BFEB" }'
json_array=$(update_holder holder__split "$json")
elif [ "$layout" == tabbed ] ; then
local json='{ "full_text": "[tabbed]", "color": "#92BFEB" }'
json_array=$(update_holder holder__split "$json")
elif [ "$layout" == stacked ] ; then
local json='{ "full_text": "[stacked]", "color": "#92BFEB" }'
json_array=$(update_holder holder__split "$json")
else
json_array=$(remove_holder holder__split)
fi
}
i3status | (read line; echo "$line"; read line ; echo "$line" ; read line ; echo "$line" ; while true
do
read line
json_array="$(echo $line | sed -e 's/^,//')"
split
cmus
echo ",$json_array"
done)


As informações do cmus não estão sendo exibidas. Confesso, não faço ideia do porque. Provavelmente o erro é por causa da minha incapacidade em JSON, não sei praticamente nada kkkkk Se alguém aí souber e puder dar uma força, valeu mesmo!

Obs: sei que o i3blocks ou mesmo a polybar podem fazer isso também e de forma mais fácil. Porém, o i3status me atende muito bem e não queria ter que instalar outro painel. E, um das funções que quero, que no script chama "split" está funcionando de boa, só o cmus que não.
Obs²: código no pastebin: https://pastebin.com/EBxG0mm1


  


2. Re: Dúvida - erro no meu script personalizado do i3status (any_position_wrapper) [RESOLVIDO]

Tadeu
T.D.Reis

(usa Mageia)

Enviado em 20/11/2023 - 18:40h

O gênio aqui esqueceu de ler e entender como funciona essa opção de adicionar informações ao i3status com esse tipo de script. Não tem como exibir o status do cmus dessa forma, não. Tive que usar o i3blocks mesmo. Consegui adicionar a opção de exibir o layout atual e o estado do num/capslock, mas, essas informações que precisam "printar" um resultado (dinâmico) na i3bar, não tem jeito não.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts