Awesome
Hunter is a graphical and console file manager for Linux, inspired by Ranger. At this moment, Hunter is under development and have all basic features of a file manager. To open files, the program uses default applications from XDG MIME Application Specification.
Note: This version of README.md is about development version of the program. Some things may be different in released version of Hunter.
This is the new version based on Tk library (graphical version). For the stable version of the program please look here
INFO: This project is no longer maintained. Feel free to clone it and take care about it.
Features
- Graphical (Tk) and console (Ncurses) version of the program.
- Two column mode default or one column mode: One column always show files and directories, second column is used to preview files and directories or select a destination location to move or copy files. In one column mode, second column, appear only when copying or moving files or directories.
- Preview of text files (with syntax highlighting) and images.
- Standard file manager features: copy, delete, move files and directories, change their permissions, change application associated with them.
- Written in Ada programming language.
- Available in English and Polish languages.
- Extendable with plugins system (plugins can be written theoretically in any language, but mainly in Tcl).
Build the program from sources
Docker way
You can use Docker image adabuild
from the project Docker Ada.
It contains all libraries and compiler needed to build the program.
To build the program, download adabuild
image and type in console:
- If you want to build the graphical version of the program:
docker run --rm -v [path to source code]:/app ghcr.io/thindil/adabuild /bin/bash -c "cd /app && gprbuild -p -P hunter.gpr -XMode=release"
- If you want to build the console version of the program:
docker run --rm -v [path to source code]:/app ghcr.io/thindil/adabuild /bin/bash -c "cd /app && gprbuild -p -P hunter.gpr -XMode=release -XUI=console"
Classic way
To build you need:
-
compiler - GCC with enabled Ada support. The most distributions should have it. The program does not work with old compilers (like GCC 4.9) since it lacks full support for Ada 2012.
-
Tcl/Tk library. Should be available in any Linux distribution.
-
XmlAda - Should be available in the most Linux distributions. In other situation, you may need to download it from:
-
TASHY library with included binding to Tk and TkLib. You can get it from:
https://github.com/thindil/tashy
Important: To build this version of Hunter the version 8.6.9 is required. Ealier versions will not work due to lack of some bindings.
-
File command (libmagic) development files. It can have different names in every Linux distribution: in Fedora it is file-devel on Debian/Ubuntu/Mint file-dev.
-
If you want to build the console version of the program, you will also need ncurses library, its development files and the Ada binding for it. All should be available in the most Linux distributions.
-
Additionally, the program need a couple of other libraries to run, they are listed in the section Running Hunter below.
If you have all the required packages, navigate to the main directory(where this file is) to compile:
-
The simplest way to compile the program is use Gnat Studio. It should be available in the most distributions. Just run it, select hunter.gpr as a project file and select option
Build All
. -
If you prefer using console: to build the graphical version of the program, in main source code directory, type
gprbuild -P hunter.gpr
for debug mode build or for release mode:gprbuild -P hunter.gpr -XMode=release
. If you have installed Bob you can typebob debug
for build in debug mode orbob release
to prepare release for the program. If you want to build the console version of the program, in main source code directory typegprbuild -P hunter.gpr -XUI=console
for debug mode build or for release mode:gprbuild -P hunter.gpr -XMode=release -XUI=console
. If you have installed Bob you can typebob debugconsole
for build in debug mode orbob releaseconsole
to prepare release for the program.
Running Hunter
If you use downloaded AppImage version, you don't need any additional libraries. Just run it as any AppImage file. More information about AppImage files usage, you can find at:
https://docs.appimage.org/user-guide/run-appimages.html
IMPORTANT: The current AppImage version require GNU LibC in version at least 2.29. It will not work with earlier versions. In that situation, unfortunately you will have to build the program by yourself.
When you are trying to run build by yourself version of the program, run
hunter
from bin
directory. Additionally, the program requires a few
more libraries (in its graphical version):
-
Tk extension tklib. Should be available in every Linux distribution.
-
Tk extension Img. In Debian/Ubuntu/Mint it is named libtk-img.
-
Tk extension tksvg. You can get it from:
Starting parameter
You can set directory to view when starting the program by adding it full path
to the starting command. For example, to view root directory /
run the
program with hunter /
Testing versions
Here are available testing versions of the game. You can find them
in Actions.
Just select option from the list of results to see Artifacts list.
To use them, first you must download normal release. Then, for Linux: inside
directory where the game is, type ./hunter-x86_64.AppImage --appimage-extract
to extract whole game to directory squashfs-root. And then move files
from the archive to the proper location. To run that version, enter
squashfs-root directory and type in console ./AppRun
.
Size is a file's size after unpacking. You will download it compressed with Zip.
Generating code documentation
To generate (or regenerate) code documentation, you need ROBODoc
If you have it, in the main program directory (where this file is) enter
terminal command: others/generatedocs.tcl
. For more information about this
script, please look here. This
version of script have set all default settings for Hunter code. If you have
Bob installed, you can type bob docs
.
Contributing to the project
For detailed information about contributing to the project (bugs reporting, ideas propositions, code conduct, etc), see CONTRIBUTING.md
Licenses
Hunter is available under GPLv3 license.
xdg-mime and xdg-open scripts distributed with the program are part of the xdg-utils project and released under MIT license:
https://github.com/freedesktop/xdg-utils
Highlight program distributed with the program is under GPLv3 license:
http://www.andre-simon.de/doku/highlight/en/highlight.php
Tcl/Tk, Tklib libraries are available under BSD-like license:
Tk Img library is available under BSD-like license:
https://sourceforge.net/projects/tkimg/
Tksvg library is available under BSD-like license:
https://github.com/auriocus/tksvg
Ncurses library is available under X-11 license:
https://invisible-island.net/ncurses/
TASHY is distributed under GPLv2 with runtime exception license:
https://github.com/thindil/tashy
Icons included in the program are modified version of the KDE Breeze Icons theme which are available under LGPLv2 license:
https://github.com/KDE/breeze-icons
The Hunter default themes are tkBreeze themes released under LGPLv2 license:
https://github.com/thindil/tkBreeze
That's all for now, and again, probably I forgot about something important ;)
Bartek thindil Jasicki