You can use conky to do this.
Conky is an application that draws an overlay on your desktop showing different system information. You can customise what is shown by creating a ".conkyrc" file in your home directory.
This is the .conkyrc file I use (It's a modified version of the one in PartedMagic):
# the list of variables has been removed from this file in favour # of keeping the documentation more maintainable. # Check http://conky.sf.net for an up-to-date-list. # set to yes if you want Conky to be forked in the background background yes # X font when Xft is disabled, you can pick one with program xfontsel #font 5x7 #font 6x10 font 7x13 #font 8x13 #font 9x15 #font *mintsmild.se* #font -*-*-*-*-*-*-34-*-*-*-*-*-*-* # Use Xft? use_xft no # Xft font when Xft is enabled xftfont Bitstream Vera Sans Mono:size=11 # Text alpha when using Xft xftalpha 0.8 # Print everything to stdout? # out_to_console no # Print everything to console? # out_to_console no # Update interval in seconds update_interval 5.0 # This is the number of times Conky will update before quitting. # Set to zero to run forever. total_run_times 0 #own_window_title Parted Magic - conky # Create own window instead of using desktop (required in nautilus) own_window yes # If own_window is yes, you may use type normal, desktop or override own_window_type normal # Use pseudo transparency with own_window? own_window_transparent yes # If own_window_transparent is set to no, you can set the background colour here own_window_colour black # If own_window is yes, these window manager hints may be used own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager #own_window_hints below,skip_taskbar,skip_pager # Use double buffering (reduces flicker, may not work for everyone) double_buffer yes # Minimum size of text area minimum_size 280 5 # Draw shades? draw_shades yes # Draw outlines? draw_outline no # Draw borders around text draw_borders no # Draw borders around graphs draw_graph_borders yes # Stippled borders? stippled_borders 4 # border margins border_margin 4 # border width border_width 1 # Default colors and also border colors default_color white default_shade_color black default_outline_color black # Text alignment, other possible values are commented #alignment top_left alignment top_right #alignment bottom_left #alignment bottom_right #alignment none # Gap between borders of screen and text # same thing as passing -x at command line gap_x 15 gap_y 15 # Subtract file system buffers from used memory? no_buffers yes # set to yes if you want all text to be in uppercase uppercase no # number of cpu samples to average # set to 1 to disable averaging cpu_avg_samples 2 # number of net samples to average # set to 1 to disable averaging net_avg_samples 2 # Force UTF8? note that UTF8 support required XFT override_utf8_locale no # Add spaces to keep things from moving about? This only affects certain objects. use_spacer none TEXT $Hostname: $nodename $Linux Kernel: $kernel $CPU Details: $machine, $freq(MHz) $CPU History: $$ $CPU Usage:$ $cpu% $ $RAM Usage:$ $mem ($memperc%) $ $Available RAM:$ $memmax $color$stippled_hr $alignc$Processes:$color $processes $Running:$color $running_processes $alignc$(top 5 sorted by CPU usage) $ NAME PID CPU% MEM% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $alignc$(top 5 sorted by MEM usage) $ NAME PID CPU% MEM% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $color$stippled_hr $alignc$System Uptime:$ $uptime $ Battery: $battery_short ($battery_time) $ $