CLI user experience
Allan Day edited this page Dec 19, 2017
·
8 revisions
Research into CLI user experience for flatpak.
Example output when installing something.
This is following one of the commands that is given on flathub.com.
$ flatpak install --from https://flathub.org/repo/appstream/org.baedert.corebird.flatpakref
The remote 'flathub', at location https://flathub.org/repo/ contains additional applications.
Should the remote be kept for future installations? [y/n]: y
Installing: org.baedert.corebird/x86_64/stable
Required runtime for org.baedert.corebird/x86_64/stable (org.gnome.Platform/x86_64/3.26) is not installed, searching...
Found in remote flathub, do you want to install it? [y/n]: y
Installing: org.gnome.Platform/x86_64/3.26 from flathub
[####################] 10 delta parts, 74 loose fetched; 207705 KiB transferred in 27 seconds
Installing: org.gtk.Gtk3theme.Ambiance/x86_64/3.22 from flathub
[####################] 1 delta parts, 1 loose fetched; 292 KiB transferred in 1 seconds
Installing: org.gnome.Platform.Locale/x86_64/3.26 from flathub
[####################] 4 metadata, 1 content objects fetched; 14 KiB transferred in 0 seconds
Installing: org.baedert.corebird/x86_64/stable from flathub
[####################] 1 delta parts, 3 loose fetched; 6934 KiB transferred in 1 seconds
Installing: org.baedert.corebird.Locale/x86_64/stable from flathub
[####################] 3 metadata, 1 content objects fetched; 3 KiB transferred in 0 seconds
sudo dnf install audacity
[sudo] password for ******:
Last metadata expiration check: 0:00:00 ago on Fri 15 Dec 2017 10:35:19 GMT.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
audacity x86_64 2.1.3-5.fc27 fedora 5.3 M
Installing dependencies:
SDL x86_64 1.2.15-29.fc27 fedora 216 k
compat-wxBase3-gtk2 x86_64 3.0.2-32.fc27 fedora 1.1 M
compat-wxGTK3-gtk2 x86_64 3.0.2-32.fc27 fedora 5.1 M
libid3tag x86_64 0.15.1b-24.fc27 fedora 53 k
portaudio x86_64 19-26.fc27 fedora 95 k
vamp-plugin-sdk x86_64 2.5-11.fc27 fedora 145 k
Transaction Summary
================================================================================
Install 7 Packages
Total download size: 12 M
Installed size: 45 M
Is this ok [y/N]: y
Downloading Packages:
(1/7): compat-wxBase3-gtk2-3.0.2-32.fc27.x86_64 974 kB/s | 1.1 MB 00:01
(2/7): libid3tag-0.15.1b-24.fc27.x86_64.rpm 590 kB/s | 53 kB 00:00
(3/7): portaudio-19-26.fc27.x86_64.rpm 920 kB/s | 95 kB 00:00
(4/7): vamp-plugin-sdk-2.5-11.fc27.x86_64.rpm 834 kB/s | 145 kB 00:00
(5/7): SDL-1.2.15-29.fc27.x86_64.rpm 1.1 MB/s | 216 kB 00:00
(6/7): audacity-2.1.3-5.fc27.x86_64.rpm 1.7 MB/s | 5.3 MB 00:03
(7/7): compat-wxGTK3-gtk2-3.0.2-32.fc27.x86_64. 1.6 MB/s | 5.1 MB 00:03
--------------------------------------------------------------------------------
Total 3.0 MB/s | 12 MB 00:03
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : compat-wxBase3-gtk2-3.0.2-32.fc27.x86_64 1/7
Running scriptlet: compat-wxBase3-gtk2-3.0.2-32.fc27.x86_64 1/7
Installing : SDL-1.2.15-29.fc27.x86_64 2/7
Running scriptlet: SDL-1.2.15-29.fc27.x86_64 2/7
Installing : compat-wxGTK3-gtk2-3.0.2-32.fc27.x86_64 3/7
Running scriptlet: compat-wxGTK3-gtk2-3.0.2-32.fc27.x86_64 3/7
Installing : vamp-plugin-sdk-2.5-11.fc27.x86_64 4/7
Running scriptlet: vamp-plugin-sdk-2.5-11.fc27.x86_64 4/7
Installing : portaudio-19-26.fc27.x86_64 5/7
Running scriptlet: portaudio-19-26.fc27.x86_64 5/7
Installing : libid3tag-0.15.1b-24.fc27.x86_64 6/7
Running scriptlet: libid3tag-0.15.1b-24.fc27.x86_64 6/7
Installing : audacity-2.1.3-5.fc27.x86_64 7/7
Running scriptlet: audacity-2.1.3-5.fc27.x86_64 7/7
Running scriptlet: audacity-2.1.3-5.fc27.x86_64
Verifying : audacity-2.1.3-5.fc27.x86_64
Verifying : compat-wxBase3-gtk2-3.0.2-32.fc27.x86_64
Verifying : compat-wxGTK3-gtk2-3.0.2-32.fc27.x86_64
Verifying : libid3tag-0.15.1b-24.fc27.x86_64
Verifying : portaudio-19-26.fc27.x86_64
Verifying : vamp-plugin-sdk-2.5-11.fc27.x86_64
Verifying : SDL-1.2.15-29.fc27.x86_64
Installed:
audacity.x86_64 2.1.3-5.fc27 SDL.x86_64 1.2.15-29.fc27 compat-wxBase3-gtk2.x86_64 3.0.2-32.fc27 compat-wxGTK3-gtk2.x86_64 3.0.2-32.fc27 libid3tag.x86_64 0.15.1b-24.fc27 portaudio.x86_64 19-26.fc27
vamp-plugin-sdk.x86_64 2.5-11.fc27
Complete!
A progress bar is shown beside each step while it is completed. Progress bars look like:
<item> 20% [=============- ] 5.1 MB/s | 9.1 MB 00:30 ETA
$ snap install hello
2017-12-14T18:56:26Z INFO Waiting for restart...
hello 2.10 from 'canonical' installed
Shows a progress bar which is replaced with the installed message when complete. The progress bar is shown by inverting the colour of the background for the line.
- Reverse DNS names for apps are a pain
- You have to state where you want to install from
- Doesn't confirm installation when complete
- We're training users to use
--from
and link to a.flatpakref
, rather than doingflapak install flathub <app name>
, and the--from
is awkward (this is probably an issue with the website). - No indication of download sizes before download
- If there are multiple confirmation steps, they appear sequentially, rather than being grouped together
- It asks if you want to install some things along with the app (like the runtime), but not others. To the uninitiated this feels inconsistent, but also surprising - I just asked to install the app, not all this other stuff. What is it, anyway?
- It feels a bit chatty
- Technical lingo in the progress strings -
delta parts
,loose fetched
,metadata
andcontent objects
- "Progress bars" don't disappear after completion, resulting in additional visual noise
- The big block of text is hard to read
$ flatpak search corebird
Application ID Version Branch Remotes Description
org.baedert.corebird 1.7.3 stable flathub Twitter Client
(Headings are in bold.)
$ flatpak remote-info flathub org.gimp.GIMP
Ref: app/org.gimp.GIMP/x86_64/stable
ID: org.gimp.GIMP
Arch: x86_64
Branch: stable
Date: 2017-10-17 16:39:40 +0000
Subject: Build org.gimp.GIMP at 2f9a3362289727807db5b74d6ebf426d8a1f09a7
Commit: 7bda4b1cadf3d096f849e34f18c5934fa2e6dbe97b3269cabc2176e96e2a25fb
Parent: 64a5dae3bfa8ef3a5c7b7a4e2f497f3e0d5c297c496710998d98846ac3fafcc8
Download size: 47.2 MB
Installed size: 127.2 MB
Runtime: org.gnome.Platform/x86_64/3.24
(Labels are in bold.)
$ dnf search corebird
======================== Name Exactly Matched: corebird ========================
corebird.x86_64 : Native GTK Twitter client
$ dnf info corebird
Available Packages
Name : corebird
Version : 1.7.2
Release : 1.fc27
Arch : x86_64
Size : 596 k
Source : corebird-1.7.2-1.fc27.src.rpm
Repo : updates
Summary : Native GTK Twitter client
URL : http:https://corebird.baedert.org/
License : GPLv3+
Description : Native GTK Twitter client for the Linux desktop.
Sorting... Done
Full Text Search... Done
corebird/artful 1.6-1 amd64
Native Gtk+ Twitter client for the Linux desktop
apt show corebird
Package: corebird
Version: 1.6-1
Priority: optional
Section: universe/net
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Philip Rinn <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 1,682 kB
Depends: gstreamer1.0-plugins-good, dconf-gsettings-backend | gsettings-backend, libatk1.0-0 (>= 1.12.4), libc6 (>= 2.14), libcairo2 (>= 1.14.0), libgdk-pixbuf2.0-0 (>= 2.27.1), libglib2.0-0 (>= 2.44), libgspell-1-1 (>= 1.0.0), libgstreamer1.0-0 (>= 1.0.0), libgtk-3-0 (>= 3.21.5), libjson-glib-1.0-0 (>= 1.2.0), libpango-1.0-0 (>= 1.14.0), libsoup2.4-1 (>= 2.41.90), libsqlite3-0 (>= 3.7.15)
Recommends: gstreamer1.0-plugins-bad
Homepage: http:https://corebird.baedert.org
Download-Size: 502 kB
APT-Sources: http:https://gb.archive.ubuntu.com/ubuntu artful/universe amd64 Packages
Description: Native Gtk+ Twitter client for the Linux desktop
Corebird is a modern and lightweight Twitter client for the GNOME 3 desktop. It
features inline image and video preview, creation of lists and favorites,
filtering of tweets and full text search. Corebird is able to manage multiple
Twitter accounts.
$ snap search corebird
Name Version Developer Notes Summary
corebird 1.7.3 snapcrafters - Corebird Twitter Client
$ snap info corebird
name: corebird
summary: Corebird Twitter Client
publisher: snapcrafters
contact: https://github.com/snapcrafters/corebird/issues
description: |
Corebird is a modern and lightweight Twitter client for the GNOME 3 desktop.
It features inline image and video preview, creation of lists and favorites,
filtering of tweets and full text search. Corebird is able to manage multiple
Twitter accounts.
snap-id: jpPjOVJYHmcVHb0EJVC6hVlq6eCEYkZ5
commands:
- corebird
tracking: stable
installed: 1.7.3 (65) 36MB -
refreshed: 2017-11-20 08:33:15 +0000 UTC
channels:
stable: 1.7.3 (65) 36MB -
candidate: 1.7.3 (88) 30MB -
beta: 1.7.3 (88) 30MB -
edge: 1.7.3 (88) 30MB -
$ flatpak remote-info flathub org.gimp.gimp
error: Error searching remote flathub: Can't find ref org.gimp.gimp
(error:
is bold and red.)
$ sudo dnf install croebird
[sudo] password for ****:
No match for argument: croebird
Error: Unable to find a match
[sudo] password for ***:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package croebird
$ snap install croebird
error: snap "croebird" not found
Visit flatpak.org for information on getting started, developer documentation and details of available applications and runtimes.