plasma-extensions / kernel-kcm

A kcm to choose and use a kernel from debian stable
0 stars 0 forks source link

[kernel kcm]: A kcm that displays and manages available kernels #1

Open star-buck opened 8 years ago

star-buck commented 8 years ago

here is an example from manjaro, but it is non-qt and arch: manjarosettings1a

Here is the code to have a look: https://github.com/manjaro/manjaro-settings-manager/tree/master/src/modules/kernel

also here is how to change kernels on debian stable: https://wiki.debian.org/HowToUpgradeKernel

https://www.reddit.com/r/debian/comments/2wv8y7/debian_8_jessie_with_latest_stable_linux_kernel/

For newer kernels self-compiled, we could ask Rohan, who builds latest packages for debian stable.

star-buck commented 8 years ago

this should also have priority over other things like the quick-controls sidebar, so lets start this from tomorrow the next two weeks and then continue with sidebar.

UriHerrera commented 8 years ago

I'm doing the mockup.

UriHerrera commented 8 years ago

At the top there's a checkbox to notify the user of new kernels. This notification appears as a Plasma notification.

On the left the KCM shows a list of available kernels to install, their installed status and whether they're LTS or not.

On the right is the changelog.

And at the bottom are the install and remove buttons.

star-buck commented 8 years ago

Hi Uri,

I wozld rather prefer something that looks like manjaro, even though that can be optimized. Changelog shoulnot waste space. Also, there is a twist: kernels can be installed, activated, and removed. You could install many kernels and keep them, but lnly one can be active.

UriHerrera commented 8 years ago
  1. Remove an installed kernel.
  2. Install a new kernel.
  3. Update or remove an installed kernel.

I added more fields to the listview:

The arrangement of the buttons changes depending on the conditions of the kernels.

  1. Popup window showing the changelog.

Notice the added button on this one.

azubieta commented 8 years ago

Getting on it !

azubieta commented 8 years ago

@star-buck @UriHerrera
Are we going to apply the changes when the "apply" buttton is pressed or when the actual "update" or "remove" buttons where pressed ?

UriHerrera commented 8 years ago

I was thinking of only showing a window with a progress bar like the window that comes up when you change the icons. It's this one:

azubieta commented 8 years ago

I have made the install/uninstall features. Now about the identification of LTS kernels I would like to know if you guys know another way of getting this info without parsing the kernel.org web.

UriHerrera commented 8 years ago

In Ubuntu kernel packages have names like: linux-image-lts-$RELEASE for Ubuntu LTS kernels and linux-image-generic for mainline kernels.

azubieta commented 8 years ago

Sadly this is an ubuntu only solution and i guess that we are targeting on Debian.

Any other idea ?

On 03/08/2016, at 3:26 p.m., Uri Herrera notifications@github.com wrote:

In Ubuntu kernels have names like: linux-image-lts-xenial for LTS kernels and linux-image-generic for Ubuntu flavored mainline kernels.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub, or mute the thread.

star-buck commented 8 years ago

@Uri: How about "Use default" "Install" "Uninstall" as buttons in that order? We then also dont need "Apply" nor the bottom row with help and reset....

shadeslayer commented 8 years ago

Couple of notes from a quick glance at the code :

You can find more info about kernel images in Debian here : https://tracker.debian.org/pkg/linux

Another way of doing finding available kernels is via the online Debian API.

See :

https://qa.debian.org/madison.php?package=linux&text=on&table=ubuntu https://qa.debian.org/madison.php?package=linux&text=on&table=debian

This has the advantage that you don't have to have the backports repo enabled on a target system to find out if backports has a newer kernel.

I think the latter approach is more versatile but slightly more complicated to implement since you need to be online for the KCM to work and parse the table you get from that service inside your C++ code. With the former approach you can just ask QApt for a list of linux packages and iterate over them.

star-buck commented 8 years ago

lets use the former than without the need to being online?

shadeslayer commented 8 years ago

Sure, you could even go with this approach :

UriHerrera commented 8 years ago

@star-buck well if we add use default I think that'd only work if the user wouldn't remove the kernel that the distro comes with otherwise clicking that would've to re-download the set kernel version.

Remove or uninstall are semantically correct in the context, both are ok to use.

System Settings adds those buttons (help, reset, apply).

azubieta commented 8 years ago

I have been testing QApt and found some weird stuff. The results of the "search" function are not quite good as we would expect so I must filter them latter. After that it works as expected in my device but i would recommend to improve this latter.

Also we still need to keep doing some system calls in order to reconfigure grub. It would be great if we could replace it by a native c++ lib as we did with apt, did you know any?

On 04/08/2016, at 6:39 a.m., Rohan Garg notifications@github.com wrote:

Sure, you could even go with this approach :

Find kernels via QApt Check if online via Solid If online, do a online search to find more kernels — You are receiving this because you were assigned. Reply to this email directly, view it on GitHub, or mute the thread.

star-buck commented 8 years ago

Right, i meant "use as default". Or maybe some other text, "set as default" or "set default", where the button is only active when a kernel has been downloaded before.

UriHerrera commented 8 years ago

Ah ok then, the order for an installed kernel would be: install update (if available) set as default remove

azubieta commented 8 years ago

The install, uninstall, changelog and update are done, the "set as default" functionality is resulting a little bit tricky I'll open a new issue to discuss it. Here es an screenshot: kernel-kcm

azubieta commented 8 years ago

Ok, we are done! But there are some details that we must check. We are getting the status info from the kernel.org site but there aren't listed all the kernel releases at least not in a visible place. So the application isn't able to get that info. Did you know somewhere else were to get that info?

Are we goin to remove the "Help", "Reset" and "Apply" buttons ?

Please test and report bugs

star-buck commented 8 years ago

@azubieta : please push all code to master (also from other repos) so we can test it, as we only compile and do packages from master.

shadeslayer commented 8 years ago

@azubieta Maybe you can look at kcm-grub2 to see what they do https://quickgit.kde.org/?p=kcm-grub2.git

azubieta commented 8 years ago

Well at the end I able to made all the functionalities. For setting de default entry to grub I parsed the grub.cfg file taking the entries ids and the linux kernel file that they reference. Later I search for the package that installed this file so there should no be mismatches.

But I'll take a look at the kcm-grub.

Also I was thinking that showing the packages names to install could be a little misleading because we will have: linux-image-generic linux-image-4.2.0-19-generic

Referring to the same kernel.

On 08/08/2016, at 6:48 a.m., Rohan Garg notifications@github.com wrote:

@azubieta Maybe you can look at kcm-grub2 to see what they do https://quickgit.kde.org/?p=kcm-grub2.git

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

UriHerrera commented 8 years ago

@azubieta If the packages have the same version of the kernel only show the packages with names that contain the version number.

Reset would be disabled, Help is the system settings help button. Yeah Apply should be changed to Accept since the user would click install to "apply" the kernel and it'd be redundant to have it.

star-buck commented 8 years ago

Isnt there a way to disable or hide the buttons not needed? I think different kcms have different buttons visible, so in case we do not need "Apply" or Help, it would be best to hide them all.