Qubes Controller as the new Qubes-Manager

195 views
Skip to first unread message

Tom Zander

unread,
Jan 3, 2018, 4:10:05 PM1/3/18
to Qubes users, qubes...@googlegroups.com
Hi guys,

during my Christmas holiday I spent more time to get myself a decent GUI
tool in order to replace the Qubes Manager from the 3.x release.
As I promised some weeks ago, today I released the tool as free/open source
software and I have received some positive signs that the Qubes devs may
ship packages in a future release.

For me it already is quite useful as I prefer clicking to typing repetative
tasks.

I'll attach two sceenshots of the tool, to give you a bit of an idea of what
it already does and maybe if its worth your time to compile :)

This small GUI is split into two projects, one is a library and one is the
GUI application itself.
The reason for this is that there is currently no way for people that are
not at home with python to contribute to Qubes. The library will allow a
much bigger set of developers to start to contribute ideas and code.

Its a long term thinking, in other words.

What works;

* starting/stopping/pausing and naturally listing of qubes.
* showing basic info (see screenshot).
* starting the tools with a single click which are associated with a qube.
* showing statistics (cpu-time-spend, CPU percentage used).

What (basic expected stuff) doesn't work yet;
* No systray icon just yet.
* keyboard navigation.

Resources;
* Code (github);
https://github.com/QubesController/qubes-api-cpp-lib
https://github.com/QubesController/qubes-controller

* Github; https://github.com/QubesOS/qubes-issues/issues/3417

--
Tom Zander
Blog: https://zander.github.io
Vlog: https://vimeo.com/channels/tomscryptochannel
snapshot1.png
snapshot2.png

Naja Melan

unread,
Jan 3, 2018, 4:28:37 PM1/3/18
to qubes...@googlegroups.com
I'm interested, but is there any build/install instructions? The readmes in the repos are kind of meager.

Tom Zander

unread,
Jan 3, 2018, 4:43:57 PM1/3/18
to qubes...@googlegroups.com, Naja Melan
On Wednesday, 3 January 2018 22:27:00 CET Naja Melan wrote:
> I'm interested, but is there any build/install instructions? The readmes
> in the repos are kind of meager.

Ah, yeah, fair point.
I added some more install instructions;

https://github.com/QubesController/qubes-api-cpp-lib/blob/master/Install.md

Please let me know if you have any problems or questions.

Naja Melan

unread,
Jan 3, 2018, 4:54:26 PM1/3/18
to Tom Zander, qubes...@googlegroups.com
cool, that looks easier than what I'm trying right now (rust-rumprun), so I will try that tomorrow.

thanks

Naja Melan

unread,
Jan 4, 2018, 5:35:21 PM1/4/18
to Tom Zander, qubes...@googlegroups.com
I started to try and compile it, but for the controller there is a header file missing, Qubes.h.

I don't know where to get that one...

Tom Zander

unread,
Jan 5, 2018, 4:28:47 AM1/5/18
to qubes...@googlegroups.com, Naja Melan
Ok, that is part of the api repository. I assumed you would do a clone of
both in the same dir.

This is fragile so I just pushed the correct solution, which is to install
the header file to /usr/include/
Please update both repos and do a new 'sudo make install' in the qubes-api
repository. Then your compile in the controller repo should be able to find
the header file.

Thanks for your email!

Naja Melan

unread,
Jan 5, 2018, 6:23:25 PM1/5/18
to Tom Zander, qubes...@googlegroups.com
hi,

it compiles now. I haven't figured out yet how to get qt5 in dom0, on Qubes 4 if I understand well there is no kde, and no qt5 package. I might have to add a repository.

Or download the whole of qt and build it statically, quite a pain.

I did clone both in the same directory, but the paths in the pro file are wrong ;)

I would file you a pull request, but in my struggles to get qubes up I haven't come round to installing my ssh keys for github.

I hope to find more time soon to get it running.

greetz

Tom Zander

unread,
Jan 5, 2018, 6:37:55 PM1/5/18
to Naja Melan, qubes...@googlegroups.com
On Friday, 5 January 2018 23:23:00 GMT Naja Melan wrote:
> it compiles now. I haven't figured out yet how to get qt5 in dom0, on
> Qubes 4 if I understand well there is no kde, and no qt5 package. I might
> have to add a repository.

There is a Qt5 and KDE in Qubes4, but its in the 'testing' package.
Which is likely what you want to run anyway.

sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing \
@kde-desktop-qubes

