Posts: 347
Silent Observer
Joined: 08 Aug 2013
#16
Aaaah. Okay, I've changed to texeci, with the intervals set to 60 seconds for the main low battery warning (based on my battery life, I have that set to start 25%; I may yet tweak that to 120 seconds) and 30 seconds for the critical warning at 10%. My battery life, contrary to previous wild-ass-guess estimates based on looking at the hardware bar display, seems to be just over an hour (still far better than no battery). I've also inserted bar color changes at 50% (yellow), 25% (orange), and 10% capacity (red), with green above 50% or when on external power, and of course all the settings (texeci interval, percentage break points, exact message in each script) can be changed in a couple minutes with leafpad.

I'm not on the laptop at the moment, but I'll edit in a few minutes and paste in the current versions of .conkyrc and the three scripts (all tested, all work correctly).

Edit: here is the current state of things:

Code: Select all

$ cat .conkyrc
us# set to yes if you want Conky to be forked in the background
background yes

short_units yes

cpu_avg_samples 2
net_avg_samples 2

out_to_console no

# X font when Xft is disabled, you can pick one with program xfontsel
#font 7x12
#font 6x10
#font 7x13
 font 8x12
#font 7x12
#font *mintsmild.se*
#font -*-*-*-*-*-*-34-*-*-*-*-*-*-*
#font -artwiz-snap-normal-r-normal-*-*-100-*-*-p-*-iso8859-1

# Use Xft?
use_xft yes

# Xft font when Xft is enabled
xftfont gentium:size=10

# Create own window instead of using desktop (required in nautilus, pcmanfm and rox desktops)
own_window yes
own_window_transparent yes
own_window_hints undecorated,sticky,skip_taskbar

# Text alpha when using Xft
xftalpha 0.8

#on_bottom no

# mail spool
mail_spool $MAIL

# Update interval in seconds
update_interval 1

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# Minimum size of text area
minimum_size 5 5
maximum_width 350

# Draw shades?
draw_shades no

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no

# Stippled borders?
stippled_borders 0

# border margins
#border_margin 10

# border width
border_width 2

# Default colors and also border colors
default_color white
default_shade_color white
default_outline_color white

color3 cyan

# Text alignment, other possible values are commented
#alignment top_left
alignment top_right
#alignment bottom_left
#alignment bottom_right

# Gap between borders of screen and text

gap_x 20
gap_y 10

# Add spaces to keep things from moving about?  This only affects certain objects.
use_spacer right

# Subtract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase no

# boinc (seti) dir
# seti_dir /opt/seti

# Possible variables to be used:
#
#      Variable         Arguments                  Description                
#  acpiacadapter                     ACPI ac adapter state.                   
#  acpifan                           ACPI fan state                           
#  acpitemp                          ACPI temperature.                        
#  adt746xcpu                        CPU temperature from therm_adt746x       
#  adt746xfan                        Fan speed from therm_adt746x             
#  battery           (num)           Remaining capasity in ACPI or APM        
#                                    battery. ACPI battery number can be      
#                                    given as argument (default is BAT0).     
#  buffers                           Amount of memory buffered                
#  cached                            Amount of memory cached                  
#  color             (color)         Change drawing color to color            
#  cpu                               CPU usage in percents                    
#  cpubar            (height)        Bar that shows CPU usage, height is      
#                                    bar's height in pixels                   
#  downspeed         net             Download speed in kilobytes              
#  downspeedf        net             Download speed in kilobytes with one     
#                                    decimal                                  
#  exec              shell command   Executes a shell command and displays    
#                                    the output in torsmo. warning: this      
#                                    takes a lot more resources than other    
#                                    variables. I'd recommend coding wanted   
#                                    behaviour in C and posting a patch :-).  
#  execi             interval, shell Same as exec but with specific interval. 
#                    command         Interval can't be less than              
#                                    update_interval in configuration.        
#  fs_bar            (height), (fs)  Bar that shows how much space is used on 
#                                    a file system. height is the height in   
#                                    pixels. fs is any file on that file      
#                                    system.                                  
#  fs_free           (fs)            Free space on a file system available    
#                                    for users.                               
#  fs_free_perc      (fs)            Free percentage of space on a file       
#                                    system available for users.              
#  fs_size           (fs)            File system size                         
#  fs_used           (fs)            File system used space                   
#  hr                (height)        Horizontal line, height is the height in 
#                                    pixels                                   
#  i2c               (dev), type, n  I2C sensor from sysfs (Linux 2.6). dev   
#                                    may be omitted if you have only one I2C  
#                                    device. type is either in (or vol)       
#                                    meaning voltage, fan meaning fan or temp 
#                                    meaning temperature. n is number of the  
#                                    sensor. See /sys/bus/i2c/devices/ on     
#                                    your local computer.                     
#  kernel                            Kernel version                           
#  loadavg           (1), (2), (3)   System load average, 1 is for past 1     
#                                    minute, 2 for past 5 minutes and 3 for   
#                                    past 15 minutes.                         
#  machine                           Machine, i686 for example                
#  mails                             Mail count in mail spool. You can use    
#                                    program like fetchmail to get mails from 
#                                    some server using your favourite         
#                                    protocol. See also new_mails.            
#  mem                               Amount of memory in use                  
#  membar            (height)        Bar that shows amount of memory in use   
#  memmax                            Total amount of memory                   
#  memperc                           Percentage of memory in use              
#  new_mails                         Unread mail count in mail spool.         
#  nodename                          Hostname                                 
#  outlinecolor      (color)         Change outline color                     
#  pre_exec          shell command   Executes a shell command one time before 
#                                    torsmo displays anything and puts output 
#                                    as text.                                 
#  processes                         Total processes (sleeping and running)   
#  running_processes                 Running processes (not sleeping),        
#                                    requires Linux 2.6                       
#  shadecolor        (color)         Change shading color                     
#  stippled_hr       (space),        Stippled (dashed) horizontal line        
#                    (height)        
#  swapbar           (height)        Bar that shows amount of swap in use     
#  swap                              Amount of swap in use                    
#  swapmax                           Total amount of swap                     
#  swapperc                          Percentage of swap in use                
#  sysname                           System name, Linux for example           
#  time              (format)        Local time, see man strftime to get more 
#                                    information about format                 
#  totaldown         net             Total download, overflows at 4 GB on     
#                                    Linux with 32-bit arch and there doesn't 
#                                    seem to be a way to know how many times  
#                                    it has already done that before torsmo   
#                                    has started.                             
#  totalup           net             Total upload, this one too, may overflow 
#  updates                           Number of updates (for debugging)        
#  upspeed           net             Upload speed in kilobytes                
#  upspeedf          net             Upload speed in kilobytes with one       
#                                    decimal                                  
#  uptime                            Uptime                                   
#  uptime_short                      Uptime in a shorter format               
#
#  seti_prog                         Seti@home current progress
#  seti_progbar      (height)        Seti@home current progress bar
#  seti_credit                       Seti@hoome total user credit
## antiX additives examples. Add below Text##
##Battery examples##
##${color}battery: ${color}$acpiacadapter, ${battery_percent BAT1}% 
##${color}battery:${color} ${battery}
####Wireless example##
#${color}Wireless:
#${color}essid: ${wireless_essid wlan0}
#${color}IP:${color} ${addr wlan0}
#${color}speed: ${color} ${wireless_bitrate wlan0}
#${color}link strength: ${color} ${wireless_link_bar 7,50 wlan0}

