Email or username:

Password:

Forgot your password?
126 comments
DeviantXS

@neilsardesai Holy crap... that is... incredible...

would be amazing if it also supported Affinity files too.

millions :spinny_cat_bi:

@neilsardesai this is really cool but it has to take up a ton of space

Jason Medeiros

@neilsardesai This was, at least at one point, a feature of @acornapp. Pretty fun.

Nik.

@zackva @neilsardesai I‘ve been using ScreenToLayers in the past, which is basically the exact same thing, just without the granular capture control before actually capturing everything.

apps.apple.com/us/app/screento

Josh Calvetti ⛰

@gn @neilsardesai Acorn can take screenshots with each window (maybe app?) in a separate layer, so this is mostly doable!

Koinu

@neilsardesai aCropalypse, but promoted from being a bug and expanded as a feature. 🤔

DELETED

@mentallyalex screenshots with layers has been a thing for a long time now…where you been? Lol.

@neilsardesai

DELETED

@victor
Wait...
I never... not on mine! My work macOS didn't have non-destructive layered screenshots!

Did it?

It was like, last years model... but nothing other than Data Science on it.

Paul Turnbull :CApride:

@mentallyalex @victor I got excited and posted this at work only to be shown that Acorn, an app I have, has had this as a feature since 2009. So it's not built in but is available in other apps (I assume more than Acorn can do it).

DELETED

@Chigaze
I am glad I'm not the only one.
I was half convinced it was fake and @victor was trolling me.

Paul Turnbull :CApride:

@mentallyalex @victor I poked around a bit and found what looks like the project, Son of Grab, that's in the OP. It dates back three years and features of Core Graphics.

github.com/ElsonPeng/SonOfGrab

eduo

@victor @mentallyalex @neilsardesai I had an extension in in System 8 that did this, saving a PICT with all separate objects.

I had a libfuse filesystem years ago that showed the screen as individual images in a hierarchical folder.

Acorn has been able to do this "Layered screenshot" for ages too.

It's fantastic.

Man of Sand

@neilsardesai But you need a terminal command to remove the giant drop shadows from every window right? 😅

Thomas Woolford 🚌

@neilsardesai

Ok, yeah, I need to implement this in KDE/spectacle now...

@xssfox

Lumiukko

@neilsardesai Is there also something like that for windows and non-proprietary format using layers, aaand perhaps even high-res/vector screenshots? This would be amazing for high quality documentations and publications.

Chancerubbage

@neilsardesai @simsaens there seems to be more object oriented graphics available system wide; layers are much easier.

rudantu

@neilsardesai The people are demanding an explanation

crumbcake

@neilsardesai That is super cool! I have absolutely no idea what I would ever use it for but I want it!

skategoat 🐐

@neilsardesai this must be one of those awesome obvious ideas no one had until someone thought of it

eduo

@felipe @neilsardesai That describes every idea.

In this case this has been possible for decades. I had this in System 7.5.5 in the 90s.

eduo

@felipe I mean that all ideas nobody has had them until someone has thought of them. Regardless of how obvious or awesome they are. So the ones that are would be included in it.

This has existed for three decades, in MacOS.

eduo

@vancura @neilsardesai This was the name! Thanks! I mentioned this a couple of times in replies but couldn't remember the name.

There was also an extension back in pre-OSX days that stored the screenshot in a PICT with Windows as individual stacked objects. So great.

xypnox

@neilsardesai really cool, though not a problem if using tiling window managers.

Adding scroll stste as well would be incredible(-y hard)

darkphantum

@neilsardesai looks obvious after the fact. But would have never thought of it. Amazing

Zii0

@neilsardesai I would have no use of that, yet I find this being amazing!

Duncan Horne

@neilsardesai This must be some kind of black magic…!

Love it.

Григорий Клюшников

How does it handle windows with transparent blur-behind parts, e.g. Finder sidebars?

Tom Jacob

@neilsardesai cool but do people take screenshots of their entire screen still? I take windows and portions of windows.

Stefan Neufeind

@neilsardesai I always hoped this might become possible with #wayland on Linux one day ...

Fede Garcia | 🇦🇷

@neilsardesai what is this awesome magic !? 🧙‍♂️🧙‍♀️

Tobias Bernard

@drq @neilsardesai We already take screenshots of all windows for the per-window screenshots, so this is actually feasible lol

I guess what you'd have to do is do a separate wallpaper+top panel screenshot, and then have all the layers in a single file that supports this (maybe SVG?).

Lyyn ☮️

@tbernard @drq @neilsardesai I thought that compositors should optimize drawing, for example, windows covered by other windows, or even parts of windows which are covered. In this case it would be impossible to get all window's contents. Or we could force the applications to draw just for the screenshot?

Val Packett

