A beautiful and extensible experience for command-line interface users

Overview

Node CI Changelog #213

For more details, head to: https://hyper.is

Project goals

The goal of the project is to create a beautiful and extensible experience for command-line interface users, built on open web standards. In the beginning, our focus will be primarily around speed, stability and the development of the correct API for extension authors.

In the future, we anticipate the community will come up with innovative additions to enhance what could be the simplest, most powerful and well-tested interface for productivity.

Usage

Download the latest release!

Linux

Arch and derivatives

Hyper is available in the AUR. Use an AUR package manager e.g. paru

paru -S hyper

NixOS

Hyper is available as Nix package, to install the app run this command:

nix-env -i hyper

macOS

Use Homebrew Cask to download the app by running these commands:

brew update
brew install --cask hyper

Windows

Use chocolatey to install the app by running the following command (package information can be found here):

choco install hyper

Note: The version available on Homebrew Cask, Chocolatey, Snapcraft or the AUR may not be the latest. Please consider downloading it from here if that's the case.

Contribute

Regardless of the platform you are working on, you will need to have Yarn installed. If you have never installed Yarn before, you can find out how at: https://yarnpkg.com/en/docs/install.

  1. Install necessary packages:
  • Windows
    • Be sure to run yarn global add windows-build-tools from an elevated prompt (as an administrator) to install windows-build-tools.
  • macOS
    • Once you have installed Yarn, you can skip this section!
  • Linux (You can see here what your Linux is based on.)
    • RPM-based
      • GraphicsMagick
      • libicns-utils
      • xz (Installed by default on some distributions.)
    • Debian-based
      • graphicsmagick
      • icnsutils
      • xz-utils
  1. Fork this repository to your own GitHub account and then clone it to your local device
  2. Install the dependencies: yarn
  3. Build the code and watch for changes: yarn run dev
  4. To run hyper
  • yarn run app from another terminal tab/window/pane
  • If you are using Visual Studio Code, select Launch Hyper in debugger configuration to launch a new Hyper instance with debugger attached.
  • If you interrupt yarn run dev, you'll need to relaunch it each time you want to test something. Webpack will watch changes and will rebuild renderer code when needed (and only what have changed). You'll just have to relaunch electron by using yarn run app or VSCode launch task.

To make sure that your code works in the finished application, you can generate the binaries like this:

yarn run dist

After that, you will see the binary in the ./dist folder!

Known issues that can happen during development

Error building node-pty

If after building during development you get an alert dialog related to node-pty issues, make sure its build process is working correctly by running yarn run rebuild-node-pty.

If you are on macOS, this typically is related to Xcode issues (like not having agreed to the Terms of Service by running sudo xcodebuild after a fresh Xcode installation).

Error with c++ on macOS when running yarn

If you are getting compiler errors when running yarn add the environment variable export CXX=clang++

Error with codesign on macOS when running yarn run dist

If you have issues in the codesign step when running yarn run dist on macOS, you can temporarily disable code signing locally by setting export CSC_IDENTITY_AUTO_DISCOVERY=false for the current terminal session.

Related Repositories

