Skip to content
forked from dhanoosu/TkTerm

A fully functional terminal emulator built on Tkinter library. Works on Windows and Unix system

License

Notifications You must be signed in to change notification settings

LeonSnajdr/TkTerm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 and middle-click to close tab
  • 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.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

Author

Developed by Dhanoo Surasarang

Github: @dhanoosu

About

A fully functional terminal emulator built on Tkinter library. Works on Windows and Unix system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%