Thanks Wombie!!! I love the screenshot toy :-)

On Thu, 6 Feb 2020 20:38:25 +0000
Carsten Haitzler (The Rasterman) <[email protected]> wrote:

> I actually should start doing this more... and write proper new items
> for www and so on, but right now I'm feeling lazy so I'm just going
> to squirt this out in email.
> 
> Here are some hilights from recent e development in git master. I
> encourage people to try these things out and see how they work for
> you.
> 
> 
> 
> 
> 
> 
> DDC backlight support for desktop monitors
> ------------------------------------------
> 
> I've done a bunch of revamping of the backlight control code. The API
> was decent, but... the implementation was dumb. It assumes a laptop
> world of a single screen only having a backlight control. No longer!
> Now every screen gets backlight controls. Your desktop monitors too.
> The idle fade stuff will work on desktop AND your internal laptop
> screen now. Put a backlight control gadget on a shelf on each screen
> and it will control THAT specific screen.
> 
> How does this work? First E checks to see if X's randr system
> supports a backlight control for that screen. If it doesn't, it looks
> around at /sys/... fs nodes and if it finds something that looks
> backlight-like it will assume that controls the "lid screen". It will
> also now use libddcutil (from ddcutil) if you have it installed and
> dlopen that lob at runtime (no compile time dependency needed) and
> use libddcutil to control your monitor via i2c ... this requires the
> revamp i did of the setuid root tools and merging them all into one
> root service daemon e spawns to do these things. There are many good
> reasons why this needs to be this way, but it means E can not just
> now dim and brighten the backlight on your desktop monitors, but it
> can fade smoothly etc. and save power when you're not busy there...
> just like your laptop screen/. This should work with or without X
> just as the /sys fs support works without X too. This revamp makes
> e's backlight code a lot smarter and nicer. The ddc infra work opens
> up the door to providing on-screen OS driven controls for everything
> your monitor's on-screen menu has when you press the buttons on your
> screen. This allows E to even query the rotation of your monitor, set
> the color temperature and other color correcting controls, sharpness,
> contrast, the speaker volume on the monitor itself and much more. the
> plumbing is there and for now the ddc controller filters to ONLY
> allow the backlight property (0x10) to be queried and controlled.
> This can expand in future, but for now everything is plumbed through
> from back end to the backlight gadget gui and all the idle fade
> handling and so on works... :)
> 
> Setuid helper rewrite
> ---------------------
> 
> I merged all the functionality of the various setuid root tools e
> uses for things like /sys/ fs backlight control etc. into a single
> daemon that hangs about and e talks to via stdin/out. This reduces
> the number of these and has a single access point now. This has
> replaced everything except the eeze mount helper stuff in EFM, the
> new tool can replace the mounting/unmounting needs and the code is
> there, but the way eeze works means I can't slot it in easily. I have
> to rewrite the way EFM works to do this, but this is a nice
> "invisible cleanup" that should provide a single gateway for
> permissions on who can run this tool etc. and was necessary for the
> DDC stuff to not be glacially slow.
> 
> Wallpaper generation now handles multiple resolutions
> -----------------------------------------------------
> 
> Before when we imported an image into our wallpaper collection
> (~/.e/e/backgrounds) we would run edje_cc and generate an edj file
> with the wallpaper encoded in it at the quality requested with the
> sizing info there too letting edje handle it. This way E farmed that
> sizing/tiling/centering or even panning off to the file itself and
> didn't need to store it itself - just which one you want. You can
> delete the original image since the import made a copy so it's a bit
> more reliable. The problem was, if you import some 8k photo... it
> will encode that full resolution image in the edj file and E will
> have to load all of it then upload all of it to a texture and so on
> at runtime... Now I fixed this to have an import tool (bonus - you
> can run the tool by hand too to import/generate wallpaper edj files
> for your collection), and it will generate multiple resolution
> versions of the wallpaper (smaller resolution ones, not higher), so
> if you mindlessly import that 8k photo.. E will generate 6k, 5k, 4k,
> 3k, 2k, and so on resolutions for a bunch of common resolutions and
> it will encode them all in the edj file so now it will use edje to
> choose the resolution that is most appropriate (closest to what you
> want - same res or a a little higher) and then at runtime E will not
> load the 8k one all the time. it'll load the one that best fits, thus
> speedup up startup time etc.
> 
> Screenshot revamp with built in mini-inkscape-like diagram editor and
> cropper
> -----------------------------------------------------------------------------
> 
> I have totally redone the shot module in almost every way. It now
> supports explicit actions to delay by a given amount (e.g 500ms or
> 8000ms). It interactively allows you to click "delay" to delay by an
> amount (slider the slider up and down) to take another shot in that
> amount of time later... so you can shot menus and similar things. It
> still supports saving and sharing via e.org's screenshot service, but
> now E won't hang when it saves - it uses a slave process to do this
> so E keeps working smoothly. Saving of shots has moved to
> ~/.e/e/shots and always places shots there as files. if you choose to
> save it will automatically show that dir in efm after it's saved so
> you can immediately dnd it out to some target app (e.g. that mail you
> are writing).
> 
> But best of all ... when it shoots it shows you a zoomable/scrollable
> preview which by default you can just click on any screen or window
> and cycle through which window, screen or window with padding around
> it you want cropped, showing you the crop area. You can also
> free-draw the crop rect just witch click-and-drag ... and you can
> modify the crop region by clicking the handles in the corners and
> dragging them around.
> 
> Not only this... You can now draw text boxes and type in notes./text
> on the screenshot. You can draw arrows and lines, little e logos,
> square "surround" boxes or ellipses, even speech bubbles with text
> (the only legitimate use of comic sans font... which is what is used
> here :) ), thought clouds with text, and even some comic "KABOOOOOM"
> labels, some pointy fingers to point at things, a Monty Python foot
> to stomp on bits of your screenshot ... and even Malloc makes an
> appearance with 2 Malloc tools to draw cute cats on your screenshot
> for good measure (as a kind-fo easter egg). Malloc is awesome. You
> shall accept his new found fluffiness in your WM! :) Not only can you
> draw these things and size them as you like, you can alter the sizing
> later (unlike Gimp - more like Inkscape) and alter their 2 colors
> (fg/bg) and choose from a palette of colors provided or use the HSVA
> sliders. You can delete these doodle objects if you don't like them
> and just click on them in move/modify mode to raise them to the
> front, and you can also rotate them freely if you click on their
> center multiple times to toggle between move/resize mode and rotate
> mode. When you hit save or share exactly what you see and selected to
> crop is saved or uploaded with all your doodles there. The crop is
> done at save time so the crop region can be modified at any time and
> will be applied then.
> 
> Jus about the only things shot doesn't do now is offer you the
> ability to print (who the hell prints screenshots these days?) and it
> won't make you a sandwich. Sorry.
> 
> E's shot module/tool is now full "batteries included" awesome++.
> Enjoy it.
> 
> Crash alert dialog improvement
> -----------------------------
> 
> The crash alert dialog now is a blast from the past. It's an
> Amiga-like guru meditation along with the same Amiga bitmap font and
> blinking red outline at the top of your screen. For those of you with
> fond memories of your Amigas... I give you some nostalgia. I also
> made this crash work for Wayland mode now too (it didn't before due
> to e holding KMS hostage while it was hung in crash mode). In the
> process of this I made E's restart handling require
> enlightenment_start to make it work as now e_start uses E's exit
> codes to know what to do (restart, exit cleanly etc.). This also
> reduces fd leaks from one e execution to another since before for
> restarts E just exec()'d itself.
> 
> Music control
> -------------
> 
> This will now actually run your selected music program if you click
> on it and it's not there. :)
> 
> Polkit support
> --------------
> 
> E now has a polkit helper to ask for your password should any tool
> ask polkit to authenticate... So E will pop up the password dialog
> for you etc. - no extra polkit helper daemon needs to hang around and
> no external modules needed. It's built in to e (well it's a module
> that comes with E).
> 
> Startup smoothening and pre-caching
> ----------------------------------
> 
> E now pre-caches data it thinks it'll need (has a background thread
> go page in data from disk like your theme and wallpaper). This is
> done in the background in a thread while the rest of E keeps running
> along starting up. This will also smooth out the initial startup fade
> in as data will already be precached thus not causing stalls. I've
> seen this visibly improve E's smoothness on start on my Rpi's.
> 
> Fixes / workarounds
> -------------------
> 
> So many to mention, I won't mention them all, but one is a workaround
> X's bad habit of allowing the pointer to exit the screen area with
> multiple screens of different resolution. I added some code to
> ecore_x to support setting pointer barriers and make E enforce them
> now to disallow the pointer leaving the screen area.
> 
> Lots of other fixes for little things here and there too which I'm
> not going to get into due to the sheer volume of them.
> 
> 
> 
> 



_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to