- Unified Viewer: Inspect regular text files, binary files (in a hex-dump view), and archive contents all in one interface.
- Plugin Architecture: FAT uses a dynamic plugin system to handle different archive formats. The beta version comes with support for ZIP and TAR archives.
- Customizable Theming: Easily change the look and feel of the application. FAT uses simple
.jsonfiles for theming and comes with several pre-built themes, including Nord, Gruvbox, Monochrome, and Solarized. - User-Friendly TUI: A clean, two-pane layout shows file metadata on the left and content on the right.
- Cross-Platform: Designed to compile and run on Linux, macOS, and
Windows (via MinGW-w64).
NOTE: At the current version, Windows is not available. Linux and macOS are available completely though.
The easiest way to get started is by downloading the latest Binaries or AppImage.
Go to the project's Releases Page on GitHub and download the file for your system and arch.
You only need to do this once.
chmod +x <file you downloaded>You can now run the application directly
for binary
./fat-x86_64 /path/to/your/fileor for Appimage
./fat-x86_64.AppImage /path/to/your/fileDesktop Integration: For the best experience, we recommend installing AppImageLauncher. It will automatically add FAT to your application menu.
- Prerequisites
First, you need to install the necessary development libraries.
sudo apt update
sudo apt install build-essential libncursesw5-dev libmagic-dev libzip-dev libtar-devsudo dnf install ncurses-devel file-devel libzip-devel libtar-develUsing Homebrew:
brew install ncurses libmagic libzip libtarThe recommended way is to use MSYS2 with the MinGW-w64 toolchain.
- Install MSYS2.
- From the MSYS2 MinGW 64-bit terminal, install the toolchain and libraries:
pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-ncurses mingw-w64-x86_64-file mingw-w64-x86_64-libzip mingw-w64-x86_64-libtar- Build Commands
Once you have the prerequisites, you can build and install FAT with these simple commands:
# 2. Build the application and plugins
make
# 3. Install the application system-wide
sudo make install
# 4. (Linux only) Update the shared library cache
sudo ldconfigThe fat command will now be available system-wide.
- Cleaning Up
Two cleaning commands are available:
make clean: Removes intermediate object files and binaries from the compilation process.make distclean: Performs a full cleanup. It runscleanfirst and then deletes theAppDir/and any created AppImage files, restoring the project to a pristine state.
To view a file or archive, simply pass it as an argument:
fat my_document.txt
fat project.zip| Key | Actions |
|---|---|
Up / Down |
Navigate through files or scroll content |
Enter |
View a file within an archive |
Esc |
Go back to the parent archive/directory |
q |
Quit the application |
F2 |
Open the theme selector menu |
/ |
Search for text (or hex in binary view) |
n / N |
Go to the next/previous search result |
? |
Show the in-app help screen |
FAT is designed to be easily customized. On the first run, it will create a configuration directory at ~/.config/fat/ (on Linux/macOS) or %APPDATA%\fat (on Windows).
This directory will be populated with default themes. To create your own theme or modify an existing one, simply edit the .json files in the ~/.config/fat/themes/ directory. Your personal themes will automatically override the system-wide defaults.
Want to add support for another archive format like .7z or .rar? It's easy! The plugin system is designed to be simple.
-
Include the
plugin_api.hheader in your C file. -
Implement the four required functions:
can_handle,list_contents, andextract_entry. -
Export a
plugin_registerfunction that returns a struct of your function pointers. -
Compile your plugin as a shared library (
.so,.dll, or.dylib) and place it in the plugins folder.
For a complete example, see the implementations for zip_plugin.c and tar_plugin.c.
This project is licensed under the MIT License. See the LICENSE file for details.