You are here

ApricityOS Review (2015-07-28)

Apricity OS, currently in beta iterations, is an Arch based distribution developed by "a Chicago based team of developers, dedicated to creating useful, intuitive software that helps people better integrate digital computing into their daily lives." It uses the Antergos developed Cnchi graphical installer and Arch's official repositories along with its own repositories for Apricity specific packages and prebuilt packages from the AUR. The default desktop environment is a customized GNOME shell with many shell extensions pre-installed and some enabled by default.

There are numerous Arch based distributions offering a simplified Arch install and fully configured desktops with default application sets (see this review of Antergos), but Apricity uniquely offers a few specialized extras to make online life easier, including a prepackaged Google Chrome -- as opposed to a source package from the AUR -- with extensions such as Pushbullet for synching between devices and Marxico, a Markdown editor for Evernote, and the BitTorrent Sync GUI application, among others.

Although Apricity aims to "create the best possible user experience for Linux users both new and experienced" it is probably not suited to beginners, considering an installer issue in certain scenarios and the nature of the underlying Arch OS which will require manual user maintenance. For anyone who already has experience with Arch and wants the pure Arch experience that the stability concious and less DIY Manjaro doesn't provide because of the use of its own repositories and tools, wants to avoid the lengthy and complicated Arch install process, and doesn't want the less reliable Cnchi installer as used in Antergos, Apricity is worth a try.


Note that Apricity is currently in beta, with monthly beta releases until sometime in the winter when a stable release will be issued. This review is based on the 2015-07-28 beta which does not incorporate the fixes included in the August and later beta releases. Look for a review of the official release here on ORDINATECHNIC. In the meantime, here is a brief description of the changes in the August beta:

  • Cnchi installer replaced with the multi-distribution installer, Calameres, which unfortunately, in its current form requires reformatting the EFI system partition, removing already present boot managers
  • the commercial BitTorrent Sync replaced with the open source SyncThing resolving the spurious hbci connection
  • issue with custom wallpapers appearing twice and default GNOME wallpapers not appearing has been fixed

Review

The main benefit of Apricity is that it is an easy installation of a pure Arch system. Unlike Manjaro, for example, it uses the Arch kernel and Arch repoisitories. In this regard it is very similar to Antergos, but where Antergos 2015-04 adds value to the basic Arch system with the Cnchi graphical installer and a polished common theme for all desktop environments based on Numix, Apricity focuses on convenience software applications for those who use Google services, social media, connect with many devices, consume online content, and are generally very active online.

In addition to these unique and specialized default software installations, Apricity provides a good default set of the typical software found in Linux distributions, striking a good balance between making available the necessary tools to accomplish typical tasks out-of-the-box and not weighing down the system. The distribution also claims to have stripped the GNOME desktop environment of useless components to increase performance, but I didn't see any evidence of this. What I did see was a GNOME shell far from stock, with many extensions installed and some enabled, including an extension to move the dash to the bottom of the screen.

Pamac GUI front-end to Pacman package manager showing some of the contents of the Apricity repository
Some of the Installed GNOME Shell Extensions Visible in GNOME Shell Tweaks and Some of the Available Desktop Backgrounds Visible in the Background Settings Window

The visual appeal of the desktop has also received a lot of attention with the inclusion of a very nice set of non-stock wallpapers -- although each of these wallpapers appear twice in the settings, a GTK theme based on ARC-3 -- which you may have seen in the screenshots in the review of Fedora 22, a GNOME shell theme with a transparent panel, and an icon set that seems to be based on Numix Circle.

The unique set of software that Apricity installs revolve around convenience for users that use Google services, that are active in social media, consume online content, and have many connected devices. Many of these tools depend on Chrome or Chromium, although any Chromium based browser capable of using the Chrome extensions and apps store should work, except for the ICE site specific browser. The browser based tools are Chrome extensions and one is a Chrome app. The browser extensions are pre-integrated into the default installed browser -- Google Chrome Beta. The fact that Chrome and Chrome Beta are provided as a prebuilt binary package available from the Apricity repository is itself a convenience on top of providing these tools.