(almost like the docs; https://www.qubes-os.org/doc/kde/ )

Zrubi

unread,
Jan 5, 2018, 6:44:06 PM1/5/18
to Tom Zander, Qubes users, qubes...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 01/03/2018 10:09 PM, 'Tom Zander' via qubes-devel wrote:
> Hi guys,
>
> during my Christmas holiday I spent more time to get myself a
> decent GUI tool in order to replace the Qubes Manager from the 3.x
> release. As I promised some weeks ago, today I released the tool as
> free/open source software and I have received some positive signs
> that the Qubes devs may ship packages in a future release.

> I'll attach two sceenshots of the tool, to give you a bit of an
> idea of what it already does and maybe if its worth your time to
> compile :)


Probably this is very subjective, but:
For me, the most important parts/feature of the current Qubes Manager
are (in order of importance):

- - Full overview of the state of the VMs in ONE screen, without clicking.
The new widget is failing on this badly, just as your proposal.


- - Changing the NetVM of a given VM.
Mainly because I always starting DispVMs without net access.
And even the current solution is far from comfortable:
(VM settings -> NetVM selection -> OK
instead of a simple "oneclick" NetVM selection)

- - Starting programs from a given VM.
Yes the "start menu" is nice, but sometime it is just more powerful to
type directly what I want. Especially on an already started dispVM

- - start/stop VMs

- - attaching/detaching devices.

- - reading VM logs.


Probably these are only my personal preferences. Hence I have no time
to write a new manager for the Qubes 4.x I just shared my use case.
Feel free to ignore them if you don't like 'em ;)

- --
Zrubi
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJaUA23AAoJEBozWgtUjzdkZ9IP/32ydmOQ28Y2DkIMHXU131Gs
Vjk5dnhZ77kAwKA6vDKrfXaCyKA5ut07dSnzPkcunjz0GArIeGG35UJNL4A0/EX4
FYd2cDYRa1tDF/PUcny2BukFBeUI37HjK+nwuQtjGkcQ2mYNLSTV1k2Y40NJ6NJi
LWntV3u+VcrxF7i1pzsI1aq6cyAK06ZfsZepxxh6zwDqoSZsmKaFKDMjbyqEBUSg
cs2luM75j+4MbcCTxYnAPve2D0Kk2vSQ8s7Egh/S+GVDBmJu0wyaVmdVOds8W7SJ
R8FPs8/I5/M+13eqkcALwAz7Q1BfT5rD7/3+/H8sOIWvNqU0RDhq87ZjVINpb43t
leimmZMLDSYZMsui1/ihhp6llmHRzx9aWskmJHp90csUHN3F142bArjqMXjVEdKn
00mi/cgqcCB8e8Di6hZbCFWibAUyaZnsJ2Ss2kIVLjUoINSBjd52fN6U9DdIlgsk
69GrQaCcOyfOjiv4VYZKZpUDSEgHZWScWECEe7PlPR73DGRBY5L49KPSqpzUJgIG
a2bP0sMTqYqykhZ+/7IH5BqEq4m5CgGVZCTXC0pYwJ6jd7L6VcanXayeHaLf3lis
35oxKOiEk2Lit2bEj8f3sfdBp0kl46rikKpzWORp9pvrg8xU4N/YveA0lzDR5Q4J
wE/hkPkuAe3s9Srwj3SU
=E+5l
-----END PGP SIGNATURE-----

Naja Melan

unread,
Jan 5, 2018, 6:47:53 PM1/5/18
to Tom Zander, qubes...@googlegroups.com
ok thanks,

I did that but then:

Using sys-firewall as UpdateVM to download updates for Dom0; this may take some time...
Last metadata expiration check: 1 day, 6:34:20 ago on Thu Jan  4 18:06:25 2018.
Error:
 Problem: package plasma-workspace-5.10.5-3.fc25.x86_64 requires kde-settings-plasma, but none of the providers can be installed
  - package kde-settings-plasma-2000:23-11.2.fc25.noarch requires system-plasma-theme >= 23.0, but none of the providers can be installed
  - package kde-settings-plasma-25-6.fc25.1.noarch requires kde-settings = 25-6.fc25.1, but none of the providers can be installed
  - package kde-settings-plasma-25-2.fc25.noarch requires kde-settings = 25-2.fc25, but none of the providers can be installed
  - package plasma-lookandfeel-fedora-5.10.5-3.fc25.noarch obsoletes f24-kde-theme < 24.6 provided by f24-kde-theme-24.5-1.fc25.noarch
  - package f23-kde-theme-23.0-6.fc24.noarch requires f23-kde-theme-core, but none of the providers can be installed
  - cannot install both kde-settings-2000:23-11.2.fc25.noarch and kde-settings-25-6.fc25.1.noarch
  - cannot install both kde-settings-2000:23-11.2.fc25.noarch and kde-settings-25-2.fc25.noarch
  - package plasma-workspace-5.10.5-3.fc25.x86_64 requires plasma-lookandfeel-fedora = 5.10.5-3.fc25, but none of the providers can be installed
  - cannot install both plasma-workspace-5.8.1-1.fc25.x86_64 and plasma-workspace-5.10.5-3.fc25.x86_64
  - package kde-settings-pulseaudio-2000:23-11.2.fc25.noarch requires kde-settings = 2000:23-11.2.fc25, but none of the providers can be installed
  - cannot install the best candidate for the job

