On Wed, 13 Jun 2012 10:13:43 +0900 Sanjeev BA <eflel...@gmail.com> said:

performance isn't something i'm worried about right now because i KNOW its
horrible. it's an array of NxM (eg 80x24 or more if u resize it to be biggeR)
text OBJECTs and rect objects. so thats by default at its normal size about
2000 text objects and 2000 rect objects. the plan is to have an evas textgrid
object take all of this over as a single object. terminology exists as a test
case for textgrid. it exists to provide real world input :)

i'm going to have to expand the object count by another 4000 objects to handle
strikethrough and underline. again - it's dumb as nuts in the way it does this
because i'm expecting textgrid to fix it all in one foul swoop :)

in the meantime i want to at least make it look decent and add the basics like
font selector (works now, doesn't save though), theme selector, background
selector, other options settings, handle visual bell, and some other bits and
pieces, as well as in general improve its terminal emulation handling, usability
(selections need work, but are usable) etc. and i know i don't have time to do
all of the needed things for it, but i've put together a first cut of an efl
terminal emulator that is usable. if you think something is missing - pitch in
and help. :) the code is in fact surprisingly small and easy to follow. right
now i need to split off the options stuff as its polluting the main.c file :)

here's a short list of things i think we can do in the short to medium term to
make it a first-class terminal:

* evas textgrid needs creating and to be used
* underline and strikethrough need supporting at termio level
* blink and blink2 attributes need to be supported
* improve terminal emulation handling (i know it doesn't handle gfx chars and
it definitely has an incomplete escape handling core - many are commented out
and unhandled)
* copy & paste support for clipboard not just primary (like xterm)
* dnd text (to/from terminal)
* ecore-imf support
* handle multibyte displays better (does handle utf8 only atm and then maybe
not according to convention)
* general input mode handling improvements (keypad, other key
input, mousereporting etc.)
* save of config after options changes (option checkbox for temporary local
only changes)
* selection of themes
* selection of background "wallpapers" (and support them at all - doesn't right
now - should support regular images, animated gifs,  and edje files)
* transparency support (theme needs to be told to go into tranpsarency mode and
then window alpha enabled)
* visual bell reporting (signals to theme)
* scrollbar (elm scroller that mirrors the term smart size/position - gives us
fingerscroll - layer on top of term smart, stick invisible rect inside to track
for scrolling etc.)
* selection mode mirrors entry style for touch displays (handle on_hold flags,
etc.)
* selection off edge scrolls in that direction (as per selection mode too if it
gets NEAR an edge)
* selection should become single edje object so it can be styled nicely
* selection should have handles on the start/end so u can drag and change its
size once there
* improve selection text extraction logic
* font selector should include font previews in the list - preferably ONLY be a
list of previews
* options widgets should be deleted once they are hidden. they stay in memory
at the moment
* clicking with ANY mouse button while options is up outside of options should
dismiss it.

things in future to make it totally kick-butt:

