Varia is a simple download manager that conforms to the latest Libadwaita design guidelines, integrating nicely with GNOME. It uses the amazing aria2 to handle the downloads.
It supports basic functionality like continuing incomplete downloads from the previous session upon startup, pausing/cancelling all downloads at once, setting a speed limit, authentication with a username/password, setting the simultaneous download amount and setting the download directory.
The main way to get Varia that is supported by me is via Flathub.
flatpak install flathub io.github.giantpinkrobots.varia
This requires you to have Flatpak and the Flathub Flatpak repository installed on your system.
You can get Varia via the AUR as well, but it is not distributed by me.
You can find a highly experimental build of Varia in the releases section. But keep in mind, it will have bugs.
The easiest way of building Varia is to use GNOME Builder. Just clone this repository, and open the folder using Builder. Then, press run.
If you don't want to utilize Flatpak to build Varia you need:
- meson
- python-setuptools
- Gtk4 and its development libraries
- Libadwaita
- gettext
- aria2 and the aria2p python package.
To install the ones besides aria2p on some Linux systems:
Ubuntu, Debian, Mint etc:
sudo apt install meson ninja-build aria2 python-setuptools libgtk-4-dev libadwaita-1-0 gettext
Fedora, RHEL etc:
sudo dnf install meson ninja-build aria2 python-setuptools gtk4-devel libadwaita gettext
Arch, EndeavourOS, Manjaro etc:
sudo pacman -S meson aria2 python-setuptools gtk4 libadwaita gettext
To install aria2p using pip (your distro probably doesn't have it in its repos - it's on the AUR for Arch):
pip install aria2p
Then, you can use meson commands to build Varia:
git clone https://github.com/giantpinkrobots/varia
cd varia
meson setup builddir
cd builddir
meson compile
sudo meson install
Windows support is experimental. Translations don't work yet.
- Get MSYS2.
- Install dependencies on an MSYS2 shell:
pacman -S mingw-w64-x86_64-python
pacman -S mingw-w64-x86_64-gtk4
pacman -S mingw-w64-x86_64-libadwaita
pacman -S mingw-w64-x86_64-python-gobject
pacman -S mingw-w64-x86_64-python-pip
pip install aria2p
pip install pyinstaller
- To have the icon applied properly you also need python-pillow, otherwise pyinstaller gives an error:
pacman -S mingw-w64-x86_64-python-pillow
- Copy variamain.py, varia.spec and icon.ico to the home directory of your MSYS2 install. variamain.py is in /src, varia.spec and icon.ico is in /windows.
- Run the pyinstaller command:
pyinstaller varia.spec
- You need to get a copy of aria2c.exe and paste it into the /dist/variamain folder that was created by pyinstaller.
Running variamain.exe will start Varia.
Contributions are always welcome, of course! In the case of translations, they are done with .po files that you can create with a program like Poedit for example. Keep in mind that Varia is kind of a simple app at the moment, and I will keep adding new features so the translations you add right now can become incomplete when I add new features.
Varia is licensed under the Mozilla Public License 2.0.
But, it also relies on the following pieces of software and libraries:
- aria2
- OpenSSL
- aria2p
- GTK4
- Libadwaita
- Meson
- Python-appdirs
- Python-certifi
- Python-charset-normalizer
- Python-gettext
- Python-idna
- Python-loguru
- Python-requests
- Python-setuptools
- Python-urllib3
- Python-websocket-client
The licenses of all of these pieces of software can be found in the dependencies_information directory.
The name "Varia" comes from the aria2 software it is based on, and I added a "V" to make it "Varia". In the Metroid series of games, there is a special suit you eventually get named a "Varia Suit" with its main feature being allowing Samus to withstand extreme temperatures. I spent some time thinking about how to connect the Varia Suit to my app, but couldn't, soooo... I think it just sounds cool.