Awesome Open Source
Awesome Open Source

undefined undefined undefined undefined

A simple bash script to set an animated battery as desktop wallpaper. It shows charging animation and changes according to battery percentage.



  • 21 different types of battery wallpapers/icons.
  • Shows battery charging animation.
  • Stop animation when the battery is fully charged.
  • When not charging, the wallpaper/icon changes according to battery percentage.
  • Users can add their own icons/styles/wallpapers.
  • Tested on :
    • Window Managers : Openbox, i3wm, bspwm, awesomewm, Fluxbox, Fvwm, Swaywm
    • Desktop Environments : KDE, Pantheon, Gnome, Deepin, Cinnamon, XFCE, LXDE, MATE


Install Following programs on your system before using bwall -

  • acpi : To get battery and charging data
  • feh : To set wallpapers on WMs
  • xrandr : Only if you're using XFCE desktop

Install acpi, feh and xrandr -

# On Archlinux
$ sudo pacman -Sy acpi feh xorg-xrandr

# On Ubuntu or Debian
$ sudo apt-get install acpi feh x11-xserver-utils

For swaywm support users must install oguri. The oguri daemon must be started for the script to work. Oguri can be installed on Arch linux via AUR.


Follow the step below to install bwall on your system -

You can run to test it before installing it on your system.

  • Clone this repository -
$ git clone
  • Change to cloned directory and run -
$ cd battery-wallpaper
$ chmod +x
$ ./

Run the program

  • Open the terminal and execute bwall -
$ bwall

┏┓ ┏━┓╺┳╸╺┳╸┏━╸┏━┓╻ ╻   ╻ ╻┏━┓╻  ╻  ┏━┓┏━┓┏━┓┏━╸┏━┓
┣┻┓┣━┫ ┃  ┃ ┣╸ ┣┳┛┗┳┛   ┃╻┃┣━┫┃  ┃  ┣━┛┣━┫┣━┛┣╸ ┣┳┛
┗━┛╹ ╹ ╹  ╹ ┗━╸╹┗╸ ╹    ┗┻┛╹ ╹┗━╸┗━╸╹  ╹ ╹╹  ┗━╸╹┗╸

Bwall V2.0   : Set desktop wallpaper according to battery percentage.
Developed By : Aditya Shakya (@adi1090x)

Usage : [-h] [-d] delay [-s style]

   -h          Show this help message
   -d  num     Set charging animation delay (default 0.8s)
   -s  style   Name of the wallpaper style to apply
Available styles:  bar  bonsai  cartoon  charge  city  city_alt  colours  cup_black  cup_dark  egg
faded  frame  industrial  leaves  mechanical  panel  paper  pixel_city  slash  space  sweet  

Examples: -s bonsai      Set wallpaper from 'bonsai' style -d 1 -s bar    Set wallpaper from 'bar' style with 1sec delay
  • Select the style you like and run -
$ bwall -s bonsai
[*] Using style : bonsai


Click To View

Bonsai |Charging|Full| |-|-| |gif|gif|

Bar |Charging|Full| |-|-| |gif|gif|

Cartoon |Charging|Full| |-|-| |gif|gif|

Charge |Charging|Full| |-|-| |gif|gif|

Colours |Charging|Full| |-|-| |gif|gif|

Cup Black |Charging|Full| |-|-| |gif|gif|

Cup Dark |Charging|Full| |-|-| |gif|gif|

Egg |Charging|Full| |-|-| |gif|gif|

Faded |Charging|Full| |-|-| |gif|gif|

Frame |Charging|Full| |-|-| |gif|gif|

Industrial |Charging|Full| |-|-| |gif|gif|

Leaves |Charging|Full| |-|-| |gif|gif|

Mechanical |Charging|Full| |-|-| |gif|gif|

Panel |Charging|Full| |-|-| |gif|gif|

Paper |Charging|Full| |-|-| |gif|gif|

Slash |Charging|Full| |-|-| |gif|gif|

Sweet |Charging|Full| |-|-| |gif|gif|

Space |Charging|Full| |-|-| |gif|gif|

Pixel City |Charging|Full| |-|-| |gif|gif|

City |Charging|Full| |-|-| |gif|gif|

City Alt |Charging|Full| |-|-| |gif|gif|

Common Issues

  1. Wallpaper not changing : If your wallpaper is not changing, then open an issue and show me the output of echo $DESKTOP_SESSION.

  2. Not working on XFCE : If this script is not working on xfce, then open the terminal and run xfconf-query -c xfce4-desktop -m and change the wallpaper (any) via xfce4-settings-manager.
    In the terminal, xfconf-query will print lines starting with set:, which show which properties have been changed, check screen & monitor values and modify the script accordingly.

110   ## For XFCE
111   if [[ "$OSTYPE" == "linux"* ]]; then
112      SCREEN="0"
113      MONITOR="1"
114   fi

  1. Autostart : If you want to autostart the script with desktop, you can add it to your WM autostart file & if it doesn't work for you, you can create a desktop file in $HOME/.config/autostart dir.
$ cd $HOME/.config/autostart && touch bwall.desktop

# Add this to bwall.desktop file

[Desktop Entry]
Name=Battery Wallpaper
Comment=Set desktop background according to battery percentage, with charging animation.
Exec=/usr/bin/bwall -s leaves &

Quick FYI

  • In KDE, bwall changes the wallpaper in all the Activities.
  • You can add bwall -s style & to your wm autostart file to set it as wallpaper after login.
  • Have Fun!

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
shell (9,684
linux (2,268
bash (589
ubuntu (322
debian (211
arch-linux (71
unixporn (26

Find Open Source By Browsing 7,000 Topics Across 59 Categories