Ja kādreiz esat terminālī palaidis komandu, kuras izpilde aizņem zināmu laiku, un pēc tam sācis darīt kaut ko citu, jūs zināt, cik viegli ir pazaudēt laika izjūtu. Netraucē-mani Vairs nav jāatgriežas konsolē ik pēc dažām minūtēm, lai pārbaudītu, vai tas ir pabeigts: rīks darbvirsmā parāda paziņojumu, kad ilgstoši darbojošās komandas izpilde ir pabeigta.
Šis mazais skripts darbojas tālāk Debian, Ubuntu un to atvasinājumi, kā arī Arch LinuxPēc noklusējuma tā uzskata jebkuru komandu, kuras izpilde aizņem vairāk nekā 10 sekundes, par "ilgstošu", un, ja vien jūs to nemaināt, tā brīdina tikai tad, ja aktīvais logs nav terminālis, kurā darbojas process, tieši tāpēc, lai izvairītos no nevajadzīgas uzmanības novēršanas, kad jūs jau skatāties uz šo logu.
Kas ir Undistract-me un kā tas darbojas?
Undistract-me būtībā ir čaulas funkciju kopums, kas pieslēdzas Bash izpildes ciklam (un var arī integrēt Zshlai noteiktu komandas sākuma un beigu laiku. Kad izpildes laiks pārsniedz konfigurējamu slieksni, tas aktivizē darbvirsmas paziņojumu un, ja vēlaties, skaņa brīdinājums.
Pēc būtības skripts definē a noklusējuma taimauts ir 10 sekundes no kuras komanda tiek uzskatīta par “garu”. Šo vērtību var mainīt, un var izveidot arī izņēmumu sarakstu ar komandu nosaukumiem, kuriem nevajadzētu ģenerēt brīdinājumus (piemēram, ls o cd Ja esat tos pielāgojis, tas dažreiz aizņem kādu laiku.
Vēl viens svarīgs tā darbības aspekts ir aktīvā loga pārbaude: Paziņojums tiek rādīts tikai tad, ja terminālis nav priekšplānā.Ja tomēr vēlaties saņemt paziņojumu, ir vides mainīgais, lai mainītu šo darbību.
Projekts ir atvērtā koda, un tā kods tiek publicēts saskaņā ar licenci. ExpatVēsturiski izstrādi aizsāka jml, un tā tiek mitināta tādās platformās kā Launchpad un GitHub. Zem pārsega tā izmanto labi zināmu "uzlaušanu" no pirmsizpildes Bašam (iedvesmojoties no darba Glifs Lefkovicsun ir saņēmusi ziedojumus no tādiem cilvēkiem kā Chris Jones (Terminators), Maikijs Nīlings y Stīvens Rotvels, kas uzlaboja to sniegumu un kvalitāti.

Instalēšana Debian, Ubuntu un atvasinātajos datoros
Tiešākais ceļš sistēmās Debian / Ubuntu Tas ir pieejams standarta repozitorijos. Vienkārši instalējiet pakotni, un jūs varēsiet to saistīt ar savu čaulu.
sudo apt update
sudo apt install undistract-me
Ļoti vecās Ubuntu versijās bija īpašs PPA, ja strādājat ar mantotajām vidēm, kur spējīgs Šī atjauninātā pakotne nav pieejama:
sudo add-apt-repository ppa:undistract-me-packagers/daily
sudo apt update
sudo apt install undistract-me
Kad skripts ir instalēts, tas ir jāpievieno čaulai. Bash valodā ir vairākas iespējas. Vienkāršākā versija pievieno rindu ar automātiska iekraušana uz startēšanas failu:
echo 'source /etc/profile.d/undistract-me.sh' >> ~/.bashrc
Ja vēlaties tieši instalēt galveno komponentu kopā ar āķa instalētāju, varat arī ierakstīt divas rindiņas savā ~ / .bashrc pa šo ceļu:
echo "source /usr/share/undistract-me/long-running.bash
notify_when_long_running_commands_finish_install" >> ~/.bashrc
Un atcerieties atsvaidzināt čaulas sesiju, lai izmaiņas stātos spēkā ar avots pēc startēšanas failu modificēšanas.
source ~/.bashrc
Instalēšana operētājsistēmā Arch Linux un tās atvasinājumos (AUR)
Arch ekosistēmā Undistract-me ir pieejams šādā valodā: AUR (parasti variantā atraut-mani-gitVarat to kompilēt ar savu iecienītāko AUR palīgu vai manuāli ar makepkgNorādījumi ir sniegti, izmantojot bieži izmantotas komandas. palīgi kas daudziem lietotājiem ir pazīstams:
pacaur -S undistract-me-git
packer -S undistract-me-git
yaourt -S undistract-me-git
Paturiet prātā, ka daži no šiem palīgrīkiem ir novecojuši, taču tie kalpo, lai ilustrētu, ka instalēšana tiek veikta no kopienas repozitorija. Jebkurā gadījumā, tiklīdz tā ir instalēta, aktivizēšana Jūsu čaulai tas tiek darīts tāpat kā Debian/Ubuntu: pievienojot atbilstošās rindas startēšanas failam.
Aktivizēšana un lietošana ar Bash un Zsh
Bash gadījumā papildus iepriekš minētajām variācijām ir kompakts bloks, ko var iekļaut beigās. ~ / .bashrc lai skripts ielādētos atbilstošā laikā:
if ! [ -z "$BASH_VERSION" -o -z "$PS1" -o -n "$last_command_started_cache" ]; then
. /usr/share/undistract-me/long-running.bash
notify_when_long_running_commands_finish_install
fi
Zsh valodā integrācija tiek panākta līdzīgi, norādot tās pašas rindas uz failu ~ / .zshrcTo visu var uzreiz izmest ar šo komandu:
echo "source /usr/share/undistract-me/long-running.bash
notify_when_long_running_commands_finish_install" >> ~/.zshrc
Pēc jebkura no šiem failiem rediģēšanas pārlādēt konfigurāciju no pašreizējās čaulas, lai izmaiņas stātos spēkā bez izrakstīšanās.
source ~/.bashrc
# o bien para Zsh
env zsh -l
# alternativamente
a source ~/.zshrc
Svarīgi: Daudzos termināļa emulatoros šī opcija būs jāiespējo. "Palaist komandu kā pieteikšanās čaulu". uz GNOME termināls Tas atrodas sadaļā Profila preferences > Nosaukums un komanda; XFCE termināls Jūs to atradīsiet sadaļā Preferences > Vispārīgi; un iekš Guake Tas atrodas sadaļā Preferences > Vispārīgi. Bez tā āķis, iespējams, neielādēsies pareizi.

Iestatījumi: laiks, izņēmumi, aktīvais logs un skaņa
Undistract-me galvenokārt tiek kontrolēts no faila /usr/share/undistract-me/long-running.bash un izmantojot vides mainīgos. Jūs varat atvērt šo failu ar savu iecienītāko redaktoru un pārskatīt pieejamos parametrus.
Lai mainītu minimālo laiku, pēc kura komanda tiek uzskatīta par "garu", atrodiet mainīgo ILGAS_DARBĪBAS_KOMANDAS_TAIMAUTSNoklusējuma vērtība ir 10 (sekundes), bet jūs varat to iestatīt uz jebkuru sev ērtu laiku.
sudo nano /usr/share/undistract-me/long-running.bash
# Busca y ajusta:
# LONG_RUNNING_COMMAND_TIMEOUT=10
Ja vēlaties noteiktas komandas nekad neaktivizēt paziņojumu, pievieno to ar atstarpi atdalītos nosaukumus mainīgajam ILGI_REIZ_IZSLĒGTS_IGNORE_SARKSTas ir noderīgi, lai filtrētu utilītas, kuras izmantojat pastāvīgi un nevēlaties jūs traucēt.
No otras puses, ja vēlaties saņemt paziņojumus pat tad, kad terminālis ir aktīvais logs, definējiet IGNORĒT_LOGA_PĀRBAUDI=1Tas deaktivizē pārbaudi un vienmēr Brīdinājumu redzēsiet garās komandas beigās.
Lai pievienotu skaņas brīdinājumu, pielāgojiet mainīgo UDM_PLAY_SOUND uz veselu skaitli, kas nav nulle. Debian/Ubuntu sistēmās šai funkcijai ir nepieciešams instalēts pulseaudio-utils y skaņas motīvs-freedesktop, jo tā balstās uz darbvirsmas skaņu tēmu.
sudo apt install pulseaudio-utils sound-theme-freedesktop
Pēc jebkādām izmaiņām konfigurācijas failā vai vides mainīgajos neaizmirstiet uzlādējiet savu čaulu:
source ~/.bashrc
# o
source ~/.zshrc
Ātri testi, lai pārbaudītu, vai tas darbojas
Vienkāršākais veids, kā to pārbaudīt, ir palaist komandu, kuras izpilde aizņem ilgāku laiku nekā 10 sekundes (vai jūsu iestatīto slieksni). Piemēram, varat veikt ping uz jūsu tīkla resursdatoru vai uz ārpusi ar pietiekamu pakešu skaitu, lai pārsniegtu laika ierobežojumu.
ping -c 25 1.1.1.1
Arch vidēs ir arī ļoti vizuāli izmantot tādu komandu kā sudo pacman -Sykas parasti aizņem kādu laiku atkarībā no spoguļu stāvokļa:
sudo pacman -Sy
Atcerieties divas svarīgas lietas: paziņojums tiek parādīts, ja komandas izpilde ir aizņēmusi ilgāku laiku nekā noteikts slieksnis, un pēc noklusējuma tikai tad, ja Aktīvais logs nav terminālis kur tas darbojas. Ja process beidzas pirms taimauta, ziņojums netiks parādīts; ja joprojām vēlaties to saņemt, pielāgojiet vērtību ILGAS_DARBĪBAS_KOMANDAS_TAIMAUTS vai atspējot logu pārbaudi ar IGNORE_WINDOW_CHECK.
Ātras alternatīvas, neinstalējot neko papildus
Lai gan Undistract-me ir ļoti ērts, ir minimālistiski risinājumi, kurus varat izmantot tikai tad, kad vēlaties. paziņot-nosūtīt (Daudzos galddatoros tas parasti ir iekļauts pēc noklusējuma.) Komandas beigās varat pievienot brīdinājumu:
cat archivo && notify-send '¡Terminado!'
Ja vēlaties redzamāku dialoglodziņu, Zenness Šī ir vēl viena tipiska opcija GTK vidēs. Lietošanas modelis ir tikpat vienkāršs, un pēc pabeigšanas tiek parādīts informācijas logs:
cat archivo && zenity --info --text='Proceso finalizado.'
Ātrs triks: tā vietā, lai && (kas izpilda otro daļu tikai tad, ja pirmā ir veiksmīga), varat ķēdi savienot ar ; lai paziņojums tiktu nosūtīts neatkarīgi no apstākļiem. Izmantojiet to uzmanīgi atkarībā no situācijas.
Ir pieejamas arī citas alternatīvas un papildinājumi: sākot no tādiem rīkiem kā NotiFyre pat termināļi ar integrētiem paziņojumiem (piemēram, Tiliks (Tas var paziņot, kad panelis ir neaktīvs). Ja vēlaties papildu audio un pieturaties pie pamatprincipiem, varat pats izveidot balss uzvednes ķēdi:
foo; spd-say 'tarea completada'
Un tiem, kas joprojām izmanto sistēmas skaļruni, ir tādi, kas to iespējo gab. ar pīkstienu pēc ilgstošiem uzdevumiem. Tas ir neveikls, bet efektīvs ļoti minimālistiskā vidē.
Lietošanas un problēmu novēršanas padomi
Ja nesaņemat paziņojumus, vispirms pārbaudiet, vai esat iespējojis šo opciju. “pieteikšanās apvalks” savā termināļa emulatorā. Bez šī iestatījuma Undistract-me var netikt ielādēta un āķis var netikt instalēts.
Pārbaudiet arī, vai jūsu čaula nolasa pareizo failu (~ / .bashrc o ~ / .zshrcun ko tu esi izdarījis? avots Pēc rediģēšanas pievienojiet atkļūdošanas rindu (piemēram, palaist garām), lai apstiprinātu, ka fails tiek izpildīts, sākoties termināļa sesijai.
Ja ieslēdzat skaņu un neko nedzirdat, pārbaudiet, vai ir pulseaudio-utils un no iepakojuma skaņas motīvs-freedesktopPapildus skaļumam un audio serverim jūsu sesijā. Ļoti minimālistiskos darbvirsmās var būt nepieciešams manuāli startēt PulseAudio vai izmantot citu aizmugursistēmu.
Pārāk daudz paziņojumu par triviālām komandām? Pielāgojiet ILGAS_DARBĪBAS_KOMANDAS_TAIMAUTS uz augstāku vērtību un aizpildiet ILGI_REIZ_IZSLĒGTS_IGNORE_SARKS ar aizstājvārdiem un utilītprogrammām, kuras nevēlaties uzraudzīt (piemēram, git statuss o docker ps ja jūs tos bieži atkārtosiet).
Projekta un kopienas informācija
Undistract-me kods tiek izplatīts zem Ekspatriantu licence un ir atradies gan Launchpad, gan GitHub platformās. Tam nav īpaša IRC kanāla, lai gan tradicionāli to ir bijis iespējams atrast GitHub platformā. jml gada ekosistēmā freenode (senos laikos, #ubuntu-devel). Jautājumu vai kļūdu gadījumā atbilstošais kanāls ir jautājumi no repozitorija vai projekta Launchpad platformā.
Interesants pieminējums tiem, kam patīk zobratu iekšējā darbība: atbalsts pirmsizpildes Zsh tips Bash valodā nav vietējais, tāpēc skripts izmanto "uzlauzt" Inteliģenta sistēma, kas aktivizē funkcijas pirms un pēc katras komandas. Pateicoties tādiem ieguldījumiem kā Chris Jones (no termināļa) Terminatora) un optimizācijas Maikijs Nīlings y Stīvens RotvelsVeiktspēja ir ievērojami uzlabojusies, salīdzinot ar pirmajām versijām.
Ikdienas lietošanā rīks īpaši labi iederas, kompilējot, konvertējot multimediju, jūs sinhronizējat lielu datu apjomu vai veicat darbības ar paka Tie prasa laiku. Modelis vienmēr ir viens un tas pats: palaidiet komandu, pārslēdziet logus un ļaujiet darbvirsmai paziņot, kad tas ir pabeigts.
Undistract-me sniedz tieši to, ko sola: mazāk laika, skatoties konsolē un vairāk koncentrēties uz to, ko dari. To ir viegli instalēt, tas precīzi pielāgojas dažiem mainīgajiem un labi integrējas ar Bash un Zsh, padarot to par obligātu lietu tiem no mums, kas pusi savas dzīves pavada terminālī.