Skip to content

Hugo-Fabresse/dentry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dentry

A minimal, keyboard-driven file manager for Linux built with Qt6.

Dentry — named after the Linux kernel's directory entry cache structure — is a lightweight graphical file manager designed for tiling window managers and minimal desktop environments. It focuses on clarity, speed, and a consistent dark aesthetic without unnecessary UI chrome.

Features

  • Sidebar with quick-access places populated dynamically from home directory, toggleable hidden folders, Home always first, Root always last
  • File list view with sortable columns: Name, Size, Type, Date Modified, Permissions
  • Async file operations: Copy, Cut, Paste, Move, Delete, Rename, Create File, Create Folder
  • Progress dialog with cancellation support for all file operations
  • Right-click context menu with full operation support
  • Toggle for hidden dot-files with visual indicator (black = off, white = on)
  • Inline search with real-time filtering
  • File preview panel for text and images
  • Dark theme — black/white only, zone-based layout with border-radius, no external theme dependency
  • Colored terminal logger with category filtering via DENTRY_DEBUG environment variable
  • Full keyboard and mouse support

Technical Specifications

Property Value
Language C++17
UI Framework Qt6 Widgets + Qt6 Concurrent
Build System CMake 3.16+
License GPLv3
Tested on Arch Linux

Requirements

  • Qt6 Base (qt6-base)
  • Qt6 Concurrent (qt6-base)
  • CMake 3.16 or later
  • A C++17-compatible compiler (GCC 9+, Clang 10+)

Installation

Arch Linux (AUR)

yay -S dentry
# or
paru -S dentry

Arch Linux / Manjaro (manual)

sudo pacman -S qt6-base cmake base-devel

Ubuntu 22.04+ / Debian Bookworm+

sudo apt install qt6-base-dev cmake build-essential

Fedora

sudo dnf install qt6-qtbase-devel cmake gcc-c++

Building

git clone https://github.com/Hugo-Fabresse/dentry.git
cd dentry
cmake -B build
cmake --build build

The compiled binary will be located at build/dentry.

Install system-wide

sudo cmake --install build

Running

./build/dentry

Or if installed system-wide:

dentry

Debug logging

# Enable all logs
DENTRY_DEBUG=1 dentry

# Filter by category
DENTRY_DEBUG=1 QT_LOGGING_RULES="*.debug=true;Mime.debug=false;FileInfo.debug=false" dentry

Usage

Navigation

Action Method
Open folder Double-click or Enter
Go back Click "←" or Backspace
Go to Home Click "~"
Jump to a place Click an entry in the sidebar
Sort by column Click a column header

File Operations

Action Method
Copy Right-click → Copy
Cut Right-click → Cut
Paste Right-click → Paste
Delete Right-click → Delete
Rename Right-click → Rename
New file Right-click → New File
New folder Right-click → New Folder
Open file Double-click (uses default app)

Search

Type in the search bar to filter the current directory in real time. The filter applies only to the current directory and clears on navigation.

Hidden Files

Click the "·" button in the toolbar to toggle visibility of dot-files. Black background = hidden files off. White background = hidden files visible. The sidebar updates accordingly.

Project Structure

dentry/
├── CMakeLists.txt
├── Doxyfile
├── LICENSE
├── README.md
├── dentry.desktop
├── doc/
└── src/
    ├── main.cpp
    ├── app/
    │   ├── Application.h/.cpp
    │   └── Clipboard.h/.cpp
    ├── fs/
    │   ├── IFileOperation.h
    │   ├── AFileOperation.h/.cpp
    │   ├── FileInfo.h/.cpp
    │   ├── MimeResolver.h/.cpp
    │   └── operations/
    │       ├── CopyOperation.h/.cpp
    │       ├── MoveOperation.h/.cpp
    │       ├── DeleteOperation.h/.cpp
    │       ├── RenameOperation.h/.cpp
    │       ├── CreateFileOperation.h/.cpp
    │       └── CreateFolderOperation.h/.cpp
    ├── model/
    │   ├── IFileSystemModel.h
    │   ├── AFileSystemModel.h/.cpp
    │   ├── FileSystemModel.h/.cpp
    │   └── FileItem.h
    ├── ui/
    │   ├── MainWindow.h/.cpp
    │   ├── Sidebar.h/.cpp
    │   ├── FileListView.h/.cpp
    │   ├── PreviewPanel.h/.cpp
    │   ├── Toolbar.h/.cpp
    │   ├── StatusBar.h/.cpp
    │   ├── ProgressDialog.h/.cpp
    │   ├── Style.h
    │   ├── style.qss
    │   └── resources.qrc
    └── util/
        ├── Logger.h/.cpp
        ├── SizeFormatter.h/.cpp
        ├── DateFormatter.h/.cpp
        └── PermissionFormatter.h/.cpp

License

GPLv3 — see LICENSE.

About

A minimal, keyboard-driven file manager for Linux. Built with Qt6, styled for Hyprland.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors