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
TUIFIManager - A cross-platform terminal-based file manager

TUIFI Manager A cross-platform terminal-based file manager (and component), mean

142 Dec 26, 2022
A python CLI app that converts a mp4 file into a gif with ASCII effect added.

Video2ASCIIgif This CLI app takes in a mp4 format video, converts it to a gif with ASCII effect applied. This also includes full control over: backgro

Sriram R 6 Dec 31, 2021
Quo is a Python based toolkit for writing Command-Line Interface(CLI) applications.

Quo is a Python based toolkit for writing Command-Line Interface(CLI) applications. Quo is making headway towards composing speedy and orderly CLI applications while forestalling any disappointments

Secretum Inc. 16 Oct 15, 2022
Ideas on how to quickly learn to build command-line tools

CLI-Bootcamp Ideas on how to quickly learn to build command-line tools Part 1-Bash Week1: Using Linux Lesson 1: Using Linux Shell Lab Lesson 2: How sh

Noah Gift 10 Apr 18, 2022
A command line tool to hide and reveal information inside images (works for both PNGs and JPGs)

Imgrerite A command line tool to hide and reveal information inside images (works for both PNGs and JPGs) Dependencies Python 3 Git Most of the Linux

Jigyasu 10 Jul 27, 2022
CLI para o projeto Compilado (Newsletter e Podcast do Código Fonte TV)

Compilado CLI Automatização de tarefas através de linha de comando para a geração de assets para episódios do Compilado, a newsletter e podcast do can

Gabriel Froes 18 Nov 21, 2022
Calculator for CLI. Made with Python

Calculator for CLI. Made with Python

Brandon Arreguin 2 Jan 07, 2022
An question and answer shell environment based on xonsh using ansible for setup

An question and answer shell environment based on xonsh using ansible for setup

Steven Hollingsworth 2 Jan 11, 2022
MiShell is a multi-platform, multi-architecture project based on the first version (MiShell32)

MiShell is a multi-platform, multi-architecture project based on the first version (MiShell32), which offers super super small reverse shell payloads great for injection in buffer overflow vulnerabil

Kamyar Hatamnezhad 0 Oct 27, 2022
A Python-based command prompt concept which includes windows command emulation.

PythonCMD A Python-based command prompt concept which includes windows command emulation. Current features: echo: Input your message and it will be cl

1 Feb 05, 2022
A command line tool made in Python for the popular rhythm game

osr!name A command line tool made in Python for the popular rhythm game "osu!" that changes the player name of a .osr file (replay file). Example: Not

2 Dec 28, 2021
Python wrapper and CLI utility to render LaTeX markup and equations as SVG using dvisvgm and svgo.

latex2svg Python wrapper and CLI utility to render LaTeX markup and equations as SVG using dvisvgm and svgo. Based on the original work by Tino Wagner

Matthias C. Hormann 4 Feb 18, 2022
Example of a CLI with python - know the extension of your files.

extensionCLI Example of a CLI with python - know the extension of your files. Usage: Install the CLI: pip3 install -e . Run the command with "ext" + t

ItanuRomero 5 Dec 29, 2022
Cthulhu is a simple python CLI application that streams torrents directly from 1337x.

Cthulhu is a simple python CLI application that facilitates the streaming of torrents directly from 1337x. It uses webtorrent to stream video

Raiyan 27 Dec 27, 2022
Customisable pharmacokinetic model accessible via bash CLI allowing for variable dose calculations as well as intravenous and subcutaneous administration calculations

Pharmacokinetic Modelling Group Project A PharmacoKinetic (PK) modelling function for analysis of injected solute dynamics over time, developed by Gro

1 Oct 24, 2021
RSS reader client for CLI (Command Line Interface),

rReader is RSS reader client for CLI(Command Line Interface)

Lee JunHaeng 10 Dec 24, 2022
📦 A command line utility to put text in a box.

boxie A command line utility to put text in a box. Installation pip install boxie If you are on Linux you may need to use sudo to access this globally

Eliaz Bobadilla 10 Jun 30, 2022
Pastekan adalah website paste kode / teks sederhana

Pastekan pastekan adalah website paste kode / teks sederhana. install pip install pastekan penggunaan pastekan myfile.txt atau echo "hi" | pastekan

Sekai Kode 1 Dec 24, 2021
A Python module and command line utility for working with web archive data using the WACZ format specification

py-wacz The py-wacz repository contains a Python module and command line utility for working with web archive data using the WACZ format specification

Webrecorder 14 Oct 24, 2022
Play videos in the terminal.

Termvideo Play videos in the terminal (stdout). python main.py /path/to/video.mp4 Terminal size: -x output_width, -y output_height. Default autodetect

Patrick 11 Jun 13, 2022