Borax Mans Pad
  • About
  • Blog
  • Articles
  • Levels
  • My Computing Setup
  • Programs
  • Links

Daria - The Fvwm Download Manager

As I mention in My Computing Setup , I prefer a setup where certain services appear to be part of the operating system itself, rather than tied to a specific program. I use aria2c to download files. It runs in the background, so file transfers will continue even after you close whatever front end you use. Front ends communicate with the daemon via RPC calls to modify settings, add, pause, remove and resume downloads, and there are a few front ends available.

I wanted to have one integrated with the Fvwm Window Manager. There are various frontends which exist, which are pretty decent, but I wanted something simple and light. Fvwm has a mode called FvwmScripts which you can use to build basic GUI programs that run from scripts.

Introducing Daria

Daria is an Fvwm Script which provides rudimentary management of an aria2c daemon. Rudimentary in that it is enough to add new downloads, pause, resume and remove downloads, as well as check their status.

With Daria, you can just highlight any link in your browser, bring up FvwmScript-Daria, then optionally select where to save the file and press “Add Download” and just like that you’ve got a new file transfer going. You can also add torrents with FvwmScript-Daria. If you close it, the download will continue, and you can bring it back up any time to check status or perform management.

There are plugins for browsers which can use aria, the best I’ve seen is FlashGot which unfortunately doens’t work on Firefox anymore (it does for SeaMonkey). Fortunately, you can use all these tools in conjunction with Daria.

Daria
Daria Downloader

How it works/Installation

Firstly, you’ll need to install aria2c and you’ll also need yad, aria2cpp , xsel, though you can use xclip if you want, just change the FvwmScript-Daria file. yad and xsel should be available in your distros repo, aria2cpp is a creation of mine that needs to be downloaded and compiled seperately.

Daria itself consists of four programs. Two are the FvwmScripts, the other two are support programs that communicate between the Fvwm Scripts and aria2c.

You will also need jsonrpc and jsonrpccpp

Debian

sudo apt install libjsonrpccpp-dev libjsonrpccpp-tools libjsonrpccpp-client0 libjsonrpccpp-common0 libjsonrpccpp-stub0

To install the daria, you’ll need to download and build it from source. First though, you’ll need to build libaria2cpp that this program requires.

Install libaria2cpp

Download libaria2cpp here . GPG signature . For more information about this library, check out its page . This page will list the dependencies for this library.

To build the library, after ensuring the dependencies are installed, extract the archive and build…

tar xvzf /path/to/file/libaria2cpp-0.2.1.tar.gz
cd libaria2cpp-0.2.1
./configure
make

then as root…

make install

or

sudo make install
Download the source code and install

The following commands will download the source code, the aria2cpp library you need, build and install

git clone https://gitgud.io/BoraxMan/boraxmans_fvwmscripts
cd boraxmans_fvwmscripts
git clone https://gitgud.io/BoraxMan/aria2cpp
make
make install

For it to run, aria2 needs to be running as a daemon.

aria2c --enable-rpc --daemon

If you want desktop notifications when a file has downloaded, then you can achieve this by creating an executable script called “closehook.sh” which contains.

#!/bin/sh
if [ x$DISPLAY != x ] ; then
	notify-send "Download Complete" $3
fi

and add a line to your ~/.aria2/aria2.conf file which reads

on-download-complete=/path/to/closehook.sh

replacing /path/to with where you actually saved it, of course! I put mind in ~/.aria2/

Now you have a script, to call it, the Fvwm command is

FvwmScript FvwmScript-Daria

which you can bind to a key, a button, a menu entry, whatever tickles your fancy.

Once you start the script, it is all pretty self explanatory. If you click “Torrent Details”, you’ll get another window which will show you details of a torrent. Obviously, it won’t show much if you select it on a download which is not a torrent.

Back to Home


© Dennis Katsonis 2025

GitGud