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
Cek Username IG Yang Masih Bisa Dipake

Cek Username IG Cara Install $ pkg update && pkg upgrade $ pkg install python $ pkg install git $ git clone https://github.com/Dekusec/ig-checker $ cd

Deku 3 Nov 28, 2021
CLI tool that helps manage shell libraries.

shmgr CLI tool that helps manage shell libraries. Badges 📛 project status badges: version badges: tools / frameworks used by test suite (i.e. used by

Bryan Bugyi 0 Dec 15, 2021
Magma is a NeoVim plugin for running code interactively with Jupyter.

Magma Magma is a NeoVim plugin for running code interactively with Jupyter. Requirements NeoVim 0.5+ Python 3.8+ Required Python packages: pynvim (for

Daniel Csillag 372 Dec 26, 2022
A CLI password generator

passgen - A CLI password generator Usage python3 main.py arguments Arguments Argument Short Description --length -l The length of the password to ge

1 Nov 13, 2021
Urial (URI Addition tooL) intelligently updates URIs stored in Finder comments of macOS files

Urial Urial (URI addition tool) is a simple but intelligent command-line tool to add or replace URIs found inside macOS Finder comments. Table of cont

Mike Hucka 3 Sep 14, 2022
Command line util for grep.app - Search across a half million git repos

grepgithub Command line util for grep.app - Search across a half million git repos Grepgithub uses grep.app API to search GitHub repositories, providi

Nenad Popovic 18 Dec 28, 2022
An awesome Python wrapper for an awesome Docker CLI!

An awesome Python wrapper for an awesome Docker CLI!

Gabriel de Marmiesse 303 Jan 03, 2023
A simple command line virtual operating system, written in python

Virtual operating system A simple virtual operating system written in python. (Under development). Currently, the following commands are supported: Co

B.Jothin kumar 7 Nov 15, 2022
doq (python docstring generator) extension for coc.nvim

coc-pydocstring doq (python docstring generator) extension for coc.nvim Install CocInstall: :CocInstall coc-pydocstring vim-plug: Plug 'yaegassy/coc-p

yaegassy 27 Jan 04, 2023
🐍The nx-python plugin allows users to create a basic python application using nx commands.

🐍 NxPy: Nx Python plugin This project was generated using Nx. The nx-python plugin allows users to create a basic python application using nx command

StandUP Communications 74 Aug 31, 2022
⚙ A lightweight command line interface library for creating commands.

⚙ A lightweight command line interface library for creating cli commands. About | Installation | Usage | Features | Contributors | License About Next:

Serum 16 Sep 25, 2022
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
Wordle-solver - A tool that helps people who struggle with vocabulary to enjoy the famous game of WORDLE

Wordle-Solver Wordle-Solver helps people who struggle with vocabulary to enjoy t

Jason Chao 104 Dec 31, 2022
A supercharged Git/GitHub command line interface (CLI)

A supercharged Git/GitHub command line interface (CLI).

Donne Martin 7.4k Jan 07, 2023
My dotfiles -My configuration, with installations steps.

.dotfiles My configuration, with installations steps. Installation Oh My ZSH Install with this command: sh -c "$(curl -fsSL https://raw.githubusercont

Luca Angioloni 4 Dec 14, 2022
The easiest way to create beautiful CLI for your programs.

The Yandere is a program written in Python3, allowing you to create your own beautiful CLI tool.

Billy 31 Dec 20, 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
Present - A terminal-based presentation tool with colors and effects.

present A terminal-based presentation tool with colors and effects. You can also play a codio (pre-recorded code block) on a slide. present is built o

Vinayak Mehta 4.2k Jan 03, 2023
Access hacksec.in from your command-line

Access hacksec.in from your command-line

hacksec.in 3 Oct 26, 2022
triggercmd is a CLI client for the TRIGGERcmd cloud service.

TriggerCMD CLI client triggercmd is a CLI client for the TRIGGERcmd cloud service. installation the triggercmd package is available in PyPI. to instal

Gustavo Soares 7 Oct 18, 2022