* "tabs" (multiple terminals inside a window) with a nice selector that looks
like e17's wallpaper2 selector a bit :)
* track child process stats like cwd etc. and when launching a new "tab" or
shell use the last child process cwd to put the shell inot
* track mem and iowait and cpu stats for child procs and their children and
display them as little overlays in the terminal so u know if your "grep -r /"
is cpu or io bound and what is eating up all your cpu cycles or causing a tonne
of hdd interrupts etc. - send results of these stats to theme with messages
much like cpufreq, battery etc. do in e17 so theme can display as bars, dials
or anything it likes (text, led's etc. too).
* tiling layout within 1 window to lay out multiple terms in a flexible
split/merge column/row grid setup
* remember tile layouts and be able to restore them and at least as much of
child processes as the term can manage reasonably reliably
* split it out into a library - maybe just as part of elementary and make a
terminal widget where you can specify your own read/write funcs for the term fd
etc. so u can make a custom bit of code that uses the terminal widget as if it
were stdin/out but just as loopback within the app (ie don't exec process - just
create pty and offer read/write to/from it)
* start supporting some of the crazy escape codes that let you inline images
into terminals or just create our own extensions and then start making
replacement "std command" wrappers/replacements that are prepended to $PATH
that  can do the right thing when u do "ls" - i see a list of files and if some
are images or documents - u see thumbnails too. if u cat a jpeg.. u see it. if
u cat a url  or html file.. up comes an inline web browser, provide nicer
visual "progessbars" and modified tools like wget that use these escapes etc.

> Works for me.
> 
> For a first version - it is awesome.
> 
> However - I notice some delay in most application when compared to
> gnome-terminal.
> 
> 
> On Wed, Jun 13, 2012 at 8:42 AM, Carsten Haitzler <ras...@rasterman.com>wrote:
> 
> > On Tue, 12 Jun 2012 18:59:12 -0300 Leandro Pereira <lean...@profusion.mobi
> > >
> > said:
> >
> > > Raster,
> > >
> > > On 06/12/2012 12:58 PM, Carsten Haitzler (The Rasterman) wrote:
> > > > On Tue, 12 Jun 2012 11:46:07 -0300 Leandro Pereira <
> > lean...@profusion.mobi>
> > > > said:
> > > >
> > > >> On Tue, Jun 12, 2012 at 12:10 PM, Enlightenment SVN
> > > >> <no-re...@enlightenment.org> wrote:
> > > >>> Log:
> > > >>> finally a terminal emulator for efl! sure - uses a lot of text
> > > >>>    objects. need evas textgrid obj and more, but this marks a first
> > > >>>    "usable" state for terminology. more needs doing like underline
> > and
> > > >>>    strikethrough support, blink support, visual bell, config panel
> > etc.
> > > >>
> > > >> Up-to-date EFL here, and Terminology looks like this, regardless of
> > the
> > > >> font being used: http://i.imgur.com/5qJ0s.png
> > > >>
> > > >> (Arch Linux x86 here, BTW.)
> > > >
> > > > i'm wondering if your freetype has a bitmap font handling issue?
> > > >
> > >
> > > I don't know -- selecting a TTF font works, and some other bitmap fonts
> > > are kind of working (like 'cursor.pcf', although the kerning seems
> > > random, it is readable). I'm using the default version that comes with
> > > the distribution. Any particular test I could perform besides
> > > terminology to see if this is a freetype problem or an evas bug?
> >
> > ftview the pcf files? (ftview - tool comes with freetype)
> >
> > > My text editor (joe) has different output from xterm, vte, and rxvt; I
> >
> > what you have there is a font issue in evas. why - i don't know. it seesm
> > to
> > have gotten some font size metrics, only then to not have any bitmap data
> > for
> > the font. it works on all my boxes with the default configured font. other
> > pcf's only work *IF* u set the size right too. i need to fix this in evas.
> > (ie
> > when loading a bitmap font, size is ignored and bitmap font file's size is
> > used - there is logic to handle this case in evas - ie if font only
> > supplies 1
> > or a few sizes, pick the closest to the size u requested, but it seems to
> > not
> > work).
> >
> > > don't know who is right. It is certainly usable, but I'm not sure who is
> > > correctly handling the escape sequences. I can provide screenshots later
> > > if you want, comparing xterm, rxvt, vte, and terminology. Is this
> > > perhaps related to $TERM being different and the editor adapting itself
> > > to whatever it knows it works on that particular terminal?
> >
> > TERM is set to xterm in terminology. it pretends to be xterm.
> >
> > > Also, it doesn't seem to work properly with a keyboard layout with
> > > deadkeys. I need to press the spacebar to get a "'" (or some other
> > > letter, like "a" to get an "รก") which is very useful on a shell. Right
> > > now, pressing "'" on my US-Intl keyboard gives me an acute accent (tick?
> > > back-backtick?) instead, which is wrong.
> >
> > it's key handling is REALLY simple. no input method handling at all. not
> > surprising here.
> >
> > > Another thing: it crashed here after a few minutes. No debug symbols and
> > > no core file so it shouldn't help much, but maybe this might shed some
> > > light:
> >
> > would need valgrind for this. :)
> >
> > > *** glibc detected *** ./terminology: free(): invalid pointer:
> > > 0x09141568 ***
> > > ======= Backtrace: =========
> > > /lib/libc.so.6(+0x72632)[0xb7120632]
> > > /home/leandro/dev/e/lib/libeina.so.1(eina_array_flush+0x75)[0xb72ed405]
> > >
> > /home/leandro/dev/e/lib/libevas.so.1(evas_render_idle_flush+0xfa)
> > [0xb73db55a]
> > > /home/leandro/dev/e/lib/libecore_evas.so.1(+0xa215)[0xb7587215]
> > > /home/leandro/dev/e/lib/libecore.so.1(_ecore_timer_expired_call+0xd6)
> > > [0xb734ed36] /home/leandro/dev/e/lib/libecore.so.1
> > > (_ecore_timer_expired_timers_call+0x24)
> > > [0xb734eef4] /home/leandro/dev/e/lib/libecore.so.1(+0xe97b)
> > > [0xb734b97b]
> > /home/leandro/dev/e/lib/libecore.so.1(ecore_main_loop_begin+0x3f)
> > > [0xb734c0af] /home/leandro/dev/e/lib/libelementary.so.1(elm_run+0x14)
> > > [0xb76ab604] ./terminology[0x804bbee] ./terminology[0x804aa99]
> > > /lib/libc.so.6(__libc_start_main+0xf5)[0xb70c73d5]
> > > ./terminology[0x804aac1]
> > >
> > >
> > > Anyway, the terminal is progressing nicely. I might use it if it proves
> > > to be as reliable as rxvt or vte-based terminals.
> > >
> > >
> > >      Leandro
> > >
> >
> >
> > --
> > ------------- Codito, ergo sum - "I code, therefore I am" --------------
> > The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> >
> >
> >
> > ------------------------------------------------------------------------------
> > Live Security Virtual Conference
> > Exclusive live event will cover all the ways today's security and
> > threat landscape has changed and how IT managers can respond. Discussions
> > will include endpoint security, mobile security and the latest in malware
> > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> > _______________________________________________
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and 
> threat landscape has changed and how IT managers can respond. Discussions 
> will include endpoint security, mobile security and the latest in malware 
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to