You are not logged in.

#1 2013-03-09 09:37:01

Dan
Member
Registered: 2013-02-02
Posts: 31
Website

Archbey for Manjaro

Modified Archbey for Manjaro

screen1

Here is the code:

#modified for Manjaro by rfk1ll
#create a file in your home directory called archbey.py
#copy and paste this code into it and save.
#in your .bashrc add this line:    python2 /home/rfk1ll/archbey.py    ( with your path-  /your/path/archbey.py ) and save
# on line 54: default = (type your color choice here)  example: default = green
#enjoy


#archbey1 archey

#!/usr/bin/env python2
#
# archey [version 0.1-11]
#
# Maintained by Melik Manukyan 
# Distributed under the terms of the GNU General Public License v3.
# See http://www.gnu.org/licenses/gpl.txt for the full license text.
# Modified for ArchBang -sHyLoCk
# System information tool for Archlinux written in python.

# Import libraries
import os, sys, subprocess, optparse, re
from subprocess import Popen, PIPE
from optparse import OptionParser
from getpass import getuser
from time import ctime, sleep

# Display [Comment/Uncomment to Enable/Disable information.]
display = [
 'os', # Display Operating System
 'hostname', # Display Machine Hostname
 'kernel',  # Display Kernel Version
# 'battery', # Display Battery Usage [Requires 'acpi']
 'uptime',  # Display System Uptime
 'wm',  # Display Window Manager
# 'de', # Display Desktop Environment
 'packages', # Display Number of Packages Installed
 'ram', # Display RAM Usage
 'cpu', # Display CPU Model
 'sh', # Display Current Shell
# 'fs:/boot', # Display /boot Partition Usage
 'fs:/home', # Display /home Partition Usage
# 'fs:/MOUNT/POINT', # Display * Partition, Edit To Your Needs
# 'fs:/' # Display / Partition Usage
 ]
# Array containing Values
result = []

# Options
if __name__=='__main__':
 parser = OptionParser(usage='%prog [-c COLOR] [-s, --screenshot]', description='To customize the info displayed on archey, edit "/usr/bin/archey" directly and look for the display array. Note: Archey can only allow up to 15 fields.', version="%prog 0.1.11")
 parser.add_option('-c',
  action='store', default='green', type='choice', dest='color', choices=('black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'), help='choose a color: black, red, green, yellow, blue, magenta, cyan, white [Default: blue]')
 parser.add_option('-s', '--screenshot',
  action='store_true', dest='screenshot', help='take a screenshot')
 (options, args) = parser.parse_args()

# Define colors
colorscheme = '%s' % options.color
colors = {'black': '0', 'red': '1', 'green': '2', 'yellow': '3', 'blue': '4', 'magenta': '5', 'cyan': '6', 'white': '7'}
for key in colors.keys():
 if key in colorscheme: colorcode = colors[key]    
color = '\x1b[1;3%sm' % colorcode
color2 = '\x1b[0;3%sm' % colorcode
clear = '\x1b[0m'

# Define processes for identifying Desktop Environmentss, Window Managers, Shells.
de_dict = {
 'gnome-session': 'GNOME',
 'ksmserver': 'KDE',
 'xfconfd': 'Xfce'}
           
wm_dict = {
 'awesome': 'Awesome',
 'beryl': 'Beryl',
 'blackbox': 'Blackbox',
 'compiz': 'Compiz',
 'dwm': 'DWM',
 'enlightenment': 'Enlightenment',
 'fluxbox': 'Fluxbox',
 'fvwm': 'FVWM',
 'icewm': 'IceWM',
 'kwin': 'KWin',
 'metacity': 'Metacity',
 'musca': 'Musca',
 'openbox': 'Openbox',
 'pekwm': 'PekWM',
 'ratpoison': 'ratpoison',
 'scrotwm': 'ScrotWM',
 'wmaker': 'Window Maker',
 'wmii': 'wmii',
 'xfwm4': 'Xfwm',
 'xmonad': 'xmonad'}

sh_dict = {
 'zsh': 'Zsh',
 'bash': 'Bash',
 'dash': 'Dash',
 'fish': 'Fish',
 'ksh': 'Ksh',
 'csh': 'Csh',
 'jsh': 'Jsh',
 'tcsh': 'Tcsh'}

# Find running processes.
def xmonadfix(str):
 if re.compile("xmonad").match(str): return "xmonad"
 return str
p1 = Popen(['ps', '-u', getuser()], stdout=PIPE).communicate()[0].split('\n')
processes = map(xmonadfix, [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)
 result.append(output)

# RAM Function
def ram_display():
 raminfo = Popen(['free', '-m'], stdout=PIPE).communicate()[0].split('\n')
 ram = ''.join(filter(re.compile('M').search, raminfo)).split()
 used = int(ram[2]) - int(ram[5]) - int(ram[6])
 output ('RAM', '%s MB / %s MB' % (used, ram[1]))

# Screenshot Function 
screen = '%s' % options.screenshot
def screenshot():
 print 'Taking shot in',
 list = range(1,6)
 list.reverse()
 for x in list:
   print '%s..' % x,
   sys.stdout.flush()
   sleep(1)
 print 'Say Cheeze!'
 subprocess.check_call(['scrot'])

# Operating System Function
def os_display(): 
 arch = Popen(['uname', '-m'], stdout=PIPE).communicate()[0].rstrip('\n')
 os = 'Manjaro %s' % (arch)
 output('OS', os)

# Kernel Function
def kernel_display():
 kernel = Popen(['uname', '-r'], stdout=PIPE).communicate()[0].rstrip('\n')
 output ('Kernel', kernel)

# Hostname Function
def hostname_display():
 hostname = Popen(['uname', '-n'], stdout=PIPE).communicate()[0].rstrip('\n')
 output ('Hostname', hostname)

# CPU Function
def cpu_display():
 file = open('/proc/cpuinfo').readlines()
 cpuinfo = re.sub('  +', ' ', file[4].replace('model name\t: ', '').rstrip('\n'))
 output ('CPU', cpuinfo) 

# 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 += '%d 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():
 de = 'None found'
 for key in de_dict.keys():
  if key in processes: de = de_dict[key]
 output ('Desktop Environment', de)

# Window Manager Function
def wm_display():
 wm = 'None found'
 for key in wm_dict.keys():
  if key in processes: wm = wm_dict[key]
 output ('Window Manager', wm)

# Shell Function
def sh_display():
 sh = os.getenv("SHELL").split('/')[-1].capitalize()
 output ('Shell', sh)

# 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', '-TPh', mount], stdout=PIPE).communicate()[0]
 used = [line for line in p1.split('\n') if line][1]
 used = used.split()[3]
 total = [line for line in p1.split('\n') if line][1]
 total = total.split()[2]
 type = [line for line in p1.split('\n') if line][1]
 type = type.split()[1]
 if mount == '/': mount = '/root'
 fs = mount.rpartition('/')[2].title() + " FS"
 part = '%s / %s (%s)' % (used, total, type)
 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()

# Array containing values.
result.extend(['']*(16 - 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########  ########  ########    %s 
%s########  ########  ########                               
%s """ % (color, color, color, result[0], color, result[1], color, result[2], color, result[3], color, result[4], color, result[5], color, result[6], color, color, color, result[7], color, color, color, result[8], color, color, result[9], color, result[10], color, result[11], color, result[12], color, result[13], color, result[14], color, result[15], color, clear)

if screen == 'True':
 screenshot()

Last edited by Dan (2013-03-09 09:38:58)

Offline

Board footer

Powered by FluxBB