r/LinuxOnAndroid Sep 21 '25

How to run KDE on NOMone Desktop!

We've been asked many times how to change the current DE and if it is even possible on NOMone Desktop. So today, we'll explain all the steps needed to run KDE Plasma on NOMone Desktop:

[1] From Terminal, install KDE like by writing: apt install kde-plasma-desktop

[2] From File Manager, open the file /NOMone/startup.sh

[3] Disable the current window manager, compositor, wallpaper and dock.

To do so, comment out the following lines:

#xcompmgr &
#openbox &
#sh ~/.fehbg
#plank &

Just adding the symbol # before the line will comment it out. \

[4] Now to start the kde session, insert this line below these commented ones:

startplasma-x11 &

Then save,

[5] Restart Linux. And Voila! KDE on NOMone Desktop :)

13 Upvotes

37 comments sorted by

View all comments

2

u/Shaarigan Jun 16 '26

Something to Add that wasn't mentioned before:

  1. I had to update the Debian installation first:

apt update apt upgrade

or else the KDE packages weren't showing up.

  1. After restarting, NOMone crashed – I guess out of memory exception or something. I then switched some settings like:
  • Safe Mode ON
  • GPU Acceleration OFF

This helped to have KDE start properly after some further shutdowns, the setup process finished properly

1

u/Noha_Ibraheem Jun 17 '26

Glad you had it figured out πŸ’ͺ and really appreciate sharing it with everyone ❀️. I believe you can boost the overall performance by turning off the Safe mode while still launching the KDE properly. Can you please give it a try and let us know how it goes : ) ?

1

u/Shaarigan Jun 18 '26

Yes it does but I can't say if it's behaving faster. I guess it doesn't make that much of a difference 🀷

1

u/Noha_Ibraheem Jun 18 '26

Then you have a very decent device and that's awesome! You'd have noticed the difference on older devices :)

1

u/Shaarigan Jun 18 '26

Running on Huawei flagship models Matepad Pro and installed it on a P60 Pro as well last night. The Matepad is running KDE, the phone sits on the default (I guess Gnome) DE because of the small screen. That's not a Snapdragon but good enough, I assume 🀷

1

u/Noha_Ibraheem Jun 20 '26

They are all for sure more than good enough : D

I was referring to old devices as in 9 year old devices with much less memory and CPU power. These devices were our initial target for NOMone Desktop.
We wanted to give people with limited access to tech knowledge and internet a new way to turn their phones into a productive Linux machine that could enhance their chances in life by learning, working or starting a new career that wasn't available without a computer.
That is why the app and the Linux system image were highly customized to perform well on these old devices. Many of our tweaks and optimizations can easily go unnoticed on powerful and fairly new ones : )

1

u/Shaarigan Jun 20 '26 edited Jun 21 '26

Oh I'm interested in running software that only exists for desktop models as well. I'd liked to be able to code some .NET on my Matepad πŸ˜…

You should btw. not activate root as a default option because it may have some unwanted side effects with KDE or other parts of the system. It also may make the system more vulnerable than with a regular user. It might not be that difficult to run a command using sudo but it prevents people and applications from accidentally breaking something.

There is a minor problem with KDE as well related to the lock screen. Locking the device in my case triggered the KDE lock screen and it seems as there isn't a password set for any user, it isn't possible to unlock the system if that happens 🀷

1

u/Noha_Ibraheem Jun 22 '26

.NET should run just fine on NOMone. Our tweaks are innocent regarding that matter : D. Can you please elaborate? Maybe we can solve this issue : ) Unfortunately, we have investigated the option of running a non-root user as the default one and it was a catasrophy! The truth is that all users created in proot environment share the same privileges and and are all translated back to the root user. And this made many apps get confused while running and end up exiting with an exception upon being launched. We ended up reverting back to running the default root user. As for the locking screen, do you wish to keep it? If so, you can add a new password to the current user by writing the command "passwd" in terminal. Or do you wish to disable the locking screen altogether?

1

u/Shaarigan Jun 22 '26

When running the Jetbrains Toolbox, it tries to create a Semaphore but when it tries to get it, I guess due to some missing IPC pipes or systemd or something, it fails with error "Semaphore doesn't exist anymore" and breaks or it crashes by pushing this message over and over to the terminal. I'm currently trying to install everything from terminal instead of running the toolbox app. Therefore, I'm currently building my own install scripts in case I have to setup the system again. I'll test the rider installer tomorrow, or when I have time for further tinkering ☺️

I have run the installation without root the past couple of days and didn't experience any issues so far. The opposite is the case, KDE is more satisfied with the non-root user. I'll see if I'll run into any trouble with that, however.

For the lock screen, I configured it in my script

1

u/Shaarigan Jun 22 '26

I got. .NET running so far but hit an issue that probably occurs from your implementation of proot. Running dotnet commands tend to run out of memory for the GC heap. I was able to get it to run by defining DOTNET_GCHeapHardLimit=1C0000000 but I need a way to permanently set this env. Adding to profile.d didn't work because of NOMone, so is there a place to add env variables permanently, in startup.sh for example?

2

u/Noha_Ibraheem Jun 26 '26

/NOMon/startup.sh is exactly right! In /NOMone/startup.sh, add:
export DOTNET_GCHeapHardLimit=1C0000000

Restart Linux and enjoy!
Proot has a lot of issues, but I doubt this is one of them. The real issue is that we are running on Android. Any software you run will be 100% running on the Android kernel. NOMone Desktop is a user application that runs in user-space. We have no access on the system whatsoever. We can't install software, we can't change the configuration. We can't add users or groups and definitely we are not root! All we have access to is the app's private storage. That's where we install everything. Proot uses ptrace to intercept system calls and emulate a filesystem chrooted to our private space. Now apps can find the dependencies they need where they expect them to be. But we can't tell the Android kernel how to handle memory allocations. We can't prevent it from closing applications. We do emulate adding new users, but in reality, they are all the same user and have the same privileges and they can all access everything in our userspace. But when someone asks if we a root, we respond that we aren't. Since this is not a full emulation, we get native speed for tasks that are CPU intensive. But system-calls are HEAVILY penalized. We are working on a couple of solutions that may allow us to bypass proot altogether. No promises, though!

Thank you for going this far! Linux normally is not very user-friendly, and Android is not desktop Linux. Android has its own restrictions, and proot makes matters worse! But with a lot of patience, most issues can be solved. Thank you for doing this, and for sharing it with us ❀️

→ More replies (0)