Tom Zander

unread,
Jan 5, 2018, 6:53:00 PM1/5/18
to Naja Melan, qubes...@googlegroups.com
Hmm, this is odd.

Can you try to just run the update like this;

sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing

to first update your system to the latest.
A reboot may be useful after that.

Then you may have more success installing the desktop.

On Friday, 5 January 2018 23:47:00 GMT Naja Melan wrote:
> ok thanks,
>
> I did that but then:
>
> Using sys-firewall as UpdateVM to download updates for Dom0; this may take
> some time... Last metadata expiration check: 1 day, 6:34:20 ago on Thu
> Jan 4 18:06:25 2018. Error:
> Problem: package plasma-workspace-5.10.5-3.fc25.x86_64 requires
> kde-settings-plasma, but none of the providers can be installed

Naja Melan

unread,
Jan 5, 2018, 7:00:13 PM1/5/18
to Tom Zander, qubes...@googlegroups.com
that's what I did, apart from rebooting.

It downloaded the repo info and then it said "Nothing to do". I didn't reboot.

Tom Zander

unread,
Jan 5, 2018, 7:03:53 PM1/5/18
to Naja Melan, qubes...@googlegroups.com
Hmm, I know that Marek has been working on the KDE packages, he made it
working about a month ago. Maybe something broke again over the Christmas
holidays. :-(

Tom Zander

unread,
Jan 5, 2018, 7:06:59 PM1/5/18
to qubes...@googlegroups.com, Zrubi, Qubes users
On Friday, 5 January 2018 23:43:58 GMT Zrubi wrote:
> > I'll attach two sceenshots of the tool, to give you a bit of an
> > idea of what it already does and maybe if its worth your time to
> > compile
>
> Probably this is very subjective, but:
> For me, the most important parts/feature of the current Qubes Manager
> are (in order of importance):
>
> - Full overview of the state of the VMs in ONE screen, without clicking.
> The new widget is failing on this badly, just as your proposal.

My aim has so far been to show which VMs are there, which type they are and
if they are running. This is visible in one go. Including even which VM has
a high CPU usage.
I'm not happy yet with the way that the netVM is visualized, as you say it
costs clicks on each VM.

> - Changing the NetVM of a given VM.

Great idea!

> - Starting programs from a given VM.

Fully agreed, this is what I added last week. I'm using it all the time.
Much more convenient than the start menu.

> - start/stop VMs

Present :)

> - attaching/detaching devices.

Yes, definitely.

> - reading VM logs.

Good to know.

> Probably these are only my personal preferences. Hence I have no time
> to write a new manager for the Qubes 4.x I just shared my use case.
> Feel free to ignore them if you don't like 'em

They are excellent ideas, thanks!

Tom Zander

unread,
Jan 6, 2018, 6:27:18 AM1/6/18
to qubes...@googlegroups.com, qubes...@googlegroups.com, Franz
On Saturday, 6 January 2018 00:11:43 GMT Franz wrote:
> I would add some way to make some order in the
> applVM list, so that a standard view may show only the most commonly used
> VMs, while rarely used VMs are hidden and shown only clicking a button. To
> do that, there should be a flag to differentiate the visibility of VMs.

I made a start with this based on my own usage; See the attached
screenshots.
Going from screenshot1 (showing all my qubes) to 5 by removing ones based
on;
* being templates for disposable VMs. (you likely never want to start them
after initial configuration).
* being a "network" VM.
* Being a template.
* Being halted.

Naturally you can combine those settings in any way you want to show the
subsection of qubes you use.
I expect that I''l end up using the settings as "snapshot4" shows it most of
the time.

> This may be helpful also in a corporate environment when an administrator
> can decide which VMs should be shown and which should be hidden.

This is a great idea, I recall that root added tags in 4.0. I have not tried
them yet, but it sounds like a good fit.

Thanks for the ideas!
snapshot1.png
snapshot2.png
snapshot3.png
snapshot4.png
snapshot5.png

