TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Greenshot - a free screenshot tool optimized for productivity
Translation pending
ProductivityC# · Inno SetupGitHub @greenshotOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Greenshot for Windows - for more information look here:
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Welcome to the source repository for Greenshot.
Greenshot is a light-weight screenshot software tool for Windows with the following key features:
Being easy to understand and configurable, Greenshot is an efficient tool for project managers, software developers, technical writers, testers and anyone else creating screenshots.
The Greenshot logo and trademark are the property of the Greenshot development team. Unauthorized use of the logo and trademark is generally prohibited. However, we allow the use of the Greenshot name and logo in the following contexts:
Please refrain from using the Greenshot logo and trademark in any promotional materials, products, or in a manner that may cause confusion or imply endorsement without prior written permission.
If you have any questions or wish to seek permission for other uses, please contact us.
Thank you for your understanding and cooperation.
This is the ongoing development branch for future Greenshot releases.
The documentation in docs/ describes Greenshot 1.3, the current release. What is new in Greenshot 1.4, which is developed here, is described in docs/vNext.
You can find a list of all releases (stable and unstable) in the Github releases or in the version history on our website. The downloads page on our website always links to the latest stable release.
These instructions are made to assist developers in getting started with Greenshot so they can contribute to the repository. Please verify system prerequisites are met before trying to build.
Use Visual Studio's MSBuild with msbuild src\Greenshot.sln /p:Configuration=Debug /t:Build /v:minimal to build the release version. Use MSBuild rather than dotnet build.
| Configuration | Builds | Output |
|---|---|---|
| Debug (the default) | Everything but the installer project: Greenshot, the plugins, greenshot-cli.exe and greenshot-proxy, greenshot-mcp, the tests | src\Greenshot\bin\Debug |
| Release | Everything, plus the release files: checksum.SHA256, the SBOM, Greenshot Light, the installers and greenshot-mcp | src\Greenshot\bin\Release and installer\ |
| Debug Light | Greenshot Light only: Greenshot, Greenshot.Base, Greenshot.Editor (and the build tasks) | src\Greenshot\bin\Debug-Light |
| Release Light | The same, optimized | src\Greenshot\bin\Release-Light |
Debug never makes checksums, an SBOM or installers; only Release does.
The xUnit test project is src\Greenshot.Tests\Greenshot.Tests.csproj. Build the solution with Visual Studio MSBuild first, then run the tests:
dotnet test src\Greenshot.Tests\Greenshot.Tests.csproj --configuration Debug
Tests that need clipboard or desktop interaction require an active, unlocked Windows session; interactive-desktop tests are skipped when the session is locked or inactive.
Greenshot Light is the basics only: no plugins, no AI tools (greenshot-mcp) and no browser extension. That code is not in its Greenshot.exe at all: it is left out with #if !GREENSHOT_LIGHT and <Compile Remove> in Greenshot.csproj, and the build fails when one of those types is still in the exe. Pick "Debug Light" in the solution configuration dropdown to run it with F5. On the command line, dotnet build src\Greenshot\Greenshot.csproj -c DebugLight (or /p:GreenshotEdition=Light) does the same.
The edition is in Greenshot.exe ([AssemblyMetadata("GreenshotEdition", "Light")] and the product name in its file properties); Greenshot.Base.Core.EditionInfo reads it, for the About window, the tray icon, the log and the bug reports. Another edition is another value of the GreenshotEdition property (see src\Directory.Build.props).
Images, icons and sounds for Windows Forms are embedded as plain files, not in .resx files: binary data in a .resx needs System.Resources.Extensions and its dependencies in the output, and the build fails when a .resx contains anything but strings.
src\Greenshot.Editor\Resources\<control>.Image.png, e.g. btnSave.Image.png. The wildcard EmbeddedResource in Greenshot.Editor.csproj (LogicalName Greenshot.Editor.Forms.ImageEditorForm.%(Filename)) picks it up, nothing else to add there. The icons of the tray menu work the same way with src\Greenshot\Resources\Tray (LogicalName Greenshot.Shell.TrayMenu.%(Filename)).<EmbeddedResource Include="..." LogicalName="<Namespace>.<Type>.<name>" /> in the project, the type being the one the resource belongs to.EmbeddedResources.GetImage, GetIcon or GetBytes(typeof(<Type>), "<name>"); the caller disposes what it gets.ApplyImages() of ImageEditorForm.cs.Resource items with pack URIs, as before.This is for Greenshot 1.4.x, Greenshot 1.3 doesn't use ImageSharp!
Some NuGet audit warnings are suppressed with NuGetAuditSuppress in src\Directory.Build.props, because they don't apply to Greenshot or are worked around. The reasons are listed here. Remove the suppression when the package is updated.
SixLabors.ImageSharp 2.1.13. These advisories are fixed only in 4.1.2, which no longer supports .NET Framework, and there is no 2.1.x fix. Greenshot only loads and saves files with ImageSharp when "beta tester" is on (ImageSharpFileFormatHandler); otherwise System.Drawing is used.
| Advisory | Severity | What it is | Why Greenshot is not affected |
|---|---|---|---|
| GHSA-wmxv-xphr-5c9g | Moderate | A crafted BigTIFF makes the EXIF reader loop for a long time | Worked around: ImageSharp doesn't load .tif/.tiff, WIC does (PR #1472) |
| GHSA-gwg2-r3hj-4w44 | Moderate | A crafted ICC profile causes a large allocation | In 2.x only reached by reading IccProfile.Entries, which Greenshot doesn't do |
| GHSA-j3p4-wp97-rph4 | High | Out-of-bounds write in HistogramEqualization on a float TIFF decoded as HalfVector4 | Greenshot uses neither, and no longer decodes TIFF with ImageSharp |
| GHSA-j9gm-c75j-xc9q | High | Out-of-bounds write in the TIFF encoder with CCITT Group 3 compression | Needs a 1-bit CCITT encode, set directly or kept from a decoded TIFF; Greenshot saves 8 or 24 bit with default compression from a GDI+ bitmap |
| GHSA-jjfr-hcj7-qf5w | High | Out-of-bounds write in the TIFF encoder with CCITT Group 4 compression | Same as above |