summaryrefslogtreecommitdiff
path: root/archey
diff options
context:
space:
mode:
authorMelik Manukyan <melik@remus.gateway.2wire.net>2009-12-09 02:04:15 -0800
committerMelik Manukyan <melik@remus.gateway.2wire.net>2009-12-09 02:04:15 -0800
commit8e9e3782618f773f105cade858d90c1bad06f051 (patch)
tree72edf4fb4c0465099c0f6a0945a1fe416b6b8226 /archey
parentdb41e798ca1e3a06d9087040ab8c7a185f74c52e (diff)
initial push
Diffstat (limited to 'archey')
-rw-r--r--archey175
1 files changed, 175 insertions, 0 deletions
diff --git a/archey b/archey
new file mode 100644
index 0000000..af68108
--- /dev/null
+++ b/archey
@@ -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()