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 :)