{"id":21968412,"url":"https://github.com/ismail-yilmaz/bobcat","last_synced_at":"2025-04-24T07:16:42.090Z","repository":{"id":213288893,"uuid":"733494300","full_name":"ismail-yilmaz/Bobcat","owner":"ismail-yilmaz","description":"A powerful yet user-friendly cross-platform terminal emulator.","archived":false,"fork":false,"pushed_at":"2025-04-23T21:57:41.000Z","size":11013,"stargazers_count":36,"open_issues_count":8,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-24T07:16:35.893Z","etag":null,"topics":["cmd","console","cpp","cross-platform","linux","macos","open-source","pty","sixel","terminal","terminal-emulator","upp","windows","windows-console"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ismail-yilmaz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"ismail-yilmaz"}},"created_at":"2023-12-19T13:03:14.000Z","updated_at":"2025-04-23T21:57:45.000Z","dependencies_parsed_at":"2023-12-19T15:57:19.084Z","dependency_job_id":"12d3e7d3-5571-4a77-ba9b-a29ba4ef61ec","html_url":"https://github.com/ismail-yilmaz/Bobcat","commit_stats":null,"previous_names":["ismail-yilmaz/bobcat"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ismail-yilmaz%2FBobcat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ismail-yilmaz%2FBobcat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ismail-yilmaz%2FBobcat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ismail-yilmaz%2FBobcat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ismail-yilmaz","download_url":"https://codeload.github.com/ismail-yilmaz/Bobcat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250580750,"owners_count":21453537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cmd","console","cpp","cross-platform","linux","macos","open-source","pty","sixel","terminal","terminal-emulator","upp","windows","windows-console"],"created_at":"2024-11-29T13:55:06.214Z","updated_at":"2025-04-24T07:16:42.083Z","avatar_url":"https://github.com/ismail-yilmaz.png","language":"C++","funding_links":["https://github.com/sponsors/ismail-yilmaz"],"categories":[],"sub_categories":[],"readme":"\n\n![bobcat-icon](resources/bobcat-icon.png)\n\n![Fast Make Status](https://github.com/ismail-yilmaz/Bobcat/actions/workflows/fast-make.yml/badge.svg)\n![Linux Build Status](https://github.com/ismail-yilmaz/Bobcat/actions/workflows/linux-make.yml/badge.svg)\n![MacOS Build Status](https://github.com/ismail-yilmaz/Bobcat/actions/workflows/macos-make.yml/badge.svg)\n![Windows Build Status](https://github.com/ismail-yilmaz/Bobcat/actions/workflows/windows-make.yml/badge.svg)\n[![License](https://img.shields.io/badge/License-GPL_3-orange.svg)](https://opensource.org/licenses/GPL-3)\n\n\n# Bobcat - Terminal Emulator\n\nBobcat is a modern, feature-rich terminal emulator that works across all major operating systems. It's built using the [U++](https://www.ultimatepp.org/index.html) framework and [TerminalCtrl](https://github.com/ismail-yilmaz/Terminal) widget to create a powerful yet user-friendly command-line experience.\n\n## Table of Contents\n\n1. [Features](#features)\n2. [Requirements](#requirements)\n3. [Installation](#installation)\n4. [ToDo](#todo)\n5. [Screenshots](#screenshots)\n6. [Videos](#videos)\n7. [Acknowledgements](#acknowledgements)\n8. [License](#license)\n\n## Features\n\n*For complete VT feature details, see TerminalCtrl's [features](https://github.com/ismail-yilmaz/Terminal#features) list and technical specs [document](https://github.com/ismail-yilmaz/Terminal/blob/master/Terminal/Specs.md).*\n\n### Core Features  \n\n- **Cross-Platform Compatibility:** Runs seamlessly on **Linux, Windows, MacOS, and BSD**, supporting multiple terminal backends with **high VT (DEC/ANSI) and xterm compatibility**.  \n- **Inline Image Support:** Displays images directly in the terminal with both **Sixel** and modern formats (**PNG, JPG, BMP, TIFF**), supporting multiple protocols such as **iTerm2** and **Jexer**.  \n- **Advanced Clipboard \u0026 Hyperlinks:** Clickable links, **OSC-based clipboard integration**, and extended **(rich-)text annotations** for a modern workflow.  \n- **Smart Shell Integration:** Tracks working directories and allows opening them in the system's default file manager via shortcuts or menus.  \n- **Versatile Text Selection:** **Selector mode** with keyboard-driven selection, **customizable regex-based patterns**, and support for rectangular, word, and line selections.  \n- **Full Mouse \u0026 Keyboard Support:** Works across **all major protocols**, with **customizable key bindings** for a tailored experience.  \n\n### Powerful Tools  \n\n- **Finder Search Engine:** A robust text search tool with **case-sensitive/insensitive modes**, **regex search**, and **CSV extraction** via **Harvester Mode**, preserving structured data integrity.  \n- **Linkifier:** Instantly turns text into **clickable hyperlinks** using **custom regex patterns**, adaptable per terminal profile.  \n- **QuickText:** Maintain a list of frequently used commands and snippets for fast insertion with a keyboard shortcut.  \n\n### Customization \u0026 Interface  \n\n- **Multiple Profiles:** Configure different terminal settings and **color schemes** for various tasks.  \n- **Minimal vs. Full UI:** Choose between a lightweight or fully-featured interface with a **stacked terminal manager** for easy navigation.  \n- **Simple Configuration:** JSON-based configuration with **real-time updates**, or use a **GUI settings panel**—no manual file editing required.  \n\n### Windows-Specific Features  \n\n- **Multiple Pty Backends:** Supports both **ConPty** and **WinPty**, with runtime switching for maximum flexibility.  \n- **Standalone Compatibility:** Works without external dependencies like **msys2** or **cygwin**, but remains compatible with them.  \n\n### Experimental Features  \n\n- **Web Terminal Access:** Run the terminal in a **modern web browser** via **HTML5 Canvas**, enabling remote access.  \n- **Headless Mode:** Operates on minimal setups via an **SDL2-GL backend**, eliminating GUI dependencies.  \n\nAnd yes—**it can run Doom!** 🎮  \n\n\n## Requirements\n\nBobcat has minimal requirements. You'll need:\n\n- CLANG/GCC (C++17 or later)\n- [U++](https://www.ultimatepp.org) framework\n- [TerminalCtrl](https://github.com/ismail-yilmaz/Terminal)\n- [StackCtrl](https://github.com/ismail-yilmaz/StackCtrl)\n- [MessageCtrl](https://github.com/ismail-yilmaz/MessageCtrl)\n\n## Installation\n\nYou can install Bobcat in several ways:\n\n### 1. Via UppHub (Recommended)\n\n- Available through [UppHub](https://www.ultimatepp.org/app$ide$UppHub_en-us.html), U++'s package manager\n- Requires TheIDE (U++'s development environment)\n   - Windows: Included in U++ installer\n   - Linux: Available via [Flathub](https://flathub.org/apps/org.ultimatepp.TheIDE) or manual build\n\n### 2. Using Make (Linux)\n\n- Uses pre-compiled umk (U++ make) for faster builds:\n\n\t1. `make download`\n\t2. `make build` or `make build-web` or `make build-headless`\n\t3. `make run`\n\n### 3. Manual Setup\n\n- Clone or download the repository and set up as a U++ assembly/nest. See the U++ [documentation](https://www.ultimatepp.org/app$ide$PackagesAssembliesAndNests$en-us.html) for details.\n\n### 4. AUR package (ArchLinux):\n\n- There is an [AUR package](https://aur.archlinux.org/packages/bobcat-terminal-git) for Bobcat. Use your favorite AUR installer, to download, compile and install it. E.g:\n\n\n```\n# yay -S bobcat-terminal-git\n```\n\n### 5. Binary installation (Windows)\n\n- Release page always contains an up-to-date link to the compiled Windows binaries of Bobcat. Download the archive file, unpack it and enjoy!\n\n## [ToDo](#todo)\n\n- Macro infrastructure, based on Upp::Esc scripting language.\n- A \"lite\" plugin framework.\n\n## [Screenshots](#Screenshots)\n\nBelow you can find a handful of screenshots of Bobcat, running on Linux \u0026 Windows.\n\nBobcat on Linux \n\n![bobcat-linux](resources/bobcat-about-linux.png)\n\nBobcat on Windows\n\n![bobcat-windows](resources/bobcat-about-windows.png)\n\nBobcat, running zellij, with a background image of well..., a bobcat!\n\n![bobcat-zellij](resources/bobcat-zellij-background-linux.png)\n\nBobcat, running yazi, in borderless mode on Linux.\n\n![bobcat-yazi](resources/bobcat-yazi-borderless-linux.png)\n\nBobcat, running yazi with image preview feature on Windows\n![bobcat-yazi2](resources/bobcat-yazi-imagepreview-windows.png)\n\nBobcat, running Neovim on Windows\n![bobcat-nvim](resources/bobcat-neovim-windows.png)\n\nMultiple terminal profile support (linux, btop)\n\n![bobcat-profiles](resources/bobcat-profiles-linux.png)\n\nInline images support (linux, jexer)\n\n![bobcat-sixel](resources/bobcat-jexer-sixel-linux.png)\n\nNavigator (linux)\n\n![bobcat-navigator](resources/bobcat-navigator-linux.png)\n\nFinder, in regex-based search mode (linux)\n![bobcat-finder](resources/bobcat-finder-linux.png)\n\nHarvester, harvesting 124660 URLs from the buffer, and mapping them into a csv file (linux)\n![bobcat-finder-harvester](resources/bobcat-finder-harvester-linux.png)\n\nSettings windows (linux)\n\n![bobcat-settings](resources/bobcat-settings-linux.png)\n\nFar manager running on Bobcat (Windows 10)\n\n![bobcat-far-manager](resources/bobcat-far-manager-windows.png)\n\n\nBobcat deployed as a simple web server with access from web browsers (Linux)\n\n![bobcat-webgui1](resources/bobcat-webgui-linux.png)\n\nBobcat deployed as a simple web server with access from web browsers (Windows)\n\n![bobcat-webgui2](resources/bobcat-webgui-windows.png)\n\nBobcat running \"headless\" on SDL2 (GL) backend (Linux)\n\n![bobcat-headless](resources/bobcat-sdlgui-linux.png)\n\n\nDoom, running on Bobcat, via [mochadoom](https://github.com/AutumnMeowMeow/mochadoom) (Linux)\n\n![bobcat-mochadoom](resources/bobcat-mochadoom.jpg)\n\n## [Videos](#Videos)\n\nA very short [demonstration](https://vimeo.com/999236026) of Bobcat, running DOOM!\n\nA very short [demonstration](https://vimeo.com/1003353669?share=copy) of finder/harvester and unicode character (emoji) input.\n\n## [Acknowledgements](#Acknowledgements)\n\nTo be written...\n\n## [License](#License)\n\nCopyright (c) 2023-2025, İsmail Yılmaz\n\nBobcat is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nBobcat is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for details. You should have received a copy of the GNU General Public License along with Bobcat. If not, see [gnu licenses](http://www.gnu.org/licenses/)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fismail-yilmaz%2Fbobcat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fismail-yilmaz%2Fbobcat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fismail-yilmaz%2Fbobcat/lists"}