@lyyn@mastodon.ml @tbernard@mastodon.social @drq@mastodon.ml @neilsardesai@mastodon.social it would be impossible without a compositor, in an old school xorg setup / windows pre-aero etc. Any compositor has access to all the buffers submitted by clients, that's how it… well… composes them. Of course drawing is very optimized; there's even damage tracking to only redraw little parts of the windows that changed. But such a "screenshot" functionality doesn't have anything to do with what's drawn on screen, it would just access the sources of what was composited onto the screen.

I've actually built that (without assembling into a layered image editor file…) for Weston way back when haha

@lyyn@mastodon.ml @tbernard@mastodon.social @drq@mastodon.ml @neilsardesai@mastodon.social it would be impossible without a compositor, in an old school xorg setup / windows pre-aero etc. Any compositor has access to all the buffers submitted by clients, that's how it… well… composes them. Of course drawing is very optimized; there's even damage tracking to only redraw little parts of the windows that changed. But such a "screenshot" functionality doesn't have anything to do with what's drawn on...

wendy

@neilsardesai really interessting, what the software name ?

Cegorach

@neilsardesai
that's a great feature - and a huge foot cannon

can't wait for people leeking all kinds of sensible data that way.

Martin Maciaszek :verified:

@neilsardesai Snapz Pro X from Ambrosia Software did this years ago… until they just disappeared. I‘d love to get that functionality back

Maksym Hazevych

@cassidy @brainblasted @neilsardesai make a "pro" button for this in the screenshot tool, and it will totally look like a camera app now :-) Might as well put panorama VS single-monitor screenshot there, countdown, a toggle for the app's shadow (might not be possible), drawing board, multiple selections, onscreen text recognition and selection, same with images... Sorry, carried away a bit

Abandoned

@cassidy @brainblasted @neilsardesai we already have svg screenshots for gtk3 apps. We have been using it in inkscape development for years.

Sergey Bugaev

@brainblasted @cassidy vector screenshots would be very cool as well, but this feature demonstrated here is not about that...

it's taking (raster) screenshots of each window & the background separately and then compositing them in the right way, to make it look like the original screen but with windows on different layers

something like this should be implementable in the Shell screenshots machinery without involving GTK or a new Wayland protocol, as full vector screenshots would require

Paulo Queiroz

@bugaevc @brainblasted @cassidy I wonder what this does with transparent + blurred window backgrounds

Sergey Bugaev

@raggesilver @brainblasted @cassidy hmm, it does have "Dock" as a separate layer ('cause Dock.app is just a client too)

Hannes

@neilsardesai this could unintentionally leak information though.

عرفان 🌾

بیایید این رو به عنوان یک پروژه تعریف کنیم. جدی.
#نرم‌افزار_آزاد

🍉 دانیال بهزادی 🚁🗻

@erfanekm
تو فکرش بودم دیشب. خیلی هم ساده است

افشین

@danialbehzadi @erfanekm
یعنی می‌خواهید این برنامه را از پایه تولید کنید یا این قابلیت را به برنامه‌های موجود اضافه کنید؟

🍉 دانیال بهزادی 🚁🗻

@afshin @erfanekm
اضافه کردنش به نماگرفت پوستهٔ گنوم نیاز به دانش جاوااسکریپتی داره که من ندارم. ولی می‌تونم الگوریتم و mockupاش رو طراحی کنم.

À.S.R

@danialbehzadi @afshin @erfanekm
من قسمت جاوااسکریپتشو میتونم انجام بدم.
ولی نیاز به توضیح بیشتر دارم.
اگه میتونی بگی دقیقا باید چیکار کنم یا چه چیزایی نیازه براش میتونم سعیمو بکنم.

🍉 دانیال بهزادی 🚁🗻

@sadraiiali @afshin @erfanekm
اول کد مربوط به بخش نماگرفت رو توش پوستهٔ گنوم ببین. باید یه افزونهٔ گنوم درست بشه که اون کد رو تغییر بده.
تو حالت تمام‌صفحه باید یه تیک بهش اضافه بشه برای Nondestructive که اگه اون رو زد، نمای پس‌زمینه و نوار بالا رو بگیره و بذاره توی یه پروندهٔ xcf. تمام پنجره‌های اون صفحه رو هم بگیره و به عنوان یه لایه بذاره توی اون پرونده. ترجیحاً باید بتونه مختصات x و y و z پنجره رو هم بگیره و بذاره سر جای خودش.

À.S.R

@danialbehzadi @afshin @erfanekm
نیگا تا اینجا کلیتشو فهمیدم ولی فرمت .xcf فکر کنم یکم چالش داشته باشه لایبراری ای براش پیدا نکردم باش کار کنه.
اونم اطلاعات داری؟

آسان

@sadraiiali @danialbehzadi @afshin @erfanekm
لطفن از n-word استفاده نکنید 🙏🙏🙏
/s

🍉 دانیال بهزادی 🚁🗻

@sadraiiali @afshin @erfanekm
رفتم مستنداتش رو بیارم، دیدم توسعه‌دهنده‌هاش گفتن برای این کارها به‌جای xcf از OpenRaster استفاده کنید:
openraster.org/

عرفان 🌾

@danialbehzadi @afshin
قاعدتاً باید فهرست پنجره‌ها رو دربیاریم و بعدش نماگرفت تک‌تک اون‌ها رو بگیریم و آخرش اون‌ها رو ادغام کنیم.
گرفتن فهرست پنجره‌ها آیا به مدیرپنجره مربوطه یا شیوه‌نامهٔ ارتباطی اون‌ها یعنی X و Wayland؟
گرفتن نماگرفت چطور؟ بسته به مدیرپنجره فرق می‌کنه؟

منظورم اینه که آیا می‌شه یک اسکریپت نوشت که برای همهٔ میزکارها کار کنه؟ یا برای هر کدوم باید چیز کاملاً جداگانه‌ای ساخت؟

Mehrad :kde: :emacs: :rstats:

@erfanekm @danialbehzadi @afshin
تاحالا از @flameshot استفاده کردین؟ اونجا دقیقا ما همین کار رو‌میکنیم، توی X کاملا جواب میده، توی Wayland هم تا مقدار زیادی جواب میده ولی هنوز باگ هایی هست که باید رفع کنیم

عرفان 🌾

@Mehrad @danialbehzadi @afshin @flameshot
اتفاقاً داشتم یک ایشو توی گیت‌هابش رو می‌خوندم که دیدم تو پاسخ داده‌ای :)
با این حساب تنها کاری که لازمه انجام بشه اینه که توی flameshot بگیم در خروجی به جای رندر کردن همهٔ پنجره‌ها روی هم، اون‌ها رو در یک فایل که از لایه‌ها پشتیبانی می‌کنه کنار هم بچینه. درسته؟