Outback Dingo

unread,
Jan 6, 2018, 7:49:07 AM1/6/18
to Tom Zander, qubes...@googlegroups.com, qubes...@googlegroups.com, Franz
This runs on 4.0-RC2 ??
> --
> You received this message because you are subscribed to the Google Groups "qubes-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to qubes-devel...@googlegroups.com.
> To post to this group, send email to qubes...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/qubes-devel/6795500.m0cd3HnCfT%40mail.
> For more options, visit https://groups.google.com/d/optout.

Outback Dingo

unread,
Jan 6, 2018, 7:54:10 AM1/6/18
to Tom Zander, Naja Melan, qubes...@googlegroups.com
On Fri, Jan 5, 2018 at 7:03 PM, 'Tom Zander' via qubes-devel
<qubes...@googlegroups.com> wrote:
> On Saturday, 6 January 2018 00:00:00 GMT Naja Melan wrote:
>> that's what I did, apart from rebooting.
>>
>> It downloaded the repo info and then it said "Nothing to do". I didn't
>> reboot.
>
> Hmm, I know that Marek has been working on the KDE packages, he made it
> working about a month ago. Maybe something broke again over the Christmas
> holidays. :-(
>

I dont believe anything kde based has been working for a very long
time it is or does id love to get it installed and off the wm thats
there now
> --
> You received this message because you are subscribed to the Google Groups "qubes-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to qubes-devel...@googlegroups.com.
> To post to this group, send email to qubes...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/qubes-devel/75760528.7nZL4sa2ZM%40mail.

Franz

unread,
Jan 6, 2018, 9:31:30 AM1/6/18
to Zrubi, Tom Zander, Qubes users, qubes...@googlegroups.com
I agree with Zrubi list. I would add some way to make some order in the applVM list, so that a standard view may show only the most commonly used VMs, while rarely used VMs are hidden and shown only clicking a button. To do that, there should be a flag to differentiate the visibility of VMs.

This may be helpful also in a corporate environment when an administrator can decide which VMs should be shown and which should be hidden.

Best
Fran


 
Probably these are only my personal preferences. Hence I have no time
to write a new manager for the Qubes 4.x I just shared my use case.
Feel free to ignore them if you don't like 'em ;)

- --
Zrubi
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJaUA23AAoJEBozWgtUjzdkZ9IP/32ydmOQ28Y2DkIMHXU131Gs
Vjk5dnhZ77kAwKA6vDKrfXaCyKA5ut07dSnzPkcunjz0GArIeGG35UJNL4A0/EX4
FYd2cDYRa1tDF/PUcny2BukFBeUI37HjK+nwuQtjGkcQ2mYNLSTV1k2Y40NJ6NJi
LWntV3u+VcrxF7i1pzsI1aq6cyAK06ZfsZepxxh6zwDqoSZsmKaFKDMjbyqEBUSg
cs2luM75j+4MbcCTxYnAPve2D0Kk2vSQ8s7Egh/S+GVDBmJu0wyaVmdVOds8W7SJ
R8FPs8/I5/M+13eqkcALwAz7Q1BfT5rD7/3+/H8sOIWvNqU0RDhq87ZjVINpb43t
leimmZMLDSYZMsui1/ihhp6llmHRzx9aWskmJHp90csUHN3F142bArjqMXjVEdKn
00mi/cgqcCB8e8Di6hZbCFWibAUyaZnsJ2Ss2kIVLjUoINSBjd52fN6U9DdIlgsk
69GrQaCcOyfOjiv4VYZKZpUDSEgHZWScWECEe7PlPR73DGRBY5L49KPSqpzUJgIG
a2bP0sMTqYqykhZ+/7IH5BqEq4m5CgGVZCTXC0pYwJ6jd7L6VcanXayeHaLf3lis
35oxKOiEk2Lit2bEj8f3sfdBp0kl46rikKpzWORp9pvrg8xU4N/YveA0lzDR5Q4J
wE/hkPkuAe3s9Srwj3SU
=E+5l
-----END PGP SIGNATURE-----

--
You received this message because you are subscribed to the Google Groups "qubes-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qubes-users+unsubscribe@googlegroups.com.

To post to this group, send email to qubes...@googlegroups.com.

Stumpy

unread,
Jan 6, 2018, 3:58:51 PM1/6/18
to Tom Zander, Qubes users, qubes...@googlegroups.com
I haven't had a chance to compile this yet but it is a fantastic idea! I
was kinda missing the old manager. Much thanks!
Reply all
Reply to author
Forward
0 new messages