A powerful terminal-based interactive file browser developed using FTXUI library, providing intuitive directory navigation, file management, SSH remote connection, and MySQL database management capabilities.
- Real-time directory content display
- Color-coded items (blue for directories/red for files)
- Top status bar with current time
- Path history stack (support backward navigation)
- Keyboard navigation (โโ keys for selection, Enter to enter directories)
- Auto-refresh (100ms UI update interval)
- Directory search functionality
- Memory usage calculation for selected items
- File/folder creation and deletion
- Copy, cut, and paste operations
- File/folder renaming
- Clipboard management
- Attribute preview and file content inspection
- Vim-Like editing mode - Built-in text editor
- Image preview - Support for JPG, PNG, BMP, GIF
- Video playback - MP4, AVI, MKV, MOV, FLV, WMV support
- Binary file handling - Smart detection and protection
- Secure SSH connections to remote servers
- Password and key-based authentication
- Remote directory browsing
- Command execution on remote hosts
- Connection status monitoring
- Easy-to-use connection dialog
- Local and remote MySQL connections with easy configuration
- Graphical CRUD operations through intuitive button interface
- Database management - create, delete, and select databases
- Table operations - create, delete, and view table structures
- Data manipulation - insert, update, delete, and query data
- SQL query executor - direct SQL execution with result display
- Connection status monitoring and error handling
- Tabbed interface for organized database management
- Multiple built-in themes: default, dark, light, colorful, minimal
- Customizable colors for all interface elements
- Real-time theme switching with hotkeys
- Configuration file support (.ftb) for persistent customization
- Color schemes for files, directories, status bars, and dialogs
- Layout customization including panel ratios and item counts
- Style options for icons, animations, and mouse support
- Modern terminal UI with FTXUI
- Responsive design and smooth animations
- Intuitive keyboard shortcuts
- Error handling and user feedback
# Install required libraries
sudo apt-get install libftxui-dev libssh2-1-dev
# Install MySQL development library
sudo apt-get install libmysqlclient-dev
# For video/image support (optional)
sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libx11-dev
FTB uses a .ftb
configuration file located in your home directory (~/.ftb
) to customize the interface appearance and behavior.
- Copy the template:
cp config/.ftb.template ~/.ftb
- Edit the file: Customize colors, themes, and settings
- Restart FTB: Changes take effect immediately
- default: Classic blue and white theme
- dark: Dark background with high contrast
- light: Light background for bright environments
- colorful: Vibrant colors for visual appeal
- minimal: Clean, monochrome design
- Colors: Customize all interface colors
- Layout: Adjust panel sizes and item counts
- Style: Toggle icons, animations, and features
- Themes: Switch between predefined themes
- MySQL/SSH: Set default connection parameters
See Configuration Guide for detailed options.
CentOS/RHEL/Fedora:
sudo yum install mysql-devel mysql
# or
sudo dnf install mysql-devel mysql
Arch Linux:
sudo pacman -S mysql
chmod +x ./build.sh
source ./build.sh # Run build script
FTB # Launch application
./uninstall.sh
- โ/โ: Navigate file list
- Enter: Open selected directory
- Backspace/โ: Return to parent directory
- ESC: Exit program
- Search box: Filter files by keyword
- Ctrl+f: Create new file
- Ctrl+k: Create new directory
- Delete: Remove selected item
- Alt+n: Rename selected item
- Ctrl+t: Copy selected item
- Ctrl+x: Cut selected item
- Ctrl+n: Paste items
- Alt+c: Add to clipboard
- Alt+g: Clear clipboard
- Space: View item attributes
- Ctrl+p: Preview file content
- Alt+v: Image/text preview
- Alt+p: Video playback
- Ctrl+e: Vim-like editor
- Ctrl+s: Open SSH connection dialog
- Enter hostname/IP, port, username
- Choose password or key authentication
- Specify remote directory
- Connect and browse remote files
- Alt+d: Open MySQL database management dialog
- Configure local or remote MySQL connection
- Manage databases and tables
- Execute SQL queries with visual results
- Perform CRUD operations through buttons
- Ctrl+t: Switch between available themes
- Ctrl+r: Reload configuration file
- ~/.ftb: Customize colors, layout, and behavior
- Multiple themes: default, dark, light, colorful, minimal
- Ctrl+E: Enter Vim editing mode for text files
- Mouse support: Click to select and navigate
- Press
Ctrl+S
to open the SSH connection dialog - Fill in the connection details:
- Hostname:
192.168.1.100
orserver.example.com
- Port:
22
(default SSH port) - Username:
your_username
- Authentication: Choose password or private key
- Remote Directory:
/home/username
(default)
- Hostname:
- Click "Confirm" to establish the connection
- Browse remote files and execute commands
- Password Authentication: Enter your SSH password
- Key Authentication: Specify path to your private key file
- Encrypted SSH protocol (libssh2)
- Secure password handling
- Key-based authentication support
- Connection status monitoring
- Press
Alt+D
to open the MySQL database management dialog - Configure connection settings:
- Local Connection: Use
localhost
or127.0.0.1
as hostname - Remote Connection: Enter remote server IP or hostname
- Port: Default
3306
(MySQL standard port) - Username/Password: Your MySQL credentials
- Database: Optional, can be selected after connection
- Local Connection: Use
- Click "่ฟๆฅ" to establish the connection
- Use the tabbed interface for different operations:
- ่ฟๆฅ่ฎพ็ฝฎ: Configure and manage connections
- ๆฐๆฎๅบๆไฝ: Create, delete, and select databases
- ่กจๆไฝ: Manage tables and perform CRUD operations
- ๆฅ่ฏขๆง่ก: Execute custom SQL queries
- Database Management: Create, delete, and switch databases
- Table Operations: Create, delete, and view table structures
- Data Manipulation: Insert, update, delete, and query data
- SQL Execution: Run custom SQL statements with result display
- Connection Monitoring: Real-time connection status and error handling
- Smart Connection Detection: Automatically identifies local vs remote connections
- Visual CRUD Interface: Button-based operations for common database tasks
- Real-time Results: Immediate display of query results and affected rows
- Error Handling: Comprehensive error messages and connection status
- Tabbed Interface: Organized workflow for different database operations
FTB/
โโโ include/ # Header files
โ โโโ FTB/ # Core FTB headers
โ โ โโโ FileManager.hpp
โ โ โโโ ThreadGuard.hpp
โ โ โโโ FileSizeCalculator.hpp
โ โ โโโ Vim_Like.hpp
โ โ โโโ DirectoryHistory.hpp
โ โ โโโ detail_element.hpp
โ โ โโโ ConfigManager.hpp # Configuration management
โ โ โโโ ThemeManager.hpp # Theme management
โ โ โโโ HandleManager/
โ โ โโโ UIManager.hpp
โ โ โโโ UIManagerInternal.hpp
โ โโโ UI/ # User interface components
โ โ โโโ RenameDialog.hpp
โ โ โโโ NewFileDialog.hpp
โ โ โโโ NewFolderDialog.hpp
โ โ โโโ FilePreviewDialog.hpp
โ โ โโโ FolderDetailsDialog.hpp
โ โ โโโ SSHDialog.hpp # SSH connection dialog
โ โ โโโ MySQLDialog.hpp # MySQL database management dialog
โ โโโ Connection/ # Connection backends
โ โ โโโ SSHConnection.hpp # SSH connection backend
โ โ โโโ MySQLConnection.hpp # MySQL connection backend
โ โโโ Video_and_Photo/ # Media handling
โ โโโ ImageViewer.hpp
โ โโโ VideoPlayer.hpp
โโโ src/ # Source code
โ โโโ FTB/ # Core FTB implementation
โ โ โโโ main.cpp
โ โ โโโ FileManager.cpp
โ โ โโโ DirectoryHistory.cpp
โ โ โโโ detail_element.cpp
โ โ โโโ ThreadGuard.cpp
โ โ โโโ Vim_Like.cpp
โ โ โโโ FileSizeCalculator.cpp
โ โ โโโ ConfigManager.cpp # Configuration management
โ โ โโโ ThemeManager.cpp # Theme management
โ โ โโโ HandleManager/
โ โ โโโ UIManager.cpp
โ โ โโโ UIManagerInternal.cpp
โ โโโ UI/ # UI components
โ โ โโโ RenameDialog.cpp
โ โ โโโ NewFileDialog.cpp
โ โ โโโ NewFolderDialog.cpp
โ โ โโโ FilePreviewDialog.cpp
โ โ โโโ FolderDetailsDialog.cpp
โ โ โโโ SSHDialog.cpp # SSH dialog implementation
โ โ โโโ MySQLDialog.cpp # MySQL dialog implementation
โ โโโ Connection/ # Connection backends
โ โ โโโ SSHConnection.cpp # SSH connection logic
โ โ โโโ MySQLConnection.cpp # MySQL connection logic
โ โโโ Video_and_Photo/ # Media handling
โ โโโ ImageViewer.cpp
โ โโโ VideoPlayer.cpp
โ โโโ CommonMedia.cpp
โ โโโ FFmpegUtils.cpp
โโโ tests/ # Test cases
โ โโโ UIManagerTest.cpp
โ โโโ FileManagerTest.cpp
โ โโโ main.cpp
โ โโโ Vim_like_Test.cpp
โ โโโ CMakeLists.txt
โ โโโ FileSizeCaculatorTest.cpp
โโโ config/ # Configuration files
โ โโโ .ftb.template # Configuration template
โโโ docs/ # Documentation
โ โโโ CONFIGURATION.md # Configuration guide
โโโ bash_tool/ # Build scripts
โ โโโ build.sh
โ โโโ package_build.sh
โ โโโ uninstall.sh
โโโ .github/workflows/ # CI/CD
โ โโโ Release.yml
โโโ CMakeLists.txt # Build configuration
โโโ README.md # Documentation
โโโ QUICK_CONFIG.md # Quick configuration guide
โโโ test_config.sh # Configuration test script
โโโ .gitignore
โโโ Release_notes.md
โโโ cmake_uninstall.cmake.in
โโโ .clang-format # Code style
โโโ License
- Compiler: g++ 11.0+
- Build tool: CMake 3.20+
- Dependencies: FTXUI 5.0+, libssh2, libmysqlclient
MIT License