Skip to main content

Terminal emulator built on Tkinter library.

Project description

TkTerm - Tkinter Terminal Emulator

A fully functional terminal emulator built on Tkinter library - perform all basic commands of a terminal

Under the hood it executes commands using Python's subprocess module and spawn as a thread. Pressing Ctrl-C will terminate current running command. Supports Unix shells (sh and bash) and Window's Command Prompt (cmd.exe) commands.

Features

  • Compatible with Windows and Unix systems
  • Tabbed Terminal - click & drag to reorder, middle-click to close tab, double-click to rename
  • Return Code (RC) of previous run commands is shown at the bottom status bar
  • Settings to customise colours, font and cursor shape
  • Ctrl-C to kill current running process
  • Ctrl-F to search; supports case sensitivity and regex searches
  • UP and DOWN arrow keys to cycle between next and previous commands in history
  • Unix-like tab completion on files and directories
  • Handles multiline commands using caret character ^ or \

Requirements

The Tkinter GUI library is built into Python, so no 3rd party library is required.

Requires at least Python version 3.x and above.

Standalone usage

Run standalone script simply with

$> python tkterm/tkterm.py

Integration with other Tkinter application

The Terminal is implemented as a Frame widget and can be easily be integrated to other Tkinter application by

import tkinter as tk
from tkinter import *
from tkterm import Terminal

root = tk.Tk()

terminal = Terminal(root)
terminal.pack(fill=BOTH, expand=True)

root.mainloop()

Customisation options

Customise Terminal interface by Right-click > Settings...

Note:
Clicking Save config saves setting configuration to a file.
Tkterm will automatically load this file the next time it starts up.

Multiline command

Long lines of command can be broken up using a caret. A caret at the line end appends the next line command with the current command. In Windows the caret is ^, and UNIX is \.

For multiline command to be considered there must be no trailing space after the caret, for example:

  • $> ping ^ is considered
  • $> ping ^ is not considered
$>> echo I ^
> have apple ^
> and banana
I have apple and banana

Links

Author

Developed by Dhanoo Surasarang

Github: @dhanoosu

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tkterm-0.0.0b1.tar.gz (137.2 kB view details)

Uploaded Source

Built Distribution

tkterm-0.0.0b1-py3-none-any.whl (145.2 kB view details)

Uploaded Python 3

File details

Details for the file tkterm-0.0.0b1.tar.gz.

File metadata

  • Download URL: tkterm-0.0.0b1.tar.gz
  • Upload date:
  • Size: 137.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.10.1 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.8

File hashes

Hashes for tkterm-0.0.0b1.tar.gz
Algorithm Hash digest
SHA256 664b4f7633a7ae5bc23a67e5e04378ad4c59034ddb83d90695e31a52db66ec2b
MD5 85c6d9b006552fcb2d9951e7db149c59
BLAKE2b-256 5409fd75bf64d031363068efc29cbf7cc94bd7a734abb8039e2e783421f9c986

See more details on using hashes here.

File details

Details for the file tkterm-0.0.0b1-py3-none-any.whl.

File metadata

  • Download URL: tkterm-0.0.0b1-py3-none-any.whl
  • Upload date:
  • Size: 145.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.10.1 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.8

File hashes

Hashes for tkterm-0.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 8197baf8ef514c49ed1e56d32fbcd64d7d9831de5e647328cc5fd75719e3ca40
MD5 b6d620254bc952027686506132146f0f
BLAKE2b-256 9918240274f55472b0d58f2a5858baf310ee88176c45fd5c64e06c94d4dfc3b1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page