An easy-to-bundle GTK terminal emulator.

Overview

EasyTerm

An easy-to-bundle GTK terminal emulator.

This is a WIP (Work In Progress) project.

This project is meant to be used as a dependency for other projects that need an easy-to-bundle and lightweight terminal emulator, but also works as a standalone terminal emulator.

Dependencies

  • GTK 3
  • Handy
  • Vte

GTK4 & libadwaita

Port to GTK4 is almost simple, but is stalled because of the lack of Vte for GTK4. This mean that also libhandy cannot be moved to libadwaita because this last one need GTK4.

Bottles purposes

EasyTerm should be provided as the default terminal in the Bottles project when Vte will be ported to GTK4.

Installation

git clone https://github.com/bottlesdevs/EasyTerm.git
cd EasyTerm
python3 setup.py install

Usage

As a library, you can use the EasyTerm class as follows:

from easyterm import easyterm
easyterm.EasyTerm(
    cwd='/path',
    command='/bin/bash',
    env=[],
    actions=[
        {
            "name": "Hello",
            "icon": "emblem-favorite",
            "tooltip": "Say hello to the world",
            "command": "echo Hello World"
        }
    ]
)
You might also like...
Open a file in your locally running Visual Studio Code instance from arbitrary terminal connections.

code-connect Open a file in your locally running Visual Studio Code instance from arbitrary terminal connections. Motivation VS Code supports opening

Darkdump - Search The Deep Web Straight From Your Terminal
Darkdump - Search The Deep Web Straight From Your Terminal

Darkdump - Search The Deep Web Straight From Your Terminal About Darkdump Darkdump is a simple script written in Python3.9 in which it allows users to

Random scripts and other bits for interacting with the SpaceX Starlink user terminal hardware
Random scripts and other bits for interacting with the SpaceX Starlink user terminal hardware