Pamac GUI front-end to Pacman package manager showing some of the contents of the Apricity repository
Pamac GUI Front-End to Pacman Package Manager Showing Some of the Contents of the Apricity Repository

The extensions included in Chrome Beta are Adblock Plus, Ghostery -- which helps prevent tracking, Marxico -- a markdown editor for Evernote, Sunrise Calendar Chrome App, Google Docs, Google Sheets, Google Slides, The Great Suspender -- which suspends open tabs to conserve memory, and maybe the most interesting of these, Pushbullet.

Google Chrome extensions settings page and Opera Extennsions Gallery showing Pushbullet extension
Google Chrome Extensions Settings Page and Opera Extennsions Gallery Showing Pushbullet Extension

Pushbullet connects and synchronizes devices such that, among other functions, notifications will appear on all devices, text messages can be sent from a computer, and photos and files shared among devices.

Pamac GUI front-end to Pacman package manager showing some of the contents of the Apricity repository
The GNOME Shell Overview Showing a Chrome Window with the Pushbullet Information/Login Panel and the Sunrise Calendar Chrome App Login/Sign-Up Screen

Another unique Apricity offering is ICE, which allows users to create web apps in the form of a site specific browser and integrate them into the system menu hierarchy. Of all the custom software supplied by Apricity this is the one I would be likely to use. Unfortunately, it didn't work and just gave me the error shown in the following screenshot, indicating that a compatible browser was not installed, although Chrome, Chrome Beta, and Chromium were installed.

ICE SSB setting dialog and error message
ICE SSB Setting Dialog and Error Message
The error message indicates that a compatible browser is not installed. The screenshot also shows instances of Chrome, Chrome Beta, Chromium, Opera, and Vivaldi. Technically all but Chrome and Chromium are not supported but the others are Chromium based and can access the Chrome store except Opera which has its own store.

At first I thought that ICE had a problem with the Chrome browser installed being the beta version, so I installed the stable version of Chrome, but I still got the same error. I then installed Chromium as that is one of the compatible browsers shown in the web app creation dialog. Still the same error. A developer of the project suggested a possible solution to this problem is running

sudo ln -sf /usr/bin/google-chrome-beta /usr/bin/google-chrome

This suggestion seems to follow the same line of reasoning as mine, that the problem is that the Chrome stable is required by ICE. As part of this communication with the developer, I learned of the new beta iteration and moved on to that before trying this solution.

Another highlight of the unique tools for the connected computer user isn't integrated or doesn't really depend on a browser because it has a GUI interface in addition to a browser interface. This is the BitTorrent Sync application and the BitTorrent Sync GUI.

The BitTorrent Sync GUI and Panel Applet Menu
The BitTorrent Sync GUI and Panel Applet Menu

This application seems to have the potential to be a very useful tool, and with a GUI and a web based user interface -- and even a panel applet, it seems easy to use.

The BitTorrent Sync Web Interface
The BitTorrent Sync Web Interface

From Wikipedia:

BitTorrent Sync synchronises files using BitTorrent. The user's data is stored on the user's local device instead of in a 'cloud', therefore requiring at least two user devices, or "nodes," to be online to synchronise files between them. BitTorrent Sync encrypts data with an Advanced Encryption Standard AES-128 key in counter mode which may either be randomly generated or set by the user. This key is derived from a 'secret' which can be shared to other users to share data. Data is sent between devices directly unless the target device is unreachable (e.g. behind a firewall), in which case the data will first be relayed via an intermediary node. Many devices can be connected simultaneously and files shared between them in a mesh networking topology.

There is no limit on the amount of data that can be synced, other than the available free space on each device.

However after about 15 minutes spent with it and installing the Android app to sync to, I was somewhat dissatisfied with the app as installed in Apricity. The Linux GUI application allows you to add a folder to sync but doesn't seem to allow adding an identity, as required, or other devices with which to sync as does the Android app. So I had to resort to the browser based UI, but this forced me to agree to a trial period in order to be able to access any functionality. After agreeing to the trial period I was able to access all functionality, but the browser title informed me that I had twenty days left. Who knows if this will be functional after the trial period ends.

