Skip to main content

A simple laptop battery monitor script

The script displays alert when the battery falls below 20% or charges up beyond 80% which should be the optimal range of its working.The code is as below. Just copy and paste and save as any file name but preferably battery-notify.sh. The script can independent of what name it is given. Needs to have acpi (default install) and notify-send installed (sudo apt-get install notify-osd).


============================================

#!/bin/bash


# battery-notify v2.5.1 by JOnes


# It is a script to monitor battery and keep it between 20% to 80% the optimal battery working range. If the battery goe beyonds the set limit it gives pop-ups every 10 seconds. No sound warning as sound can easily be muted and ignored.
# Things that could be added : 1> The flexibilty of range. But it is not recommended hence not implemented. 2> Notification in form of email or sms. 3> Sound / beep for critical state of battery.
# The script goes into background. To kill it at any time use : battery-notify.sh kill

# do not have to edit beyond this line
#------------------------------------------


if [ "$1" == "kill" ]
then
# if command line parameter is "kill" then kill all running instances of this script.

nnn=`ps aux | grep $0 | tr -s " " | cut -d" " -f2 `
echo -e $$ "\n====" # prints PID of this instance of script. make sure not to kill itself.
for ii in `echo $nnn`
do
if [ "$ii" -ne "$$" ]
then
echo "Killing PID:" $ii
kill -9 $ii
fi
done
exit
fi



# exit if another instance is running

process=$0
# value of this exp_count depends on the number of cores of CPU. check the process on first run and apply the value here. Need to uncomment the line #echo ${run_count} to chcck no. of cores used by kernel. It maybe different for the physical no. of cores.
exp_count=2

run_count=`ps aux | grep $process | grep -v 'grep' | wc -l`

# uncomment this line to chcck no. of cores used by kernel. It maybe different for the physical no. of cores.
#echo ${run_count}

if [ ${exp_count} -eq ${run_count} ] ; then
# do nothing; just exit the if statement
echo
else
echo "another instance is running"
echo -e "The script goes into background. To kill it at any time use : " `basename $0` "kill"
exit
fi


if [ ! `which acpi` ] ; then
echo -e "Install acpi \nsudo apt-get install acpi"
exit 0
fi

if [ ! `which notify-send` ] ;then
echo -e "Install notify-send \nsudo apt-get install libnotify-bin"
exit 0
fi

v1=`echo $0 | sed 's/\.//' | sed 's|\/||' `


echo -e "The script goes into background. To kill it at any time use : " `basename $0` "kill"

echo "----------------------"
acpi | cut -d" " -f4
echo "----------------------"
sensors | grep "Core"
echo "----------------------"


{
while [ 1 ]
do
# this snippet extracts the battery status as percentage
aa=`acpi | cut -d"," -f2 | tr -d "% "`
# grep -c counts the no. of occurance of the text
bb1=`acpi | grep -c "Discharging"`
bb2=`acpi | grep -c "Charging"`
#echo $bb1 $bb2


# if discharging then
if [[ $bb1 > 0 ]] ; then
if [[ $aa < 20 ]] ; then
notify-send -t 100 "Battery Status: $aa%. Plug charger"
fi
fi


# if charging then
if [[ $bb2 > 0 ]] ; then
if [[ $aa > 80 ]] ; then
notify-send -t 1000 "Battery Status: $aa%. Unplug charger."
fi
fi


sleep 10
done


}&


Comments

Popular posts from this blog

Fastest way to send multiple drafts from gmail

People claim that the fastest way to send multiple email drafts is to use Gmail IMAP with email client like Outlook or Evolution or Thunderbird. But I have found this is not true. Because Thunderbird and Evolution etc. email clients treats the drafts as emails still to be edited. So it is not just simple select all and hit send. Each email draft has to be opened and sent separately. That is a lot of clicks and mouse movements, wasting precious time and energy. I have a better solution which involves minimum keystrokes and mouse usage. Efficiency booster technique for sending emails. If someone is feeling adventurous and want to try it from the Gmail interface itself, here's how to do it in the fastest possible manner. It involves using the mouse once. Select the first draft. Gmail would open a new email box and put the cursor inside the box to write. Press TAB once to go the Send button. Press ENTER to send. Now Gmail sends it and the box is gone but the highlight goes to the last

LYRICS OF CHANDRABINDOO

___________________________________________________________________ SWEET HEART FROM AAR JAANI NAA(T-SERIES) -- SWEETHEART -- Pratham college-er din ta Aajo thik e mone poRey scene ta Dada didi haath dhorey siNRi tei bose poRey Aamar chokh ta ghorey bon bon bon bon Sweetheart, I am seating alone Sweetheart, for me there is none DhoNk gile chole gelo pratham maas Meye dekhlei feli deergho-shwash DhoNk gile chole gelo pratham maas Meye dekhlei othe nabhishwash Meyera bheeshan smart poRey chhoto mini-skirt Aamar e je sheet korey kon kon kon kon Sweetheart, I am seating alone Sweetheart, for me there is none Taarporey kete gelo maas chaar Fuse holo je kato future Bandhura purse khule eke oke taake tole Aamar pran ta korey chon mon chon mon Sweetheart, I am seating alone Sweetheart, for me there is none Ekdin lawn theke beriye Ek tanayaar dike taakiye Hawt korey ki je holo magaj ta ghurey gelo Taar kaaner saamne kori ghyan ghyan ghyan ghyan Sweetheart, I am seating alone Sweethea

Changing the font size of section headings in LaTex

You have several ways to do so: 1.- A direct redefinition of \section: \makeatletter \renewcommand\section{\@startsection{section}{1}{\z@}%                                   {-3.5ex \@plus -1ex \@minus -.2ex}%                                   {2.3ex \@plus.2ex}%                                   {\normalfont\large\bfseries}} \makeatother 2.- By means of the titlesec package: \usepackage{titlesec} \titleformat{\section}{\large\bfseries}{\thesection}{1em}{} 3.- By means of the sectsty package: \usepackage{sectsty} \sectionfont{\large} source : http://www.latex-community.org/forum/viewtopic.php?f=4&t=3245   Now, I would explain the titlesec package a bit more (because it seems easier to me and with more options) : To change the section fonts with this package put the following lines in the preamble - \usepackage{titlesec} \titleformat{\ section }{\ large \ bfseries }{\thesection}{1em}{} Options available are- a> Font size - \normals