Καλησπερες σας,
Σημερα αποφασισα να βαλω (χμμ… πως να πω…) στο rate της wifi απο μονοτονο χρωμα σε «ζωντανο» χρωμα αναλογα με την ποιοτητα αν ειναι υψηλη ή χαμηλη.
Ομως οι ρυθμισεις για το QUALITY λειτουργει μια χαρα ακομα και οι εναλλαξ χρωματος αν ειναι υψηλη ή χαμηλη.
Στις ρυθμισεις του RATE ναι μεν λειτουργει χαμηλη ή υψηλη αλλα οι εναλλαξ χρωματος ειναι κολλημενη στην υψηλη.
Τι λειπει απο τις ρυθμισεις;;
Βλέπω μία endif λιγότερη στο QUALITY, επίσης το wireless_link_qual_perc wlp3s0 επιστρέφει αριθμητική τιμή, με την οποία μπορείς να κάνεις συγκρίσεις, αντίθετα το wireless_bitrate wlp3s0 επιστρέφει και τις μονάδες (Mb/s, Kb/s, κτλπ) το οποίο δεν είναι δόκιμο για συγκρίσεις.
Στο QUALITY εχεις δικιο, μια endif λιγοτερη αλλα παρολα αυτα δουλευει μια χαρα. Οκ το προσθεσα.
Αυτα που ειπες για τις διαφορες:
το wireless_link_qual_perc wlp3s0 και το wireless_bitrate wlp3s0
το μονο που καταλαβαινω ειναι οτι το qual_perc εχει να κανει με ποσοστα (%) και το bitrate ειναι σε Mb/s, Kb/s, κτλπ.
Ομως και τις δυο περιπτωσεις λειτουργει μια χαρα ανεβαζοντας ή κατεβαζοντας τα νουμερα τους.
Εμενα με ενδιαφερει μονο οι χρωματικες προοδοι (εναλλαξ;;), (εε… καλα δεν ειμαι προγραμματιστης)… αλλα αφου λειτουργει χρωματικα το Quality γιατι οχι και το Rate;
Αυτο με σπαει…!
Πριν λιγο ρωτησα και την … Gemini AI… ουτε κι αυτον τον καημενο δεν καταφερε παρολο που μου δινει 3 λυσεις!!
#!/bin/bash
# This script extracts the numeric part of the wireless bitrate
if [ -n "$1" ]; then
# Use 'awk' to print the first field before any space
bitrate=$(echo "$1" | awk '{print $1}')
echo "$bitrate"
fi
ρίξτο στον ίδιο φάκελο, κάνε το εκτελέσιμο και άλλαξε στο conkyrc κάθε σημείο: ${wireless_bitrate wlp3s0}
σε ${execi 5 ./strip.sh "${wireless_bitrate wlp3s0}"}
My bad, μόνο στις συγκρίσεις άλλαξε το, όχι σε κάθε σημείο.
Άλλαξα τον κώδικα για να κλείσει η if, σου είπα για τα endif, αλλά και εγώ…
Δώσε και μία εικόνα πώς ήταν πριν.
@Maras … Ισως να μην φταις εσυ που εχεις την γλωσσα της… πιατσας των προγραμματιστων, αλλα εγω που δεν προκειται να μαθω κατιτι…!
Λοιπον, σου δειχνω οπως ηταν κανονικα (δηλαδη πριν προσπαθω…)
Και μου ζητησες να βαλω το script strip.sh: το εκανα εκτελεσιμο και άλλαξα στο conkyrc κάθε σημείο: ${wireless_bitrate wlp3s0} σε ${execi 5 ./strip.sh "${wireless_bitrate wlp3s0}"}
Το προβλημα μου ειναι τι ηθελες να πεις το κάθε σημείο: ← που…;
Οριστε η τελευταια προσπαθεια μου, που μαλλον ειναι λαθος μου επειδη δεν σε καταλαβα:
Τωρα ειναι που οι τιμες ειναι… αφαντος
Να σας ξαναθυμισω οτι στο RATE οι τιμες-νουμερα λειτουργουν κανονικα, απλα ηθελα να αλλαζουν χρωματα καθως αυξανουν ή ελαττωνουν το rate του οπως στου QUALITY.
H γλώσσα του conky είναι άθλια και θέλει προσοχή. Ένας από τους λόγους είναι πως μετράνε τα κενά και έχεις αυτές τις τεράστιες γραμμές που δεν είναι εύκολο να δεις που αρχίζει και που τελειώνει τι.
Ευτυχώς, σήμερα δεν είναι καθόλου απαραίτητο να πάρεις αυτό τον δρόμο. Κάτι που πολλοί δεν ξέρουν είναι πως σήμερα μπορείς να γράψεις το conky ολόκληρο ή κάποιο κομμάτι του σε γλώσσα Lua. Η Lua είναι πολύ εύκολη γλώσσα.
Σε αυτό το link θα βρεις ένα παράδειγμα για το πως να γράψεις έγχρωμο κείμενο. Ίσως μοιάζει βουνό στην αρχή, αλλά αν το πας σιγά σιγά θα δεις πως δεν είναι τόσο δύσκολο.
Παντως ευχαριστω που μου εδειξες καποια πραγματα για να λυθουν κατι. Ορισμενα δεν ειναι για μενα.
Αν υπαρχει τροπος εστω κι απλοικο, το Rate να φαινεται χρωματιστα οταν θα ειναι ανεβασμενα ή κατεβασμενα οι τιμες του οπως του Quality.
Θα σου ειμαι ευγνωμων πολυ.
Λοιπόν, φτιάξε ένα αρχείο με το όνομα bitrate.lua το οποίο θα περιέχει τα παρακάτω:
function conky_get_bitrate_color()
-- Get the wireless bitrate from Conky variable
local bitrate = conky_parse("${wireless_bitrate wlo1}")
-- Extract the numeric part of the bitrate (assuming format like "54.0 Mb/s")
local numeric_bitrate = tonumber(bitrate:match("^(%d+%.?%d*)"))
-- Determine the color based on the bitrate
local color
if numeric_bitrate then
if numeric_bitrate >= 90 then
color = "blue"
elseif numeric_bitrate >= 80 then
color = "DodgerBlue"
elseif numeric_bitrate >= 60 then
color = "green"
elseif numeric_bitrate >= 40 then
color = "yellow"
elseif numeric_bitrate >= 20 then
color = "orange"
elseif numeric_bitrate >= 10 then
color = "tomato"
else
color = "red"
end
else
color = "white"
end
-- Return the color followed by the bitrate
return string.format("${color %s}", color) .. bitrate
end
και αποθήκευσέ το εκεί που έχεις το conky.conf αρχείο.
Στην συνέχεια μέσα στο conky.conf, στο κομμάτι conky.config πρόσθεσε στο τέλος τις 2 γραμμές:
Πρόσεξε να βάλεις σωστά το μονοπάτι στον παραπάνω κώδικα!
Επίσης μέσα στο conky.text κομμάτι, στο σημείο που θέλεις να εμφανίζεται το RATE, γράψε αυτό:
Αλλα… να υποθεσω οτι το conky.conf που εχει ειναι απο το conky-all, εε;;
Εγω που εχω το Conky Manager 2, απο οτι καταλαβα δεν το “πιανει”·
Ενω το Conky 1.12.2 λειτουργει μια χαρα.
Γιατι ομως…;;
Τι λειπει το Conky Manager 2 απο το κλασικο Conky;;
Ποια διανομή τρέχεις και από πού εγκατέστησες το Conky Manager? Το conky.config αρχείο έρχεται από το πακέτο conky της διανομής σου (conky-all εάν χρησιμοποιείς Ubuntu).
Ο Manager είναι για να σου κάνει την ζωή εύκολη και να διαχειρίζεσαι τέτοια αρχεία, δεν τον χρειάζεσαι στην πραγματικότητα. Ένας text-editor φτάνει.