GithubHelp home page GithubHelp logo

hbang / newterm Goto Github PK

View Code? Open in Web Editor NEW
426.0 27.0 60.0 6.96 MB

NewTerm is a terminal emulator app with first-class iPhone, iPad, and Mac support.

Home Page: https://newterm.app

License: Other

Makefile 0.48% Objective-C 0.44% C 0.51% Swift 98.56% Shell 0.02%

newterm's Introduction

NewTerm

Download NewTerm 3 (Beta) on Chariz
or
Download NewTerm 2 (Stable) on Chariz


Introducing NewTerm 3, a significant rewrite of the popular NewTerm 2 terminal emulator app for iOS.

NewTerm 3 delivers improved performance and more accurate emulation. The user interface has been rebuilt, making it easier to use and more visually appealing. Supporting iOS 14 and newer, NewTerm 3 aims to be the best terminal emulator available for iOS. Whether you’re an advanced user looking to get some work done on the command line of your iOS device, or just want to try out some new commands and scripts, NewTerm 3 has you covered.

One of the key features of NewTerm 3 is its support for iTerm2 Shell Integration. This brings tighter integration between the terminal app and the programs you use. For instance, NewTerm is aware of the current working directory of each terminal, so when you open a new tab, it’s already running in that same directory. You can also directly upload and download files within an SSH session using the it2ul and it2dl commands.

Another standout feature of NewTerm 3 is its ability to create split-screen panes on iPads. This allows you to run multiple terminal sessions simultaneously, making it easier to multitask and work with multiple command-line tools simultaneously. You can have unlimited panes and resize them to fit whatever task you need.

Performance is a top concern when it comes to terminal emulation. NewTerm 3 is designed to achieve 120 frames-per-second performance on iPhones and iPads with ProMotion, making for a smooth and responsive experience. However, if you’re concerned about battery life, you can tune the performance down to 60, 30, or 15 fps. NewTerm is aware of Low Power Mode, and by default, automatically reduces performance to 15 fps when it’s enabled.

NewTerm 3 also includes a host of other enhancements designed to make it the best terminal app available for iOS. Whether you’re a seasoned command-line user or just getting started, NewTerm 3 has something to offer everyone.

NewTerm 3 is a work in progress, and is not yet considered stable. While we’ve made every effort to ensure its quality, please be aware that there may still be some bugs or unfinished features. If you’re not comfortable using beta software, we recommend using NewTerm 2 until NewTerm 3 is ready for release.

This is only an early preview of what we’ve got planned for NewTerm. Stay tuned for further updates!

Building

The Xcode project builds with the latest release of Xcode, once Swift Package Manager dependencies have been downloaded.

The most convenient way to test the app is by building for the “My Mac” target. For debugging iOS-specific functionality, a mostly-functional terminal does work in the Simulator. It will spawn with a weird prompt that says “I have no name!”, as Simulator seems to block access to macOS’s Open Directory user database. However, you should still be able to do everything your logged-in macOS user can do.

To install on a jailbroken device, first set up Theos. Then, you can run make do in the root of the repo.

License

Licensed under the Apache License, version 2.0. Refer to LICENSE.md.

newterm's People

Contributors

asdfugil avatar chrisharper22 avatar elihwyma avatar iadam1n avatar kirb avatar lint avatar neo1102 avatar therealketo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

newterm's Issues

README should be updated

README has little information now, so I think you should write how to compile this git and how to install it. You may also write your copyright.

Add copy pasting

Support for copy pasting would be nice, either by using gestures or just tapping on the input field.

Press and hold on + button always creates new tab [macOS]

On the Mac app, when the + is pressed and held, a popup will come up asking for new window or close window.

1.) Window should be replaced with Tab/Instance
2.) If close is pressed, it shouldn't create a new tab
3.) It shouldn't be moving the window

Status?

Is this stable?
How well does this work compared to the current mobileterminal from the big boss repo?
Does it have ios7 arm64 support?
Can I background it?

[Enhancement] Copy/Paste/Home/End?

I don’t want to keep turning on Voice Control to paste, and also I forgot to type git clone and had to press < a lot of times to get to the end

Safari-style tab switcher

A silly suggestion I know, but maybe we could add safari tabs, like the card view when you click the tab menu on safari?

Terminal backend rewrite

The terminal backend code is very old, from iTerm circa 2008, and heavily modified by the Mobile Terminal project. I’m not a fan of the architecture of iTerm (1 and 2) — very specific to AppKit, massive controller classes, too many features. Seems like iTerm2 is slowly trying to work towards splitting things up, but it’s still an issue.

Goals:

  • Swift.
  • Use xterm.js as a guide. It’s messy too but a good modern reference.
  • MIT license — same as xterm.js.
  • Delegate/protocol paradigm to separate the core logic (the state machine) with individual protocols for each separate affair — DCS, CSI, OSC, etc, plus handling for Tmux, iTerm2 escapes, etc.
  • Mouse support.
  • Report cursor position so it can be displayed at a higher level (in the current implementation the backend just turns the cursor position into a green block).
  • Link detection that isn’t broken.
  • Function for doing a safe paste.
  • Hopefully as platform-agnostic as possible — primarily for iOS/macOS, still aiming to be agnostic by not using anything more than the Swift corelibs (Foundation + GCD). Ideally this could be reused as a backend for any platform (practically probably will never happen but it’d be a good reference implementation).