Another issue that I had related to BitTorrent Sync was a transient connection to the Amazon AWS Elastic Cloud 2 server instance with an hbci protocol/port. The screenshots below shows two such connections as well as https connections which are just the browser pages I was viewing at the time.

The Output of <kbd>ss</kbd> Showing Two Connections to an AWS EC2 Machine Using the <samp>hbci</samp> Protocol
The Output of ss -t4 --resolve state establishedShowing Two Connections to an AWS EC2 Machine Using the hbci Protocol
The Output of <kbd>ss</kbd> Showing Two Connections  Using the <samp>hbci</samp> Protocol with the Processes Using the Connections
The Output of ss -tap Showing Two Connections Using the hbci Protocol with the Processes Using the Connections
In this screenshot we see that the connections made with the hbci protocol/port are being used by btsync.

The problems with ICE, BitTorrent Sync, and the spurious hbci connection are minor. The only major problem with this release is the installer. If you read my Antergos review, you know that although the Cnchi user interface and process flow was simple and efficient, it had big problems under the hood, primarily with the mount point of the EFI system partition. This problem has been fixed in this version of Cnchi and works much better than the Antergos version that was used in the 2015-04 release of Antergos, but one of the installer problems that existed in Antergos and required post-installation attention remains in Apricity.

This is that the GRUB installation and subsequent execution of grub-mkconfig, if it is even executed, improperly defines the root filesystem partition UUID. Apparently, the installer uses the UUID of the development machine used to build the ISO and writes this to the /boot/grub/grub.cfg file as part of the installation. After the installation process had progressed through the user setup and copying of files and was nearly complete, the installer hinted that there would be problems with booting with an error message that there was a problem installing the bootloader. I closed the installer and exited the live session at this point knowing that I could repair the bootloader problems outside of the installer as described in the "Necessary Fixes and Enhancements" section of this review.

This issue with the Cnchi installer is a big flaw in Apricity, especially since like Antergos, the distribution seeks to make an OS for "for linux users both new and experienced," according to some text on its Patreon page. A new Linux user should not be confronted with a problem such as this.

If all of these issues are ironed out and the installer is made more robust, this distribution will be worth a try.

Quick Facts

Feature Availability
Architecture x86_64
Installation Media Types Cached ISO -- slower download but faster installation; Non-Cached ISO -- faster download but slower installation
cached ISO is recommended for slower networks
Desktop Environments GNOME (customized) is default, others can be installed from repositories (Arch)
ISO Environment GNOME

The Apricity website is apricityos.com.

Page URL
Forum Apricity Forum
ISO Download Page Apricity Home
Blog Apricity Blog
Development Home Apricity Development GitHub
Bug Tracking Apricity Development Tracking GitHub

Necessary Fixes and Enhancements

The installation was only partially successful in that it copied the necessary files from the installation medium and did all of the setup and configuration but failed to install the bootloader and perform the related configuration. So the biggest problem that needed to be addressed after the installation was to resolve the bootloader installation and configuration issue.

The first step in fixing the bootloader installation was to boot into another OS using an existing GRUB from another OS. In this case I used Manjaro because it can handle the Arch method of implementing Intel microcode updates as a separate image well. I then updated GRUB in Manjaro to add Apricity to Manjaro's GRUB menu and booted into Apricity. From within Apricity I installed GRUB (the bootloader, not the grub package) and then updated GRUB.

I could have stopped at this point if I wanted to use the Apricity GRUB, but I wanted to return to using the GRUB of Voyager X8. So I booted into Voyager X8, updated its GRUB then modified its grub.cfg file to include the bits in Apricity's native grub.cfg that would allow a more polished boot experience from a non-native GRUB, and a correction to loading the initramfs when the microcode update is a separate image.