Comments
  • Add Windows support and first-class Linux support

    Add Windows support and first-class Linux support

    TODO

    • [x] ~~Fix npm prune; npm install --production on Windows~~ – https://github.com/zeit/hyper/pull/946/commits/35df44448d0a057a4ded7b536fac72b446e85860
    • [x] ~~Fix NODE_ENV=production webpack on Windows~~ https://github.com/zeit/hyper/pull/946/commits/a1aacdb7fa9579ff142168479fd36f8a48beff2f
    • [x] ~~Add a bigger icon.ico for Windows~~ https://github.com/zeit/hyper/pull/946/commits/90287264aee1a647bbab41477b8ea5d8fa34ec4d
    • [x] ~Build on AppVeyor~
    • [x] ~Add Building on Windows to README.md~
    • [ ] Add a GIF to show when installing on Windows – cc @rauchg @evilrabbit
    • [x] Find out why hotkeys like Ctrl+T, Ctrl+N etc aren't working – related: #274
    • [x] ~Fix the maximize and close SVGs – cc @CodeTheory @evilrabbit~
    • [x] ~Add padding to the hamburger menu, minimize, maximize and close buttons – cc @CodeTheory @evilrabbit~
    • [x] ~Design review – cc @CodeTheory @evilrabbit @rauchg~
    • [x] ~Add CSS classes to enable customization of the hamburger menu, minimize, maximize and close buttons~ .header_shape is enough
    • [x] Performance review – cc @rauchg
    • [x] ~Test on macOS to make sure that pty.js doesn't introduce any weird behavior~

    Summary

    • child_pty => pty.js to enable Windows support (https://github.com/zeit/hyper/commit/7f29ead1d52d6ad79cf1839d51fba92120419ba6)
    • A brand new interface for Linux and Windows (macOS stays untouched) (https://github.com/zeit/hyper/commit/9dbff528390c92ee8bd07b3a99b1724ea9cd7ee3):

    screen shot 2016-10-30 at 8 34 15 pm screen shot 2016-10-30 at 8 35 11 pm

    Why this new design 🤔

    When you create a frameless window, you need to specify -webkit-app-region: drag in CSS to tell Electron which regions are draggable. Electron's documentation states:

    Note that if you have made the whole window draggable, you must also mark buttons as non-draggable, otherwise it would be impossible for users to click on them

    The problem is that on macOS, the above is simply not true. An element specified as the draggable region will receive click events:

    kapture 2016-10-28 at 16 56 30

    On Linux and Windows, the behavior is the one described in the documentation – the element will not receive click events:

    kapture 2016-10-28 at 2 07 50 (On Windows/Linux you can drag the window too, I just didn't recorded it)

    With that in mind, we introduced a new <div> that becomes visible on Windows/Linux when there are two or more open tabs:

    kapture 2016-10-30 at 22 47 59

    Building on Windows

    To build on Windows you need to install some dependencies and run some commands:

    1. Install VC++ Build Tools Technical Preview using the Default Install option
    2. Install Python 2.7, add it to your PATH and run npm config set python python2.7
    3. Run npm config set msvs_version 2015 --global

    About pty.js

    We're using @Tyriar's fork of pty.jsthe same used on Visual Studio Code. Check #190 for a discussion on that.

    Feeback wanted

    We need your feedback to make sure this feature is 💯 👌 💅 ✨ for the upcoming 1.0.0 release! Any help is more than welcome, especially with tests on Windows and Linux (and macOS too, to make sure that there are no unexpected side effects) 😄

    Closes #167; Closes #190; Closes #795;

    🎨 Type: Enhancement 💬 Feedback Wanted ‼️ Priority: OMG Maximum 👩‍🔬 Status: In Progress 🤯 Type: Compatibility 🐧 Platform: Linux 🖼 Platform: Windows 
    opened by matheuss 98
  • Error updating plugins

    Error updating plugins

    Each time I start HyperTerm or try to update plugins, I get this notification:

    Error updating plugins
    Check `~/.hyperterm_plugins/npm-debug.log` for more information.
    

    My plugin works, but this error keeps coming up. Not sure how to start debugging because the said npm-debug.log doesn't exist. I tried reinstalling HyperTerm but still the same problem.

    🐛 Type: Bug help wanted 
    opened by silvenon 94
  • Input Very Laggy After Update to 2.0

    Input Very Laggy After Update to 2.0

    • [x] I am on the latest Hyper.app version

    • [x] I have searched the issues of this repo and believe that this is not a duplicate

    • OS version and name: Windows 10 Anniversary Edition

    • Hyper.app version: 2.0

    • Link of a Gist with the contents of your .hyper.js: https://gist.github.com/BrysonR/d37a699fced1f16ea451e3015344fdd0

    • Relevant information from devtools (CMD+ALT+I on macOS, CTRL+SHIFT+I elsewhere): total init time 515.8100000000002 bundle.js:1 [Violation] 'requestAnimationFrame' handler took 371ms bundle.js:1 [Violation] 'requestAnimationFrame' handler took 357ms bundle.js:1 [Violation] 'requestAnimationFrame' handler took 354ms bundle.js:1 [Violation] 'requestAnimationFrame' handler took 399ms bundle.js:1 [Violation] 'requestAnimationFrame' handler took 394ms bundle.js:1 [Violation] 'requestAnimationFrame' handler took 404ms bundle.js:1 [Violation] 'requestAnimationFrame' handler took 373ms

    • The issue is reproducible in vanilla Hyper.app: Is Vanilla

    Issue

    Since upgrading to 2.0 a few minutes ago any prompt input is incredibly laggy. Looking at the dev tools console it looks like requestAnimationFrame handler is taking between 300-513ms to respond from a few test keystrokes I did for the purpose of this issue.

    help wanted ❣️ Priority: High 📊 Type: Performance 
    opened by BrysonR 91
  • Hyper 3.0.2 window does not open on Windows 10

    Hyper 3.0.2 window does not open on Windows 10

    • [x] I am on the latest Hyper.app version

    • [x] I have searched the issues of this repo and believe that this is not a duplicate

    • OS version and name: Microsoft Windows 10 Home version 10.0.18362

    • Hyper.app version: 3.0.2

    • Link of a Gist with the contents of your .hyper.js: the file doesn't exist because the app never properly launched

    • Relevant information from devtools (CMD+ALT+I on macOS, CTRL+SHIFT+I elsewhere): unable to launch the app

    • The issue is reproducible in vanilla Hyper.app: Yes. This is from a fresh install of Hyper, first launch.

    Issue

    When I try to launch Hyper, it appears as though nothing happens. However, the weird thing is, the Hyper process does show up in task manager. However, there is no icon for it on the start bar, and there is no window anywhere.

    image

    🖼 Platform: Windows 
    opened by mrjones2014 88
  • Text Wrapping Problem

    Text Wrapping Problem

    On the screen grab below you can see part of a command:

    image

    Here is what happens when I type the next character:

    image

    I typed an s to complete the word 'works' and then like which started to appear over the other text which was no longer visible.

    🐛 Type: Bug 
    opened by xscheiner 73
  • Plugins not installing

    Plugins not installing

    Plugins won't install for me at this point.

    Console log from fresh open:

    (re)loading renderer plugins
    Error: Cannot find module '/Users/tierney/.hyperterm_plugins/node_modules/hyperpower'
        at Module._resolveFilename (module.js:438:15)
        at Function.Module._resolveFilename (/Applications/HyperTerm.app/Contents/Resources/electron.asar/common/reset-search-paths.js:47:12)
        at Function.Module._load (module.js:386:25)
        at Module.require (module.js:466:17)
        at require (internal/module.js:20:19)
        at file:///Applications/HyperTerm.app/Contents/Resources/app/build/dist/bundle.js:1:10828
        at Array.map (native)
        at P (file:///Applications/HyperTerm.app/Contents/Resources/app/build/dist/bundle.js:1:10779)
        at Object.<anonymous> (file:///Applications/HyperTerm.app/Contents/Resources/app/build/dist/bundle.js:1:11881)
        at __webpack_require__ (file:///Applications/HyperTerm.app/Contents/Resources/app/build/dist/bundle.js:1:119)
    [Notification] Plugin load error: "hyperpower" failed to load in the renderer process. Check Developer Tools for details.
    total init time 173.95
    Unimplemented DEC Private Mode: 1034
    
    help wanted 🤯 Type: Compatibility 
    opened by bnb 69
  • Keymaps

    Keymaps

    Keymaps Feature

    On this implementation, I included a base of Keymap following three specific files.

    darwin.json
    win32.json
    linux.json
    

    This way, the Keymap will be easier to manage using accelerator. Since we want the Keymap to be easily modified and not forcing the remplacement of metaKey depending of the operating system.

    New file structure

    .hyper/config.js
    .hyper/plugins
    .hyper/local
    

    New DEV structure

    You can now do development when running Hyper locally and the DEV folder will not be created in the production build

    • config will be at .hyper/DEV/config.js

    Resolve

    #233 Tmux bind ` #657 make keyboard shortcuts configurable #783 Rich Support for Tweaking Modifier Keys #833 Most common readline keybinding don't work (ctrl-a, ctrl-e, ctrl-w etc.) #872 Flexible keymap (hotkeys / shortcut) #1069 Ctrl+X not working in nano #1100 CTRL+a does not work in tmux under Linux #1120 1.0.0 release broke some keybindings #1178 Change realod accelerator #1185 Shortcuts break when using Alt key as Meta #1199 Ctrl + W closes the terminal #1200 [windows] Control characters not working! #1279 Git automerge - nano edit fail #1361 Hyperterm doesn't handle Alt key combinations correctly #1424 Running nano from Hyper on Windows, doesn't allow me to exit with CTRL+X. #1584 Plugins Existences #1589 Crashes on open with invalid config #1627 close on CTRL-W #1776 Gaze is adding all folders in HOME to watch list #1782 JOE Editor and Hyper, disabling shortcuts for proper use

    ‼️ Priority: OMG Maximum 🙅‍♀️ Status: On Hold 
    opened by ppot 68
  • Change to xterm.js

    Change to xterm.js

    Hi, after evaluating several JS libs for terminal emulation to improve the performance of hyper, I found that https://github.com/sourcelair/xterm.js would probably better suite this project.

    • 👍 It is actively maintained.
    • 👍 Used by Visual Studio Code and maintained by @Tyriar , who would probably welcome some combined efforts on fixing bugs and improving xterm.js
    • 👍 It doesn't require to sign an NDA to contribute
    • 👍 It doesn't isolate the terminal DOM inside an iframe, which makes it much easier to hack and style
    • 👍 It has solved some of the problems we are having with hterm currently, e.g. IME and CJK character support
    • 👎 It is currently being migrated to typescript, which might not be everyone's favourite flavour
    • 👎 ~~It feels slightly less responsive at the moment, I think this is caused by the queue mechanism that tries to schedule big ui updates and introduces some ms lag - but it can be optimized~~

    I did some quick tests replacing hterm with xterm.js and the performance seems level. I was also able to quick and dirty put in some of the features we get from hterm, e.g. changing the cursor color on bell.

    If you like I can start working on pull request that replaces the current implementation with xterm.js, but I'd like to see some thumbs up for that first :neckbeard:

    🎨 Type: Enhancement 💬 Feedback Wanted 
    opened by mofux 68
  • Hyper window freezes when I try to close it

    Hyper window freezes when I try to close it

    • [x] I am on the latest Hyper.app version
    • [x] I have searched the issues of this repo and believe that this is not a duplicate
    • OS version and name: Version 1903 Windows Pro Insider Preview
    • Hyper.app version: 3.0.2

    Issue

    I am using hyper with a cmd shell, I also have wsl and oh my zsh set up. when I run wsl command in my hyper terminal, wsl and ohmyzsh works just fine, but whenever I try to exit the window, it freezes and it stays like that until I kill the process through the Task Manager

    opened by rofazayn 67
  • Powerline not usable in Hyper

    Powerline not usable in Hyper

    • [x] I am on the latest Hyper.app version

    • [x] I have searched the issues of this repo and believe that this is not a duplicate

    • OS version and name: Windows 10 with Linux Subsystem (Ubuntu)

    • Hyper.app version: 1.4.8

    • Link of a Gist with the contents of your .hyper.js: https://gist.github.com/b0rski/3630e9705fb547df0f8fbc9fbf960a8a#file-hyper-js

    • Relevant information from devtools (CMD+ALT+I on macOS, CTRL+SHIFT+I elsewhere): No idea what that is. I'm on Windows.

    • The issue is reproducible in vanilla Hyper.app: Yes, even with all plugins removed, including hyperterm-base16-tomorrow-night.

    Issue

    When I try to use powerline in bash or zsh and tmux or the powerlevel9k theme for oh my zsh, the characters and colors are not displayed correctly. I have powerline patched fonts installed under Windows and in the Ubuntu subsystem.

    hyper

    I tried different patched (Inconsolata, DejaVu Sans Mono and so on) fonts and setting UTF8 for locale but nothing works.

    How do I get Hyper to display everything correctly like in the gnome terminal on Fedora or Ubuntu?

    opened by c0desurfer 66
  • Update Electron to v6

    Update Electron to v6

    Update to Electron 6.0.0.

    Update packages:

    • electron
    • electron-builder
    • electron-rebuild

    Update the nodeIntegration default which was changed in Electron 5.0.0.

    Add missing plist package required from updating the packages

    🎨 Type: Enhancement 
    opened by razfriman 61
  • Javascript Uncaught Error when opening Hyper

    Javascript Uncaught Error when opening Hyper

    Hi, with Hyper 3.4.3, 3.4.4 on Mac (arm) and the canary version, this is what happened when I opened the terminal:

    image
    Uncaught Exception:
    Error: exec() failed: No such file or directory
    at new UnixTerminal (/Applications/Hyper.app/Contents/Resources/app.asar/node_modules/node-pty/lib/unixTerminal.js:104:24)
    at spawn (/Applications/Hyper.app/Contents/Resources/app.asar/node_modules/node-pty/lib/index.js:29:12)
    at Session.init (/Applications/Hyper.app/Contents/Resources/app.asar/session.js:138:24)
    at new Session (/Applications/Hyper.app/Contents/Resources/app.asar/session.js:100:14)
    at createSession (/Applications/Hyper.app/Contents/Resources/app.asar/ui/window.js:139:25)
    at Server.<anonymous> (/Applications/Hyper.app/Contents/Resources/app.asar/ui/window.js:144:38)
    at Server.emit (node:events:527:28)
    at Server.ipcListener (/Applications/Hyper.app/Contents/Resources/app.asar/rpc.js:31:15)
    at IpcMainImpl.emit (node:events:527:28)
    at EventEmitter.<anonymous> (node:electron/js2c/browser_init:161:11120)
    

    Mac OS version: Ventura 13.1

    Any idea why that might happen?

    opened by Kagigz 1
  • can't write in hyper

    can't write in hyper

    • [ ] Your Hyper.app version is 3.3.0. Please verify you're using the latest Hyper.app version
    • [ ] I have searched the issues of this repo and believe that this is not a duplicate

    • Any relevant information from devtools? (CMD+OPTION+I on macOS, CTRL+SHIFT+I elsewhere):
    • Is the issue reproducible in vanilla Hyper.app?

    Issue


    • Hyper version: undefined "3.3.0"
    • OS ARCH VERSION: win32 x64 6.2.9200
    • Electron: 19.0.8 LANG: undefined
    • SHELL: undefined TERM: undefined
    .hyper.js contents
    {
      "updateChannel": "stable",
      "fontSize": 12,
      "fontFamily": "Menlo, \"DejaVu Sans Mono\", Consolas, \"Lucida Console\", monospace",
      "fontWeight": "normal",
      "fontWeightBold": "bold",
      "lineHeight": 1,
      "letterSpacing": 0,
      "cursorColor": "rgba(248,28,229,0.8)",
      "cursorAccentColor": "#000",
      "cursorShape": "BLOCK",
      "cursorBlink": false,
      "foregroundColor": "#fff",
      "backgroundColor": "#000",
      "selectionColor": "rgba(248,28,229,0.3)",
      "borderColor": "#333",
      "css": "",
      "termCSS": "",
      "workingDirectory": "",
      "showHamburgerMenu": "",
      "showWindowControls": "",
      "padding": "12px 14px",
      "colors": {
        "black": "#000000",
        "red": "#C51E14",
        "green": "#1DC121",
        "yellow": "#C7C329",
        "blue": "#0A2FC4",
        "magenta": "#C839C5",
        "cyan": "#20C5C6",
        "white": "#C7C7C7",
        "lightBlack": "#686868",
        "lightRed": "#FD6F6B",
        "lightGreen": "#67F86F",
        "lightYellow": "#FFFA72",
        "lightBlue": "#6A76FB",
        "lightMagenta": "#FD7CFC",
        "lightCyan": "#68FDFE",
        "lightWhite": "#FFFFFF",
        "limeGreen": "#32CD32",
        "lightCoral": "#F08080"
      },
      "shell": "",
      "shellArgs": [
        "--login"
      ],
      "env": {},
      "bell": "SOUND",
      "copyOnSelect": false,
      "defaultSSHApp": true,
      "quickEdit": false,
      "macOptionSelectionMode": "vertical",
      "webGLRenderer": true,
      "webLinksActivationKey": "",
      "disableLigatures": true,
      "disableAutoUpdates": false,
      "screenReaderMode": false,
      "preserveCWD": true
    }
    
    plugins
    {
      "plugins": [],
      "localPlugins": []
    }
    
    opened by sagordevnath 0
  • Very big gaps around screen on Linux and MacOS.

    Very big gaps around screen on Linux and MacOS.

    • [x] I am on the latest Hyper.app version
    • [x] I have searched the issues of this repo and believe that this is not a duplicate
    • Arch Linux 6.1.1, Gnome 43.2, MacOS 13.2:
    • 3.3.0:
    • My gist: https://gist.github.com/FormalSnake/153c373b587fc594dd9a11bf4d952c69:
    • N/A (CMD+ALT+I on macOS, CTRL+SHIFT+I elsewhere):
    • Out of the box I had the exact same issue.:

    Issue

    My Hyper terminal has big borders everywere, and fullscreen (F11) does nothing. I can reproduce it on both Arch linux and macOS. Here are some screenshots of my Arch linux: Screenshot from 2022-12-27 09-31-24 Screenshot from 2022-12-27 09-39-51 On other terminals, I do not have this issue. Alacritty: Screenshot from 2022-12-27 09-45-58

    opened by FormalSnake 6
  • Bump playwright from 1.27.1 to 1.29.1

    Bump playwright from 1.27.1 to 1.29.1

    Bumps playwright from 1.27.1 to 1.29.1.

    Release notes

    Sourced from playwright's releases.

    v1.29.1

    Highlights

    microsoft/playwright#18928 - [BUG] Electron firstWindow times out after upgrading to 1.28.0 microsoft/playwright#19246 - [BUG] Electron firstWindow times out after upgrading to 1.28.1 microsoft/playwright#19412 - [REGRESSION]: 1.28 does not work with electron-serve anymore. microsoft/playwright#19540 - [BUG] electron.app.getAppPath() returns the path one level higher if you run electron pointing to the directory microsoft/playwright#19548 - [REGRESSION]: Ubuntu 18 LTS not supported anymore

    Browser Versions

    • Chromium 109.0.5414.46
    • Mozilla Firefox 107.0
    • WebKit 16.4

    This version was also tested against the following stable channels:

    • Google Chrome 108
    • Microsoft Edge 108

    v1.29.0

    New APIs

    • New method route.fetch() and new option json for route.fulfill():

      await page.route('**/api/settings', async route => {
        // Fetch original settings.
        const response = await route.fetch();
      

      // Force settings theme to a predefined value. const json = await response.json(); json.theme = 'Solorized';

      // Fulfill with modified data. await route.fulfill({ json }); });

    • New method locator.all() to iterate over all matching elements:

      // Check all checkboxes!
      const checkboxes = page.getByRole('checkbox');
      for (const checkbox of await checkboxes.all())
        await checkbox.check();
      

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump xterm, xterm-addon-fit, xterm-addon-ligatures, xterm-addon-search, xterm-addon-unicode11, xterm-addon-web-links and xterm-addon-webgl

    Bump xterm, xterm-addon-fit, xterm-addon-ligatures, xterm-addon-search, xterm-addon-unicode11, xterm-addon-web-links and xterm-addon-webgl

    Bumps xterm, xterm-addon-fit, xterm-addon-ligatures, xterm-addon-search, xterm-addon-unicode11, xterm-addon-web-links and xterm-addon-webgl. These dependencies needed to be updated together. Updates xterm from 4.19.0 to 5.1.0

    Release notes

    Sourced from xterm's releases.

    5.1.0

    🚀 Features

    Multiple texture atlas page support (#4244, #4252, #4274) via @​Tyriar

    Instead of there being a hard cap of 1024x1024 on the size of the texture atlas backing the canvas and webgl renderers, multiple textures are now supported. Each individual texture is now 512x512 which allows faster uploading to the GPU and will continually merge until the maximum of 4096x4096 is reached.

    The benefits in simple terms of this change are:

    • Less time from drawing a glyph to rendering it
    • Less CPU is used when lots of glyphs are used
    • Essentially unlimited space for glyphs, which is good for certain use cases but will also let us explore things like "perfect" dotted and curvy underlines in the future

    Here is an example of a 512x512 texture atlas page right after the terminal has loaded and printed a powerline-based prompt:

    image

    And here is the 1024x1024 page after a lot of glyphs have rendered:

    image

    Slash and triangle custom glyphs (#4313) via @​Tyriar

    Eight new powerline extra custom glyphs are supported:

    image

    New option scrollOnUserInput (#4289) via @​JasonXJ

    You can now specify whether to scroll to the bottom of the terminal on user input, previously this was the default and only behavior. This new setting is enabled by default.

    const term = new Terminal({ scrollOnUserInput: false });
    

    🐞 Bug fixes

    🏎️ Performance

    ... (truncated)

    Commits
    • 19c760a Merge pull request #4333 from xtermjs/revert-4196-ansiheadless
    • 3a81ef5 Revert "SerializeAsHTML(): Fallback to default ansi colors when running headl...
    • 6cfdcb1 Merge pull request #4332 from Tyriar/r5_1_0
    • 30ef1fc v5.1.0
    • 84b8121 Merge pull request #4288 from jerch/fix_weblinks
    • 218cfd2 Merge branch 'master' into fix_weblinks
    • 1757f27 explicit type for link test data
    • 9411acb move link tests to demo
    • cb4102c Merge pull request #4330 from Tyriar/2533
    • 1926c9b Add sequence buttons through CSI P
    • Additional commits viewable in compare view

    Updates xterm-addon-fit from 0.5.0 to 0.7.0

    Commits

    Updates xterm-addon-ligatures from 0.6.0-beta.19 to 0.6.0

    Commits

    Updates xterm-addon-search from 0.9.0 to 0.11.0

    Commits

    Updates xterm-addon-unicode11 from 0.3.0 to 0.5.0

    Commits

    Updates xterm-addon-web-links from 0.6.0 to 0.8.0

    Commits

    Updates xterm-addon-webgl from 0.12.0 to 0.14.0

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
Releases(v4.0.0-canary.1)
Owner
Vercel
Develop. Preview. Ship. Creators of Next.js.
Vercel
A simple command line notebook for programmers

Dnote is a simple command line notebook for programmers. It keeps you focused by providing a way of effortlessly capturing and retrieving information

Dnote 2.4k Dec 27, 2022
⌨️ A User-friendly, easy-to-use, scalable, and highly customizable component for automating your command+k experience.

ScoutBar ⌨️ Spolight for your app See Demo On Codesandbox See Documentation ⚡️ Overview Users enjoy hitting CMD + K to search and perform complex acti

Adenekan Wonderful 102 Dec 29, 2022
Uniswap Clone Interface - a Dapp application that replicates the Uniswap web application interface

This project was developed with ReactJS, being a Dapp application (decentralized application) that replicates the Uniswap web application interface. With this interface it is possible to perform the real login connection with your MetaMask digital wallet previously installed in your browser.

NguyenSonTung982000 8 Dec 2, 2022
A web application that allows users to create quiz. users can choose the topic, type of the quiz or the number of questions of the quiz

A web application that allows users to create quiz. users can choose the topic, type of the quiz or the number of questions of the quiz. They can also choose the difficulty level for the the quiz. preview.

Gomina Maryam 9 Dec 8, 2022
Set up a modern web app with clean architecture by running one command.

Clean React App Create React apps using Clean Architecture with no build configuration. User Guide – How to develop apps bootstrapped with Clean React

Rubem Vasconcelos 44 Nov 14, 2022
The game wordle made with ReactJS, without writing a line of CSS

I made Wordle XD Hello everyone ?? , I am glad to see you here I know it ain't much but this is the game wordle (popular in twitter recently!) I made

null 26 Nov 30, 2022
A full-stack clone of the incredible Apple Music online streaming platform, with an aim to re-create it's core features, seamless design, and excellent user experience.

Appo Music About Appo Music is a full-stack clone of the incredible Apple Music online streaming platform, with an aim to re-create it's core features

Ori Ravid 82 Dec 3, 2022
Alan Vieyra 4 Feb 1, 2022
A novel approach for security and user experience of Graphical Password Authentication.

Graphical Password Authentication Alohomora Harry Potter themed (not really) Graphical Password Authentication Flowchart and Architecture Solution Dem

Akshat Shah 10 Dec 15, 2022
An Anime Streaming Site with minimal UI and ad-free anime streaming experience

An Anime Streaming Site with minimal UI and ad-free anime streaming experience. Made with :blue_heart: and React

ShivamKun 101 Nov 19, 2022
Portal+ for Greenwich Students, A better portal for a better experience in learning

Portal+ for Greenwich Students A better portal for a better experience in learning. Explore the docs » Published on CHPlay · Report Bug · Request Feat

Nguyễn Anh Nhân 6 Mar 28, 2022
A joyfully minimal riff on ECS with a focus on Developer Experience.

Everything you're seeing here is likely going to change quite a lot in the near future. I've added some preliminary typo-filled documentation to convey an idea of how this thing ticks, but please don't build anything with it right now that you can't risk to have to rewrite a couple of days later. :-P

Hendrik Mans 265 Jan 4, 2023
WunderGraph is the Next-Generation API Developer Platform with a focus on Developer Experience.

WunderGraph is the Next-Generation API Developer Platform with a focus on Developer Experience.

WunderGraph 852 Dec 30, 2022
An open-source project that aims to provide an indistinguishably accurate experience of Android on web

An open-source project that aims to provide an indistinguishably accurate experience of Android on web. The project leverages different JavaScript Web APIs to imitates the Android functionalities and CSS animations to bring life into it.

Side Edge 1 Oct 5, 2022
Querybook is a Big Data Querying UI, combining collocated table metadata and a simple notebook interface.

Querybook is a Big Data Querying UI, combining collocated table metadata and a simple notebook interface.

Pinterest 1.3k Dec 31, 2022
TryShape is an open-source platform to create shapes of your choice using a simple, easy-to-use interface. You can create banners, circles, polygonal shapes, export them as SVG, PNG, and even as CSS.

TryShape is an open-source platform to create shapes of your choice using a simple, easy-to-use interface. You can create banners, circles, polygonal shapes, export them as SVG, PNG, and even as CSS.

TryShape 148 Dec 26, 2022
Veroo is a cappuccino delivery app. This application is for the purpose of studying modern interface and animations.

Veroo is a cappuccino delivery app. This application is for the purpose of studying modern interface and animations.

Lucas Augusto 13 May 10, 2022
Minimalist web interface for qBitTorrent. Implemented using React, Typescript and Mantine

QBitUI! Minimalist web interface for qBitTorrent. Implemented using React, Typescript and Mantine. Features Basic torrent management: Add, Pause, Resu

Macovei Gabriel 8 Oct 24, 2022
Clone da interface da Netflix com React JS.

Netflix Clone Clone da interface da Netflix com React JS. Iniciar projeto No terminal, siga as seguintes instruções: # Clonar o repositório $ git clon

Vitoria Felix 9 Oct 11, 2022