Introducing SystemdGenie

I would like to introduce my new application SystemdGenie. Some of you may be familiar with systemd-kcm, a KCM module I wrote for managing systemd. SystemdGenie is basically systemd-kcm transformed into a proper application. The KCM module format wasn’t really suitable anymore since systemd-kcm had evolved into more than just a simple “settings” utility. Moving to a proper application enabled e.g. having menus and toolbars, but also necessitated a new name.

systemdgenie-1

Functionality

Currently, SystemdGenie has mostly the same functionality as systemd-kcm. It allows graphical management of systemd units including user units. Control of logind sessions is also provided.

Unit files can be easily edited using a simple integrated text editor, which can be accessed from the context or Unit menu.

systemdgenie-3

The main configuration files of systemd, i.e. those residing in /etc/systemd, can also be viewed and edited in the “Config Files” tab. In contrast to systemd-kcm, these files are now edited with the integrated text editor instead of a GUI with validation etc. The old GUI was dropped as it was constantly outdated due the available options and their possible values changing with almost every systemd release.

systemdgenie-2

How to get it

The first development release (version 0.99.0) was released today and the source can be downloaded here. The git repository is found here. Please provide feedback and report any bugs or wishes at KDE’s bugzilla.

Enjoy!

Advertisements

New features in Ark 16.12

Ark, the file archiver and compressor developed by KDE, has seen a lot of development for the upcoming 16.12 release. This blog post provides a summary of the most important changes.
 

Advanced archive editing

Thanks to the excellent GSoC work done by Vladyslav Batyrenko (mvlabat) this summer, it’s now possible to perform advanced editing operations for an archive. This means that files/folders can be moved and copied within an archive. This functionality is available either from the context menu or with the well-known keyboard shortcuts (CTRL+C, CTRL+X, CTRL+V).

Additionally, files/folders can now be added to any subfolder of an archive. In the past files could only be added to the root of an archive. This is done by selecting a subfolder and then activating the “Add Files…” item from either the “Archive” menu or the context menu.

Finally, files/folders can be renamed. This can be done by selecting the entry and pressing F2 or selecting Rename from the context or “File” menu.

blog-1612-advanced-edit

See mvlabat’s blog post for more info on these features.

 

Choose compression method

Ark now allows setting compression method for supported archives. This is possible for Zip and 7z archives. For instance, LZMA compression may be selected for Zip archives to improve compression ratio (requires 7z to be installed). Note that Zip archives using newer compression methods may not be supported by older unarchivers (e.g. the unzip utiliy), but should be supported by modern software such as WinZip, WinRar and 7-Zip for Windows. The compression method can be set in the Compression section when creating a new archive.
blog-1612-comp-method

AES-encryption for Zip archives

Strong AES-encryption is now used by default for Zip archives when 7z is installed. Three AES key lengths are available (128, 192 and 256 bit). The classic Zip encryption method (ZipCrypto), which is now known to be vulnerable but is more widely supported, can also be selected. Again, note that e.g. unzip doesn’t support extracting archives with AES-encryption.

blog-1612-enc-method

Support for AR archives

We added support for opening AR archives. This old Unix format is now mostly used for static libraries (*.a) on Linux systems. So static libraries can now be opened by Ark to view the contained object files.
blog-1612-ar-archive

 

Performance improvements

Opening large archives should be much faster with Ark 16.12. Previously, the model containing all the archive entries wasn’t created until the archive was completely loaded from disk. Now we start creating the model right away. This resulted in a greatly reduced time to open large archives.

 

Progress information

Ark now shows progress in percentage for more operations (e.g. open, extract, add) than previously. This means it’s possible to know approximately how long an operation will take. Additionally, progress is now always shown in Plasma’s system tray where operations can also be aborted. When progress in percentage is available it is also shown in the task manager item (thanks to KBroulik’s work).

blog-1612-progress

 

Bugfixes and under-the-hood changes

A ton of bugs were fixed and the code architecture further modernized.

Testing and feedback

The  16.12 beta is now out, while the release candidate should be out on December 1st and the final release on December 15th. Please test the new features and provide feedback either as comments on this blog post or as bugs on KDE’s bugzilla.
 

What’s next?

For Ark 17.04 we hope to add a graphical interface for configuring the plugins Ark uses to handle different archive formats. Also, we are investigating whether we can use libzip to handle zip archives.
If there are features you are missing in Ark, please let us know.

Acknowledgements

Thanks to Elvis Angelaccio and Vladyslav Batyrenko (mvlabat) for their development work on Ark.

Ark improvements in 16.08

Ark, the file archiver and compressor developed by KDE, has seen a lot of development for the upcoming 16.08 release. This blog post provides a summary of the most important changes.
 

Redesign of several dialogs

