Hosszabb ideig futó parancssori programoknál kellemetlen, ha nem értesülünk, ha lefutottak. Erre több megoldás is létezik, én egy ideig vagy egy kis hangfájlt játszattam le a script végén, vagy a kdialog-gal írattam ki, vagy a notify-t használtam. Ez csak olyan scripteknél működött, amikbe ezeket explicit bele is írtam.
Nemrég olvastam egy cikket a undistract-me nevű kis alkalmazásról. Most ezt mutatom be röviden.
A Undistract-me elérhető a Debian és annak változatai, például az Ubuntu alapértelmezett adattáraiban. Mindössze annyit kell tenni, hogy futtassuk le a következő parancsot a telepítéshez:
sudo apt-get install undistract-me
Az Arch rendszert használóknak a leírás szerint az AUR-ban van, így ott sem okozhat gondot. Akinek meg nincs csomagban, annak érdemes meglátogatni a undistract-me github oldalát. https://github.com/jml/undistract-me
Az undistract-me beállítása
echo 'source /etc/profile.d/undistract-me.sh' >> ~/.bashrc
paranccsal írassuk be a bashrc-be.
Alapértelmezés szerint az Undistract-me minden olyan parancsot figyelembe vesz, amely több mint 10 másodpercig fut. Ezt az időintervallumot megváltoztathatjuk a /usr/share/undistract-me/long-running.bash fájl szerkesztésével.
sudo nano /usr/share/undistract-me/long-running.bash
# Default timeout is 10 seconds. if [ -z "$LONG_RUNNING_COMMAND_TIMEOUT" ]; then LONG_RUNNING_COMMAND_TIMEOUT=10 fi
Ezt a sort kell keresni és megadni a kívánt értéket. Én hagytam alapértéken, de mindenki úgy és azt állít, ami neki jó.
Majd mentsük el a fájlt, és adjuk ki ezt a parancsot, ha Bash-t használunk:
source ~/.bashrc
Ha Zsh-t:
source ~/.zshrc
És kész, ki lehet próbálni. A terminálablak újra indításáról ne feledkezzünk meg, mert akkor lép érvénybe a változtatás.
Ami fontos: ha az a terminálablak aktív, amiben a program fut, akkor nem ad jelzést. Ami logikus is, hiszen akkor nem kell figyelmeztetés.
A Debian alatt telepítéskor azt tapasztaltam, hogy egy csonka long-running.bash telepít. Ebből pár fontos funkció ki van véve. Ez nem jó, így a github oldalán lévő long-running.bash-ra cseréljük ki.
A Undistract-me ezen változatának kellemes tulajdonsága, hogy hangjelzést és vizuális értesítést küldhet, amikor egy parancs végrehajtásra kerül. Alapértelmezés szerint csak vizuális értesítést küld. Ezt megváltoztathatjuk úgy, hogy az UDM_PLAY_SOUND változót egyesre állítjuk. A rendszerbe azonban telepítenie kell a pulseaudio-utils és a hang-theme-freedesktop segédprogramokat, amelyek lehetővé teszik ezt a funkciót. Nekem (MX linux) fenn voltak.
# Default is not to play sound along with notification. (0 is false, non-zero is true.) if [ -z "$UDM_PLAY_SOUND" ]; then UDM_PLAY_SOUND=1 fi
Majd mentsük el a fájlt, és adjuk ki ezt a parancsot, ha Bash-t használunk:
source ~/.bashrc
Ha Zsh-t:
source ~/.zshrc
És kész, ki lehet próbálni. De a terminál...
Ami kicsit kellemetlen, hogy leírások szerint be lehet állítani, ha aktív ablakban fut a program, akkor azt is jelezze, ha kész, de erre nem találtam meg a beállítási lehetőséget. Így kézzel írtam be ezt a sort:
# Aktív ablakban is jelez (0 is false, non-zero is true.) if [ -z "$IGNORE_WINDOW_CHECK" ]; then IGNORE_WINDOW_CHECK=1 fi
Majd source ~/.bashrc és tesztelés. Így bármilyen ablakban is fut a terminál, jelezni fog.
Ami fontos: pár helyen említik, a "LONG_RUNNING_IGNORE_LIST" változót, ezt én nem találtam, illetve pár megoldás, amit a net-en olvastam azokat sem tudtam életre kelteni. Így azt a lehetőséget, hogy megadjuk azokat a programokat, melyeknél nem kérünk riasztást nem használhatjuk.
Ennyi