Δείτε ποιος γιορτάζει σήμερα με τη βοήθεια του bash και του zenity


Πόσες ήταν οι φορές που ξεχάσαμε κάποια γιορτή, μόνο και μόνο γιατί δε μας το θύμισε κάποιος. Άλλες τόσες ήταν οι φορές που παίρναμε ετεροχρονισμένα τηλέφωνο. Μπορούμε λοιπόν να δούμε ποιος γιορτάζει σήμερα με τη βοήθεια του bash και του zenity ώστε να γλιτώσουμε την καζούρα και να περισώσουμε την υπόληψη μας.

Όπως είχαμε δει και στο σχετικό άρθρο μπορούμε να μετατρέψουμε σε εκτελέσιμα τα bash script μας και να τα καλούμε απλώς δίνοντας το όνομα τους στο τερματικό. Στο παρόν άρθρο θα πάμε λίγο παραπέρα. Εκτός του script θα ρυθμίσουμε και την αυτόματη εκκίνηση του, ούτως ώστε να μη χρειάζεται να το τρέχουμε χειροκίνητα.

Πριν ξεκινήσουμε

Ελέγχουμε αν έχουμε εγκατεστημένο το zenity ή το libnotify-bin που είναι απαραίτητα για την ενημέρωση μας στο desktop.

sudo apt install zenity libnotify-bin

Εφόσον σιγουρευτούμε ότι έχουν εγκατασταθεί (ή ήταν ήδη εγκατεστημένα) προχωρούμε στη συνέχεια

Δημιουργία Script

Αρχικά δημιουργούμε το bash script eortes με κάποιον από τους από τους αγαπημένους μας editors (πχ VIM)

vim eortes

Στη συνέχεια γράφουμε εντός του

#!/bin/bash
simera=$(wget -q -O- http://www.greeknamedays.gr/tools/eortologiorssfeed/index.php\?langid\=gr | grep -o "<description>.*" | tail -n1  | cut -c 14- | cut -f1 -d"<" | sed 's/\, /\n/g')
#notify-send "$simera"
zenity --title "Σήμερα γιορτάζει" --info --text="$simera" --width=250

Αυτό το script στην ουσία δημιουργεί μια μεταβλητή simera η οποία αποθηκεύει το αποτέλεσμα της εντολής που βρίσκεται εντός των παρενθέσεων της. Εντός της παρένθεσης με τη βοήθεια του wget τραβάμε το περιεχόμενο της σελίδας και με τη χρήση regular expressions, tail, cut και sed «καθαρίζουμε» το string ώστε να περιέχει μόνο τις πληροφορίες που θέλουμε.

Ακολούθως κάνουμε comment ή uncomment (αφαιρούμε το # ή το προσθέτουμε) σε όποια από τις 2 εντολές θέλουμε να τρέχει κατά την εκκίνηση του script.

Αν κάνουμε comment zenity οι ενημερώσεις που θα λαμβάνουμε (Στο gnome desktop) θα είναι κάπως έτσι

libnotify
Οι ενημερώσεις θα είναι αυτής της μορφής στο Gnome Desktop και σε διανομές που χρησιμοποιούν GTK

Ενώ αν κάνουμε το notify-send

zenity
Το zenity δημιουργεί μια πιο οικεία εικόνα, ενός παραθύρου που ο χρήστης το κλείνει πατώντας το ΟΚ

Φυσικά αν θέλουμε μπορούμε να έχουμε και τις 2 μορφές ενημερώσεων.

Στο τέλος της διαδικασίας κάνουμε το αρχείο εκτελέσιμο δίνοντας στο τερματικό

chmod +x eortes

Και το μετακινούμε στο φάκελο /usr/local/bin/ δίνοντας

sudo mv eortes /usr/local/bin/

Αυτόματη εκκίνηση του script κατά την έναρξη του συστήματος

Στο gnome-shell ανοίγουμε το σχετικό πρόγραμμα για την προσθήκη προγραμμάτων στην έναρξη (γράφοντας startup στο dash) και επιλέγουμε Add στο παράθυρο που εμφανίζεται

startup applications preferences
Πατάμε το πλήκτρο Add

Στην επόμενη οθόνη γράφουμε μια περιγραφή και την εντολή όπως φαίνεται στην ακόλουθη εικόνα. Αποθηκεύουμε πατώντας το Add/Save

add startup program
Γράφουμε μια περιγραφή και τις εντολές ακριβώς όπως απεικονίζονται

Θα προσέξατε ότι πρώτα βάλαμε τη λειτουργία sleep και μετά την εκτέλεση της εντολής. Αυτό το κάνουμε γιατί η εντολή προϋποθέτει την ύπαρξη δικτύου για να λειτουργήσει και σε μερικές περιπτώσεις μπορεί να μην έχουμε αμέσως σύνδεση (Wifi). Μπορείτε να πειραματιστείτε με μικρότερες τιμές για το sleep.

Επίλογος

Σας άρεσε το script; Το βρήκατε χρήσιμο; Μπορείτε να δείτε τον κώδικα του και να προτείνετε βελτιώσεις στο Cerebrux Code και να βοηθήσουμε όλοι μαζί να γίνει καλύτερο. Άλλωστε το πνεύμα των εορτών δεν διαφέρει και πολύ από αυτό του Open Source. Μαζί πετυχαίνουμε περισσότερα.

Καλή χρονιά και χρόνια πολλά σε όλους 

 

Advertisements

15 σκέψεις σχετικά με το “Δείτε ποιος γιορτάζει σήμερα με τη βοήθεια του bash και του zenity

Add yours

  1. Τρέχοντας το script ακριβώς όπως το λέει παραπάνω, το μόνο που εμφανίζει είναι «rss/». Τι συμβαίνει;

  2. πολυ ωραιο. επειδη ειμαι σε xfce εφτιαξα ενα κουμπακι σε δευτερο πανελ για να το τρεχω οποτε θελω εγω και οχι στην αρχη του σεσιον που δεν θα το ηθελα. ευχαριστουμε και καλη χρονια.
    αν εχεις και κανα άλλο ευχαριστως να το υιοθετησουμε γιατι αυτα με sed ειναι πολυ πονοκεφαλος

  3. Το εγκατεστησα και ετρεξε απ ευθειας σε ΜΙΝΤ sarah μετα την επανεκκινση…Τελειο…μπραβο και ευχαριστω…ΚΑΛΗ ΧΡΟΝΙΑ.

  4. Καλησπέρα, έχω ένα προβληματάκι στη δημιουργία script και αμέσως μετά την εντολή vim eortes
    έγραψα και τις 4 εντολές και μετά δεν έγινε τίποτα δεν προχωρούσε τι να κάνω ?

    1. Αν δεν έχεις ξαναχρησιμοποιησει το vim τοτε δοκίμασε κάποιον άλλον editor όπως πχ το gedit

Σου άρεσε το άρθρο; Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Google

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση /  Αλλαγή )

Σύνδεση με %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Create a website or blog at WordPress.com

ΠΑΝΩ ↑