# stuff after 'TEXT' will be formatted on screen

TEXT
${color}$nodename
${color}Desktop: ${color}${exec cat ~/.antix-session/desktop-code$DISPLAY}
${color}$sysname $kernel
${color}Uptime: $uptime
${color}${time %c}
${color}CPU: ${color}${cpu}${color}%
${color}${cpugraph 12,180}
${color}RAM :$mem${color}/$memmax
${color}${membar 4}
${color}Swap: $swap${color}/$swapmax
${color}${swapbar 4}
${color}Processes: ${color}$processes  ${color}Running: ${color}$running_processes
${color}Power: ${color}$acpiacadapter ${color}Battery: ${battery_percent CMB1}%${if_existing /sys/class/power_supply/AC/online 0}
  ${if_match ${battery_percent CMB1} <= 50}
    ${if_match ${battery_percent CMB1} <= 25}
      ${if_match ${battery_percent CMB1} <= 10}
        ${if_match ${battery_percent CMB1} <= 3}${exec /usr/local/bin/shutdown.sh}
        $else${color red}${texeci 30 /usr/local/bin/verylowbat.sh}$endif
      $else${color orange}${texeci 120 /usr/local/bin/lowbat.sh}$endif
    $else${color yellow}$endif$else${color green}$endif
$else${color green}$endif
${battery_bar 4,180 CMB1}
${color}Root Space:${color} ${fs_free /}/${fs_size /} ${color}= ${fs_free_perc /}%
${color}Home Space:${color} ${fs_free /home}/${fs_size /home} ${color}= ${fs_free_perc /home}%
${color3}${execi 10 persist-enabled}
I've structured the battery bar logic to prevent the page from getting too wide, and to make it clearer to analyze, but in practice, for formatting, it needs to be all on one line from Power: to the last endif.

Code: Select all

$ cat /usr/local/bin/lowbat.sh
#!/bin/bash
yad --image="info" --text="The battery is low. Connect to power or shut down soon." --button="gtk-ok:0"
ans="$?"
case $ans in
0)
    # exit
    exit;
;;
esac

Code: Select all

$ cat /usr/local/bin/verylowbat.sh
#!/bin/bash
yad --image="info" --text="The battery is VERY low. Connect to power or shut down ASAP." --button="gtk-ok:0"
ans="$?"
case $ans in
0)
    # exit
    exit;
;;
esac

Code: Select all

$ cat /usr/local/bin/shutdown.sh
#!/bin/bash
yad --image="info" --text="The battery is critically low! Connect to power and press cancel or save your work (quickly!) and press OK to shutdown." --button="gtk-ok:0" --button="gtk-cancel:1"
ans="$?"
case $ans in
0)
    # shutdown
    sudo -S < ~/.password.file &> ~/.dump.file shutdown -hP 1"Shutting down due to critical low battery!"
;;
1)
    #exit
    exit;
;;
esac
I'm pretty satisfied with where this stands now -- and no installing extra packages and dependencies to make it work!