Sziasztok!
Nem tudom, hogy mekkora fába vágtam a fejszémet, de szeretnék egy saját asztali környezetet fejleszteni. Igazából nem tudom, hogy van-e különbség a Window Manager és a Desktop Environment között. Mindenképpen az X Window Systemre épülőt szeretnék. Egyelőre egy alap fájlkezelővel meg némi grafikus beállítási lehetőséggel (óra, dátum). A célom egy nagyon egyszerű, letisztulr fekete-fehér vagy monokróm felület létrehozása lenne, amit érintéssel is egyszerű lehet kezelni azért, mert igazából egy e-paper kijelzős táblagéphez szánnám. Időm van rá, csak nem tudom honnan induljak. Gondolkodtam a dolgon, de azonosítást mindenképpen szeretnék az elején, az meg tudtommal megint egy külön kategória. Ha már azt meg tudnám valósítani, előrébb vinne a dologban. Milyen nyelven érdemes ezt írni egyáltalán? Tényleg fogalmam sincs hol kezdjem, csak egy kis kezdő lépés kell, ha valakinek van fogalma róla. X Windownak van valami külön nyelve? Vagy Qt vagy vissza kell térnem a C-hez vagy egy változatához? Alap kérdés, hogy hogyan rajzolok ki elemeket a képernyőre. Grafikus programot anno Pascalban írtam, utána C-ben, aztán ami egy kicsit közelebb áll ehhez, az a Delphi de ez mind windózos környezetben volt. Linuxra soha nem írtam bonyolultabbat egy bash scriptnél vagy egyszerűbb parancssoros C programnál.
Szóval egy kis iránymutató fenékenbillentést kérnék :D
Ha összejön valami a dologból, akkor mindenképpen közzé teszem majd. Elsődleges célpontom hardveresen egy raspberry pi.
- 5616 megtekintés
Hozzászólások
A desktop environment áll többek között window managerből, session managerből, tipikusan valamilyen launcherből/panelből, backdrop/background managerből, esetleg screensaverből, és még sorolhatnám.
Ha alapszinten érdekel, akkor láss C forráskódot, és nézd meg mondjuk a twm ablakkezelő forráskódját, meg az athena widgetet. A legtöbb mai ablakkezelő innen indult el a maga útján.
A mai világban, ha widgeteket akarsz, akkor az főként GTK-t/QT-t szokott jelenteni. Persze, ha nagyon ráérsz, fejleszthetsz ezek helyett a bloatware dögök helyett sajátot is :)
- A hozzászóláshoz be kell jelentkezni
Ezek szerint nagyjából egyre gondoltunk :)
Igazából egy alap panelt szeretnék, de az kb. olyasmi lenne mint Androidban, hogy értesítések, óra, meg néhány dinamikusan változó és állandó ikon rajta. Olyat mint a KDE menü vagy win alatt a Start menü, ilyet nem szeretnék. Az egész a terveim szerint nem nagyon lenne bonyolultabb egy e-book readernél kezdeben. Aztán később egy böngésző, meg hálózati alkalmazások egészítenék ki, virtuális billentyűzet, ilyesmi... de ez a jövő zenéje.
A főképernyőt úgy képzelem el, hogy vannak rajta nagyobbacska ikonok, amik igazából mappák. Pl. Könyvek, Jegyzetek, Alkalmazások, stb. amik csak linkek a valódi mappákra vagy programokra és ezek tetszőlegesen változtathatók, bővíthetők, az ikonok cserélhetők, akár kézzel is lehet ikont rajzolni instantban. Méretük változtatható. Ez már egy elég fejlett dolog persze. Az alap az, hogy legalább egy négyzet szimbolizálja azt a linket amire ha rákattintok akkor történik valami. Azt hiszem úgy kellene nekiállni, hogy az egész automatikusan igazodjon a különböző képernyő felbontásokhoz, mert bár eredetileg egy eszközre fejleszteném, de a későbbiekben kerülhet alá más vas.
- A hozzászóláshoz be kell jelentkezni
Szia,
ha egy ebook olvasó szintű valami akarsz fejleszteni, akkor nem sok értelmét látom az X-re építkezésnek, főleg úgy, hogy hosszú távon az X repülni fog. Ráadásul
egy ebook olvasón nem standard alkalmazásokat akarsz futtatni, hanem sajátokat, egyszerűen azért, mert teljesen máshogy kell rá fejleszteni. Ha mindenképp
ilyet akarsz, akkor írj egy ebook kijelző kezelő könyvtárat, bár úgy látom ezt már mások megírták (http://learn.adafruit.com/repaper-eink-development-board/libraries-and-…) aztán egy magas szintű nyelven írj hozzá egy wrappert.
- A hozzászóláshoz be kell jelentkezni
Uhh.. pont erről beszéltünk egy haverommal, hogy mennyire megkönnyítené a munkát. Köszi!
- A hozzászóláshoz be kell jelentkezni
én javasolnék előbb egy tervezési szakaszt, erre pl kiváló egy javascript-es böngészős vázlat, amiben percek alatt át tudsz mindent alakítani, csak hogy meglegyen mindennek a helye, mielőtt belecsapsz a mondjuk C-be
a másik, hogy amit írsz, az nem is asztali, nem is feltétlen window alapú dolog, vagyis, na, mennyire lehet azt annak nevezni, ha mindig egy teljes méretű ablak van, és csak popupok vannak hozzárakva...bár techikailag nem annyira más, de mások lesznek a folyamataid
egyébként hajrá, én várom mire jutsz.
- A hozzászóláshoz be kell jelentkezni
Igazából a webes rész miatt szerettem volna komolyabb hardvert, de azt hiszem marad az Arduino. Első körben néhány alap funkciót szeretnék megvalósítani, billentyűzet, egér kezelésre vannak jó tutorialok, aztán néhány alap program, az egészet összegyúrni... aztán jöhet a flash nélküli böngésző :D Az a baj, hogy elég szűkös a memória egy ilyen lapkán. De végülis ez nem olyan nagy szörnyűség ha nincs böngésző. Azonnali üzenetküldő kliens mindenképpen tervben van :D
El leszek vele egy darabig az biztos, de szeretek ilyenekkel foglalkozni főleg ha tudom, hogy mi a cél :)
- A hozzászóláshoz be kell jelentkezni
Azt vedd figyelembe, hogy egy ebook olvasó (eink kijelző) TELJESEN más mint egy lcd panel.
Teljesen más logikával kell rá alkalmazásokat fejleszteni, egeret el kell felejteni, stb.
másra van, és nem átjárható.
- A hozzászóláshoz be kell jelentkezni
Igazából az a gond, hogy nem tudod pontosan, hogy mit akarsz csinálni. Mi a célod?
- A hozzászóláshoz be kell jelentkezni
Arra az Arduinora gondolsz, amiben ATMEGA mikrovezérlő van 2 kB ram-mal ( http://arduino.cc/en/Main/ArduinoBoardUno )? Erre nem nagyon lehet értelmes felhasználói felületet tervezni. Gondold el, hogy a 2kB-ba mi fér bele! Persze lehet külső memóriát illeszteni valahogy hozzá, de akkor meg nagyon lassú lesz az egész. Szóval mindent arra kell használni, amire való. Arduino-ra inkább valami vezérlő-szabályozó jópofa dolgot érdemes tenni, arra találták ki.
De hogy ne csak gáncsoskodjak, hanem ontopic is legyek: ilyen kütyükre a legjobb úgy fejleszteni, hogy csinálsz egy hardvert absztraháló réteget (HAL), amit megvalósítasz PC-n is. Ezekután a programod jelentős részét PC-n is tudod tesztelni, ami jelentős időmegtakarítást jelent a teljes fejlesztési időben.
- A hozzászóláshoz be kell jelentkezni
Ezt végiggondoltam. Marad a Pi.
- A hozzászóláshoz be kell jelentkezni
Ráadásul összenéztem az árakat, a PI még olcsóbb is...
- A hozzászóláshoz be kell jelentkezni
félreértettél szerintem, én arra javasoltam a böngészőt, hogy ameddig nincs olyan szinten a UI a fejedben, hogy kézikönyvet tudnál róla írni, addig ne állj neki kódolni, mert csak káosz lesz a vége, folt hátán folt, minden új funkció miatt az előzőeket át kell írni, ...
nem mellesleg így kaphatnál ötleteket is, js-ben prototypizálni egyszerű, tesztelnénk itt páran, mondanánk ötleteket, aztán mehet a "natívabb" fejlesztés. de egyébként egy raspberry-n már simán el tudok képzelni js-ből épített ui-kat is, nem nevezném desktop enviroment-nek, de egy böngészős app azon a szinten amit írtál, megadja azokat a lehetőségeket ami neked most kell. persze ésszel, a js és a kis proci nem barátok :)
(egyébként szerintem írj a célodról, tanulás, vagy konkrétan vannak funkciók amiket szeretnél egy eink cuccba rakni? az megvan, hogy akárhogy csodás technológia, nem úgy néz ki, hogy iszonyatosan fog növekedni a felhasználóköre)
- A hozzászóláshoz be kell jelentkezni
Ha van eink-es könyvolvasód, akkor tudod, hogy baromira nem olyan a gui-ja, mint egy
tab-nak, itt lényegében látszik a képernyő buffer váltás (legalábbis az én kindle-men látszik), magyarul a felhasználói élményt leginkább a kijelző sebessége fogja korlátozni, nem a raspberry pi...
- A hozzászóláshoz be kell jelentkezni
itt nem a kis funkciókra gondoltam, hanem a js fancy dolgokra, amikről viszont igaz, hogy eink-en amúgyse lesznek, I stand corrected.
- A hozzászóláshoz be kell jelentkezni
Viszont most utánanéztem, és kínából minden kindle eink-es kijelzőt meg lehet rendelni,
egészen baráti áron...
- A hozzászóláshoz be kell jelentkezni
Igen, én is nézegettem csak kéne valami lábkiosztás vagy akármi dokumentáció a vezérlésről. Keresgéltem olyan monitorokat, amikben e-ink kijelző van, de nem találok sehol. Gondolom azért nincs, mert lassú a válaszidő. Pedig még a hétköznapokban is el tudnám képzelni. Valamelyik netbook gyártó csinált egy olyan gépet amiben hibrid megjelenítő van. Napfényben e-paper, sötétben oled vagy lcd. Hogy mennyire használható és hogyan oldották meg azt nem tudom. Kb. fél éve hallottam róla. Azóta vagy elbukott vagy már kapható (de nem hallottam róla azóta sem semmit)
- A hozzászóláshoz be kell jelentkezni
Subscrible.
- A hozzászóláshoz be kell jelentkezni
Ha ilyesmire vetemedne'l, elo"bb probalj meg nativ X-es alkalmazasokat irogatni. Egyreszt azok is nagyon egyszeru"ek (20-30-50 soros kis C programok, es ma'r mutatnak e'letjelet), masreszt meg akkor jobban megismered az "XEvent" c. dolgok lelkivilagat. Ma'r a legalapabb dolgokhoz is szukseg van x event kezele'se're. Ha ezt e'rted (kb gerincvelo"bo"l) hogy hogysmint megy, akkor lehet tovabb gondolkodni.
Ilyesmi problemakat probalj megoldani hogy egy "nyers" ablak kirajzolasa miben kulonbozik egy olyan ablak kirajzolasatol amit a window manager is lekezel (azaz lesz fejle'ce, at tudod me'retezni, stb). Ehhez persze az alapokat tenyleg meg kell ismerni (exposing, mapping, gravity, focuschange, ...)
A window manager mint olyan az egy kozbulso re'teg lesz ami bizonyos x eventeket elkap, bizonyosakat meg a'tforma'z. Kabe.
- A hozzászóláshoz be kell jelentkezni
Válaszd a Gnome Shell-t alapnak.
JS-ben át tudod szabni a felületét, pl a Mint Linux-ban a Cinnamon felület is azt használja.
Ha leállsz C-ben programozni - tekinteve h nem vagy kifejezetten C progtamozó - az hasznosabb tapasztalat lehet mint a JS tanulása, viszont jövő nyáron is még csak fejleszteni fogod, használatra nem hiszem h készen fog állni. Tehát aszerint választanék, mi az elsődleges cél, tanulás vagy a késztermék.
Kettő között középút lehet olyan programnyelv, ami beburkolja a C API-t, de valamilyen szempontból egyszerűbb. Pl python-hoz van sok lib, vagy ott a Vala nevű programnyelv.
- A hozzászóláshoz be kell jelentkezni
Mondjuk az már nem rossz, hogy (feltéve, hogy nem főállásban csinálod), hogy egy év alatt a nulláról, C-ben írsz egy asztali környezetet.
Vagy nem tudom, lehet, hogy mégis, még sosem próbáltam. :)
- A hozzászóláshoz be kell jelentkezni
Semmi értelme nincs alacsony szintű nyelvvel szivatnia magát... alacsony szintű nyelven írja meg a minimális alapokat, aztán húzzon felé egy wrappert...
- A hozzászóláshoz be kell jelentkezni
még ilyen kis hardware-en is így gondolod (komolyan kérdezem, nincs friss tapasztalatom ebben)?
- A hozzászóláshoz be kell jelentkezni
Raspberry PI-ről van szó, azért az annyira nem gyenge, és majd optimalizáljon a fejlesztő akkor, ha
kimérte, hogy mi a lassú. Sokkal gyorsabb megírni egy prototype-ot egy magas szintű nyelven, és ha
az elég gyors, akkor hagyjuk, ahogy van, ha valami lassú, azt kioptimalizáljuk, és ha még ezek után is lassú, akkor lehet azon agyalni, hogy mit tegyünk. A fejlesztési sebesség kb. 2x-3x gyorsabb, tehát mondjuk egy éves projekt helyett pár hónap alatt látja, hogy ez jó lesz-e így, aztán ha nem, akkor még lehet játszani.
- A hozzászóláshoz be kell jelentkezni
ok, így már teljes a kép, erről írtam én is. :)
- A hozzászóláshoz be kell jelentkezni
Egyelőre csak tanulás a cél. Egyre több dologra jövök rá, hogy mire is jó az a Raspberry :) Webszervert akartam meg okos TV-t belőle eleinte. Talán az a jó ebben, hogy - mivel linuxról van szó - nagy eséllyel cpu architektúrától független lesz a dolog.
- A hozzászóláshoz be kell jelentkezni
raspberry-ből aminek szerintem még lenne piaca, a dedikált munkagép, sokaknak teljesen felesleges a böngésző, viszont én megzakkanok néha hogy nem látom a kijelzőn az email-jeimet.
ha eljutsz addig, hogy a hardware alakul, kérlek jelezd itt, vagy akár privátban, nagyon érdekel a project-ed. én most ott tartok, hogy hasonló céljaim vannak, csak erőteljesen munkagépként gondolok rá, és még kb. fél évre vagyok tőle, hogy megrendeljem az első alkatrészeket :)
- A hozzászóláshoz be kell jelentkezni
off
R. Pi munkagépként? Ezt nem értem :D
Én egy tabletet arra fogok kinevezni, hogy mutassa az e-mailjeim, az időjárást, azonnali üzenetküldés, esetleg rákötöm a hangoskára, és ha fáradt vagyok akkor arról filmezek de amúgy nagy kijelzőn jobban szeretem. Ezek alól felszabadulna a gépem és akkor azt használnám végre munkagépnek. Mert így engem mondjuk az zavar, ahogy megszakítja a munkámat egy-egy ablakváltás vagy. Több monitor még segítség lehet. A Gnome3-ban az tetszik ahogy megoldották az értesítéseket csak az az én gépemen egy pár hét után igencsak belassul, ahogy növekszik az alkalmazások száma.
- A hozzászóláshoz be kell jelentkezni
mivel a munkám nagyrésze egy notepad ablak, egy thunderbird, és egy böngésző, ezért erre bőven elég lenne egy raspberry. főleg úgy, hogy pl. a thunderbird-re se igazán van szükség, legtöbbször arra sincs szükség, hogy a php local-ban fusson, ...
cserébe jó lenne, ha az aksi nem 2 óráig bírná, nem melegedne a gép, ...
ez persze nem tömegtermék, hanem egy nagyon rám optimizált elgondolás
- A hozzászóláshoz be kell jelentkezni
Hát ha ablakozót akarsz írni ami csak az X-el dependál, akkor a következők:
wmctrl forráskód: hogy lásd hogy manageled az ablakokat
tint2 forráskód: hogy lásd milyen egy panel
*box (főleg black és flux) forráskód: hogy össze is rakd a fentieket
Ja és jó sok imlib tutorial, mert az X kevés lesz nagyon.
De írták előttem is, hogy el kellene tudni dönteni mit is szeretnél valójában.
- A hozzászóláshoz be kell jelentkezni
Ha írnál egy karakteres, de nem 80x24-es, hanem a mai videókártyák képességit kihasználva nagyobb felbontású, de karakteres felületet (pl. mint a Turbo Vision régen), az nekem biztosan tetszene, és nem az (n + 1)-ik felület lenne (amiből persze tanulni így is rengeteget lehet)... ;)
- A hozzászóláshoz be kell jelentkezni
első az ablakkezelő, altf2 run, alt-tab switch :)
én amúgy olyat csinálnék, ami alapértelmezettem hagy körbe 1 pixel margót, ahol majd lehet jobbklikkelni :-)
- A hozzászóláshoz be kell jelentkezni
off : ha windows-ra keresel ilyent, akkor tudok adni
- A hozzászóláshoz be kell jelentkezni