On Sat, 28 Dec 2019 11:40:22 -0600 Brian via enlightenment-users
<enlightenment-users@lists.sourceforge.net> said:

> Resending so it posts to the user list. 
> Also wanted to add one more question.
> If gadgets can be added to the desktop directly, what happens
> differently with the shelf?  It is added settings, like position,
> reserved space so apps can't cover, etc?

2 different folders (conceptually) with different stacking (one within a shelf
thing that hugs an edge or corner of the screen, one just below everything just
above the background). the shelf is linear layout with items sized to shelf
size in one dimension but allowed to expand in the other. desktop is "place
them where you like freely in 2d". a shelf is far easier to have it adapt to
changing content (e.g. tasks which grows and shrinks based on number of task
buttons in it, or ibar when it adds or removes icons etc.), where with a 2d
layout that is essentially impossible to do sanely and intelligently, thus it's
left up tot he user to arrange things manually.

> Cheers, BrianA
> ------------------------------------------------------------------------------------------------------------------
> On Sat, 28 Dec 2019 11:34:32 -0600
> Brian <bvamund...@yahoo.com> wrote:
> 
> > On Sat, 28 Dec 2019 16:30:44 +0000
> > Carsten Haitzler <ras...@rasterman.com> wrote:
> > 
> > > On Fri, 27 Dec 2019 09:23:52 -0600 Brian <bvamund...@yahoo.com>
> > > said: 
> > > > Sorry, I've reloaded "E" and can now use proper terms. 
> > > > Is there a reason the Pager doesn't show the windows open for both
> > > > screens on the ibar?    
> > > 
> > > Because the pager displays the virtual desktops for a given screen.
> > > each screen has its own virtual desktop set. think of it as 2 parent
> > > directories with N child dirs (one per desktop) and windows inside
> > > these. that's why - it's structured this way in e.
> > > 
> > > There isn't a pager on the ibar. there is a shelf. shelves can
> > > contain many gadgets. pager is one. ibar is another gadget... ibar
> > > itself is concerned with launching apps. it happens to be able to
> > > list (on mouseover of an icon) any windows associated with that
> > > desktop file that ibar is showing to launch things. it has no
> > > filtering to filter this list down in any way. same for the extra
> > > icons it adds for windows as they appear - if they match a desktop
> > > file somewhere it adds them on the right to indicate that app was
> > > launched. again - no filtering per desktop or screen.  
> > 
> > Sorry for my not using the proper terms again based on logic structure
> > (parent/child is a great example). I now understand that shelves are
> > screen specific and owned by that screen. That modules need to be
> > loaded before a gadget will function and gadgets are added to shelves
> > or desktops.  It seems that once a gadget is added to a shelf or
> > desktop it can't be moved to another screen area?

technically - yes. it's an object in the canvas, but in practice, no as the
gadget data struct is a child object of the gadget container which is child of
the shelf. it's owned by the parent and the parent controls the lifecycle of
the child.

> > Now help me understand something.  Since the ibar is able to 
> > run a script for the launchers, which monitors the apps (regardless
> > of which virtual desktop and screen) and then either add the app

it doesn't run any script at all. the c code in ibar uses other e infra to
watch data structures that represent an executed process that link the source
of the execution and this structure via various means. when windows appear they
have properties and there is a bunch of code in e that can match back these
properties to the information in this execution structure thus linking back
that window to that specific execution action. it's all just code lurking in e
that also is used to figure out what icon to display in the top-left corner of
a window for example.

<aside>
there are good reasons why i keep harping on about things being more efficient
when it's all in a single process. things like ibar piggyback off code and work
already done by e itself for the drawing of the border/titlebar and really just
hook into it and listen to that. it isn't another process where you'd need to
come up with some kind of ipc to call across from one process to another (and
deal with all the stalling and context switching, encoding and decoding of data
as opposed to simply jumping to a function address and walking the same data
structure in memory that is already there). module/gadgets don't even have
their own threads. they are pieces of code that hook in and "insert". they run
as part of the wm and when they are loaded their init functions are called
where these can set up a bunch of stuff. (shutdown functions on unload too).
this setup tells existing infra to "go register this structure in this list, go
create this window or this object etc." and thus essentially are as if you
patched the code of e in a runtime "organized" way. thus they only consume the
resources that they create in addition to what is already there in the core.
They are about as efficient as if the feature were to be coded in directly, but
are loadable and unloadable at runtime. anyone can extend e this way with a
module (if you are willing to write C code).
</aside>

> > to the ibar, ibox, or display a small blue dot to the lower right
> > corner for the launched app (and a miniature icon of the apps screen,
> > if the mouse hoovers over the app launcher), why can't that same

yes. as above. ibar hooks in linking something it executed when you clicked on
that icon to a window that exists somewhere and an "execution structure" e
maintains for everything e may happen to launch via it's exec subsystem. e
watches the child processes and knows when they exit etc. too. ... if this
fails it makes guesses based on naming of things too. there's a bunch of
heuristics there to do this.

> > script logic be deployed for the Pager to show both screens and
> > miniature icons of the apps on each virtual desktop and screen? 
> > For example when I use the mouse wheel to show running apps it will
> > show from both screens and all virtual desktops.  

