1

I know how to program in C/C++, JavaScript and PHP and I want to develop some GUI tools for Ubuntu. How shall I start?

In other similar posts the OP suggests Python and he doesn't refer explicitly GUI.

karel
  • 114,770
  • 1
    Making suggestions of that type are generally frowned on here. – David Feb 26 '21 at 12:20
  • This will be very opinion-based. I suggest you do some more research by reading/watching about the topic, and eventually come to a decision. There are dozens, if not hundreds of different programming languages and methods, so there is no right or wrong. – Artur Meinild Feb 26 '21 at 12:32
  • 2
    David, Arthur, that's quite an unfriendly and dampening start for OP. I'm on one hand all-in for maintaining site quality, but this is a legit request for info, and why wouldn't "Ask Ubuntu" be the right place to ask this. This overpolicing sometimes comes across harmful. – Levente Feb 26 '21 at 12:43
  • 1
    Reviewers Please close this question duplicate of How to develop for Ubuntu? instead of locking out up-to-date content. How to develop for Ubuntu? is an obsolete broken link farm that should be closed as a duplicate of something, and this up-to-date question is what we have to close it with. – karel Feb 26 '21 at 23:53
  • @karel no, please don't. neither of the two questions are on topic here, they are very, very broad and vague and cannot be giving a single, correct, technical answer. They're great topics for a forum discussion, but don't fall under the scope of a technical Q&A site like this. – terdon Feb 28 '21 at 15:23
  • 1
    I don't think that Ubuntu development questions are all bad. There are good Ubuntu development questions and bad Ubuntu development questions, so let's close the broken link farm development question first. Pages that have nothing but broken links help nobody and they waste Ubuntu developers' time. – karel Feb 28 '21 at 15:38
  • If a development question was any good I could use it as a duplicate target to close the obsolete ones. The problem with using this one is the reviewers will jump on it and close it, so I have to maintain the whole page myself without any help from the community. Using a page that's hard to maintain for a duplicate question target is not the best way to be an Ask Ubuntu reviewer. – karel Feb 28 '21 at 15:45

2 Answers2

2

"some GUI tools" is pretty vague, so I will just bring suggestions anyways.

The default Ubuntu DE is built with GTK / Gnome 3, and a big player in governing the UI is gnome-shell (I happen to know that both javascript and C are relevant).

Upon this builds Ubuntu's default theme, Yaru.

Alternative desktops include MATE desktop (keeping Gnome 2 alive), LXQt, and KDE.

You could research / approach any or each of these projects / communities to develop an impression on where you would wish to contribute.


The all-in-one resource for working with GTK (thank you, @PJSingh):
https://infrastructure.pages.gitlab.gnome.org/gtk-web/docs/

Levente
  • 3,961
  • 1
    GTK is the native UI toolkit for Ubuntu, and you can program using various languages including C/C++. Here is a link that has all the info you need, including an API reference: https://www.gtk.org/docs – Enterprise Feb 26 '21 at 23:55
  • what about QT5, do you also recommend? – João Pimentel Ferreira Mar 01 '21 at 12:46
  • 1
    @JoãoPimentelFerreira I don't recommend any, maximum suggest :) My experience consists only of writing some CSS/SCSS/php/js for websites. So I can't even fathom what Qt is. I have read that LXQt is based on Qt and that KDE is heavily relying on it too. (I don't know which specific version.) But based upon what I read, I can imagine that Qt might have a broader presence and also future in commercial contexts (considering its impact in a career). What I would recommend however is to pay attention to the culture, the atmosphere too; basically in which community does working feel better. – Levente Mar 01 '21 at 14:41
1

The old Ubuntu development documentation has been taken down and moved to different URLs, and the links to it on Ask Ubuntu return 404: Page not found pages. The current Ubuntu development documentation is the Ubuntu Development wiki. For getting started in Ubuntu development in addition to the aforementioned wiki you will need to know the basics of Debian format or snap format packaging, depending on how you decide to package your software.

Before you knock yourself out developing tools that already exist, you should be aware of another Ubuntu developer resource that exists in 2021, which is Ask Ubuntu. As it happens the tool that you intent to develop may already exist, and it is bundled in one of the thousands of software packages in the official Ubuntu repositories. Even harder to track down, the tool may be a feature of a package, but it's likely some Ask Ubuntu user might know about it. Asking for a software recommendation for such a tool on Ask Ubuntu will prevent you from wasting your time trying to reinvent the wheel. OTOH if an existing tool is available in the default Ubuntu repositories but most Ubuntu users can't find it, there is room for improvement.

karel
  • 114,770
  • Maybe it's a bit outside of the scope of this question, but there is not one OCR application in the official Ubuntu repositories that is good enough to convert a cell phone photo of an Ubuntu black boot screen to plain text, so the boot messages would be searchable on Ask Ubuntu. These black screens often contain valuable information which is currently almost completely inaccessible to Ubuntu users who may have gotten the same error messages. – karel Feb 26 '21 at 13:25
  • Well, once we are at "feature requests"/"wish-list", I would suggest restoring any from the bunch of settings that are present in gsettings/dconf, but ceased to take any effect on gnome-shell in recent releases. These (more precisely, the lost affordances to change things) are impacting essential every day user experience. – Levente Feb 26 '21 at 13:41
  • That feature request would also be worth posting as a Launchpad bug report. – karel Feb 26 '21 at 13:42
  • 1
    Thanks for the suggestion, I will consider that! – Levente Feb 26 '21 at 13:44