Do meu log:
conky: Argumentos ruins: '0,0' e '10,0'
conky: a comparação falhou para a expressão '0,0 <10,0'
Essas comparações são todas semelhantes a esta:
$ {if_match $ {downspeedf enp2s0} <100,0}
A comparação ainda falha se o argumento for escrito com ",". Definir explicitamente o local de conky para en_US.UTF-8 funciona por enquanto.
(Isso não acontecia no 1.9.0.)
Eu tenho o mesmo problema.
Mesmo aqui, você pode dizer por favor como definir um LOCALE específico para conky?
Você inicia o comando com, por exemplo.
LC_ALL = C conky
Obrigado, no entanto, a comparação está falhando em geral com os números fracionários:
conky: comparação falhou para a expressão '12,61> = 10'
${if_match ${top cpu 1} >= 10 }${color red}\
${else}${color}\
${endif}\
Desculpe minha culpa, o local não foi definido funcionou agora. Eu uso o seguinte script de inicialização agora:
#!/bin/bash
export LANG=en_US.UTF-8
export LC_ALL=C
sleep 5 && conky
Observação lateral: parece que está em algebra.cc: enum arg_type get_arg_type. Eu recomendo usar um analisador de número com reconhecimento de local.
Este problema ainda está pendente na versão atual do Conky? Em caso afirmativo, atualize o problema. Caso contrário, o problema será encerrado em 2 semanas.
@lasers Você pode dar uma olhada?
@ su8 eu tentei. Não estou familiarizado com o local. Itália experimentada. Não recebi vírgulas para exibir. Talvez eu tenha feito errado.
@ su8 Eu tentei git bisect aqui para 1.9.0
. As tags anteriores não contêm cmake
stuffs. :-(
NOS.
0B // False
56.9K // True
16.9K // False
544B // False
74.9K // True
88.4K // True
13.9K // False
DK.
conky: Bad arguments: '0,0' and '50.0'
conky: compare failed for expression '0,0>50.0'
0B // True
conky: Bad arguments: '0,0' and '50.0'
conky: compare failed for expression '0,3>50.0'
307B // True
^Cconky: Bad arguments: '0,3' and '50.0'
conky: compare failed for expression '0,3>50.0'
350B // True
@ su8 Caso você tenha perdido o comentário mais recente, posso testar isso agora.
Esta linha é ignorada ao usar locais que usam ','
e retorna
que faz com que o "argumento ruim" seja impresso
Você pode testar isso:
diff --git a/src/algebra.cc b/src/algebra.cc
index 66dfd2d6..4e1d36e2 100644
--- a/src/algebra.cc
+++ b/src/algebra.cc
@@ -155,7 +155,7 @@ enum arg_type get_arg_type(const char *arg) {
if (p == e + 1) {
return ARG_LONG;
}
- if (*p == '.') {
+ if (*p == '.' || *p == ',') {
p++;
while (p <= e) {
if (isdigit((unsigned char)*p) == 0) {
Funciona. Os números também são impressos com vírgulas. Lazy copiou o exemplo acima.
56,9K // True
16,9K // False
544B // False
74,9K // True
88,4K // True
13,9K // False
Isso também acontece no master. Hmm. Na verdade, acho que está tudo bem como está. Duh .
Abra uma solicitação pull com esta mudança, pois tenho preguiça de fazer isso: hambúrguer:
Você não é preguiçoso. Eu sou os lasers mais preguiçosos. Estou pensando em algo. Se contiver uma vírgula, você não deve trocar os caracteres primeiro?
Isso faz sentido ou estou pensando muito?
Esse é o padrão atual do país, por que mudá-lo para outro?
Sei lá. Noob aqui. Vou fazer uma solicitação de pull a seu pedido. Para que serve if (*p == '.') {
?
Fechado via https://github.com/brndnmtthws/conky/pull/585 : wave: