Comments 85
Благодарю от души
А почему бы не написать после команды например make && make install && notify-send ну и параметры там все, так просто сходу не вспомню синтаксис...&& будет выполняться после завершения предыдущей команды… и без всяких скриптов…
Можете как-то выложить код на текстообменник? А то нету желания качать и разархивировать всё это.
Пожалуйста )
bitbucket.org/artemb/wrap/src/tip/src/wrap
bitbucket.org/artemb/wrap/src/tip/src/wrap
Добавил вам кармы, перенесите в «Linux для всех» :)
Уже есть опыт успешного использования.
Пользуюсь почти неделю. Очень удобно.
Помимо того чтобы что эта штука не позволяет забыть о свернутых задачах, она еще и позволяет отойти от компа.
Мне кажется что все мы часто по долгу сидим, и лишний раз подняться со стула — это полезно.
Так вот, я использую wrap так:
Сейчас в проекте используется maven, поэтому я сделал alias mvn=«wrap mvn».
Сделал большой кусок функционала, запускаю сборку и тесты. Этот процесс, как правило, занимает около 5 минут. Это время я использую чтобы походить по кабинету. Как только «ку-ку-кнет» возвращаюсь и продолжаю работать.
Пользуюсь почти неделю. Очень удобно.
Помимо того чтобы что эта штука не позволяет забыть о свернутых задачах, она еще и позволяет отойти от компа.
Мне кажется что все мы часто по долгу сидим, и лишний раз подняться со стула — это полезно.
Так вот, я использую wrap так:
Сейчас в проекте используется maven, поэтому я сделал alias mvn=«wrap mvn».
Сделал большой кусок функционала, запускаю сборку и тесты. Этот процесс, как правило, занимает около 5 минут. Это время я использую чтобы походить по кабинету. Как только «ку-ку-кнет» возвращаюсь и продолжаю работать.
Кстати, а откуда notify-send читает настройки оформления? У меня в KDE его уведомления выглядят феерически криво :(
Насколько я знаю, это гномовский инструмент, причем темо-зависимый. Честно говоря, KDE не пользуюсь, и чем вам помочь — не знаю. Может, кто-то в курсе?
В Kde можно использовать:
kdialog --title «Success» --passivepopup «Operation completed» 5
5 — количество секунд, которое сообщение будет висеть.
kdialog --title «Success» --passivepopup «Operation completed» 5
5 — количество секунд, которое сообщение будет висеть.
В KDE 4.3 вид сообщений зависит от темы плазмы.
У меня в XFCE с компизом что-то вообще ничего нет. Команда `notify-send test` ничего не показывает.
А не проще ли, не изобретая велосипед, использовать штатные средства терминала? Скажем monitor for silence / monitor for activity. Ну или банально «mycommand; notificator», где последний может быть чем угодно от тупо команды play до каких нить xmessage. Ну или через DCOP попросить десктоп показать окошко.
gnome-терминал так не умеет
1. Почему libnotify, а не DCOP, monitor for silence/activity, xmessage?
Потому что notify-send проще, удобнее, универсальнее (я юзаю gnome-terminal, а не konsole), красивее
2. Почему скрипт, а не mycommand; notificator
habrahabr.ru/blogs/linux/67746/#comment_1916461
Потому что notify-send проще, удобнее, универсальнее (я юзаю gnome-terminal, а не konsole), красивее
2. Почему скрипт, а не mycommand; notificator
habrahabr.ru/blogs/linux/67746/#comment_1916461
Подскажите, что используется в Убунту для вывода уведомлений(библиотека)?
кажется еще у screen тоже есть опция — предупреждать об активности в окне. А без screen работать — недальновидно.
> А без screen работать — недальновидно.
Смысл этой фразы не понял, не могли бы вы поподробнее?
Смысл этой фразы не понял, не могли бы вы поподробнее?
ну допустим задача будет выполнятся слишком долго, потребуется вам перейти в другое здание или вообще отойти домой (с работы) и оттуда проверить ход выполнения программы.
Если вы работаете внутри screen, вы сможете подсоединиться удаленно к сессии (консольной) и продолжить работать.
Можно конечно и по vnc подсоединиться, но в нем и на 10 мегабитах неудобно работать.
Если вы работаете внутри screen, вы сможете подсоединиться удаленно к сессии (консольной) и продолжить работать.
Можно конечно и по vnc подсоединиться, но в нем и на 10 мегабитах неудобно работать.
Ну это уже, имхо, совсем другой тип задач. wrap создавался под задачи, занимающие 1-10 минут и не интерактивные. В иных случаях вы, наверное, правы.
Для серверов актуально, да. Для десктопов нет. А программа явно под десктопы делалась, на серверах никто иксы не держит и уж тем более не смотрит туда на предмет уведомлений.
UFO just landed and posted this here
Оффтоп. Что было с bitbucket в пятницу, не в курсе?
UFO just landed and posted this here
UFO just landed and posted this here
Здорово. Это KDE-вариант?
Я экспериментировал с festival, но мне не понравилось, уж лучше просто короткая мелодия.
Я экспериментировал с festival, но мне не понравилось, уж лучше просто короткая мелодия.
UFO just landed and posted this here
UFO just landed and posted this here
Небольшая поправка
#!/bin/bash
$@
if [ $? != 0 ]; then m=«Fuck!!!»; else m=«OK ^_^»; fi
/usr/bin/kdialog --passivepopup "$m — $*" 60
echo $m | /usr/bin/festival --tts
#!/bin/bash
$@
if [ $? != 0 ]; then m=«Fuck!!!»; else m=«OK ^_^»; fi
/usr/bin/kdialog --passivepopup "$m — $*" 60
echo $m | /usr/bin/festival --tts
Посмотрел на kdialog сейчас, заметил, что нельзя указать, чтобы уведомления показывались где-то в углу — по дефолту только по центу и всё.
Вопрос, кто-то знает, как заюзать из скрипта уведомления в стиле KDE4 «Notifications and jobs» (иконка (i) в системном лотке)?
Вопрос, кто-то знает, как заюзать из скрипта уведомления в стиле KDE4 «Notifications and jobs» (иконка (i) в системном лотке)?
В приведённом варианте вывода сообщений (kdialog --passivepopup) оно и должно показываться в стиле KDE4 «Notifications and jobs». Это если выполнить команду от рута, то по центру появится белое окошко с сообщением. Из-под рута нужно выполнять как-то так:
user=`who | grep " $DISPLAY" | awk '{print $1}' | tail -n1`
su -c 'kdialog --passivepopup «Task completed*»' "$user"
user=`who | grep " $DISPLAY" | awk '{print $1}' | tail -n1`
su -c 'kdialog --passivepopup «Task completed*»' "$user"
Ваш скрипт совершенно не дружит с пробелами (
Ещё, возможно, стоит добавить "-t 0" к параметрам notify-send, чтобы напоминалка не исчезала, пока сам её не закроешь. А то ведь можно отвернуться и пропустить её.
wrap ls "./dir with spaces"
). Чтобы исправить, надо заменить:--- wrap.old 2009-08-22 13:58:02.000000000 +0400 +++ wrap 2009-08-22 18:18:45.000000000 +0400 @@ -6,3 +6,3 @@ if [ $# -gt 0 ]; then - $* + "$@" EXIT_CODE=$?
Ещё, возможно, стоит добавить "-t 0" к параметрам notify-send, чтобы напоминалка не исчезала, пока сам её не закроешь. А то ведь можно отвернуться и пропустить её.
UFO just landed and posted this here
UFO just landed and posted this here
Честно говоря удивлен даже, что такое попало на главную хабра o_O
Давно использую нотификации, например для проверки новой почты (gmail, проверка по протоколу POP3 через SSL с последующим показом количества новых писем) или завершение закачки wget (показывает состония закачки через zenity), да даже когда чайник ставлю тоже использую! Это очень удобно конечно, но чтобы на хабр писать… как-то не задумывался…
Или все же написать?..
Давно использую нотификации, например для проверки новой почты (gmail, проверка по протоколу POP3 через SSL с последующим показом количества новых писем) или завершение закачки wget (показывает состония закачки через zenity), да даже когда чайник ставлю тоже использую! Это очень удобно конечно, но чтобы на хабр писать… как-то не задумывался…
Или все же написать?..
а для mac как такое же сделать?
Ну вроде bash на маках есть, осталось только найти способ нотификации. Здесь я, к сожалению, ничем не могу помочь.
На маке я люблю просто писать «… && say Done»
А вообще уведомлять принято через Growl, но из консоли придется писать много Applescript. Есть готовые скрипты, конечно:
www.macosxhints.com/dlfiles/growl_sh.txt
А вообще уведомлять принято через Growl, но из консоли придется писать много Applescript. Есть готовые скрипты, конечно:
www.macosxhints.com/dlfiles/growl_sh.txt
Ах да, есть же просто growlnotify.
А я просто использую команду `beep -f 2000` :)
UFO just landed and posted this here
скрипт хороший, но ему не хватает многоязыковой поддержки и солидности
вот, можно тут поучиться как надо оформлять бесплатный софт: www.gnu.org/software/hello/
вот, можно тут поучиться как надо оформлять бесплатный софт: www.gnu.org/software/hello/
Спасибо вам большое за работу. Именно то, чего не хватало, но о чем и не догадывался ;)
Свалили бы вы поскорее уже на лор, только засоряете ресурс своим описанием костылей.
Спасибо. Сильно.
все таки такие вещи лучше реализовывать в терминале — очень часто подобные вещи требуются при работе по ssh
А как это можно реализовать в терминале? Я могу представить себе только уведомление по какому-нибудь сетевому протоколу
wrap ssh user@host command
СПАСИБО!
Запускается команда.
Только после запуска, через какое-то время, становится известно, что команда будет работать долго. Тогда я делаю следующую вещь:
Жму Ctrl+Z (или, в терминах unix, ^Z)
Ввожу следующую команду:
Где beep-скрипт нотификации, у меня — свой. Жду плюсов в карму от тех, кому такой рецепт поможет.
В некоторых простых случаях можно использовать «мониторинг активности» или «мониторинг простоя» в screen или konsole.
$ cp -r source destination
Только после запуска, через какое-то время, становится известно, что команда будет работать долго. Тогда я делаю следующую вещь:
Жму Ctrl+Z (или, в терминах unix, ^Z)
[1]+ Stopped cp -r source destination
Ввожу следующую команду:
$ bg; wait; beep [1]+ cp -r source destination &
Где beep-скрипт нотификации, у меня — свой. Жду плюсов в карму от тех, кому такой рецепт поможет.
В некоторых простых случаях можно использовать «мониторинг активности» или «мониторинг простоя» в screen или konsole.
1) У всех работает автодополнение (по Tab) после wrap или просто не нужно? Если нет, можно выполнить команду:
complete -F _command wrap.
Чтобы она работала всегда, её нужно засунуть в .bashrc (не уверен, для себя я собрал PKGBUILD в арче, который создаёт файлик с командой в /etc/bash_completion.d/).
2) Для kde есть ещё интересное решение по выводу сообщений, которые никогда не исчезнут. Т. е. оно высветится и свернётся. Проще увидеть, чем объяснить. Для этого надо взять маленький скрипт на python здесь. Сохраните текст в файл с расширением .py и дайте ему права на исполнение. Теперь в скрипте wrap вместо kdialog вызывайте:
/.../notify.py --s=«Success» «Operation completed».
И т.д. Скрипт написал не я. Нашёл на каком-то форуме, адрес не помню.
complete -F _command wrap.
Чтобы она работала всегда, её нужно засунуть в .bashrc (не уверен, для себя я собрал PKGBUILD в арче, который создаёт файлик с командой в /etc/bash_completion.d/).
2) Для kde есть ещё интересное решение по выводу сообщений, которые никогда не исчезнут. Т. е. оно высветится и свернётся. Проще увидеть, чем объяснить. Для этого надо взять маленький скрипт на python здесь. Сохраните текст в файл с расширением .py и дайте ему права на исполнение. Теперь в скрипте wrap вместо kdialog вызывайте:
/.../notify.py --s=«Success» «Operation completed».
И т.д. Скрипт написал не я. Нашёл на каком-то форуме, адрес не помню.
Sign up to leave a comment.
wrap — shell скрипт для уведомления о завершении команды