The dialog for creating new archives was completely redesigned. The old dialog contained a large file-picker widget which didn’t provide much room for other widgets to set additional options. The file-picker was scrapped and we now have a line edit for entering the archive name. Additional options are presented below in collapsible groups. For this purpose we employ the new KCollapsibleGroupBox widget developed by the awesome David Edmundson (blog post here).
blog1608-createdialog
Previously, two separate actions were available for adding entries to an archive: One for folders (only one folder could be added at the time using this dialog) and one for files. Now files and folders can be added simultaneously and the new dialog also allows setting compression level for the newly added files.
 

Setting compression options

Ark now allows setting more options when creating new archives. Currently, this includes password, compession level and multi-volume archives. Compression level can be set for most archive types, while only rar, 7z and zip support creating multi-volume archives.
blog1608-createdialog2

Support for new compression formats

Ark can now open and extract XAR archives and AppImages. Additionally, tar archives can be compressed with LZ4 compression (requires libarchive 3.2).
blog1608-newformats
 

Support for editing comments

Ark has been able to show archive comments since 15.12. We now implemented support for adding or editing comments in rar archives. The action can be found in the Archive menu. When editing the comment a KMessageWidget appears at the bottom which allows you to save the comment.
blog1608-editcomment

Testing archive integrity

Ark gained the ability to test archives for integrity. This functionality is currently available for zip, rar and 7z archives. The test action can be found in the Archive menu.
blog1608-testarchive
 

Dynamic context menus in file managers

Ark provides service menus for easily compressing or extracting files from file managers such as Dolphin. The service menus are now dynamic, so that only actions for which the required executables are installed are shown. E.g. if neither 7z and zip executables are found in path, the entry for compressing as zip will not be shown. This is achieved through usage of KFileItemAction plugins. Note that you also need Dolphin 16.08 for this to work properly.
 

Bugfixes and under-the-hood changes

A great amount of under-the-hood changes allowed us to fix many annoying crashes with the CLI-based backends. Also, several new classes were added to the infrastructure of Ark which greatly simplify adding further features in the future.

Testing and feedback

The  16.08 beta is now out, while the release candidate should be out on August 4th and the final release on August 18th. Please test the new features and provide feedback either as comments on this blog post or as bugs on KDE’s bugzilla.
 

What’s next?

For Ark 16.12 we hope to add a graphical interface for configuring the plugins Ark uses to handle different archive formats. Also, we want to add support for setting additional compression options such as encryption method (ZipCrypto, AES256, etc.).
We also hope to merge the excellent GSoC work by Vladyslav Batyrenko for advanced editing of archives.
If there are features you are missing in Ark, please let us know.

Acknowledgements

Thanks to Elvis Angelaccio and Vladyslav Batyrenko (mvlabat) for their development work on Ark.

Ark improvements in 16.04

Ark, the file archiver and compressor developed by KDE, has seen the addition of several new features as well as bugfixes in Applications 16.04. This blog post gives a short summary of the changes.

 

New features

Properties dialog

Ark got a properties dialog that shows various information about the currently opened archive. This includes e.g. archive type, compressed and uncompressed size, as well as MD5, SHA-1 and SHA-256 cryptographic hashes. The hashes can be selected with the mouse for easy copying. The properties dialog can be accessed in the Archive menu or using the keyboard shortcut ALT+RETURN.

Blog-16.04-props
Ark’s new Properties dialog.

 

Unarchiver plugin

Unarchiver  is a free and open-source  archive decompressor that supports e.g. RAR  archives. A new plugin for this decompressor was developed by Elvis  Angelaccio and added in Ark 16.04. Ark previously required unrar for opening/decompressing RAR archives. The new plugin is now used if unrar is not installed on the system. This is relevant because of unrar's not-completely-free status and hence not being easily available in some distributions.

See this blog post by Elvis for more details on the unarchiver plugin.

 

Support for new compression formats

Ark can now compress/decompress TAR archives using three new compression formats: Lzop, lzip and lrzip. Support for lrzip requires the lrzip executable to be installed. Additionally, support for creating tar.Z archives had been broken for some time, but this should now be fixed.

Blog-16.04-formats
Ark’s New Archive dialog showing support for several new compression formats.

 

Runtime check for executables

Ark now checks if executables needed to handle certain archive types are installed. If the executables are not found in path, the formats are not displayed in Open/New dialogs. Previously, an error would be displayed if the user attempted to open/create an archive for which a needed executable was not installed.

 

Improved password widget

Ark now uses the new password widget developed by Elvis Angelaccio (KNewPasswordWidget) when asking for a password to protect an archive. This means e.g. that the user gets nice color feedback when the second entered password is different from the first. There is also a “Show password” icon that can be clicked.

Blog-16.04-passwdwidget
Ark’s new password widget showing red background due to non-identical passwords.

 

 

Polishing of the user interface

