A zsh használóknak érdemes telepíteni ezt a ki plugint: zsh-auto-notify. Itt található meg, és a telepítése egyszerű.
Mit is tud ez a beépülő? Ha fut egy terminálos feladat, és az egy meghatározott időnél tovább dolgozik a befejezéskor küld egy asztali üzenetet. Mi az értelme? Így értesítést kapok, ha vége a munkamenetnek, nem kell figyelni, hogy mikor ér véget egy telepítés, vagy akár ez fordítási művelet. Ez akkor hasznos, ha utána egy következőt szeretnénk indítani. Illetve kiírja a futási időt is. Ebből tudjuk – ha az számunkra érdekes – a pontos idejét a munka elvégzésének. Bár ez legtöbb esetben csak érdekes adat, de egy-egy hosszabb lefutású scriptnél nem árt, ha tudjuk a várható futásidőt.
Én az oh-my-zsh gyűjteményt használom, így a
git clone https://github.com/MichaelAquilina/zsh-auto-notify.git $ZSH_CUSTOM/plugins/auto-notify
paranccsal telepítem. Mivel nem egy nagy adattömeg, pillanatok alatt lefutott. Érdemes akkor is ezt a klónozást használni, ha a disztribúciód tárolójában helyet kapott, mert nekem az AUR-ból nem sikerült korrektül telepíteni.
Egy függőséget vár el, de ez nagy valószínűséggel telepítve van: notify-send. Ha nincs, akkor telepítsd.
A beállítása egyszerű, az első lépés a megszokott mód a .zshrc-ben aktiválni kell.
Megnyitod, majd a source $ZSH/oh-my-zsh.sh sor ELÉ beszúrod ezt a sort: plugins=(auto-notify $plugins) szöveget. Bár a leírás is felhívja a figyelmet erre, én kipróbáltam, hogy mögé teszem, ott nem működött jól.
Ha elég neked az alapbeállítás, akkor pár másodpercnél hosszabban futó parancsnál kapsz egy korrekt értesítést. Kipróbálni a legegyszerűbb, ha a sleep 21
parancsot adod ki terminálból. Ha a kimenet, és a kapott infó jó, akkor nincs több feladatod.
A beállítás a .zshrc-ben történik, így nagyon figyelj arra, mit és hogyan írsz bele.
export AUTO_NOTIFY_THRESHOLD=20
Értelemszerűen a küszöböt adja meg, ennél hosszabb futásidejű munkafolyamat után ír csak ki üzenetet. Én levettem 5-re. Így minden, nem azonnal lefutó után kapok üzenetet.
export AUTO_NOTIFY_EXPIRE_TIME=10000
Tíz másodpercig marad nem az üzenetpanel. Érdemes testreszabni, mert a túl gyors esetén nem látod meg, ha picit máshova figyelsz, ha túl hosszú, akkor zavaró lehet, hogy ott fityeg a sarokban.
AUTO_NOTIFY_IGNORE+=("program")
Ha egy programot nem akarsz figyeltetni, akkor azt érdemes letiltatni. Alapból a /home/laci/.oh-my-zsh/custom/plugins/auto-notify-ban található auto-notify-plugint.zsh-ban le van tiltva a
export AUTO_NOTIFY_IGNORE=(„vim” „nvim” „less” „more” „man” „tig” „watch” „git commit” „top” „htop” „ssh” „nano”)
de ezt kiegészítheted a .zshrc-ben, ha kell, AUTO_NOTIFY_IGNORE+=(„program”) sorban. Értelemszerűen a auto-notify-plugint.zsh-ba is beírhatsz ebbe a sorba pluszt, vagy ki is törölhetsz. Én jobbnak tartom a rshrc-be való beírást, mert ha magához a programhoz nyúlsz, akkor egy hiba esetén nehezebben találod meg, és ha jelented a hibát, akkor nem fognak tudni segíteni.
Már csak a kijelzett adatokat, szöveget kell testre szabni. Én hagytam úgy,a hogy van, a lényeget mutatja, és nem zavar, hogy azt angolul teszi.
Három dolog, amit be tudsz állítani:
%command - a felhasználó által végrehajtott parancs
%elapsed - az eltelt másodpercek száma
%exit_code - a végrehajtott parancs kilépési kódja
Amit két sorban állítasz:
export AUTO_NOTIFY_TITLE="Hey! %command has just finished"
export AUTO_NOTIFY_BODY="It completed in %elapsed seconds with exit code %exit_code"
Gondolom nem okoz senkinek gondot a használata. 🙂
Nekem ez első kérdésem az volt, amikor ajánlotta valaki, hogy: OK, ez szép, de ha videót rögzítek, akkor ez a sarokba bedobja az értesítést, az meg zavaró. De erre is gondoltak a készítők:
Ideiglenesen letilthatjuk az automatikus értesítést: disable_auto_notify
.
Ha újra engedélyezni szeretnéd: enable_auto_notify
.
A terminálból futtatható parancsot lehet gyorsbillentyűkhöz rendelni, vagy akár a tint2-es panelban is kaphat egy gombot, ha gyakran használod.
Ennyi. Nem egy világmegváltó csodafegyver, amitől nagyobb guruk leszünk, de hasznos tud lenni.
2020. márciusában teszteltem, arch alapú linuxon.