[РЕШЕНО] Вопрос насчёт программы «alsi»

Здраствуйте. Стоит ArchLinux + mate. Поставил Alsi а она показывает либо DE либо WM но вместе их не показывает. Как можно сделать чтоб показывало и DE и WM. Кстати WM compiz.



Открывал файл alsi.output я так понимаю он за это отвечает так вот что в нём:

#!/usr/bin/perl
# '%sTitle:%s %s'
#  |    \   \  ` Value
#  \     \   `-- End of BC (or start of NC)
#   BC    ` Label
# NC = normal color (color1)
# BC = bold color   (color2)
#-- Other valid options are:
# USERNAME   - ex: {USERNAME => '%sUsername:%s %s'},
# CPU_LOAD   - ex: {CPU_LOAD => '%sCPU load average:%s %s'},
# INIT_MODE  - ex: {INIT_MODE => '%sInit mode:%s %s'},
# OTHER      - ex: {OTHER => '%sResolution:%s 1024x768'},
# COMMAND    - ex: {COMMAND => ['%sBinaries:%s %s', 'ls /usr/bin | wc -l']},
# HARDCODED  - ex: {HARDCODED => "\e[1;37m\e[41mTHIS IS ALSI\e[0m"},
# GTK3_THEME      - ex: {GTK3_THEME      => '%sGTK3 theme:%s %s'},
# GTK3_ICON_THEME - ex: {GTK3_ICON_THEME => '%sGTK3 icon theme:%s %s'},
# GTK3_FONT_NAME  - ex: {GTK3_FONT_NAME  => '%sGTK3 font name:%s %s'},
[
    {OS       => '%sOS:%s %s'},          # Operating system
    {HOSTNAME => '%sHostname:%s %s'},    # Hostname
    {UPTIME   => '%sUptime:%s %s'},      # Uptime
    {KERNEL   => '%sKernel:%s %s'},      # Kernel version
    {SHELL    => '%sShell:%s %s'},       # Shell
    {PACKAGES => '%sPackages:%s %s'},    # Number of installed packages
    {WM_DE       => '%s%s:%s %s'},       # Window Manager or Desktop Environment
#   {GTK2_THEME      => '%sGTK2 theme:%s %s'},         # Gtk2 theme
#   {GTK2_ICON_THEME => '%sGTK2 icon theme:%s %s'},    # Gtk2 icon theme
#   {GTK2_FONT_NAME  => '%sGTK2 font name:%s %s'},     # Gtk2 font name
    {RAM        => '%sRAM:%s %s'},                # RAM usage
    {CPU        => '%sCPU:%s %s'},                # CPU name
    {PARTITIONS => undef},                        # Partitions goes here
]

А именно строка:

    {WM_DE       => '%s%s:%s %s'},       # Window Manager or Desktop Environment

Какраз и предпологает отображение только одного либо DE либо WM. Хотя видел у людей на скринах в alsi было что показывало и DE и WM. Вот и хотел узнать как можно сделать это.
Если вы не знаете, то скажите пожалуйста хотя бы как в archey сделать значок арча как в alsi и где там конфигурационные фалы как в alsi
** Config file   : /home/vadim/.config/alsi/alsi.conf
** Colors file   : /home/vadim/.config/alsi/alsi.colors
** Output file   : /home/vadim/.config/alsi/alsi.output
** Logo   file   : /home/vadim/.config/alsi/alsi.logo
** WManagers     : /home/vadim/.config/alsi/alsi.wm
** DEnvironments : /home/vadim/.config/alsi/alsi.de
Просто в archey показывает и DE и WM (только вот поле DE пустое вот и спрашиваю про конфигурационные файлы), и значок арча в alsi посимпатичнее.
Alsi написан на Perl, Archey - на Python.
Скрипты простые - откройте исходники и посмотрите массив строк, формирующий "значек".
И конфиг. файлы там, соответственно разные... если они есть.
А так там все просто, можете такое же сваять на bash. Если интересно. :)
corner
Я не очень понимаю как сделать это - "откройте исходники". Можно по подробнее?)
archey
Отображение DE/WM в словарях
deDict = {
'gnome-session': 'GNOME',
'ksmserver': 'KDE',
'xfce4-session': 'Xfce',
'lxsession': 'LXDE'
}
и
wmDict{.....}
Что там в alsi не знаю, поскольку сейчас не использую.
HP Pavilion g6-1054er
DualCore Intel Core i5-2410M, 8GB DDR3 SDRAM, Mobile Intel HD Graphics, ATI Radeon HD 6470M
И perl-скрипты, и python-скрипты являются текстовыми файлами с , грубо говоря, набором инструкций соответсвующего интерпритатора..
Всем спасибо) У меня всё получилось)
Вот так сделал:



Это archey немного изменённый)
Если кому понравилось то делать так:
Открыл /usr/bin/archey и довёл содержимое до такого вида:

#!/usr/bin/env python
#
# Archey [version 0.3.0]
#
# Archey is a simple system information tool written in Python.
#
# Copyright 2010 Melik Manukyan <[email protected]>
#
# ASCII art by Brett Bohnenkamper <[email protected]>
# Changes Jerome Launay <[email protected]>
# Fedora support by YeOK <[email protected]>
#
# Distributed under the terms of the GNU General Public License v3.
# See http://www.gnu.org/licenses/gpl.txt for the full license text.
# Import libraries
import os, sys, subprocess, optparse, re, linecache
from subprocess import Popen, PIPE
from optparse import OptionParser
from getpass import getuser
from time import ctime, sleep
#---------------Output---------------#
output = [ 'User', 'Hostname', 'Distro', 'Kernel', 'Uptime', 'WindowManager', 'DesktopEnvironment', 'Shell', 'Terminal', 'Packages', 'CPU', 'RAM', 'Disk' ]
#---------------Dictionaries---------------#
colorDict = {
	'Arch Linux': ['\x1b[0;34m', '\x1b[1;34m'],
	'Ubuntu': ['\x1b[0;31m', '\x1b[1;31m', '\x1b[0;33m'],
	'Debian': ['\x1b[0;31m', '\x1b[1;31m'],
	'Mint': ['\x1b[0;32m', '\x1b[1;37m'],
	'Crunchbang': ['\x1b[1;37m'],
	'Fedora': ['\x1b[0;34m', '\x1b[1;37m'],
	'Sensors': ['\x1b[0;31m', '\x1b[0;32m', '\x1b[0;33m'],
	'Clear': ['\x1b[0m']
	}
deDict = {
	'gnome-session': 'GNOME',
	'ksmserver': 'KDE',
	'mate-session': 'Mate',
	'xfce4-session': 'Xfce',
	'lxsession': 'LXDE'
	}
wmDict = {
	'awesome': 'Awesome',
	'beryl': 'Beryl',
	'blackbox': 'Blackbox',
	'compiz': 'Compiz',
	'dwm': 'DWM',
	'enlightenment': 'Enlightenment',
	'fluxbox': 'Fluxbox',
	'fvwm': 'FVWM',
	'i3': 'i3',
	'icewm': 'IceWM',
	'kwin': 'KWin',
	'metacity': 'Metacity',
	'musca': 'Musca',
	'openbox': 'Openbox',
	'pekwm': 'PekWM',
	'ratpoison': 'ratpoison',
	'scrotwm': 'ScrotWM',
	'wmaker': 'Window Maker',
	'wmfs': 'Wmfs',
	'wmii': 'wmii',
	'xfwm4': 'Xfwm',
	'xmonad': 'xmonad'
	}
logosDict = {'Arch Linux': '''{color[1]}
{color[0]}                  ##			{results[0]}
{color[0]}                 #{color[1]}##{color[0]}#			{results[1]}
{color[0]}                #{color[1]}####{color[0]}#			{results[2]}
{color[0]}               #{color[1]}######{color[0]}#			{results[3]}
{color[0]}              #{color[1]}########{color[0]}#		{results[4]}
{color[0]}             #{color[1]}##########{color[0]}#		{results[5]}
{color[0]}            #{color[1]}############{color[0]}#		{results[6]}
{color[0]}           #{color[1]}##############{color[0]}#		{results[7]}
{color[0]}          #{color[1]}################{color[0]}#		{results[8]}
{color[0]}         #{color[1]}##################{color[0]}#		{results[9]}
{color[0]}        #{color[1]}#######{color[0]}######{color[1]}#######{color[0]}#		{results[10]}
{color[0]}       #{color[1]}#######{color[0]}#      {color[0]}#{color[1]}#######{color[0]}#		{results[11]}
{color[0]}      #{color[1]}########{color[0]}#      {color[0]}#{color[1]}########{color[0]}#	{results[12]}
{color[0]}     #{color[1]}#########{color[0]}#      {color[0]}#{color[1]}#########{color[0]}#	{results[13]}
{color[0]}    #{color[1]}######{color[0]}###          {color[0]}###{color[1]}######{color[0]}#	{results[14]}
{color[0]}   #{color[1]}####{color[0]}##                  {color[0]}##{color[1]}####{color[0]}#	{results[15]}
{color[0]}  #{color[1]}##{color[0]}#                          {color[0]}#{color[1]}##{color[0]}#	{results[16]}
{color[0]} #{color[1]}#{color[0]}#                              {color[0]}#{color[1]}#{color[0]}#	{results[17]}
\x1b[0m'''
}
processes = str(subprocess.check_output(('ps', '-u', getuser(), '-o', 'comm',
	'--no-headers')), encoding='utf8').rstrip('\n').split('\n')