Icons missing on keyboard toolbar buttons

On my iPad mini 5, the buttons on the keyboard toolbar have no icons. This is the case in both 2.2 and 2.2.1, but not in 2.1. It also doesn’t occur on my iPhone 8.

Device: iPad mini 5
iOS version: 12.2
Jailbreak: Unc0ver 3.7.0~b3

Screenshot:
75B3D929-B663-4C54-A655-DDBE1D903A69

DMCA

Hi chaz,
i got your DMCA complaint i want to get a newTermial distribution license because my tweaks need it.
Thank you for read.

Review iTerm2 extensions to implement

https://iterm2.com/documentation-escape-codes.html

I can see these being useful:

I can see these being useless:

  • Set cursor shape
  • Steal focus (heck no)
  • Change color palette
  • Cursor guide toggle
  • Fireworks attention (🤷‍♀️)

Maybe useful but can hold off to see if anyone actually has a use case for these:

  • Report foreground/background (OSC 4 - possible SwiftTerm already implements this?)
  • Set mark
  • Clear scrollback
  • Window/tab background color (not going to be possible on macOS with native tabs anyway)
  • Change color palette
  • Attention (bounce dock icon, different from bell I guess)
  • Background image
  • Touch bar keys (sounds super cool, would be extra cool on iPad keyboard)

Active?

I'm just wondering if there is active development going on with this project. Also, if possible, can you include a new build in the release and explain how to install it from the device itself or upload it to a repo somewhere.

Crash On iPhone 4S, IOS 7.1.2

Crash on my 4S when change orientation,I check the crash report and find value of dirty is NULL and setDirty try to access it.

After Add Check Code, Everything seems right.

- (void)resetDirty {
           if (dirty != NULL)
           {
        memset(dirty,0,WIDTH *HEIGHT *sizeof(char));
           }
}

- (void)setDirty {
           if (dirty != NULL)
           {
        memset(dirty, 1, WIDTH *HEIGHT *sizeof(char));
           }
       [refreshDelegate refresh];
}

Crashing

Why is newterm crashing for me. iPad mini iOS 7.1.2

Implement SSH client

This will be where we start to split into a jailbreak/Mac build and App Store build.

Likely want to use SwiftSH.

Will need to replace SubProcess with a protocol that can support both a local and remote shell.

Will also change iOS app structure to a split view at root with list of servers and sessions. Can probably implement this on macOS as well, but at least initially may be better to just show sessions in a window that then simply opens a new local tab and runs an ssh command line. i.e. no remote support built in.

Copy & Paste menu not showing since iOS 13.5

Hi , I am runnning a jailbroken iPhone 11 Pro on iOS 13.5 , the issue I am having is the copy and paste feature does not work I’ve tried on uncover and now on odyssey jailbreak still no luck any solution as I’m struggling to find one. Thanks :)

Implement collection view-based terminal view

Use a collection view in place of the terminal text view, so we get a bunch of performance-related things for free.

This means we need to implement text selection ourselves, though. We can take advantage of UITextInput for this at least.

How to get latest?

I have version 1 beta, how can I upgrade or install latest where fixes have been made?

Copy & Paste are useful features

Often I use the terminal to display some information to copy and then paste into another application, and v.v.. For example, I might copy a bit of text from a webpage and paste it into a file.
Matt

Unable to view settings

iPhoneX running 11.3.1 with NewTerm2 2.0

Hey hbang, I’ve been using your terminal for a bit, and it’s a great tool, but I can’t seem to access the in app settings.

My initial thought was to go to settings app, but nothing there. Looking through the source tree, seems to be an in app settings option, but I couldn’t trigger it on my device.

I went to reddit and they provided tips, but they didn’t seem to work.

Is there a better workaround and/or a planned fix?

Why use UITableView instead of UITextView?

I see that "NewTerm" or the original "MobileTerminal" use UITableView to present console screen. Is there any particular reason of this approach?

I think it's more straight forward to use UITextView instead. I'm just thinking about it, and didn't read the code in detail.

Support for arrow keys

NewTerm doesn't support any arrow keys (or gesture).
That's why I can't edit a text file with vim.
If you support arrow keys or gestures, then I would like you to support arrow keys on Wireless Keyboard.

Thanks.

iOS 8's Predictive Text is Broken

Tapping on a predicted word just outputs a single letter of said word. Needless to say that fixing this would make typing long commands much less of a pita.

Know to occur iOS 8.1 and likely on 8.0.x as well.

Arrow Keys on Wireless Keyboard

Using arrows on a bluetooth keyboard doesn't work.
Tested with Apple's magic keyboard and iPad (iOS 9.3.3) on NewTerm 2.1.
Not a problem of the keyboard as I tested that it works in Notes.

This was discussed in #16, but the wireless part doesn't seem to work, so I'm bringing this up again.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.