d61dc6d3f2e28fa249da85b0f1ce29d5a07da33a
FERRUM
FERRUM is a feature-rich, extensible shell written in C, designed for Linux systems. It offers advanced productivity enhancements, built-in commands, fuzzy search integration, git repository support, and interactive utilities for developers and power users.
Features
- Built-in Shell Commands
Includes common shell commands (cd,ls,dir,pwd,cat,history,copy,move,mkdir,rmdir,del,touch,clear,ps, etc.) and many custom commands. - Powerful Directory Bookmarks
Save, list, and quickly navigate to frequently used directories withbookmark,bookmarks,goto, andunbookmark. - Alias System
Define command aliases for faster workflows. - Interactive Fuzzy Finder
Integrated fzf support for file, history, and command search. - Ripgrep Integration
Perform lightning-fast code search using ripgrep (rg) with interactive fuzzy filtering. - Tab Completion and Suggestions
Tab completion for commands and file paths; type a partial command followed by?for suggestions. - Command History
Persistent command history with navigation via arrow keys. - Focus Timer and Countdown Utility
Pomodoro-stylefocus_timerand countdown timers to help manage your work intervals. - Git Integration
Status bar displays repository info; built-in commands (git_status,gg) for quick access to common git actions. - Status Bar
Dynamic status bar at the bottom of the terminal, including git info and timer display. - Themes
Customizable shell color themes. - Diff Viewer
Ncurses-powered diff viewer for git changes. - Weather and City Info
Fetch weather or favorite cities’ info directly from the shell. - Extensible Builtins
Easily add new built-in commands in C.
Installation
Prerequisites
- GCC (or compatible C compiler)
- ncurses library (
libncurses-devor equivalent) - fzf (optional, for fuzzy finding)
- ripgrep (optional, for fast code search)
Build Instructions
Clone the repository and build:
git clone https://github.com/marcusDenslow/FERRUM.git
cd FERRUM
make
This will produce the shell executable: shell
Dependencies
- fzf: For interactive fuzzy finding.
- Install with:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install
- Install with:
- ripgrep: For fast code search.
- Install with:
sudo apt install ripgrep
- Install with:
Usage
Start the shell:
./shell
Common Built-in Commands
cd <dir>: Change directorylsordir: List files in current directorypwd: Print working directorycat <file>: View file contentshistory: Show command historybookmark <name>: Bookmark current directorybookmarks: List all bookmarksgoto <name>: Jump to bookmarked directoryalias <name> <command>: Create a command aliasgrep <pattern>: Search files with grepripgrep <pattern>: Search files with ripgrepfzf: Launch fuzzy findergit_status: Show git repo statusgg <command>: Quick git commands (s=status,c=commit,p=pull, etc.)focus_timer <minutes>: Start a focus timertheme <name>: Change shell theme
Type help or help <command> for detailed information on any command.
Advanced Features
- Tab completion: Use Tab to auto-complete commands and paths.
- Command suggestions: Type a partial command +
?for suggestions. - Status bar: Shows useful info at the bottom of your terminal.
Extending FERRUM
- Add new built-in commands in
builtins.candbuiltins.h. - Extend fuzzy and ripgrep functionality in
fzf_native.c,ripgrep.c.
Contribution
Contributions, suggestions, and bug reports are welcome!
- Fork the repository.
- Create a new feature branch.
- Make your changes.
- Submit a pull request.
Please follow the style and structure of existing code.
FERRUM: Your productivity shell for the modern terminal.
GitHub Repository
Description
Languages
C
99.8%
Makefile
0.2%