Coder Social home page Coder Social logo

Comments (7)

Lakritzator avatar Lakritzator commented on April 27, 2024

Currently it would not be possible to build it on mono, as Greenshot is *very * tightly integrated into the Windows OS. The way we use the hotkeys and capturing would most likely NOT work on Mono, so we would first need to make it possible to replace these parts with different implementations.

I am working very hard on modularizing Greenshot, where as a result it should be easier to replace parts with an implementation which might work on Mono. By making the parts "stand alone", it's also easiert to test only this part. Currently in Greenshot 1.2 is just a bunch of Code where one small thing will make it fail and you will have no idea where the problem lies or how to fix this.

The current state of making Greenshot more modular:

  • a module for loading (and starting) add-ons: Dapplo.Addons
  • a module for configuration and language support : Dapplo.Config
  • a module for making Http calls the same for all addons Dapplo.HttpExtensions this prevents that one writes a need "plug-in" (addon, extension, whatever you call it) which doesn't work through a proxy when other parst of Greenshot do
  • a module for the Jira API, Dapplo.Jira which will be used in the plugin
  • a module for the native Windows logic, like finding the location etc, Dapplo.Windows
  • And now I will start working on the plug-ins/addons itself, so they get their own repos.

Everything is work in progress, and changing constantly...

Inno-Setup is our installer builder, PortableApps is another, both are not needed to make a working Greenshot. It would work fine, just by having the resulting files in a directory.

But like I said, it would take a LOT of time to "port" the current Greenshot to Mono. Another problem is that I am changing currently so much (see develop branch) that you would be porting a moving target. Besides, I want to see where Microsoft is going with the new .NET core..

Currently it would not be feasable, or maybe that's wrong as everything is possible, I would advice against it... At least wait a few months until I have refactored the project.

P.S.
One person of our Team is working on a prototype for Mac, we don't know if we ever release it but just so you know the final word is not said. Besides time, the biggest problem with a Mac version, is money... I don't want to spend > 1000€ for a laptop, which is money we might never see back... only 1 of our team which exists of 3 people has a Macbook...

from greenshot.

Lakritzator avatar Lakritzator commented on April 27, 2024

The modules that I recently created alone are already > 21.000 lines of code, as can be seen here: https://www.openhub.net/p/dapplo

If you have little knowledge of .NET... it's a lot to swallow :)

from greenshot.

Lakritzator avatar Lakritzator commented on April 27, 2024

One last thing... my biggest problem with Mono would be the UI.
We are in the process of removing all Windows.Forms code, and changing to WPF, which is already a lot of work. If we also need to write a new UI for Mono :(

from greenshot.

thiagocmoraes avatar thiagocmoraes commented on April 27, 2024

Understood. Thanks for the thorough answer. This is a bummer to me because I love greenshot a lot and would love to use a few features from it, but Mac support is a must for me. As this is quite a big overhaul, I'll let it pass and check again in a few months. Using this as an opportunity to learn .NET and Mono at once seems too big of a leap :)

from greenshot.

Lakritzator avatar Lakritzator commented on April 27, 2024

Like I said, Mac might happen... still it would never be the same as Greenshot on Windows, not laying any weight on if this is good or bad... just different as it would have a different code base (no reused) and it's based on a different platform (different behavior).

We considered Xamarin, a very popular "platform" for developing applications for multiple platforms, but the pricing is something a bit out of our league... If I understood it correctly it would be 1000$ per developer (3x) per year... Than we need an Apple Store account, and the mac books... that put together and subtracted from our yearly "earnings" from donations, would be a negative amount...
Okay, we might earn a bit more by selling the application... but this again would lower the donations...

And the work that needs to be made before it works...

from greenshot.

Lakritzator avatar Lakritzator commented on April 27, 2024

Just a small update.

In the mean time I already made some of the components for Greenshot available for the .NET Core (Linux, Mac etc), unfortunately I am far away of having a running Greenshot as there is no UI or capture logic.

  1. Logging
  2. HTTP extensions (to connect to cloud services etc)
  3. Clients for Jira and Confluence

Further more my colleague is working on a Mac version, but this is native.

from greenshot.

Lakritzator avatar Lakritzator commented on April 27, 2024

We are removing the issues on github, as most people don't read and create feature request or report bugs here... and we already have an issue tracker. Just so you know.

https://greenshot.atlassian.net

from greenshot.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.