it can be. i am choosing not to do it because the pager shows the set of
virtual desktops for the screen it's on. e specifically divides the screens
into separately controlled things. the pager decides what to show based on the
screen it's on. it makes things really simple when you do things like plug or
unplug a screen. plug a laptop into an external monitor and up it comes as it
was last configured. if you had a shelf with a pager there then the shelf will
show the contents of the virtual desktops on that screen, unplug the screen and
the screen along with its pager all go away. no need to add manual config to
tell a pager to show a specific screen and deal with when that screen comes
and goes, you don't have to worry about the pager on another screen growing or
shrinking, and pagers are generally rather large thus if they grow to 2x or 3x
their size to show 2 or 3 screens of content... it's going to create a lot of
hassle in trying to lay them all out with other content. i need to then start
adding config to enable or disable this and i have to test that too. i have to
deal with the situation where content doesn't fit. i have to add more ways to
indicate which screen is which in the pager (remember screens may be disjoint
and of different sizes and aspect ratios etc.)... all in all it adds a whole
bunch of complexity that needs to not bitrot, be tested for what is an
incredibly small number of users who ever may want that.

in fact i'm going to go on a binge of removing features in e. e has far too
many. i am not going to willingly add more features unless i see them as being
widely used and useful or totally necessary, or easily tested. there are so
many features that have already bitrotted. it's time to lean them down.

but wait... "when i sue the mouse wheel"... the pager doesnt do anything with
the mouse wheel... are you talking about the actual pager or mixing up names?
the pager is what displays a grid of NxM miniature previews of your virtual
desktops with the windows in them. there is the old pager_plain which like
above... i plan to remove. it's a complete parallel implementation of the pager
without miniature previews from a time before e was a compositor...

> > Alternatively is there a way that pager of screen 0 can be added to
> > the screen 1?   I tried to add the pager to the desktop and move it
> > from 0 to 1.  After moving to screen 1 it takes on the screen one
> > virtual desktops and drops the screen 0 desktops.  What I'm trying to
> > achieve is being able to see what apps maybe running on each virtual
> > desktop and screen in a thumbnail.  I realize that the middle mouse
> > wheel click on any desktop will show me ALL running apps and whether
> > they are open or minimized (presence of x) but I like the visual
> > glance over having to use the mouse wheel.

explained above. since screens can come and go what do you do with a screen
that was plugged or unplugged? when you close your laptop lid that screen is
"unplugged" and so the external screen (if you have one) becomes the only
screen ... 

tried using tasks? ibar shows all running apps as icons as i explained...

> > > > Is it because the ibar is also screen specific?  For example I
> > > > prefer the ibar on the right screen and the default ibar starts on
> > > > the left, so I setup a Default #2 on the right screen and then
> > > > delete the Default #1 ibar.   
> > > 
> > > ibar lives in the shelf... i think we need to get our names right
> > > otherwise i don't know what you're talking about... :) shelves ARE
> > > screen specific. gadgets in a shelf can find out what screen they
> > > are on (and from that find out what virtual desktops exist for that
> > > screen and which is currently visible etc.).  
> > 
> > Thanks I get it now, again sorry for using wrong terms. Thus the
> > reason I have to build a separate shelf for the right screen and
> > eliminate the left screen shelf for my preference of where I launch
> > and see app states.
> > 
> > >   
> > > > Or have I missed something during initial setup that will allow
> > > > the system to treat both screens as a single unit, thus allowing
> > > > the Pager will display app windows of both screens?  
> > > 
> > > e does not treat screens as a single unit. it expressly is designed
> > > to treat each screen separately. that is why it can switch virtual
> > > desktops on a screen by screen basis. this is reflected in core data
> > > structures. for almost everyone this is logical as each screen is a
> > > separate physical display unit and thus a physical entity etc. etc.
> > > and thus each having its own state etc. is what makes sense. :)
> > >   
> > 
> > Cheers and Happy New Year.
> > > > Pax tecum, absit iniuria;
> > > > Brian Amundsen, 763-786-5699
> > > > ------------------------------------------------------------------------------------------------------------------
> > > > On Fri, 27 Dec 2019 10:27:04 +0000
> > > > Carsten Haitzler (The Rasterman) <ras...@rasterman.com> wrote:
> > > >   
> > > > > On Thu, 26 Dec 2019 09:52:59 -0600 Brian via enlightenment-users
> > > > > <enlightenment-users@lists.sourceforge.net> said:
> > > > >   
> > > > > > Is there any chance that Enlightenment will ever go back to
> > > > > > supporting two screens with the ibar reflecting the programs
> > > > > > open on both screens? It's one of the reasons I'm not using
> > > > > > "E". I like to see what is open on all screens and all virtual
> > > > > > desktops, something that FVWM does with ease.  Iif "E" was
> > > > > > able to do that one function I'd consider switching.    
> > > > > 
> > > > > Ibar shows everything that is open on all screens and all
> > > > > desktops... that is the only option it has (and has ever had).
> > > > > It doesn't have an option to limit what it shows to only what
> > > > > is on the same screen as ibar (or on the current desktop on that
> > > > > screen).
> > > > >   
> > > > > > Merry Christmas 
> > > > > > Brian Amundsen
> > > > > > _______________________________________________
> > > > > > enlightenment-users mailing list
> > > > > > enlightenment-users@lists.sourceforge.net
> > > > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-users
> > > > > >     
> > > > > 
> > > > >   
> > > > 
> > > > 
> > > > 
> > > > 
> > > >   
> > > 
> > >   
> > 
> > 
> > 
> > 
> > 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> enlightenment-users mailing list
> enlightenment-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-users
> 


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



_______________________________________________
enlightenment-users mailing list
enlightenment-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to