starlink-grpc-tools This repository has a handful of tools for interacting with the gRPC service implemented on the Starlink user terminal (AKA "the d

asciinema - Terminal session recorder 📹
asciinema - Terminal session recorder 📹

asciinema - Terminal session recorder 📹

Rich is a Python library for rich text and beautiful formatting in the terminal.
Rich is a Python library for rich text and beautiful formatting in the terminal.

The Rich API makes it easy to add color and style to terminal output. Rich can also render pretty tables, progress bars, markdown, syntax highlighted source code, tracebacks, and more — out of the box.

Lets you view, edit and execute Jupyter Notebooks in the terminal.

Lets you view, edit and execute Jupyter Notebooks in the terminal.

The project help you to quickly build layouts in terminal,cross-platform
The project help you to quickly build layouts in terminal,cross-platform

The project help you to quickly build layouts in terminal,cross-platform

 GanTTY - Project planning from the terminal
GanTTY - Project planning from the terminal

GanTTY - Project planning from the terminal

Module for converting 2D Python lists to fancy ASCII tables. Table2Ascii lets you display pretty tables in the terminal and on Discord.
Module for converting 2D Python lists to fancy ASCII tables. Table2Ascii lets you display pretty tables in the terminal and on Discord.

table2ascii Module for converting 2D Python lists to a fancy ASCII/Unicode tables table2ascii 📥 Installation 🧑‍💻 Usage Convert lists to ASCII table

Comments
  • [Request]: Tab completion in terminal

    [Request]: Tab completion in terminal

    Tell us the problem or your need

    Browsing the filesystem in terminal is difficult due to a lack of tab completion. Especially because many windows directories include spaces and other funky characters that might be difficult to type.

    Describe the solution you'd like

    Having support for tab completion to browse directories would be great.

    Other solutions?

    No response

    Additional context and references

    No response

    Feature request 
    opened by felinira 1
  • [Bug]: Terminal window freezes with copy / paste from keyboard

    [Bug]: Terminal window freezes with copy / paste from keyboard

    Describe the bug

    Trying to copy / paste with keyboard shortcuts from terminal causes it to freeze the input and it can not be used anymore (I have not yet found a way to unbreak this apart from restarting the terminal, is there a way?)

    To Reproduce

    1. Open terminal window
    2. Select text
    3. Try to copy with the terminal default shortcut Ctrl+Shift+C
    4. Terminal input freezes and can not be used anymore

    Package

    Flatpak from Flathub

    Distribution

    Debian testing

    Troubleshooting Logs

    Version: 2022.7.28-brescia-2
    Display:
        X.org: true
        X.org (port): :99.0
        Wayland: true
    Graphics:
        vendors:
            amd:
                vendor: amd
                envs:
                    DRI_PRIME: '1'
                icd: /usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/radeon_icd.x86_64.json:/usr/lib/i386-linux-gnu/GL/vulkan/icd.d/radeon_icd.i686.json
        prime:
            integrated: null
            discrete: null
    Kernel:
        Type: Linux
        Version: 5.18.0-2-amd64
    Distro:
        Name: GNOME
        Version: '"42 (Flatpak runtime)"'
    Disk:
        Total: 16806891520
        Free: 16806748160
    RAM:
        MemTotal: 31.3GiB
        MemAvailable: 6.4GiB
    Bottles_envs: null
    

    Display Protocol

    Wayland

    Display Backend used by Bottles

    Wayland

    Additional context

    No response

    opened by felinira 0
  • [Bug]: Closing the Command line window of a bottle results in 'python3.9 killed by SIGSEGV'

    [Bug]: Closing the Command line window of a bottle results in 'python3.9 killed by SIGSEGV'

    Describe the bug

    Closing the built-in Command line terminal window (the easyterm window) by clicking on the (x) with the mouse leads to a python39 crash.

    To Reproduce

    1. Create a bottle
    2. Open Command line
    3. Close the terminal window by clicking on the (x)
    4. The crash reporter notification comes up saying that python39 has crashed

    This always happens for me. Interestingly though, the python39 crash does not happen when typing exit in the terminal before closing the window.

    Package

    Flatpak from Flathub

    Distribution

    Fedora 36 / flatpak

    Health Check

    Display:
        X.org: true
        X.org (port): :99.0
        Wayland: false
    Graphics:
        vendors:
            nvidia:
                vendor: nvidia
                envs:
                    __NV_PRIME_RENDER_OFFLOAD: '1'
                    __GLX_VENDOR_LIBRARY_NAME: nvidia
                    __VK_LAYER_NV_optimus: NVIDIA_only
                icd: /usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/nvidia_icd.json:/usr/lib/i386-linux-gnu/GL/vulkan/icd.d/nvidia_icd.json
        prime:
            integrated: null
            discrete: null
    Kernel:
        Type: Linux
        Version: 5.17.7-300.fc36.x86_64
    Distro:
        Name: GNOME
        Version: '"42 (Flatpak runtime)"'
    Disk:
        Total: 33646157824
        Free: 33646002176
    RAM:
        MemTotal: 62.7GiB
        MemAvailable: 59.6GiB
    Tools:
        cabextract: true
        p7zip: true
        patool: true
        glibc_min: '2.33'
    Bottles_envs: null
    

    Display Protocol

    X11

    Display Backend used by Bottles

    X11

    Additional context

    These are the interesting bits from the crash reporter:

    reason: python3.9 killed by SIGSEGV
    cmdline: /usr/bin/python3 /app/bin/easyterm.py -d -p $'#00ffff #2b2d2e' -c bash -c $'/home/user/.var/app/com.usebottles.bottles/data/bottles/runners/caffe-7.4/bin/wine64 cmd'
    
    bug 
    opened by jp7677 1
  • (WIP) migrate EasyTerm to gtk4 and libadwaita

    (WIP) migrate EasyTerm to gtk4 and libadwaita

    Hit: https://github.com/bottlesdevs/Bottles/issues/610

    • [x] move to Gtk 4.0 namespace
    • [x] move from Handy to Adw
    • [ ] re-implement right menu

    Bugs

    • [ ] vte doesn't fill the window
    opened by mirkobrombin 0
Releases(0.2.0)
Owner
Bottles
Official GitHub organization for Bottles Developers
Bottles
moviepy-cli: Command line interface for MoviePy.

Moviepy-cli is designed to apply several video editing in a single command with Moviepy as an alternative to Video-cli.

Kentaro Wada 23 Jun 29, 2022
Rdwcli - Car list cli app with python

Rdwcli - Car list cli app with python

Arie Twigt 1 Feb 02, 2022
ServX | Bash Command as a Service

ServX | Bash Command as a Service Screenshots Instructions for running Run python3 servx.py. COMPATIBILITY TESTED ON ARCHLINUX(x64) & DEBIAN(x64) ONLY

ARPSyndicate 2 Mar 11, 2022
🏃 Python3 Solutions of All Problems in GCJ 2022 (In Progress)

GoogleCodeJam 2022 Python3 solutions of Google Code Jam 2022. Solution begins with * means it will get TLE in the largest data set. Total computation

kamyu 12 Dec 20, 2022
QueraToCSV is a simple python CLI project to convert the Quera results file into CSV files.

Quera is an Iranian Learning management system (LMS) that has an online judge for programming languages. Some Iranian universities use it to automate the evaluation of programming assignments.

Amirmahdi Namjoo 16 Nov 11, 2022
Tool for HackMyVM platform

HMV-cli It is a tool for the HackMyVM platform. With this tool you will be able to see the machines you have pending, filter by difficulty, download d

bitc0de 11 Sep 19, 2022
term2048 is a terminal-based version of 2048.

term2048 is a terminal-based version of 2048.

Baptiste Fontaine 798 Nov 21, 2022
A terminal written in Python.

PyDOS Read the title and then you'll figure out what this actually is. Running First, download or clone this repo. Next, run run.py. After this, you c

TechStudent10 2 Mar 01, 2022
Stream comments, submissions from subreddits and users across reddit right in your terminal

reddit_from_terminal stream comments, submissions from subreddits and users across reddit right in your terminal Alert! : Can't watch media contents(p

Pritam Dhara 2 Dec 30, 2021
Zero-config CLI for TypeScript package development

Despite all the recent hype, setting up a new TypeScript (x React) library can be tough. Between Rollup, Jest, tsconfig, Yarn resolutions, ESLint, and

Jared Palmer 10.5k Jan 08, 2023
This is an app for creating your own color scheme for Termux!

Termux Terminal Theme Creator [WIP] If you need help on how to use the program, you can either create a GitHub issue or join this temporary Discord se

asxlvm 3 Dec 31, 2022
A CLI tools to get you started on any project in any language

Any Template A faster easier to Quick start any programming project. Installation pip3 install any-template Features No third party dependencies. Tem

Adwaith Rajesh 2 Jan 11, 2022
This is the public repo for the VS Code Extension AT&T i386/IA32 UIUC-ECE391 Syntax Highlighting

AT&T i386 IA32 UIUC ECE391 GCC Highlighter & Snippet & Linter This is the VS Code Extension for UIUC ECE 391, MIT 6.828, and all other AT&T-based i386

Jackgetup 1 Feb 05, 2022
This is a repository for collecting global custom management extensions for the Django Framework.

Django Extensions Django Extensions is a collection of custom extensions for the Django Framework. Getting Started The easiest way to figure out what

Django Extensions 6k Jan 03, 2023
Unpacks things.

$ unp_ unp is a command line tool that can unpack archives easily. It mainly acts as a wrapper around other shell tools that you can find on v

Armin Ronacher 405 Jan 03, 2023
A multipurpose discord bot with more than 220 commands

Welcome WM Bot A advanced bot with more than 220 commands to fit your needs Explore the commands » View Demo · Report Bug · Request Feature Table of C

Wasi Master 12 Dec 16, 2022
A command line tool to publish ads on ebay-kleinanzeigen.de

kleinanzeigen-bot Feedback and high-quality pull requests are highly welcome! About Installation Usage Development Notes License About kleinanzeigen-b

83 Dec 26, 2022
Konsave lets use save your KDE Plasma customizatios and restore them very easily!

Konsave (Save Plasma Customization) A CLI program that will let you save and apply your KDE Plasma customizations with just one command! Als

439 Jan 02, 2023
A CLI Password Manager made using Python and Postgresql database.

ManageMyPasswords (CLI Edition) A CLI Password Manager made using Python and Postgresql database. Quick Start Guide First Clone The Project git clone

Imira Randeniya 1 Sep 11, 2022
commandpack - A package of modules for working with commands, command packages, files with command packages.

commandpack Help the project financially: Donate: https://smartlegion.github.io/donate/ Yandex Money: https://yoomoney.ru/to/4100115206129186 PayPal:

4 Sep 04, 2021