Hyperline / hyperline

✨ Status line plugin for Hyper ✨
MIT License
619 stars 120 forks source link

Hyperline doesn't show on Windows 10 #173

Closed nodeselector closed 1 year ago

nodeselector commented 5 years ago

I'm trying to run hyperline with the below configuration:

// 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: 12,

    // font family with optional fallbacks
    fontFamily: '"Menlo for Powerline", Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',

    // 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,

    // 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: 'BLOCK',

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

    // 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',
    },
    shell: 'C:\\Windows\\System32\\bash.exe',

    // 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: false,

    // 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: true,

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

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

  // a list of plugins to fetch and install from npm
  // format: [@org/]project[#version]
  // examples:
  //   `hyperpower`
  //   `@company/project`
  //   `project#1.0.1`
  plugins: [
    "hyper-one-dark",
    "hyperline"
  ],

  // 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',
  },
  hyperline: {
    plugins: [
      "hostname"
    ]
  }
};

Errors in console:

bundle.js:1 (re)loading renderer plugins
bundle.js:1 Plugin hyper-one-dark (1.0.0) loaded.
2bundle.js:1 DEPRECATED: If your plugin requires `react`, it must bundle it as a dependency
f._load @ bundle.js:1
bundle.js:1 DEPRECATED: If your plugin requires `hyper/component`, it must requires `react.PureComponent` instead and bundle `react` as a dependency
f._load @ bundle.js:1
bundle.js:1 Plugin hyperline (1.2.0) loaded.
bundle.js:1 Warning: "hyper-one-dark" plugin uses some deprecated CSS classes (cursor-node).
O.Object.keys.forEach @ bundle.js:1
bundle.js:1 Error: write EPIPE
    at exports._errnoException (util.js:1024:11)
    at Socket._writeGeneric (net.js:762:25)
    at Socket._write (net.js:781:8)
    at doWrite (_stream_writable.js:371:12)
    at writeOrBuffer (_stream_writable.js:357:5)
    at Socket.Writable.write (_stream_writable.js:274:11)
    at Socket.write (net.js:699:40)
    at runApplescript (C:\Users\jemartin\.hyper_plugins\node_modules\applescript\lib\applescript.js:60:23)
    at Object.execString (C:\Users\jemartin\.hyper_plugins\node_modules\applescript\lib\applescript.js:19:10)
    at execScript (C:\Users\jemartin\.hyper_plugins\node_modules\spotify-node-applescript\lib\spotify-node-applescript.js:82:28)
h @ bundle.js:1
bundle.js:1 [Notification] Plugin error: Plugins decorating HyperLine has been disabled because of a plugin crash. Check Developer Tools for details.
bundle.js:1 TypeError: Cannot read property 'map' of undefined
    at HyperLine.render (C:\Users\jemartin\.hyper_plugins\node_modules\hyperline\dist\hyperline.js:189:14)
    at h (file:///C:/Users/jemartin/AppData/Local/hyper/app-2.1.1/resources/app.asar/renderer/bundle.js:1:154527)
    at beginWork (file:///C:/Users/jemartin/AppData/Local/hyper/app-2.1.1/resources/app.asar/renderer/bundle.js:1:156264)
    at d (file:///C:/Users/jemartin/AppData/Local/hyper/app-2.1.1/resources/app.asar/renderer/bundle.js:1:168739)
    at f (file:///C:/Users/jemartin/AppData/Local/hyper/app-2.1.1/resources/app.asar/renderer/bundle.js:1:168972)
    at g (file:///C:/Users/jemartin/AppData/Local/hyper/app-2.1.1/resources/app.asar/renderer/bundle.js:1:169330)
    at m (file:///C:/Users/jemartin/AppData/Local/hyper/app-2.1.1/resources/app.asar/renderer/bundle.js:1:172850)
    at w (file:///C:/Users/jemartin/AppData/Local/hyper/app-2.1.1/resources/app.asar/renderer/bundle.js:1:172644)
    at z (file:///C:/Users/jemartin/AppData/Local/hyper/app-2.1.1/resources/app.asar/renderer/bundle.js:1:171749)
    at u (file:///C:/Users/jemartin/AppData/Local/hyper/app-2.1.1/resources/app.asar/renderer/bundle.js:1:171138)
h @ bundle.js:1
bundle.js:1 [Notification] Plugin error: Plugins decorating Hyper has been disabled because of a plugin crash. Check Developer Tools for details.
index.html:35 total init time 1035.71
events.js:182 Uncaught Error: spawn osascript ENOENT
    at exports._errnoException (util.js:1024:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:192:19)
    at onErrorNT (internal/child_process.js:374:16)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)

I'm aware that there are some limitations to hyperline on Windows 10 and that it is not officially supported. Though I was under the impression that the hyperline itself should show. I'm also not sure why hyperline is trying to load an applescript. Is there a way to disable this?

nightwnvol commented 5 years ago

@jeffmartinxyz Try to move your hyperline configuration in the config: { } section.

module.exports = {
  config: {
    hyperline: {
      plugins: [
        'hostname'
      ]
    }
  }
}
flogaribal commented 5 years ago

Hi ! Still have the same issue as @jeffmartinxyz. I'm using hyper on windows with the following config:

// 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: {
    // Config hyperline plugin
    hyperline: {                                                                 
      plugins: [                                                                 
        'ip',    
        'memory',                                                                 
        'cpu',   
        'battery',                                                                
        'spotify'                                                                
      ]                                                                          
    },

    // 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: 12,

    // font family with optional fallbacks
    fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',

    // 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,

    // 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: 'BLOCK',

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

    // 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: 'C:\\Windows\\System32\\wsl.exe',

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

    // for environment variables
    env: {},

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

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

    // 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: true,

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

  // a list of plugins to fetch and install from npm
  // format: [@org/]project[#version]
  // examples:
  //   `hyperpower`
  //   `@company/project`
  //   `project#1.0.1`
  plugins: [
    'hyper-solarized-dark',
    'hyperline',
  ],

  // 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',
  },
};

And I get the same error

TypeError: Cannot read property 'map' of undefined
    at HyperLine.render (C:\Users\floga\AppData\Roaming\Hyper\.hyper_plugins\node_modules\hyperline\dist\hyperline.js:189)
    at h (bundle.js:1)
    at beginWork (bundle.js:1)
    at d (bundle.js:1)
    at f (bundle.js:1)
    at g (bundle.js:1)
    at m (bundle.js:1)
    at w (bundle.js:1)
    at z (bundle.js:1)
    at u (bundle.js:1)

Does somebody have any workaround or fix ?

Thanks a lot in advance

marmelin commented 4 years ago

when I added hyperline config into config-section and deleted "spotify" setting .. it works :) seems if you add settings that hyper cannot access it wont work .

monado3 commented 4 years ago

Spotify bug on Windows 10 won't be fixed?