#---------------Classes---------------#
class Output:
	results = []
	results.extend(['']*(18-len(output)))
	def __init__(self):
		self.distro = self.__detectDistro()
	def __detectDistro(self):
		if os.path.exists('/etc/pacman.conf'):
			return 'Arch Linux'
		else:
			sys.exit(1)
	def append(self, display):
		self.results.append('%s%s: %s%s' % (colorDict[self.distro][1], display.key, colorDict['Clear'][0], display.value))
	def output(self):
		print(logosDict[self.distro].format(color = colorDict[self.distro], results = self.results))
class User:
	def __init__(self):
		self.key = 'User'
		self.value = os.getenv('USER')
class Hostname:
	def __init__(self):
		hostname = Popen(['uname', '-n'], stdout=PIPE).communicate()[0].decode('Utf-8').rstrip('\n')
		self.key = 'Hostname'
		self.value = hostname
class Distro:
	def __init__(self):
		if os.path.exists('/etc/pacman.conf'):
			distro =  'Arch Linux'
		self.key = 'Distro'
		self.value = distro
class Kernel:
	def __init__(self):
		kernel = Popen(['uname', '-r'], stdout=PIPE).communicate()[0].decode('Utf-8').rstrip('\n')
		self.key = 'Kernel'
		self.value = kernel
class Uptime:
	def __init__(self):
		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)
		self.key = 'Uptime'
		self.value = uptime
class WindowManager:
	def __init__(self):
		wm = ''
		for key in wmDict.keys():
			if key in processes:
				wm = wmDict[key]
				break
		self.key = 'Window Manager'
		self.value = wm
class DesktopEnvironment:
	def __init__(self):
		de = ''
		for key in deDict.keys():
			if key in processes:
				de = deDict[key]
				break
		self.key = 'Desktop Environment'
		self.value = de
class Shell:
	def __init__(self):
		self.key = 'Shell'
		self.value = os.getenv('SHELL')
class Terminal:
	def __init__(self):
		self.key = 'Terminal'
		self.value = os.getenv('TERM')
class Packages:
	def __init__(self):
		p1 = Popen(['pacman', '-Q'], stdout=PIPE).communicate()[0].decode("Utf-8")
		packages = len(p1.rstrip('\n').split('\n'))
		self.key = 'Packages'
		self.value = packages
class CPU:
    def __init__(self):
        file = open('/proc/cpuinfo').readlines()
        cpuinfo = re.sub('  +', ' ', file[4].replace('model name\t: ', '').rstrip('\n'))
        self.key = 'CPU'
        self.value = cpuinfo
class RAM:
	def __init__(self):
		raminfo = Popen(['free', '-m'], stdout=PIPE).communicate()[0].decode('Utf-8').split('\n')
		ram = ''.join(filter(re.compile('M').search, raminfo)).split()
		used = int(ram[2]) - int(ram[5]) - int(ram[6])
		usedpercent = ((float(used) / float(ram[1])) * 100)
		if usedpercent <= 33:
			ramdisplay = '%s%s MB %s/ %s MB' % (colorDict['Sensors'][1], used, colorDict['Clear'][0], ram[1])
		if usedpercent > 33 and usedpercent < 67:
			ramdisplay = '%s%s MB %s/ %s MB' % (colorDict['Sensors'][2], used, colorDict['Clear'][0], ram[1])
		if usedpercent >= 67:
			ramdisplay = '%s%s MB %s/ %s MB' % (colorDict['Sensors'][0], used, colorDict['Clear'][0], ram[1])
		self.key = 'RAM'
		self.value = ramdisplay
class Disk:
    def __init__(self):
        p1 = Popen(['df', '-Tlh', '--total', '-t', 'ext4', '-t', 'ext3', '-t', 'ext2', '-t', 'reiserfs', '-t', 'jfs', '-t', 'ntfs', '-t', 'fat32', '-t', 'btrfs', '-t', 'fuseblk'], stdout=PIPE).communicate()[0].decode("Utf-8")
        total = p1.splitlines()[-1]
        used = total.split()[3]
        size = total.split()[2]
        usedpercent = float(total.split()[5][:-1])
        if usedpercent <= 33:
            disk = '%s%s %s/ %s' % (colorDict['Sensors'][1], used, colorDict['Clear'][0], size)
        if usedpercent > 33 and usedpercent < 67:
            disk = '%s%s %s/ %s' % (colorDict['Sensors'][2], used, colorDict['Clear'][0], size)
        if usedpercent >= 67:
            disk = '%s%s %s/ %s' % (colorDict['Sensors'][0], used, colorDict['Clear'][0], size)
        self.key = 'Disk'
        self.value = disk
classes = {
 'User': User,
 'Hostname': Hostname,
 'Distro': Distro,
 'Kernel': Kernel,
 'Uptime': Uptime,
 'WindowManager': WindowManager,
 'DesktopEnvironment': DesktopEnvironment,
 'Shell': Shell,
 'Terminal': Terminal,
 'Packages': Packages,
 'CPU': CPU,
 'RAM': RAM,
 'Disk': Disk
 }
out = Output()
for x in output:
	out.append(classes[x]())
out.output()
 
Зарегистрироваться или войдите чтобы оставить сообщение.