🍉 دانیال بهزادی 🚁🗻

@erfanekm @Mehrad @afshin @flameshot
نکته‌ای که هست اینه که توی X اگه دو تا پنجره همپوشانی داشته باشن، فکر می‌کنم اون قسمت زیری اصلاً کشیده نمی‌شه و بنابراین وجود نداره. ولی توی وی‌لند هر پنجره جداگونه وجود داره و compositor فقط جای قرارگیری و ترتیبشون رو مشخص می‌کنه. نماگرفت گنوم هم می‌دونم هر لحظه، نمای کل پنجره‌ها رو به صورت مستقل داره.

Mehrad :kde: :emacs: :rstats:

@danialbehzadi @afshin
الان متوجه شدم منظور چیه. نه ما در واقع از API موجود توی compoaitor یا wayland portal استفاده میکنیم، بهش میگیم عکس بگسره و تحویل بده. هرچی اونا نشون بدن رو ما نمایش میدیم و کاربر میتونه با object های موجود کار کنه و تغییر بده. فکر کنم اگه هر پنجره به صورت یه raster و در کل یه وکتور (مثلا svg) به ما برگرده، عملا کاربر میتونه مثل هر object دیگه ای مکانش رو تغییر بده یا پاکش کنه.

@erfanekm
در مورد Flameshot، من یکی از owner های پروژه هستم از آگوست ۲۰۲۰ تا الان

@danialbehzadi @afshin
الان متوجه شدم منظور چیه. نه ما در واقع از API موجود توی compoaitor یا wayland portal استفاده میکنیم، بهش میگیم عکس بگسره و تحویل بده. هرچی اونا نشون بدن رو ما نمایش میدیم و کاربر میتونه با object های موجود کار کنه و تغییر بده. فکر کنم اگه هر پنجره به صورت یه raster و در کل یه وکتور (مثلا svg) به ما برگرده، عملا کاربر میتونه مثل هر object دیگه ای مکانش رو تغییر بده یا پاکش کنه.

Mehrad :kde: :emacs: :rstats:

@erfanekm
ما الانش هم از لایه پشتیبانی میکنیم. مثلا یه اسکرینشات بگیر، چندتا مستطیل بکش که همپوشانی دلشته باشن، بعد space رو بزن که منوی کنار رو ببینی و بتونی ترتیب لایه ها رو جابجا کنی

@danialbehzadi @afshin

Nima Fanniasl :yay: :linux:

@danialbehzadi @afshin @erfanekm من بزودی قراره جاوااسکریپت یاد بگیرم. الان‌ یه دلیل بهتر برای یادگیریش پیدا کردم :)

kawazoe

@neilsardesai The shadow reconstruction is crazy accurate. Kudos for the person who reversed engineered the shadow parameters.

DefectiveWings ✈️:verified:

@neilsardesai
I would screw this up so badly and leak something I didn't intend.

But it's so cool!

ollibaba

@neilsardesai So, next step would be to take an entire memory dump which we can restore into a new VM?

retiolus

@neilsardesai wtf. woaw. 🔥🔥🔥🔥🔥🔥🔥🔥

Go Up