First of all, let me say to the Gnome Community team that I love the Gnome project. All of you are making an amazing work and please, continue improving the people lives and feelings like mine. Nowadays what it define which Linux distribution I use, it’s based on the Gnome experience that I can have with it.
Please continue with this amazing project. For some of us it’s too important and it means too much.
This email it’s a little extensive, I have been spend around 6 hours and half on it but I hope that I can help to improve and share some ideas with you that make better the Gnome desktop project and the user experience in general. Please, consider that all my recommendations are just that, recommendations of a personal point of view, and dreams that I wish to share with the amazing Gnome Community
AND please, forgive my English, isn't so good as I wish. Working on it.
I think the Gnome desktop and applications must focus in a “few” specific aspects, optimization and performance, stability, new functionalities and INTEGRATION. Integration with almost any existent platform directly from the Gnome desktop.
I wish some day can have a similar MacOS user experience on Gnome, that integrates with iOS and Android devices
I currently use an iPhone 4s, a gift from a friend. Apple remove the support for that kind of devices some time ago and also many applications are doing so. I’m really disappointed about them and its politic about many things. Do you know what I wish, I wish could have an Linux operative system with Gnome 3 running in my iPhone 4s some day, jeje ;). An open source, free and updated software running in a privative and outdated device, NICE.
Lets imagine that Gnome could provide support for all those old and unsupported devices (iOS and Android) with updated and functional Linux applications through the Gnome mobile user experience, and of course, provide a layer of compatibility with all those android and maybe iOS applications. Don’t worry, it’s just a dream. But if you make it let me know it for install it into my iPhone.
Now, I will share a few ideas, recommendations and new functionalities that can be integrated to the Gnome desktop
Improve integration and synchronization between mobile devices (iOS and Android) and the Gnome desktop.
This is something really important. Lets imagine that Gnome allows to computer companies (like Lenovo, Dell, HP, ASUS, ….) to have custom operative system on phones, tablets, desktop computers and laptops that synchronize and integrates perfectly between them (just like Apple it does), providing a custom user experience making use of a customized Gnome as interface. One of the main aspect that make the Apple Computers company so strong, it’s the integration between all its devices that improve so well the user experience. And the main reason that Android has been so popular on mobile devices it’s because Google provide to companies the opportunity to create a custom user experience over it operative system. That it’s what Gnome needs and help to computers companies and Linux distributions to provide: integration between any kind of devices, and user experience customization through the Gnome desktop (the best of both worlds). Now, Linux and Gnome desktop will give to computer companies the opportunity to provide to clients a similar or a custom user experience like Apple products it does
With this, companies will be able to distribute its products (provide support through Gnome Builder) with a customized user experience with Linux and Gnome desktop.
The amount of active users that use Linux and more specifically Gnome desktop can increase dramatically, providing from companies support for drivers, an increment of games and applications and financial contributions to Gnome
Make the Gnome desktop and the Gnome applications code infrastructure more friendly like the Linux philosophy
Provide priority when load applications, like web browsers when load web pages to improve performance
Apply Code Splitting webpack feature to improve performance in desktop and natives applications prioritizing the main applications needs. Provably, also make use of reactive programming
Make the indexation process more or less aggressive in dependency of the computer technology. There is important that it can be configurable by the user or adaptable under hard drive demand
In computers with hard drive, during the indexation process the performance and user experience decrease significantly by the hard drive bottleneck. Lets image, for example, that I’m programming (with PyCharm that reindex the Python interpreter each time that start up) and starting up Firefox with a few opened tabs and some addons DURING an active Gnome indexation process (personal experience), OR, I need to do something else while Gnome it’s indexing my thousands of Videos, Pictures, Music, Documents (cousin experience). Believe me, everything becomes slow, and the user experience it’s not the best. So, I think that it’s important that it can be configurable “how much aggressive is the indexation process it’s”, and make it by default under hard drive demand, prioritizing the user process demand
The idea, is make this process the most “transparent and in silence” as possible
Allows to choose which Video, Documents, Music, Downloads, Pictures, … source will be (for example, in another disc partition)
Integrate Files notifications and Firefox notifications (like Chromium does) to the Gnome notification system. For example, when a copy of file or a download has finished. Basically, integrates all possible applications with other applications, the Gnome notification system (like birthdays of contacts: similar to mobile experience on iOS and Android) and the Gnome ecosystem itself. “The little details are important, and in the most of cases, make the difference”
Provide support for Progressive Web Applications like Microsoft and Apple have already done, making PWAs available to Gnome and the Linux ecosystem. Also integrate them with the Gnome notification system
Make default searches through Ecosia search engine.
This is something really important. Linux can promote through Gnome desktop a project of HIGH IMPORTANCE on these times. “It doesn’t matter if we build the best Open Source applications in the world if we haven’t a world to enjoy them”. This is something really important and we can make the difference. I’ve already configured Web to search by default through Ecosia.
Provide support for developers that can be integrated with Gnome Builder projects: like time of page loads, different profiles by tab, maybe Google Lighthouse plugin or a custom one, and the traditional developer options available on existent web browsers
Provide support for addons, or if its possible, use the existent ones on Firefox or Google Chrome
Create a list of copy by priority that copy just one resource at the time (like UltraCopier does or something similar) that integrates with Files and its use will be optional (activate it and deactivate it through the Files Preferences). This is really useful for computers with hard drive, especially when it makes copy of multiple files concurrently. This will improve the user experience a lot and the system performance in general
I’m currently programming in Python and some Node technologies like React Native, and I wish could do it without need to install any external IDE, just Gnome Builder, and have the same functionalities and support like the best Python IDE (PyCharm) or JetBrains products does to other technologies (use as references) but with a lot of best performance and through Gnome Builder with the Gnome experience
I wish that Gnome Builder will be an IDE not just for Gnome, also for almost any other project in any other programming language, in any other operative system. You just need to work in the core of Gnome Builder, and make available the integration with anything else through Extensions developed by the community. Focus on the development of Gnome Builder for Gnome, and leave the rest to the community of developers
Make available Gnome Builder installers also for KDE (maybe through Snaps or Flatpak) without need to install to much dependencies, Windows and MacOS, even through a Docker image ;) .
Provide support for external Extensions developed by the community. Example: something like the Visual Studio Code, Atom or Sublime Text extensions. That it will provide a great support to the IDE and more developers will know about the Gnome projects listed at the initial view of Gnome Builder and contribute with them.
IMPORTANT: Provide support for Docker (reference: PyCharm Professional) and the use of additional Docker Registry
Provide support for external python interpreters, custom virtual environments, even to python interpreters existent into a Docker container. Also can be used some dockerized node (npx or yarn) package repository, etc...
Create a Designer view (like Editor or Profiler) with draggable components that generate code in background that can be exported to development framework or programming language like: HTML, BeeWare, wxPython, React, React Native, Angular, Native Script, Vue.js; just by making the custom specifications through external Extension
Identify designer components from already existent source code
References for the “Gnome Build Designer”: React Studio by Neonto. YouTube channel
Basically this it’s a mix of ideas between Xamarin Forms and BeeWare project (amazing idea)
Execute the Terminal in the Terminal at the bottom panel instead of the Editor
Make components independently. For example, allows the Terminal shows in different modes: Floating mode or Windowed mode. This can be useful if do you have two or more monitors run the terminal process in one monitor and stay programming in another. Even if do you have just one monitor (in my case) I can see in more details the results in the big view.
Reference: PyCharm
Provide support for Docsets provided by Dash or custom ones like Zeal it does, integrated with the Gnome Builder documentation support
Specify key combination for each command, example: Comment code and Uncomment code
Show dependency needs for some specific functionality or support (python-jedi, python-autopep8, isort, python-isort or python3-isort) and try to install it
Provide support for external SDKs like the Android SDK
Allows test applications in real time with existent emulators AND directly on mobile devices and tablets (like Expo.io it does) through a connection established through GSConnect Gnome extension, for example, but directly with connected device to the Gnome desktop without the need to access to an online account
MUST DO: Provide support to projects that can be exported to any device and operative system from Gnome Builder. So, companies that use Gnome like explained above, can develop its applications from Gnome Builder on Linux preferably without compromise the infrastructure. The transition process must be as naturally as possible.
Please, update Evolution interface with actual concepts and Gnome experiences, and provide support for themes. Nowadays exists a lot of amazing references available. That might be the difference between an user that use or doesn’t make use the application
Integrate Gnome Boxes with Docker with functionalities similar to Kitematic, the Docker GUI.
Integrate scheduler To Do tasks with Calendar and the notification system
Recognize specific words that integrates with applications. For example:
“mailto: user gmail com”, or just user gmail com Integrate with Evolution or default email client
“search: some topic” Integrate with Web (epiphany-browser) and search “some topic” through Ecosia
“ecosia: some topic” Integrate with Web (epiphany-browser) and search “some topic” through Ecosia
“+53 XXX XXX XX” Integrate with Call application on mobile devices (in the future)
...
Improve performance and optimization (it’s too slow at start up)
Emulates the Vim and Emacs text editor
Provide support for Emoticons, Headings, Checkbox, Sign and Pictures
Reference: Notes iOS application
Implements graphical functionalities and support for themes like Bomi player it does.
In general, take as reference the best in the field and adapt them to the Gnome concept. “Don’t waste your time reinventing the wheel. Just take a look to the best one, see the concept, the design, how it works and what do you consider it needs, adapt it to your concept and make it better”
Provide experience and concepts currently available on mobile devices to desktop environment. “Programming once, have similar experience in any device”
I hope these suggestions can be helpful for improve Gnome and it can contribute with the project to make it better. In the future, I hope that I can contribute in a more active way.
Friendly, Hector Luis Lorenzo Zaldivar
Attachment:
Diagram1 - croped.png
Description: PNG image