Skip to main content

A Fish shell-like terminal emulator for Windows

Project description

WinFish Shell

A Fish shell-like implementation for Windows that provides modern shell features including syntax highlighting, autocompletion, and command suggestions. Comes with a built-in terminal emulator for a seamless experience.

Features

  • Modern terminal emulator with customizable interface
  • Syntax highlighting for commands
  • Command history with search (Ctrl+R)
  • Auto-suggestions based on history
  • Tab completion for commands and paths
  • Modern command prompt with Git integration
  • Color support for Windows
  • Built-in command handling
  • Alias support with persistent storage
  • Directory stack navigation (pushd/popd)
  • Multiple terminal windows support
  • Customizable font size
  • Copy/paste support
  • Split terminal support (vertical and horizontal)
  • Full text search in terminal
  • Window transparency control
  • Customizable colors (background and text)
  • Full-screen mode
  • Always-on-top option
  • Persistent configuration
  • Multiple shell instances in split panes

Requirements

  • Python 3.7 or higher
  • Windows 10/11

Installation

Via pip (recommended)

pip install winfish-terminal

Via package managers

Chocolatey

choco install winfish-terminal

Scoop

scoop bucket add extras
scoop install winfish-terminal

Winget

winget install winfish-terminal

Manual Installation

  1. Clone or download this repository
  2. Install the required dependencies:
pip install -r requirements.txt
  1. Create a desktop shortcut (optional):
python create_shortcut.py

Usage

You can start the terminal in two ways:

  1. Run the terminal emulator (recommended):
python terminal_app.py
  1. Run the shell directly (basic terminal):
python winfish.py

Available Commands

  • All standard Windows commands are supported
  • Built-in commands:
    • cd [dir] - Change directory (use cd - to go to previous directory)
    • ls - List directory contents
    • pwd - Print working directory
    • help - Show help message
    • exit - Exit the shell
    • alias - Show or set command aliases
    • unalias - Remove an alias
    • history - Show command history
    • clear - Clear screen
    • pushd/popd/dirs - Directory stack manipulation

Keyboard Shortcuts

  • Up/Down arrows: Navigate through command history
  • Tab: Command and path completion
  • Ctrl+R: Reverse history search
  • Ctrl+C: Cancel current command
  • Ctrl+D: Exit shell
  • Ctrl+L: Clear screen
  • Ctrl+W: Delete word before cursor
  • Ctrl+F: Open search
  • F11: Toggle full screen

Terminal Emulator Features

  • Multiple windows support (File -> New Window)
  • Split terminal support (File -> Split Vertical/Horizontal)
  • Customizable font size (Settings -> Font Size)
  • Customizable colors (Settings -> Background/Text Color)
  • Window transparency (Settings -> Transparency)
  • Copy/Paste support (Edit menu or standard shortcuts)
  • Full text search (Edit -> Find or Ctrl+F)
  • Modern dark theme
  • Scrollback buffer
  • Always on top option (View -> Always on Top)
  • Full screen mode (View -> Toggle Full Screen or F11)

Configuration

The shell stores its configuration in the following locations:

  • ~/.winfish/ - Configuration directory
  • ~/.winfish/aliases.json - Stored command aliases
  • ~/.winfish/terminal_config.json - Terminal emulator settings
  • ~/.winfish_history - Command history

Features compared to Fish shell

  • Command syntax highlighting ✓
  • Command history ✓
  • Directory navigation ✓
  • Auto-suggestions ✓
  • Tab completion ✓
  • Modern prompt design ✓
  • Git integration ✓
  • Alias support ✓
  • Directory stack ✓
  • Split panes ✓
  • Customization ✓

Note: This is a simplified implementation focused on providing a modern command-line experience on Windows while maintaining compatibility with Windows commands.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

winfish_terminal-1.0.0.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

winfish_terminal-1.0.0-py3-none-any.whl (3.3 kB view details)

Uploaded Python 3

File details

Details for the file winfish_terminal-1.0.0.tar.gz.

File metadata

  • Download URL: winfish_terminal-1.0.0.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for winfish_terminal-1.0.0.tar.gz
Algorithm Hash digest
SHA256 027814645ae9239975dc8ac60f56eea4965339b78a1b3ba7dffd08121c6807da
MD5 7409c1a4de9ee963bf6419309b624e68
BLAKE2b-256 9874b97ecc5d2f8d94f6783fa3acca81936250f5bed4998d5392a92e7f8ea620

See more details on using hashes here.

File details

Details for the file winfish_terminal-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for winfish_terminal-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e0e71009dc5cce20497e533ef0b701397e88c822f5123fbbf5eaaecbc4a49ddd
MD5 dd47c5230e8927a25798c4879122184d
BLAKE2b-256 07e17ee565607316a451dc7686aced5c6348cf99403f21914e9f441455c60649

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page