Some of the other fixes required in Apricity were less serious. The first was a fix for the lack of backlight control. This can ususally be fixed in distributions that use a very recent kernel with the addition of video.use_native_backlight=1 to the kernel command line parameters in the /etc/default/grub file if using the Apricity GRUB. If using another distribution's GRUB, as I do, this kernel command line parameter can be placed in the appropriate location in the other distribution's grub.cfg file. I took the opportunity to do this when editing the Voyager X8 grub.cfg file.

What I did specifically, after booting into Apricity after updating the Manjaro GRUB, was to run:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Apricity --recheck

to install the bootloader for Apricity. Then I updated its configuration with:

grub-mkconfig -o /boot/grub/grub.cfg

and copied the entries from the resulting /boot/grub/grub.cfg file to the /boot/grub/grub.cfg file of Voyager X8 after running update-grub (the equivalent of grub-mkconfig -o /path/to/write/grub.cfg or grub2-mkconfig -o /path/to/write/grub.cfg in non-Debian distributions) in Voyager, and then making the necessary additions, with the result shown in the following code block.


menuentry 'Apricity Linux' --class apricity --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-b4cdb52f-fb97-42c8-825d-9d207a1d82dd' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt 
	insmod ext2
	set root='hd0,gpt13'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt13 --hint-efi=hd0,gpt13 --hint-baremetal=ahci0,gpt13  b4cdb52f-fb97-42c8-825d-9d207a1d82dd
	else
	  search --no-floppy --fs-uuid --set=root b4cdb52f-fb97-42c8-825d-9d207a1d82dd
	fi
	echo	'Loading  linux kernel ...'
	linux	/boot/vmlinuz-linux root=UUID=b4cdb52f-fb97-42c8-825d-9d207a1d82dd rw resume=/dev/disk/by-uuid/69bb9b40-aedd-4278-ac57-0113a7dc816f splash=silent quiet video.use_native_backlight=1
	echo	'Loading initial ramdisk ...'
	initrd	 /boot/initramfs-linux.img
}
submenu 'Advanced options for Apricity Linux' $menuentry_id_option 'gnulinux-advanced-b4cdb52f-fb97-42c8-825d-9d207a1d82dd' {
	menuentry 'Apricity Linux, with linux Kernel' --class apricity --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-b4cdb52f-fb97-42c8-825d-9d207a1d82dd' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt 
		insmod ext2
		set root='hd0,gpt13'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt13 --hint-efi=hd0,gpt13 --hint-baremetal=ahci0,gpt13  b4cdb52f-fb97-42c8-825d-9d207a1d82dd
		else
		  search --no-floppy --fs-uuid --set=root b4cdb52f-fb97-42c8-825d-9d207a1d82dd
		fi
		echo	'Loading  linux kernel ...'
		linux	/boot/vmlinuz-linux root=UUID=b4cdb52f-fb97-42c8-825d-9d207a1d82dd rw resume=/dev/disk/by-uuid/69bb9b40-aedd-4278-ac57-0113a7dc816f splash=silent quiet video.use_native_backlight=1
		echo	'Loading initial ramdisk ...'
		initrd	 /boot/initramfs-linux.img
	}
	menuentry 'Apricity Linux, with Linux linux (fallback initramfs)' --class apricity --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-b4cdb52f-fb97-42c8-825d-9d207a1d82dd' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt 
		insmod ext2
		set root='hd0,gpt13'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt13 --hint-efi=hd0,gpt13 --hint-baremetal=ahci0,gpt13  b4cdb52f-fb97-42c8-825d-9d207a1d82dd
		else
		  search --no-floppy --fs-uuid --set=root b4cdb52f-fb97-42c8-825d-9d207a1d82dd
		fi
		echo	'Loading  linux kernel ...'
		linux	/boot/vmlinuz-linux root=UUID=b4cdb52f-fb97-42c8-825d-9d207a1d82dd rw quiet splash
		echo	'Loading initial ramdisk ...'
		initrd	 /boot/initramfs-linux-fallback.img
	}
}

Software

