I am starting with this project of mine of writing a custom UI for linux. What would happen is:
-
The computer would boot into this UI which would not be the typical taskbar/icons/startbutton kind of thing. Think more like a dedicated UI instead of a general purpose one.
-
It would provide access to wifi, ethernet, bluetooth etc. Basically have access to most system resources.
Up until this point, I don’t planning on having a file manager for the user. The app would take care of this. Sort of the way apps on mobile phones work.
My first instinct was to work (fork an existing one) on a custom DE like Gnome/KDE. So I read up a lot about window managers and desktop environments and while window managers seem to be the best option for what I am trying to do, another idea occurred to me which would be much less complicated. I could simply (I know!) write an app which the native OS boots into, without any splash screen etc. So, take a distro like Arch Linux, strip it down to the basics and then build an app on top of that.
I would like to get some advice on what the best way to go forward with this would be. Do you guys concur that an app is better to go with? Please excuse me if the question seems naive. Any suggestions/ideas welcome.
3
I would like to get some advice on what the best way to go forward with this would be. Do you guys concur that an app is better to go with?
Step 1: decide what you want: you describe something that is a boot loader (very low level); then, you describe something that is a WM or a DE.
Normally:
- you should try to optimize for a user-level application;
- if that doesn’t fit, you should consider a DE or WM;
- if that doesn’t fit either, you should consider something custom (i.e. something that is between a DE, WM or user application – eventually not running X server at all)
- if that doesn’t fit either, you should consider something at operating system level (i.e. similar to a boot loader).
These steps are sorted in order of ease of implementation (determined by availability of libraries, documentation at each level, amount of specific domain knowledge and so on).
Step 2: decide what is feasible from what you want: a desktop application can take (depending on requirements and available resources) anywhere between half a day of development and a decade; a DE replacement on the other hand, would probably take longer (depending on complexity).
From here on, it gets complicated (you need analysis, design and the entire project lifecycle party).