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
AML Command Transfer. A lightweight tool to transfer any command line to Azure Machine Learning Services

AML Command Transfer (ACT) ACT is a lightweight tool to transfer any command from the local machine to AML or ITP, both of which are Azure Machine Lea

Microsoft 11 Aug 10, 2022
A python program to detect your emotion and suggest a playlist.

mood_music A python program to detect your emotion and suggest a playlist. This program is written in python using opencv,FER() and tensorflow This pr

Aditya_Sai 1 Jan 02, 2022
A simple command-line tracert implementation in Python 3 using ICMP packets

Traceroute A simple command-line tracert implementation in Python 3 using ICMP packets Details Traceroute is a networking tool designed for tracing th

James 3 Jul 16, 2022
pls is a better ls for developers, pronounced /pliːz/ as in 'please'

pls is a better ls for developers. The "p" stands for ("pro" as in "professional"/"programmer") or "prettier". It works in a manner similar to ls, in

Dhruv Bhanushali 572 Dec 28, 2022
Simple script to download OTA packages from Realme's endpoint.

Realme OTA Downloader CLI tool (based on this C# program) to create requests to the Realme's endpoint. Requirements Python 3.9. pycryptodome. Installa

Roger Ortiz 64 Dec 28, 2022
A terminal slots programme in PY

PYSlots PyPI and Test PyPI External Links PyPI Test PyPI Install Look directly at the bugs! Version pip install pyslots "Don't look directly at the bu

Luke Batema 4 Nov 30, 2022
cmsis-pack-manager is a python module, Rust crate and command line utility for managing current device information that is stored in many CMSIS PACKs

cmsis-pack-manager cmsis-pack-manager is a python module, Rust crate and command line utility for managing current device information that is stored i

pyocd 20 Dec 21, 2022
Alacritty terminal used with Bash, Tmux, Vim, Mutt, Lynx, etc. and the many different additions added to each configuration file

Alacritty terminal used with Bash, Tmux, Vim, Mutt, Lynx, etc. and the many different additions added to each configuration file

Carter 19 Aug 24, 2022
tox-server is a command line tool which runs tox in a loop and calls it with commands from a remote CLI.

Tox Server tox-server is a command line tool which runs tox in a loop and calls it with commands from a remote CLI. It responds to commands via ZeroMQ

Alexander Rudy 3 Jan 10, 2022
EODAG is a command line tool and a plugin-oriented Python framework for searching, aggregating results and downloading remote sensed images while offering a unified API for data access regardless of the data provider

EODAG (Earth Observation Data Access Gateway) is a command line tool and a plugin-oriented Python framework for searching, aggregating results and downloading remote sensed images while offering a un

CS GROUP 205 Jan 03, 2023
OneDriveExplorer - A command line and GUI based application for reconstructing the folder structure of OneDrive from the UserCid.dat file

OneDriveExplorer - A command line and GUI based application for reconstructing the folder structure of OneDrive from the UserCid.dat file

Brian Maloney 100 Dec 13, 2022
Ros command - Unifying the ROS command line tools

Unifying the ROS command line tools One impairment to ROS 2 adoption is that all

37 Dec 15, 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
spade is the next-generation networking command line tool.

spade is the next-generation networking command line tool. Say goodbye to the likes of dig, ping and traceroute with more accessible, more informative and prettier output.

Vivaan Verma 5 Jan 28, 2022
Voidlx is a terminal cli apps launcher made in python

Voidlx is a terminal cli apps launcher made in python

2 Nov 13, 2021
This is a simple Termo application in command line style

my-termo This is a simple Termo application in command line style. This app run a Linux crontab task every day to get a new word. Type termo in your t

Gustavo Soares 1 Feb 14, 2022
command line interface to manage VALORANT skins

A PROPER RELEASE IS COMING SOON, IF YOU KNOW HOW TO USE PYTHON YOU CAN USE IT NOW! valorant skin manager command line interface simple command line in

colinh 131 Dec 25, 2022
Simple Terminal Styling for Python

escape Escape is a very simple terminal styling library largely inspired by the excellent javascript chalk library. There are other terminal styling l

Syed Abbas 8 Sep 03, 2019
Interactive Redis: A Terminal Client for Redis with AutoCompletion and Syntax Highlighting.

Interactive Redis: A Cli for Redis with AutoCompletion and Syntax Highlighting. IRedis is a terminal client for redis with auto-completion and syntax

2.2k Dec 29, 2022
A Python command-line utility for validating that the outputs of a given Declarative Form Azure Portal UI JSON template map to the input parameters of a given ARM Deployment Template JSON template

A Python command-line utility for validating that the outputs of a given Declarative Form Azure Portal UI JSON template map to the input parameters of a given ARM Deployment Template JSON template

Glenn Musa 1 Feb 03, 2022