LibTerm is a terminal for iOS with Python 3.7 and Lua 5.3.
This app is like @louisdh - OpenTerm but this terminal is embeddable in your own app and it supports Lua and Python 3.7.
I like a lot OpenTerm but I wanted to make the code better. Also, I wanted to integrate a local shell into Pisth so I made the project embeddable. I will upload to app to the App Store soon since OpenTerm is no more available. This is not a fork from OpenTerm, I rewrote the code.
The app supports most of OpenTerm features, but LibTerm has Python 3.7 instead of Cub. It supports opening directories outside the sandbox with UIDocumentPickerViewController
, multi tabbing and suggestions. Errors are shown in red!
LibTerm contains a package
command. With package
, you can download and install third party commands. You can publish your own commands by submitting a Pull Request to https://github.com/ColdGrub1384/LibTerm-Packages.
$ ./setup.sh
- Build
LibTerm
orLibTermCore
target fromLibTerm.xcodeproj
LibTerm is embeddable so you can use it in your own app. To do it, download releases and embed all frameworks in your app. Then, you can present a LTTerminalViewController
. You can also compile the LibTermCore
framework and embed it in your app. You will need to embed InputAssistant
and ios_system
also. You also have to include commandDictionary.plist and extraCommandsDictionary.plist to your app's bundle.
LTTerminalViewController.makeTerminal(preferences: <#LTTerminalViewController.Preferences#>, shell: <#LibShell#>)
LTTerminalViewController.terminalTextView
You can add a command by subclassing LibShell
:
func python3_main(argc: Int, argv: [String], io: LTIO) -> Int32 {
// Code here...
return 0
}
class Shell: LibShell {
var commands: [String : LTCommand] {
return super.commands+["python3", python3_main]
}
}
let terminal = LTTerminalViewController(shell: Shell())
You can also add it to the suggestion bar:
LTHelp.append(LTCommandHelp(name: "python3", commandInput: .file))
- InputAssistant
- ios_system
- OpenTerm (This is not a fork of OpenTerm but I used some code like the ANSI parser and I learned from it.)
- TabView