As I mentioned above, the selection of software installed by Apricity is very good. It balances being useful out of the box by making all of the necessary applications for a typical user available without overloading the installation with bloat. The following three screenshots show the applications installed on this system. The only programs that I added were Opera, Opera Beta, and Opera Developer; Chrome stable, Chromium, and Vivaldi to test ICE; Htop (from the AUR) with a patch to show system temperatures; K3b for optical disk recording: and the Nemo file browser -- because Nautilus is too simple to be really useful to me.

The wallpaper in the following three screenshots is Suburb by zomx from DeviantArt.

First Page of GNOME Shell All Applications View
First Page of GNOME Shell All Applications View

Besides the typical software Apricity adds BitTorrent Sync and its GUI, prebuilt Chrome-beta, ICE for making a webapp. This is in addition to the Chrome extensions and apps mentioned before.

Second Page of GNOME Shell All Applications View
Second Page of GNOME Shell All Applications View

Third Page of GNOME Shell All Applications View
Third Page of GNOME Shell All Applications View

Apricity also provides a backup tool, tlp a useful power saving tool that also offers the benefit of making hard drive power saving settings persistent, and a small nice touch, the inclusion of Liquid Prompt, an adaptive bash prompt that displays useful information.

Package Management

Package management is of course managed simply and capably by pacman as in Arch. But Apricity like, Antergos, in addition to providing a simpler installation of Arch through a graphical installer also provides simplified package management through a Pamac GUI. To appreciate the value of what Apricity has done in making Pamac available by default, consider that to use Pamac -- or Octopi -- in Arch, the following steps would normally be performed:

  1. ensure that the prerequisite package base-devel is installed
  2. download the tarball of the dependency for yaourt, package-query from the AUR
  3. download the yaourt tarball from the AUR
  4. build both of these packages locally and install them
  5. once yaourt is installed it can be used to manage packages from the AUR including installing Pamac

Actually, installing yaourt is not necessary to install Pamac, since the same method used to install yaourt itself could be used to install Pamac, but it is necessary for Pamac AUR support and installing yaourt will also make installing other packages from the AUR easier in the future if Pamac fails. I found Pamac, as made available in Apricity, to be very reliable which surprised me based on my experience using it in Antergos.

Documentation and Help

Apricity specific documentation is not available, but this is not necessary as the Arch Wiki is more than enough. There is however a forum, sparse at the moment, for Apricity specific questions. A particularly good support experience with Apricity was that the developers are extremely responsive to direct questions through the general "contact us" email address provided on the website. When wanted more information on the suspicious hbci connection, one of the developers replied almost immediately, although the response was that they had not experienced such an issue. It was only after I sent the screenshots of the output of ss that he acknowledged the problem. This developer did however provide a possible solution to the ICE SSB error.

Recommendation

Apricity provides a nicely themed and customized GNOME shell desktop with thoughtfully selected GNOME shell extensions and default software for typical tasks. It also accomplishes its goal of assembling software "that helps people better integrate digital computing into their daily lives" in the form of a pre-packaged Chrome browser and various Chrome extensions and apps, and non-browser based software for users who consume online content and are active online with many devices. The obvious competitor to Apricity is Antergos which also simplifies an Arch installation and offers some after installation convenience -- and with more prebuilt packages from the AUR, but Antergos doesn't have the unique and differentiating software for the "connected" user.

However, although these extras may be appealing to some Linux beginners, in its current form it is probably only suitable for those experienced with Arch -- but want an Arch OS without the lengthy installation and customization process -- mainly because of the installer's bootloader issue. Even after resolution of installer issues some updates will require manual intervention because of the nature of the underlying Arch OS that a Linux beginner will only solve after much Googling and frustration. (As an example refer to the Antergos review which describes an update that prevented VMware player from running.) In my opinion the more suitable choice for a Linux beginner who wants fresh software is Manjaro, a distribution that uses Arch packages but maintains its own repositories with a delay for additional testing and some other in-house developed tools and systems to enhance stability.

When Apricity reaches a stable release it will be a good alternative for a simple Arch installation, especially for those who want its unique extras.