ПОВТ 52351

Объявление

Знакомимся с правилами http://52351.9bb.ru/viewtopic.php?pid=73#p73

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ПОВТ 52351 » GNU/Linux » [HOWTO] Раписание предметов на рабочем столе


[HOWTO] Раписание предметов на рабочем столе

Сообщений 1 страница 4 из 4

1

0. Ставим conky.
Настройки пихаем в ~/.conkyrc на свое усмотрение. у меня они такие

Код:
alignment top_left
gap_x 4 
gap_y 20
maximum_width 690
use_xft yes
#xftfont DejaVu Sans Mono:size=8
xftfont Terminus:size=10   # нужно что б в системе стоял terminus-font
override_utf8_locale yes
default_color 999999
out_to_console no
update_interval 2
double_buffer yes

TEXT
${color #cccccc}Uptime: $uptime
${color #cccccc}Frequency: $freq Mhz

${color #cccccc}CPU [${color #999999}$cpu%, ${color #cccccc}${i2c 9191-0290 temp 3}°C]
${color #999999}${cpugraph 40,673 999999 cccccc}

${color #cccccc}File systems${offset 154}[mount point]    [device]  [size]    [used]    [avail]
${color #999999}${fs_bar 9,242 /} [/]              hda1      ${fs_size /}   ${fs_used /}   ${fs_free /}
${color #999999}${fs_bar 9,242 /home} [/home]          hda2      ${fs_size /home}  ${fs_used /home}  ${fs_free /home}
${color #999999}${offset 250}[extened]        hda3
${offset 266}[swap]         hda5
${color #999999}${fs_bar 9,242 /usr/portage}   [/usr/portage] hda6      ${fs_size /usr/portage}  ${fs_used /usr/portage}  ${fs_free /usr/portage}
${color #999999}${fs_bar 9,242 /var}   [/var]         hda7      ${fs_size /var}    ${fs_used /var}    ${fs_free /var}
${color #999999}${fs_bar 9,242 /tmp}   [/tmp]         hda8      ${fs_size /tmp}    ${fs_used /tmp}   ${fs_free /tmp}
${color #999999}${fs_bar 9,242 /hda4} [/hda4]          hda4      ${fs_size /hda4}   ${fs_used /hda4}   ${fs_free /hda4}

${color #999999}download${offset 145}upload
${downspeedgraph ppp0 40,200 999999 cccccc} ${upspeedgraph ppp0 40,200 999999 cccccc}

${color #cccccc}${tail ~/todo.txt 11}

${execi 7200 ~/scripts/lessons_list.py}

последняя строка - это как раз и есть расписание (что означает и как пользоваться всем остальным, что представлено в листинге - читайте в "cat /usr/share/doc/conky-*/conkyrc.sample.bz2 | bzip2 -d | less" и "man conky").
запускаем conky из консоли. работает? - останавливаем по Ctrl+C.

1. Теперь создаем директорию scripts и в нем файл с правами на запуск

Код:
mkdir ~/scripts
cd ~/scripts/
touch lessons_list.py && chmod +x lessons_list.py
gedit lessons_list.py

теперь вставляем код программы (ахтунг! отступы в скрипте должны быть сохранены, иначе не заработает!)

Код:
#!/bin/env python
# -*- coding: utf-8 -*-

import re
from time import strftime
from commands import getoutput

current_week_number = getoutput('date +%w')
i_current_week_number = int(current_week_number)
next_week_number = str( ((i_current_week_number<6) and i_current_week_number+1) or 0 )

f = open( '/home/<имя пользователя>/.lessons_list.xml', 'r' )
lessons_list = f.read()
f.close()

def fetch_weeks():
	table = [ '', '' ]
	#table[0]
	table[0] += re.search( r'.*\<week.*name="(.*)"\s*number="'+current_week_number+'".*', lessons_list, re.S ).group(1)+'\n───────────────────\n'
	tmp = re.search( r'\n*\<week.*number="'+current_week_number+'".*\>\n\t*\<lesson number="1"\>(.*)\<\/lesson\>\n\t*\<lesson number="2"\>(.*)\<\/lesson\>\n\t*\<lesson number="3"\>(.*)\<\/lesson\>\n\t*\<lesson number="4"\>(.*)\<\/lesson\>\n\t*\<lesson number="5"\>(.*)\<\/lesson\>', lessons_list )
	table[0] += '1. ' + tmp.group(1) + '\n2. ' +  tmp.group(2) + '\n3. ' + tmp.group(3) + '\n4. ' + tmp.group(4) + '\n5. ' + tmp.group(5) + '\n'
	#table[1]
	table[1] += re.search( r'.*\<week.*name="(.*)"\s*number="'+next_week_number+'".*', lessons_list, re.S ).group(1)+'\n───────────────────\n'
	tmp = re.search( r'\n*\<week.*number="'+next_week_number+'".*\>\n\t*\<lesson number="1"\>(.*)\<\/lesson\>\n\t*\<lesson number="2"\>(.*)\<\/lesson\>\n\t*\<lesson number="3"\>(.*)\<\/lesson\>\n\t*\<lesson number="4"\>(.*)\<\/lesson\>\n\t*\<lesson number="5"\>(.*)\<\/lesson\>', lessons_list )
	table[1] += '1. ' + tmp.group(1) + '\n2. ' +  tmp.group(2) + '\n3. ' + tmp.group(3) + '\n4. ' + tmp.group(4) + '\n5. ' + tmp.group(5) + '\n'

	print table[0], '\n\n', table[1]

fetch_weeks()

2. Ну и сама база с расписанием в xml-ке:

Код:
touch ~/.lessons_list.xml
gedit ~/.lessons_list.xml

Ахтунг! т.к. скрипт написан через задницу, из xml-ки может не все верно вытаскиваться, если не верны будут отступы или перенос строк. (когда руки дойдут - сделаю через нормальное место).

Код:
<?xml version="1.0" encoding="UTF-8"?>
<root>
	<week name="Понедельник" number="1">
	<lesson number="1">Экология</lesson>
	<lesson number="2">ОП! АЙС?</lesson>
	<lesson number="3">БД</lesson>
	<lesson number="4">КТС</lesson>
	<lesson number="5">КТС / --</lesson>
	</week>
	
	<week name="Втроник" number="2">
	<lesson number="1">ЭВМ</lesson>
	<lesson number="2">Иностранный язык</lesson>
	<lesson number="3">Осн.философии / ТВиМС</lesson>
	<lesson number="4">БД</lesson>
	<lesson number="5"></lesson>
	</week>

	<week name="Среда" number="3">
	<lesson number="1">ОП! АЙС?</lesson>
	<lesson number="2">МСС</lesson>
	<lesson number="3">ДМ / этикет</lesson>
	<lesson number="4">БД</lesson>
	<lesson number="5"></lesson>
	</week>

	<week name="Четверг" number="4">
	<lesson number="1">Физкультура</lesson>
	<lesson number="2">НК(МСС) / этикет</lesson>
	<lesson number="3">Культурология</lesson>
	<lesson number="4"></lesson>
	<lesson number="5"></lesson>
	</week>

	<week name="Пятница" number="5">
	<lesson number="1">КТС</lesson>
	<lesson number="2">Культурология</lesson>
	<lesson number="3">ТВиМС</lesson>
	<lesson number="4">ДМ</lesson>
	<lesson number="5"></lesson>
	</week>

	<week name="Суббота" number="6">
	<lesson number="1"></lesson>
	<lesson number="2"></lesson>
	<lesson number="3"></lesson>
	<lesson number="4"></lesson>
	<lesson number="5"></lesson>
	</week>

	<week name="Воскресенье" number="0">
	<lesson number="1"></lesson>
	<lesson number="2"></lesson>
	<lesson number="3"></lesson>
	<lesson number="4"></lesson>
	<lesson number="5"></lesson>
	</week>
</root>

3. Запускаем conky и смотрим. внизу должно появится расписание на сегодняшний и завтрашний день. Можно так же поставить conky на загрузку иксов: если через startx иксы поднимаешь - добавь в ~/.xinitrc

Код:
exec conky &

, если нет - ищи как это сделать в своем DE/WM.

P. S.: в системе уже должен стоять великий божественный Python
P. P. S.: не обращайте внимания на субботы-воскресенья в расписании (они могут понадобится для записи инфы об экзаменах, которые могут быть и в выходные).

0

2

ага в суботу включаешь камп, а там у тебя крупными буквами:"БЛЯ! ЭКЗАМЕН!"

0

3

Alexander написал(а):

ага в суботу включаешь камп, а там у тебя крупными буквами:"БЛЯ! ЭКЗАМЕН!"

дык да, так и есть ваще-то :-D
еще есть "БЛЯ, ЗАЧОТ!" и "БЛЯ, ПЕРЕСДАЧА!".

а так же "БЛЯ, КУРСОВИК!" и особо непопулярное "БЛЯЯЯЯЯЯ! ДИПЛОМ!"

0

4

Вместе с листингом выкладывай тада сразу и таблетачки от сердца а то вдруг приплохеет  сутра ...

0


Вы здесь » ПОВТ 52351 » GNU/Linux » [HOWTO] Раписание предметов на рабочем столе