Modul pro Conky zobrazující právě vysílaný pořad na vybraných stanicích. Pokud máte dvb-t kartu v PC, spustí se ve VLC stanice po kliknutí na její název (nutno doplnit frekvence, podle vašeho příjmu)

Tento modul je sice funkční, ale stále jej považuji za testovací (2 večery – narychlo splácaný skript). Prosím vás o případné poznatky chování modulu (i návrhy ohledně dalších modulů).
Pro použití tohoto modulu jsou potřebné tyto změny ve stávajícím skriptu:
nahradit funkci conky_wget() novou verzí, kterou naleznete na konci
pokud používáte modul_pocasi je nutné změnit na začátku modulu počasí:
wget = {}
na:
wget.pocasi = nil
Nastavení modulu TV program:
Nad hlavní již uveřejněnou funkcí je nutno vložit proměnou:
--absolutní cesta k adresáři se soubory pro Conky --(musí končit /) conky_adr = "/home/vlk/conky/"
Výsledek bude např. takto:
pocasi_soubor = "/home/vlk/conky/conky_pocasi" --umístění a název souboru s daty
pocasi_hodnoty = nil --data s předpovědí
pocasi_url = "www.in-pocasi.cz" --adresa pro stahování dat
--absolutní cesta k adresáři se soubory pro Conky
--(musí končit /)
conky_adr = "/home/vlk/conky/"
--tabulka pro stahování pomocí funkce conky_wget()
wget = {}
Dále je potřeba doplnit název do tabulky ‚modul‘, aniž by mezi jednotlivými moduly vzniklo prázdné místo (např.):
modul.name[1] = "system" modul.name[2] = "network" modul.name[3] = "pocasi" modul.name[4] = "disky" modul.name[5] = "tvprogram" modul.name[6] = "procesy"
A doplnit tabulky pro update (hodnoty neměnit), interval (hodnotu zle měnit) a klik_menu(0=zavřené menu, 1=otevřené menu):
update = {
["system"] = nil,
["procesy"] = nil,
["disky"] = nil,
["network"] = nil,
["pocasi"] = nil,
["tvprogram"] = nil,
}
interval = {
["system"] = 300,
["procesy"] = 3,
["disky"] = 5,
["network"] = 4,
["pocasi"] = 10,
["tvprogram"] = 300,
}
klik_menu = {
["procesy"] = 0,
["disky"] = 0,
["network"] = 0,
["pocasi"] = 0,
["tvprogram"] = 0,
}
Nastavení výpisu a spuštění TV ve vlc:
Za podmínkou pro interval dat modulu se nachází 2 proměnné.
tv_pocet = 2 --číslo pro počet vysílaných programů stanice tv_vlc = 0 --pro spouštění televize ve VLC (1 = spustí vlc / 0 = jen výpis programů)
Seznam stanic se řídí podle cookies ze stránek a výpis skriptu lze těmito cookies usměrnit.
--jména potřebných souborů s daty local soubor = "conky_tvprogram" --soubor s daty local cookies = "cookies.txt" --soubor s cookies local url = "www.csfd.cz/televize/?day=0" --url adresa pro stahování dat
Pokud vám postačí výpis programů na stanicích: Nova, Prima, ČT1, ČT2, Barrandov, Nova Cinema, Prima Cool a Prima Love, vymažte proměnnou ‚cookies‘ takto:
local cookies = "" --soubor s cookies
V opačném případě proveďte na stránkách (‚url‘) požadované úpravy a poté musíte vyexportovat cookies ze svého prohlížeče do textového formátu (google napoví). Tento textový soubor musí obsahovat všechny záznamy z navštívené stránky (ostatní možno smazat) a musí být ve stejném adresáři uvedeném u proměnné ‚conky_adr‘ nad hlavní funkcí.
Pokud chcete spouštět stanice ve VLC, nejprve upravte hodnoty v tabulce ‚stanice_vlc‘:
stanice_vlc = {
[1] = {["N"] = "Nova", ["P"] = "frequency=634000000 --program=513",},
[2] = {["N"] = "Prima", ["P"] = "frequency=634000000 --program=773",},
[3] = {["N"] = "ČT1", ["P"] = "frequency=570000000 --program=257",},
[4] = {["N"] = "ČT2", ["P"] = "frequency=570000000 --program=258",},
[5] = {["N"] = "Barrandov", ["P"] = "frequency=634000000 --program=2050",},
[6] = {["N"] = "Nova Cinema", ["P"] = "frequency=634000000 --program=514",},
[7] = {["N"] = "Prima Cool", ["P"] = "frequency=634000000 --program=770",},
[8] = {["N"] = "Prima Love", ["P"] = "frequency=746000000 --program=772",},
[9] = {["N"] = "", ["P"] = "",},
}
Jméno stanice musí být ve stejném formátu jako ve výpisu modulu a frekvenci včetně čísla programu naleznete ve svém souboru *.xspf, který VLC používá pro přehrávání DVB. Soubor xspf lze vytvořit např. pomocí aplikace ‚w-scan‘:
w_scan -L > channels.xspf
Skript modulu tvprogram:
function modul_tvprogram()
------------------------------------------------------------
-- VLKODLAK
-- 2016 ver 0.1
------------------------------------------------------------
-- přehled právě vysílaných pořadů s možností spustit ve VLC
-- vybranou televizní stanici
--
--##########################################################
--
-- pro svou činnost potřebuje: funkce
--[[
kurzor()
pozadi(poz,vyska)
conky_wget()
--]]
--
-- pro svou činnost potřebuje: globální tabulky (před hlavní funkcí - conky_main())
--[[
wget = {}
update = {
["tvprogram"] = nil,
}
interval = {
["tvprogram"] = 300,
}
klik_menu = {
["tvprogram"] = 0,
}
--]]
--
-- pro svou činnost potřebuje: globální proměnné (před hlavní funkcí - conky_main())
--[[
pozadi_menu --nastavuje pozadí pro menu
pozadi_panel --nastavuje pozadí pro panel
pozadi_barva --nastavuje barvu pozadí
rozmer_panelu_x --rozměr panelu v pixelech, musí se shodovat s nastavením
--hodnoty 'minimum_size' v conky.rc
conky_adr --absolutní cesta k adresáři se soubory pro Conky
--]]
--
-- pro svou činnost potřebuje: nainstalované aplikace
--[[
wget --pro stažení dat
vlc --pro spuštění stanice
--]]
------------------------------------------------------------
--proměnná pro identifikaci modulu
local name = "tvprogram"
--vymazání tabulky pro stahování souborů
wget.tvprogram = nil
----------------------------------------
--podmínky pro interval dat modulu
----------------------------------------
if tonumber(update[tostring(name)]) == nil then--první průchod skriptem
--nastavení intervalu
update[tostring(name)] = updates + tonumber(interval[tostring(name)])
----------------------------------------
--nastavení chování výpisu programů
tv_pocet = 2 --číslo pro počet vysílaných programů stanice
tv_vlc = 0 --pro spouštění televize ve VLC (1 = spustí vlc / 0 = jen výpis programů)
----------------------------------------
--tabulka nastavení frekvencí pro VLC
--např.: [1] = {["N"] = "Nova", ["P"] = "frequency=634000000 --program=513",},
stanice_vlc = {
[1] = {["N"] = "Nova", ["P"] = "frequency=634000000 --program=513",},
[2] = {["N"] = "Prima", ["P"] = "frequency=634000000 --program=773",},
[3] = {["N"] = "ČT1", ["P"] = "frequency=570000000 --program=257",},
[4] = {["N"] = "ČT2", ["P"] = "frequency=570000000 --program=258",},
[5] = {["N"] = "Barrandov", ["P"] = "frequency=634000000 --program=2050",},
[6] = {["N"] = "Nova Cinema", ["P"] = "frequency=634000000 --program=514",},
[7] = {["N"] = "Prima Cool", ["P"] = "frequency=634000000 --program=770",},
[8] = {["N"] = "Prima Love", ["P"] = "frequency=746000000 --program=772",},
[9] = {["N"] = "", ["P"] = "",},
}
----------------------------------------
--jména potřebných souborů s daty
local soubor = "conky_tvprogram" --soubor s daty
local cookies = "cookies.txt" --soubor s cookies
local url = "www.csfd.cz/televize/?day=0" --url adresa pro stahování dat
----------------------------------------
--tabulka pro nastavení modulu
tvprogram_tab = {
["tl"] = 0,--pro aktualizaci dat po ručním stažení souboru
["akt"] = nil,--stav aktuálnosti dat
["soubor"] = 0,--pro přítomnost souboru s daty
["brana"] = 0, --dostupnost brány
["pozice_y"] = nil,--pozice 'y' pro modul
}
--smyčka pro nastavení pozice modulu
for a = 1,#modul.name do
local text = tostring(modul.name[a])
if string.match(text, "(%S*)") == tostring(name) then
tvprogram_tab.pozice_y = a
break
end--if string.match(text, "(%S)") == tostring(name) then
end--for a = 1,#modul.name do
----------------------------------------
--definování tabulky pro data
tv_program = {} --hlavní tabulka
----------------------------------------
--test přítomnosti a aktuálnosti souboru
local data = io.popen("ls --full-time "..conky_adr..soubor.." 2> /dev/null")
local line = data:read("*l")
data:close()
if line == nil then
tvprogram_tab.soubor = 0 --soubor neexistuje
else
tvprogram_tab.soubor = 1 --soubor je přítomen
--datum ze souboru
z,k,vyber = string.find(line,"[%S%s]*%d%d%d%d%p(%d%d%p%d%d)")
--systémový datum
local d = conky_parse("${time %e}")
d = string.gsub (d, " ", "0")
local m = conky_parse("${time %m}")
local datum = m.."-"..d
if tostring(datum) == tostring(vyber) then tvprogram_tab.akt = 1 end --data jsou aktuální
end--if line == nil then
----------------------------------------
--uložení aktuálních dat
if tvprogram_tab.akt == 1 then
local tv = 0
for line in io.lines(conky_adr..soubor) do
z,k,vyber = string.find(line, "%pimg%ssrc%p+img%pcsfd%pcz%S+%salt%p+([%S%s]*)%p%sclass")
if vyber ~= nil and vyber ~= "poster" then
tv = tv + 1
tv_program[tonumber(tv)] = {}
tv_program[tonumber(tv)].name = vyber
tv_program[tonumber(tv)].prg = {
["time"] = {},
["minuty"] = {},
["name"] = {},
["year"] = {},
["series"] = {},
["genres"] = {},
}
end--if vyber ~= nil and vyber ~= "poster" then
if tv > 0 then
z,k,vyber = string.find(line,"time%p%p(%d+%p%d+)")
if vyber ~= nil then
table.insert(tv_program[tonumber(tv)].prg.time, vyber)
local minuty = tonumber(string.match(vyber,"(%d%d)%p") * 60) + tonumber(string.match(vyber,"%p(%d%d)"))
table.insert(tv_program[tonumber(tv)].prg.minuty, minuty)
end--if vyber ~= nil then
z,k,vyber = string.find(line,"name%p%p(%S%S)")
if vyber ~= nil then
if vyber ~= "<a" then
z,k,vyber = string.find(line,"name%p%p([%S%s]*)%p%pspan%p")
table.insert(tv_program[tonumber(tv)].prg.name, vyber)
else
z,k,vyber = string.find(line,"name%p%p[%S%s]*film%s%S%S%S%S([%S%s]*)%p%pa%p")
table.insert(tv_program[tonumber(tv)].prg.name, vyber)
z,k,vyber = string.find(line,"film%pyear%p%p%p(%d%d%d%d)%p%p%p", k)
table.insert(tv_program[tonumber(tv)].prg.year,#tv_program[tonumber(tv)].prg.name, vyber)
end--if vyber ~= "<a" then
end--if vyber ~= nil then
z,k,vyber = string.find(line,"series%p%p([%S%s]*)%p%pspan%p")
if vyber ~= nil then
table.insert(tv_program[tonumber(tv)].prg.series,#tv_program[tonumber(tv)].prg.name, vyber)
end
z,k,vyber = string.find(line,"genres%p%p([%S%s]*)%p%pdiv%p")
if vyber ~= nil then
table.insert(tv_program[tonumber(tv)].prg.genres,#tv_program[tonumber(tv)].prg.name, vyber)
end
end--if tv > 0 then
end--for line in io.lines(tv_soubor) do
end--if tvprogram_tab.akt == 1 then
----------------------------------------
--test brány
local data = io.popen("ip route")
while true do
local line = data:read("*l")
if line == nil then break end
z,k,vyber = string.find(line,"default%svia%s(%S+)%s") --ip adresa
if vyber ~= nil then
tvprogram_tab.brana = 1
break
end--if vyber ~= nil then
end--while true do
data:close()
--soubor neexistuje, nebo je zastaralý
if tvprogram_tab.soubor == 0 or tvprogram_tab.akt == nil or tvprogram_tab.akt == 0 then
if tvprogram_tab.brana == 1 then
if tostring(cookies) == "" then
wget.tvprogram = "${texeci 25 wget -q "..url.." -O "..conky_adr..soubor.." }"
else
wget.tvprogram = "${texeci 25 wget --load-cookies "..conky_adr..cookies.." -q "..url.." -O "..conky_adr..soubor.." }"
end--if tostring(cookies) == "" then
tvprogram_tab.tl = 8 --odpočet pro update == nil
else
tvprogram_tab.tl = 15 --odpočet pro update == nil
end--if tvprogram_tab.brana == 1 then
end--if tvprogram_tab.soubor == 0 or tvprogram_tab.akt == nil or tvprogram_tab.akt == 0 then
elseif tonumber(update[tostring(name)]) <= updates then
--nastavení intervalu
update[tostring(name)] = updates + tonumber(interval[tostring(name)])
if tvprogram_tab.akt == 0 then
--test brány
local data = io.popen("ip route")
while true do
local line = data:read("*l")
if line == nil then break end
z,k,vyber = string.find(line,"default%svia%s(%S+)%s") --ip adresa
if vyber ~= nil then
if tostring(cookies) == "" then
wget.tvprogram = "${texeci 25 wget -q "..url.." -O "..conky_adr..soubor.." }"
else
wget.tvprogram = "${texeci 25 wget --load-cookies "..conky_adr..cookies.." -q "..url.." -O "..conky_adr..soubor.." }"
end--if tostring(cookies) == "" then
break
end--if vyber ~= nil then
end--while true do
data:close()
end--if tvprogram_tab.akt == 0 then
end--if tonumber(update[tostring(name)]) == nil then--první průchod skriptem
----------------------------------------
--odpočet pro aktualizaci dat
if tvprogram_tab.tl > 0 then
tvprogram_tab.tl = tvprogram_tab.tl - 1
if tvprogram_tab.tl == 0 then update[tostring(name)] = nil end
end--if tvprogram_tab.tl > 0 then
----------------------------------------
--vypis dat modulu
----------------------------------------
local x = 0
local y = modul.pozice[tonumber(tvprogram_tab.pozice_y)]
--nastavení fontu
cairo_select_font_face (cr, "Mono", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
----------------------------------------
--vykreslení pozadí pro menu
if pozadi_menu == 1 then pozadi(y - 12,15) end
----------------------------------------
--konstrukce pro klikutí na menu
local menu = "TV PROGRAM"
local delka = tonumber(string.len(menu)*7)
--linie - první část
cairo_select_font_face (cr, "Mono", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size (cr, 12.0);
cairo_set_source_rgba (cr, 1,0.7,0,1);
local linie1 = (rozmer_panelu_x - delka)/2 - 5
cairo_rectangle (cr, x,y-5,linie1,1);cairo_fill (cr);
--pozice kurzoru/kliknutí
if mx>=x+linie1+5 and mx<=x+linie1+5+delka+3 and my<=y and my>=y-12 then
cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
if mx == kx and my == ky and klik_menu[tostring(name)] == 0 then
klik_menu[tostring(name)] = 1
elseif mx == kx and my == ky and klik_menu[tostring(name)] == 1 then
klik_menu[tostring(name)] = 0
end--kliknutí
else
cairo_set_source_rgba (cr, 1,0.7,0,1);
end--pozice kurzoru
cairo_move_to (cr, x+linie1+5, y);cairo_show_text (cr, menu);--text menu
--linie - druhá část
cairo_set_source_rgba (cr, 1,0.7,0,1);
local linie2 = rozmer_panelu_x - (linie1+5+delka+7)
cairo_rectangle (cr, x+linie1+5+delka+7,y-5,linie2,1);cairo_fill (cr);
----------------------------------------
--otevřený panel
y = y + 3
if klik_menu[tostring(name)] == 1 then
cairo_select_font_face (cr, "Mono", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
cairo_set_font_size (cr, 10.0);
--soubor neexistuje,nebo je zastaralý
if tvprogram_tab.soubor == 0 or tvprogram_tab.akt ~= 1 then
if pozadi_panel == 1 then pozadi(y+2,46) end
y = y + 25
local text = "Soubor "..tv_soubor
local delka = tonumber(string.len(text)*6)
local pozice = (rozmer_panelu_x - delka) / 2
cairo_set_source_rgba (cr, 0.9,0.9,0.9,1);
cairo_move_to (cr, pozice,y-1);cairo_show_text (cr, text);
y = y + 15
if tvprogram_tab.soubor == 0 then
text = "neexistuje, nebo je poškozený."
delka = 30*6
elseif tvprogram_tab.akt ~= 1 then
text = "obsahuje zastaralá data."
delka = 24*6
end
local pozice = (rozmer_panelu_x - delka) / 2
cairo_set_source_rgba (cr, 0.9,0.9,0.9,1);
cairo_move_to (cr, pozice,y-1);cairo_show_text (cr, text);
y = y + 4
elseif tvprogram_tab.akt == 1 then--data jsou aktuální
--pozadí pro televizní program
if pozadi_panel == 1 then
local poz = y+2
local vyska = (tonumber(tv_pocet * 15) + 15) * #tv_program
pozadi(poz,vyska+2)
end--if pozadi_panel == 1 then
if tvprogram_tab.vyber == nil or tvprogram_tab.vyber >= updates then
tvprogram_tab.vyber = updates + 60
local sys_time = conky_parse("${time %H:%M}")
local minuty = tonumber(string.match(sys_time,"(%d%d)%p")*60) + tonumber(string.match(sys_time,"%p(%d%d)"))
for a = 1,#tv_program do
y = y + 15
--pozice kurzoru/kliknutí
if mx>=x+5 and mx<=rozmer_panelu_x-5 and my<=y and my>=y-12 then
cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
if mx == kx and my == ky and tv_vlc == 1 then
local run = tv_program[tonumber(a)].name
for r = 1,#stanice_vlc do
if tostring(stanice_vlc[tonumber(r)].N) == tostring(run) then
os.execute("killall vlc")
os.execute("vlc --one-instance dvb-t://"..tostring(stanice_vlc[tonumber(r)].P).." 2>/dev/null &")
break
end--if tostring(table_vlc[tostring(run)]) ~= nil then
end--for r = 1,#table_vlc do
end--kliknutí
else
cairo_set_source_rgba (cr, 1,0.7,0,1);
end--pozice kurzoru
cairo_move_to (cr, x+10,y-1);cairo_show_text (cr, tv_program[tonumber(a)].name);
--výpis pořadů
for b = 1,#tv_program[tonumber(a)].prg.time do
--if tonumber(b+tv_pocet) <= #tv_program[tonumber(a)].prg.time then
if tonumber(minuty) <= tonumber(tv_program[tonumber(a)].prg.minuty[tonumber(b+1)]) then
local cas_od = tv_program[tonumber(a)].prg.time[tonumber(b)]
local cas_do = tv_program[tonumber(a)].prg.time[tonumber(b+1)]
local name = tv_program[tonumber(a)].prg.name[tonumber(b)]
local series = tv_program[tonumber(a)].prg.series[tonumber(b)]
local year = tv_program[tonumber(a)].prg.year[tonumber(b)]
--právě teď vysílají
cairo_set_source_rgba (cr, 0.9,0.9,0.9,1);
cairo_show_text (cr, " "..cas_od.."-"..cas_do);
y = y + 15
cairo_move_to (cr, x+25,y-1);
cairo_set_source_rgba (cr, 0.9,0.9,0.9,1);
cairo_show_text (cr, " "..name.." ");
cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
cairo_show_text (cr, series);
cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
cairo_show_text (cr," ");
cairo_show_text (cr,year);
local p = tonumber(tv_pocet-1)
if tonumber(p) >= 1 then
for n = 1, tonumber(p) do
local cas_od = tv_program[tonumber(a)].prg.time[tonumber(b+n)]
local cas_do = tv_program[tonumber(a)].prg.time[tonumber(b+1+n)]
local name = tv_program[tonumber(a)].prg.name[tonumber(b+n)]
local series = tv_program[tonumber(a)].prg.series[tonumber(b+n)]
local year = tv_program[tonumber(a)].prg.year[tonumber(b+n)]
y = y + 15
cairo_move_to (cr, x+20,y-1);
cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
cairo_show_text (cr, cas_od.."-"..cas_do);
cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
cairo_show_text (cr, " "..name.." ");
cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
cairo_show_text (cr, series);
cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
cairo_show_text (cr," ");
cairo_show_text (cr,year);
end--for n = 1, tonumber(p) do
end--if tonumber(p) > 1 then
break
end--if tonumber(minuty) <= tonumber(tv_program[tonumber(a)].prg.minuty[tonumber(b+1)])
--else
--tvprogram_tab.akt = 0 --data jsou neaktuální
--end--if tonumber(b+tv_pocet) <= #tv_program[tonumber(a)].prg.time
end--for b = 1,#tv_program[tonumber(a)].prg.time do
end--for a = 1,#tv_program do
end--if tvprogram_tab.vyber == nil or tvprogram_tab.vyber >= updates then
end--if tvprogram_tab.soubor == 0 or tvprogram_tab.akt ~= 1 then
end--if klik_menu[tostring(name)] == 1 then
----------------------------------------
--pozice pro další modul
if klik_menu[tostring(name)] == 1 then
next_y = y + 18
else
next_y = y + 14
end--if klik_menu[tostring(name)] == 1 then
modul.pozice[tonumber(tvprogram_tab.pozice_y)+1] = next_y
return modul
end--function modul_tvprogram()
--############################################################
Skript nové verze funkce conky_wget()
function conky_wget()
------------------------------------------------------------
-- VLKODLAK 2016 ver 0.3
------------------------------------------------------------
-- stáhne požadovaný soubor pomoci Conky ${texeci }
------------------------------------------------------------
-- pro správnou funkci potřebuje globální tabulku
-- wget = {}
------------------------------------------------------------
-- nastavení v conky.rc
--
-- template9 ${lua_parse wget}
-- TEXT
-- ${template9}
------------------------------------------------------------
local vypis = ""
if wget.pocasi ~= nil then--stahování pro modul_pocasi
vypis = tostring(wget.pocasi)
end
if wget.tvprogram ~= nil then--stahování pro modul_tvprogram
vypis = tostring(wget.tvprogram)
end
return tostring(vypis)
end--function conky_wget()
--############################################################Dobrý den
Jsem už starší generace a není mi úplně jasné o čem je v článku řeč. Co je to ten Conky?
Děkuji za odpověď, s přáním hezkého dne
Dobrý den.
Conky je Linuxová aplikace pro monitorování téměř všech dostupných systémových prostředků. Zobrazuje aktuální stav hardwaru a softwaru, který používáte.
Pomocí různých skriptů (podobný tomu v článku), jej lze rozšířit i o nesystémové
informace (počasí, TV program atd.).
Pro využití takovýchto skriptů, kterých je na internetu mnoho, je potřebné instalovat balík 'conky-all', což lze provést ve správci balíků, nebo v terminálu příkazem:
sudo apt-get install conky-all
Osobne nechapem cely zmysel tohto navrhu, mame napr. Unity (co ma v sebe polku gnome kde bezi aspon 1/3 aplikacii napisanych v pythone a 1/3 v perli) potom mame conky ktory takisto spusta kopu balastu v style python, perl a podobne, vsetko to spolu kvaka cez dbus a my si sem este dopiseme nejaky script v LUA aby sme to spravili este balastovejsie. Ja osobne proti LUA nic nemam pouzivam awesome a mam kopu veci v style conky napisanych prave v LUA pretoze je to jediny scriptovaci jazyk pre awesome. Kolko ramky takato programatorsko-virtualizovano-scriptovana zalezitost musi zrat? Moj desktop ked nabehne mam spotrebu ramky (so vsetkym vsudy co mi bezi) 130MB. Je to rychle spolahlive stabilne, cely desktop sa rovnako pohodlne ovlada klavesnicou aj mysou.... Asi som z ineho casoveho obdobia linuxov....
Kolik to žere? Nemyslím, že by to bylo neúnosné.
Conky s timto LUA skriptem, kde mám oproti zde uveřejněmu navíc dva
moduly --> 19,6 MB
xdotool --> 3,87MB
grafické prostředí cinnamon --> 205MB
gedit, kde píši tento příspěvek --> 39.8MB
Firefox se 7 otevřenými panely --> 639MB
nm-applet, cinnamon-settings, Xorg atd. (celkem 189 procesů).
paměti tak obsazeno celkem 1.25GB ze 7,66GB
Po restartu systému vše zabírá 400MB. Zatížení CPU 1-2% na jádro, aniž by
frekvence výrazně, nebo dlouhodobě eskalovala.
Smysl skriptu? Neustále dostupné mnou požadované informace nejen o systému.
Jedná se o balast? Upřímně? Ano. Tak jako za balast považuji mnoho z linuxu
v poslední době.
To ze potrebujete sledovat co robi Vas tunner, chapem, nejaky plugin na ot by som si napisal aj ja. Ja skor apelujem na cely moderny system desktopov. Miesto toho aby sme sa snazili spravit veci poriadne a cisto, pouzivane kopu virtualizovanych a interpretovanych jazykov, komunikujeme spolu cez dbus (ci je alternativa k win COM) a obhajujeme to tym ze pocitace maju stale vacsi vykon. K comu je potom ten vykon dobry ked v konecnom dosledku to pojde rovnako rychlo ako 486-ka s KDE 1 (ak nei aj horsie)? Awesome som si vybral prave pre to ze je to WM ktory mi ide rovnako rychlo na desktope kde mam 4 jadra a 8G RAM a takisto svizne funguje na malom netbooku kde su 2 atomy a 2G RAM. Ako distro mam gentoo bez pam a bez systemd, ked po boote pustim htopm tak sa mi zoznam procesov sprace na jednu obrazovku nemusim nic scrollovat. Takze stale sa da linux spojazdnit s rezime system bez balastu co pri modernych user friendly distribuciach nehrozi. Ide len o to chciet. Kazdopadne, ak sa Vam paci LUA treba vyskusat awesome, je to sice pracne ale ten desktop sa da neskutocne vyladit :)