On Mon, 30 Dec 2019 10:22:21 -0600 Brian <bvamund...@yahoo.com> said:

> Dear Cartsten,
> 
> An excellent tutorial on the internals of e and the approach e uses to
> handle multiple screens. It really explains a lot about the structure
> and processes. I didn't realize that the ibar is simply walking memory
> to generate the changes to desktop applications.

all the modules and gadgets work this way. this is one reason e can consume so
little memory and still have a lot of features - we don't make these things
separate processes and windows. it's just a little more data structures and
work for e to do "patched in" by loading the module that then has e itself run
code from that module to do the setup of this extra functionality.

> I'll have to try Tasks to see if that meets my desires of seeing all
> running apps. My current config is two screens, left 1600x900 and right
> 1280x1024.  So the top's are aligned and the ibar is on the right
> screen in the space which would be below the space of the left screen.
> I consider it the monitoring space of what is happening with the
> system, while everything above the 900 line is working space for
> applications.  It satisfies me as a working layout.

try it and see.

> There is one e intuitive smartness which bothered me at first.  If
> I mouse grab an application on the right screen and move to the right
> the result is it moves to the next virtual screen 1:1, moved to the
> left it moves to the left screen 0:0.  Without the Pager I didn't know
> that I just moved the application to the next virtual desktop and
> thought I lost it, because the application on the left screen was still
> visible. But to move the application back to virtual 1:0 you have to
> use the right mouse button menu and can't mouse grab and move back 1:0.
> Just an odd quirk of smartness that I was surprised operated the way it
> did if each screen is fully independent. 

I am not sure what you describe. the window itself, the miniature of the window
in the pager? dragging it from virtual desktop to virtual desktop in the
pager? .... ?

> Hope you have a happy new year.  Cheers, BrianA_MN
> 
> ------------------------------------------------------------------------------------------------------------------
> On Mon, 30 Dec 2019 13:11:09 +0000
> Carsten Haitzler <ras...@rasterman.com> wrote:
> 
> > 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