Coder Social home page Coder Social logo

zsh-background-notify's Introduction

zsh-background-notify

cross-platform background notifications for long running commands! Supports OSX and Ubuntu linux.

screenshot 2014-11-08 14 15 12

Do you use oh-my-zsh?

RobbyRussel merged (and tweeted about it) this plugin to the main-line oh-my-zsh. If that's what you're running then just add 'bgnotify' to your .zshrc plugins list and you're all set!

Do you use Prezto?

I do too! Prezto rocks-- and works great with bg-notify! (although there's no included plugin (yet?)).

How to use!

  1. Clone the repository:
  • git clone https://github.com/t413/zsh-background-notify.git ~/.zsh-background-notify
  1. And add one line your .zshrc:
  • source $HOME/.zsh-background-notify/bgnotify.plugin.zsh
  1. Done!

Requirements:

  • On OS X you'll need terminal-notifer
    • brew install terminal-notifier (or gem install terminal-notifier)
  • On ubuntu you're already all set!
  • On windows you can use notifu or the Cygwin Ports libnotify package

Screenshots

Linux

screenshot from 2014-11-07 15 58 36

OS X

screenshot 2014-11-08 14 15 12

Windows

screenshot from 2014-11-07 15 55 00

Configuration

One can configure a few things:

  • bgnotify_threshold sets the notification threshold time (default 6 seconds)
  • function notify_formatted lets you change the notification

Use these by adding a function definition before the your call to source. Example:

bgnotify_threshold=4  ## set your own notification threshold

function notify_formatted {
  ## $1=exit_status, $2=command, $3=elapsed_time
  [ $1 -eq 0 ] && title="Holy Smokes Batman!" || title="Holy Graf Zeppelin!"
  bgnotify "$title -- after $3 s" "$2";
}

source $HOME/.zsh/zsh-background-notify/bgnotify.plugin.zsh

How it works

In zsh you can add a user-hook preexec that runs before executing a command and precmd that runs just before re-prompting. Timing the difference between them gives you execution time!

To check if you're in the background we can use xprop to find the NET_ACTIVE_WINDOW in ubuntu and osascript to run a simple apple script to get the same thing (although slower).

Alternatives:

I like linking.. So here are a few similar alternatives to this script. Most are platform-specific and buggy in some way. (Sure is great to use one script on all of your systems!)

zsh-background-notify's People

Contributors

t413 avatar andrey-yantsen avatar shalecraig avatar depressiverobot avatar kernicpanel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.