diff options
author | Melik Manukyan <melik@remus.gateway.2wire.net> | 2009-12-09 02:04:15 -0800 |
---|---|---|
committer | Melik Manukyan <melik@remus.gateway.2wire.net> | 2009-12-09 02:04:15 -0800 |
commit | 8e9e3782618f773f105cade858d90c1bad06f051 (patch) | |
tree | 72edf4fb4c0465099c0f6a0945a1fe416b6b8226 | |
parent | db41e798ca1e3a06d9087040ab8c7a185f74c52e (diff) |
initial push
-rw-r--r-- | archey | 175 |
1 files changed, 175 insertions, 0 deletions
@@ -0,0 +1,175 @@ +#!/usr/bin/env python + +# Import libraries. +import subprocess +from subprocess import Popen, PIPE + +###### Color Scheme ####### +# Uncomment whatever color scheme you prefer. +clear = '\x1b[0m' # clear [Do NOT comment out] + +# color = '\x1b[1;30m' # black +# color2 = '\x1b[0;30m' # black + +# color = '\x1b[1;31m' # red +# color2 = '\x1b[0;30m' # red + +# color = '\x1b[1;32m' # green +# color2 = '\x1b[0;32m' # green + +# color = '\x1b[1;33m' # yellow +# color2 = '\x1b[0;33m' # yellow + +color = '\x1b[1;34m' # blue [Default] +color2 = '\x1b[0;34m' # blue [Default] + +# color = '\x1b[1;35m' # magenta +# color2 = '\x1b[0;35m' # magenta + +# color = '\x1b[1;36m' # cyan +# color2 = '\x1b[0;36m' # cyan + +# color = '\x1b[1;37m' # white +# color2 = '\x1b[0;37m' # white + +###### Values to display ####### +# Possible Options [Enabled by default]: os, kernel, uptime, de, wm, packages, fs:/ +# Possible Options [Disabled by default]: battery, fs:/MOUNT/POINT +display = [ 'os', 'kernel', 'uptime', 'de', 'wm', 'packages', 'fs:/' ] + +# Array containing values. +list = [] + +###### Screenshot ####### +# Set to 'True' to enable screenshot. +screen = 'False' +def screenshot(): + subprocess.check_call(["scrot", "-cd5"]) + +# Find running processes. +p1 = Popen(['ps', '-A'], stdout=PIPE).communicate()[0].split('\n') +processes = [process.split()[3] for process in p1 if process] +p1 = None + +# Print coloured key with normal value. +def output(key, value): + output = '%s%s:%s %s' % (color, key, clear, value) + list.append(output) + +# Operating System Function +def os_display(): + arch = Popen(['uname', '-m'], stdout=PIPE).communicate()[0].rstrip('\n') + os = 'Arch Linux %s' % (arch) + output('OS', os) + +# Kernel Function +def kernel_display(): + kernel = Popen(['uname', '-r'], stdout=PIPE).communicate()[0].rstrip('\n') + output ('Kernel', kernel) + +# Uptime Function +def uptime_display(): + fuptime = int(open('/proc/uptime').read().split('.')[0]) + day = int(fuptime / 86400) + fuptime = fuptime % 86400 + hour = int(fuptime / 3600) + fuptime = fuptime % 3600 + minute = int(fuptime / 60) + uptime = '' + if day == 1: + uptime += '% day, ' % day + if day > 1: + uptime += '%d days, ' % day + uptime += '%d:%02d' % (hour, minute) + output('Uptime', uptime) + +# Battery Function [Requires: acpi] +def battery_display(): + p1 = Popen(['acpi'], stdout=PIPE).communicate()[0].lstrip() + battery = p1.split(' ')[3].rstrip('\n') + output ('Battery', battery) + +# Desktop Environment Function +def de_display(): + dict = {'gnome-session': 'GNOME', + 'ksmserver': 'KDE', + 'xfce-mcs-manager': 'Xfce'} + de = 'None found' + for key in dict.keys(): + if key in processes: de = dict[key] + output ('DE', de) + +# Window Manager Function +def wm_display(): + dict = {'awesome': 'Awesome', + 'beryl': 'Beryl', + 'blackbox': 'Blackbox', + 'dwm': 'DWM', + 'enlightenment': 'Enlightenment', + 'fluxbox': 'Fluxbox', + 'fvwm': 'FVWM', + 'icewm': 'icewm', + 'kwin': 'kwin', + 'metacity': 'Metacity', + 'openbox': 'Openbox', + 'wmaker': 'Window Maker', + 'xfwm4': 'Xfwm', + 'xmonad': 'Xmonad'} + wm = 'None found' + for key in dict.keys(): + if key in processes: wm = dict[key] + output ('WM', wm) + +# Packages Function +def packages_display(): + p1 = Popen(['pacman', '-Q'], stdout=PIPE) + p2 = Popen(['wc', '-l'], stdin=p1.stdout, stdout=PIPE) + packages = p2.communicate()[0].rstrip('\n') + output ('Packages', packages) + +# File System Function +def fs_display(mount=''): + p1 = Popen(['df', '-Th', mount], stdout=PIPE).communicate()[0] + part = [line for line in p1.split('\n') if line][1] + part = part.split()[3] + if mount == '/': mount = '/root' + fs = mount.rpartition('/')[2].title() + output (fs, part) + +# Run functions found in 'display' array. +for x in display: + call = [arg for arg in x.split(':') if arg] + funcname=call[0] + "_display" + func=locals()[funcname] + if len(call) > 1: + func(arg) + else: + func() + +# Fill the rest of array 'list' with blank values. [Do not remove] +list.extend(['']*(13 - len(display))) + +###### Result ####### +print """%s +%s + +%s # +%s ### %s +%s ##### %s +%s ###### %s +%s ; #####; %s +%s +##.##### %s +%s +########## %s +%s ######%s#####%s##; %s +%s ###%s############%s+ %s +%s #%s###### ####### %s +%s .######; ;###;`\". %s +%s .#######; ;#####. %s +%s #########. .########` %s +%s ######' '###### %s +%s ;#### ####; +%s ##' '## +%s #' `# %s +""" % (color, color, color, color, list[0], color, list[1], color, list[2], color, list[3], color, list[4], color, list[5], color, color2, color, list[6], color, color2, color, list[7], color, color2, list[8], color2, list[9], color2, list[10], color2, list[11], color2, list[12], color2, color2, color2, clear) + +# Take screenshot if it is enabled. +if screen == 'True': screenshot() |