Custom GUI for Linux


Hey a linux noob here!
I was wondering if it was possible to create a custom GUI for linux so that it would look like a console style GUI. Are there specific tools for this? Do those tools require complete knowledge of linux? Can I also edit the splash screen image on boot up?

It would be good to know if I could. Please help.

I have also attached a picture that I quickly drew in paint to describe what I meant by a console type GUI.

quickly drawn concept.png


Well-Known Member
Linux is very configurable. But it may or may not finally achieve the vision you have inside your head, which your sketch can only partly describe to us. Most people, I think, use a Desktop Environment (DE) with Linux. These are typically similar to Microsoft Windows, and they require a fair amount of system resources (RAM).

Your sketch makes me think that you might prefer a Window Manager (WM) instead. They need less RAM and are quite a bit faster/more responsive when compared to DE's. The windows may be allowed to overlap, a "stacking" window manager, or they may not be allowed to overlap, a "tiling" window manager, but there are other choices too: "compositing" and "dynamic." A pretty good comparison chart is here. Some recent recommendations can be found here, although this article neglects Enlightenment, Fluxbox, and IceWM, which are also quite popular, I think.

Being new to Linux, it may take you awhile to sort through all this stuff. But the only way to find what you like is to try it, then try something else, and repeat. You'll eventually settle in to what is comfortable for you and your computing needs.



Active Member

The sketch you provided looks like a "launcher". I guess when you start an app you want it to go full screen (like in console).

You will probably need some coding skills to acheive your goal but this is a reachable target.
There's a chance that a WM out there is configurable enough to do 50% of the job without writting a single line of code.

The first thing would be to start all applications as full screen without title bar. Take an in depth look at some WM configuration to see if there's a way to do it throught config.

Then you would need to bind shortcuts to switch from on application to another. I'm pretty sure most WM have configuration for that.

Then you would need to bind a shortcut that start/focus a specific application you made, which would have the interface you descibed. It would be a regular app that just spawns other applications on demand.

The biggest part of the job would be to code the application that actually looks like the sketch you provided.


Thanks for all your replies. It really helps me out.

Thing is I want a desktop environment to be configured in such a way that it would provide a list of apps in a way like I showed and just show the user only a selected list of apps. A window manager might do the job however I don't want to give the user access to the desktop and he should be given access to the terminal. However through the settings he can make changes to the system through different limited settings given. This is the only thing I would only require.

An app, like JulienCC said, might do the job but I'm not sure which is more efficient or not. I fear that the user might be able to exit the app and do unwanted changes to the system. It can be autostarted directly but it can be exited by the user.

Anyway, thanks for the help. It is greatly appreciated.

(PS: Where and how do I start learning to modify? Is basic commands and python enough to start out?)


Active Member
I fear that the user might be able to exit the app and do unwanted changes to the system. It can be autostarted directly but it can be exited by the user.
Security always depends on the type of attacker you want to counter.
That being said using an app with a proper WM configuration should be enough to keep most people away. You can configure your WM to prevent some windows to be closed, to respawn it automatically in case of a crash, you can disable the desktop, keyboard shortcuts... Simply get your hands on a flexible WM.

For the application itself, basic coding skill is always enough to get you somewhere.
Here is a list a GUI libs for python :
Chose one in the crossplatform list. I'd recommend choosing something based on Qt since its pretty clean to use and widely documented.

Also, I see what you whan to acheive with your custom app launcher, but having smooth effect on hover and stuff is going to be a little bit complicated so I would start by using plain buttons instead.
I can tell you from a professional perspective : you will go way further if you start small. Focus on making something that works then you will make some improvements over the time.

Few tips :

  • first of all, make a developpement environnement that you can mess with without actually breaking your system. Use a virtual machine, a separate computer or make a full system backup so you can rollback to a clean state
  • make a git repository and have it cloned somewhere (github or anything), especially if you do your testings on the same machine as the one you use to code. Put not only the code but also WM configuration files in it. As possible also include an INSTALL file containing instructions to deploy your solution. If you want to get some help in the future its going to be important that people can reproduce exactly the environment you are working on.
  • install and test many WM, play with their configuration, try to find one that you can tune according to your needs which are : disable desktop elements, remove system tray, remove application list, full shortcut customization, spawn specific application on startup, prevent an app from closing based on its name, force windows full size, remove window control bar...
  • make your app launcher, start with a python app that displays a simple window with a button, make the button open an application of your choice on click
Good luck !

Members online

Latest posts