Ark’s menus and toolbars were polished to hopefully achieve a more user-friendly, intuitive and modern interface.

Firstly, the status bar is now only displayed when a job is executing. This makes sense since it was only being used for displaying a progress bar when a job was running.

The menu system was re-organized. There is now an Archive and a File menu, which contain actions affecting the archive and files within the archive, respectively. Also, the toolbar was restructured to be less cluttered.

Blog-16.04-menus
The user interface of Ark was polished in 16.04. For example, the statusbar is now hidden and the menus and toolbar were reorganized.

Ark is now increasingly using it’s message widget instead of message boxes for displaying error, warning or information messages to the user. Additionally, various error messages were improved to be more user-friendly.

Blog-16.04-msgwidget
The message widget showing an information message to the user.

 

Bugfixes

A bunch of bugs were fixed in the 16.04 release; several of these being 6-7 years old. The bugfixes are too numerous to list here, but some of the most important ones are mentioned below.

When extracting, Ark should now present an error message if the destination partition is full. Previously, Ark would either fail silently or the user interface would be in a “busy” state continuously.

The quick-extract menu is used to quickly extract to destination folders that have been used previously. This menu has not worked since the port to KDE Frameworks 5 in Applications 15.08. Thanks to new Ark contributor Chantara Tith (tctara), the menu is now fixed and works properly.

Other bugfixes include drag’n’drop extracting huge files doesn’t fill the memory anymore, DrKonqi is now used again for handling crashes and overwriting archives should now work as intended.

 

Testing and feedback

The 16.04 beta is now out, while the release candidate will be out on April 6th and the final release on April 20th. Please test the new features and provide feedback either as comments on this blog post or as bugs on KDE’s bugzilla. Hopefully, we can squash some more bugs before the final release.

 

What’s next?

There are several new features planned for Ark 16.08. These include a possibility to set compression level when creating new archives and a plugin configuration page to allow users to e.g. select which plugins to use for various archive types.

 

Thanks to Elvis Angelaccio and Chantara Tith for their development work and Thomas Pfeiffer for providing feedback on user interface changes.

 

Systemd-kcm 1.2.0 released

Systemd-kcm 1.2.0 was released four days ago. Systemd-kcm is a KDE control module for graphically managing systemd and related services such as logind. Systemd-kcm was previously hosted on GitHub under the name kcmsystemd, but was recently moved to KDE infrastructure and renamed to systemd-kcm. As of v1.0.0 systemd-kcm is based on Frameworks 5. Since I haven’t blogged about systemd-kcm before I will give a brief introduction here. System-kcm is divided into five tabs. The first tab displays all system units (see Screenshot 1 below). Units can be filtered either through a text search field and/or through a combobox allowing selection of specific unit types (services, targets, timers, etc). There are also two checkboxes for showing inactive and unloaded units, respectively. Hovering the mouse cursor over a unit displays a tooltip containing various useful info about the unit including the last five color-coded journald entries for the unit. Manipulation of units is possible through the context-menu, where units can be started, stopped, enabled, disabled, isolated, masked, etc. It is also possible to easily edit unit files from the context-menu using the associated text-editor.

Units tab 1
Screenshot 1. Units tab

The second tab is a new addition in v1.2.0 and shows the units of the user systemd service manager when available. Functionality-wise it is identical to the first tab. The third tab allows graphical editing of the main systemd configurations files, namely system.conf, journald.conf, logind.conf and coredump.conf (see Screenshot 2 below). These files are usually located in /etc/systemd. Configuration parameters which are not set to their default values are shown in bold. Hovering over parameters shows a tooltip with a convenient description of the parameter.

Conf tab 1
Screenshot 2. Conf tab

The fourth tab is the Sessions tab, where logind sessions can be displayed and manipulated (see Screenshot 3 below). Various info for sessions are displayed in the columns, with additional info available in the tooltip. Basic control of sessions, such as locking, activation and temination, is available in the context-menu.

Sessions tab 1
Screenshot 3. Sessions tab

The final tab is also a new addition in v1.2.0 (see Screeshot 4 below). It gives an overview of active timer units, both system and user timers, and basically provides the same information as the systemctl list-timers command. The time since last activation, the time until next activation and the unit activated by the timer are shown. System and user timers can be distinguished by the icon. As of v1.2.0, no tooltips or context-menu is available in this tab, but will be implemented in a future release.

Timers tab 1
Screenshot 4. Timers tab

Systemd-kcm releases are available for download at http://download.kde.org/stable/systemd-kcm/ The last release for KDE4 (v0.7.0) can also be downloaded at this location. Systemd-kcm might also be available through your favorite distro’s package system, e.g. it is available in the Community repository of Arch Linux. Git repository is at: http://quickgit.kde.org/?p=systemd-kcm.git Please report bugs and feature requests at the KDE bugzilla