vercel / hyper

A terminal built on web technologies
https://hyper.is
MIT License
43.2k stars 3.51k forks source link

Symbols being displayed wrongly from 3.1.1 #5806

Closed warcayac closed 3 years ago

warcayac commented 3 years ago

OS info:

Hyper

Error description:

Evidences:

LabhanshAgrawal commented 3 years ago

Can you please open a separate issue for the face icon thing. The strange characters are due to ligatures plugin.

LabhanshAgrawal commented 3 years ago

Can you please confirm if removing the ligatures plugin solved it.

warcayac commented 3 years ago

Apparently hyper-font-ligatures was the problem, but now ligatures are disabled. As I said before, with the former version of hyper it was working fine.

LabhanshAgrawal commented 3 years ago

Ligatures are working with canvas renderer, you don't need to use a plugin for it now as it's inbuilt. The issue with webgl and ligatures is from xtermjs upstream.

warcayac commented 3 years ago

Currently my terminal with ligatures plugin disabled:

no_plugin

LabhanshAgrawal commented 3 years ago

If you want to use ligatures, you can set

    webGLRenderer: false,
    disableLigatures: false

in your config

warcayac commented 3 years ago

My terminal is worse now, with big chars, black background and borderless, it is like plugins were disabled.

worse

LabhanshAgrawal commented 3 years ago

Did you get any error notifications etc.? Can you post your config with these changes.

warcayac commented 3 years ago

no error, nothing at all.

// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.

module.exports = {
  config: {
    // choose either `'stable'` for receiving highly polished,
    // or `'canary'` for less polished but more frequent updates
    updateChannel: 'stable',

    // default font size in pixels for all tabs
    fontSize: 10,

    // font family with optional fallbacks
        fontFamily: 'JetBrainsMono Nerd Font',

    // default font weight: 'normal' or 'bold'
    fontWeight: 'normal',

    // font weight for bold characters: 'normal' or 'bold'
    fontWeightBold: 'bold',

    // line height as a relative unit
    lineHeight: 1.1,

    // letter spacing as a relative unit
    letterSpacing: 0,

    // terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
    cursorColor: 'rgba(248,28,229,0.8)',

    // terminal text color under BLOCK cursor
    cursorAccentColor: '#000',

    // `'BEAM'` for |, `'UNDERLINE'` for _, `'BLOCK'` for β–ˆ
        cursorShape: 'UNDERLINE',

    // set to `true` (without backticks and without quotes) for blinking cursor
    cursorBlink: true,

    // color of the text
    foregroundColor: '#fff',

    // terminal background color
    // opacity is only supported on macOS
    backgroundColor: '#000',

    // terminal selection color
    selectionColor: 'rgba(248,28,229,0.3)',

    // border color (window, tabs)
    borderColor: '#333',

    // custom CSS to embed in the main window
    css: '',

    // custom CSS to embed in the terminal window
    termCSS: '',

    // if you're using a Linux setup which show native menus, set to false
    // default: `true` on Linux, `true` on Windows, ignored on macOS
    showHamburgerMenu: '',

    // set to `false` (without backticks and without quotes) if you want to hide the minimize, maximize and close buttons
    // additionally, set to `'left'` if you want them on the left, like in Ubuntu
    // default: `true` (without backticks and without quotes) on Windows and Linux, ignored on macOS
    showWindowControls: '',

    // custom padding (CSS format, i.e.: `top right bottom left`)
    padding: '12px 14px',

    // the full list. if you're going to provide the full color palette,
    // including the 6 x 6 color cubes and the grayscale map, just provide
    // an array here instead of a color map object
//     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',
//     },

    // the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
    // if left empty, your system's login shell will be used by default
    //
    // Windows
    // - Make sure to use a full path if the binary name doesn't work
    // - Remove `--login` in shellArgs
    //
    // Bash on Windows
    // - Example: `C:\\Windows\\System32\\bash.exe`
    //
    // PowerShell on Windows
    // - Example: `C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`
    shell: '/bin/zsh',

    // for setting shell arguments (i.e. for using interactive shellArgs: `['-i']`)
    // by default `['--login']` will be used
    shellArgs: ['--login'],

    // for environment variables
    env: {},

    // set to `false` for no bell
    bell: false,

    // if `true` (without backticks and without quotes), selected text will automatically be copied to the clipboard
    copyOnSelect: true,

    // if `true` (without backticks and without quotes), hyper will be set as the default protocol client for SSH
    defaultSSHApp: true,

    // if `true` (without backticks and without quotes), on right click selected text will be copied or pasted if no
    // selection is present (`true` by default on Windows and disables the context menu feature)
    quickEdit: false,

    // choose either `'vertical'`, if you want the column mode when Option key is hold during selection (Default)
    // or `'force'`, if you want to force selection regardless of whether the terminal is in mouse events mode
    // (inside tmux or vim with mouse mode enabled for example).
    macOptionSelectionMode: 'vertical',

    // URL to custom bell
    // bellSoundURL: 'http://example.com/bell.mp3',

    // Whether to use the WebGL renderer. Set it to false to use canvas-based
    // rendering (slower, but supports transparent backgrounds)
    webGLRenderer: false,
    disableLigatures: false

    // for advanced config flags please refer to https://hyper.is/#cfg

        hyperBorder: {
            borderWidth: '2px',
            borderColors: ['#1D976C', '#93F9B9'],
            blurredColors: ['#177C59', '#84E0A6']
        },

        hyperTabs: {
            tabIconsColored: true,
        },
  },

  // a list of plugins to fetch and install from npm
  // format: [@org/]project[#version]
  // examples:
  //   `hyperpower`
  //   `@company/project`
  //   `project#1.0.1`
  plugins: [
  //"hyper-font-ligatures", 
  "hyperborder", 
  "hypercwd", 
  "hyper-tabs-enhanced", 
  "shades-of-purple-hyper",
  ],

  // in development, you can create a directory under
  // `~/.hyper_plugins/local/` and include it here
  // to load it and avoid it being `npm install`ed
  localPlugins: [],

  keymaps: {
    // Example
    // 'window:devtools': 'cmd+alt+o',
  },
};

Finally, I sincerely thank you for your time in my case.

LabhanshAgrawal commented 3 years ago

Put a comma at the end of disableLigatures line You're welcome 😊

warcayac commented 3 years ago

OMG, I didn't note a simple comma, well ligatures are back again, but there is a little problem now with progress bars

error

This problem does not occur if I return to

webGLRenderer: true,
// disableLigatures: false,
LabhanshAgrawal commented 3 years ago

Yeah, ligatures have some issues, it's from upstream xterm.js. With webgl there's the issue of random chars and bg color IIRC, and with canvas the width for ligatures is little bit more than regular chars, which becomes noticeable in progress bars etc. You can keep using it with canvas renderer, if you don't mind the progress bars. Else, will have to wait till it's fixed in xterm.

warcayac commented 3 years ago

(πŸ‘β‰–β€Ώβ€Ώβ‰–)πŸ‘ πŸ‘(β‰–β€Ώβ€Ώβ‰–πŸ‘)