henrikruscon / hyper-statusline

Status Line Plugin for Hyper
MIT License
387 stars 79 forks source link

limited functionality on Ubuntu 14.04 #23

Closed nhejazi closed 7 years ago

nhejazi commented 7 years ago

Just recently began using this plugin with Hyper 1.0.0 and Hyper 1.0.1, and encountered an error (running Ubuntu 14.04). In particular, a sort of statusline appears (basically, just a lightly colored area at the bottom of the Hyper window), but the appropriate icons fail to display entirely. Based on a cursory look, it doesn't seem like any related issues have been reported.

henrikruscon commented 7 years ago

Mind sharing a screen? ✌️

nhejazi commented 7 years ago

screenshothyper

henrikruscon commented 7 years ago

Any errors in the console?

nhejazi commented 7 years ago

Not as far as I can tell. Only thing I can think of might be interference from some other plug-in. I've included the contents of my hyper.js in case it might be helpful below:

module.exports = {
  config: {
    // default font size in pixels for all tabs
    fontSize: 13,

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

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

    // `BEAM` for |, `UNDERLINE` for _, `BLOCK` for █
    cursorShape: 'BLOCK',

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

    // terminal background color
    backgroundColor: '#000',

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

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

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

    // set to `true` if you're using a Linux set up
    // that doesn't shows native menus
    // default: `false` on Linux, `true` on Windows (ignored on macOS)
    showHamburgerMenu: true,

    // set to `false` to hide the minimize, maximize and close buttons
    // set to `'left'` if you want them on the left, like in Ubuntu
    // default: `true` 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: '#ff0000',
      green: '#33ff00',
      yellow: '#ffff00',
      blue: '#0066ff',
      magenta: '#cc00ff',
      cyan: '#00ffff',
      white: '#d0d0d0',
      lightBlack: '#808080',
      lightRed: '#ff0000',
      lightGreen: '#33ff00',
      lightYellow: '#ffff00',
      lightBlue: '#0066ff',
      lightMagenta: '#cc00ff',
      lightCyan: '#00ffff',
      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
    shell: 'bash',

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

    // for environment variables
    env: {},

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

    // if true, selected text will automatically be copied to the clipboard
    copyOnSelect: false,

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

    // settings for hyperlinks plugin
    hyperlinks: {
      defaultBrowser: false
    },

    // settings for statusline plugin
    hyperStatusLine: {
      footerTransparent: false
      //dirtyColor: 'pink'
    }

    // 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: [
    "hypercwd",
    "hyperlinks",
    "hyper-blink",
    "hyperterm-paste",
    "hyperterm-cursor",
    "hyper-statusline",
    "hyperterm-bold-tab",
    //"hyper-chesterish", // Chesterish theme
    "hyper-snazzy" // Snazzy theme
  ],
  // 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: []
};
henrikruscon commented 7 years ago

Does hypercwd work fine for you? Because it's relying on a similar method to fetch cwd.

nhejazi commented 7 years ago

Aw, interesting -- hypercwd also appears to be broken...seems this issue is due to some change in Hyper as of 1.0.0

elmasse commented 7 years ago

@nhejazi first, please check lsof is installed.

if you run the command from your terminal (not hyper) what's the output?

lsof -p ${pid} | grep cwd | tr -s ' ' | cut -d ' ' -f9-

(replace the ${pid} with your terminal pid)

If it takes a while try this:

lsof -n -p ${pid} | grep cwd | tr -s ' ' | cut -d ' ' -f9-

@henrikdahl I have experienced some issues on MacOS with my plugin that I fixed by adding the -n parameter to lsof command. Sometimes it took around 30secs to get a response from lsof while adding the -n went down to 8ms

my $0.02!

Max

nhejazi commented 7 years ago

@elmasse, thanks for pointing out lsof (didn't have it installed before). The output of using lsof in the way you specified is an error, which I've included below (note that this is with use of sudo):

lsof: WARNING: can't stat() ext4 file system /mnt/stateful_partition
      Output information may be incomplete.
lsof: WARNING: can't stat() ext4 file system /usr/share/oem
      Output information may be incomplete.
lsof: WARNING: can't stat() ext4 file system /mnt/stateful_partition/encrypted
      Output information may be incomplete.
lsof: WARNING: can't stat() ext4 file system /home/chronos
      Output information may be incomplete.
lsof: WARNING: can't stat() debugfs file system /run/debugfs_gpu
      Output information may be incomplete.
lsof: WARNING: can't stat() squashfs file system /opt/google/containers/android/rootfs/root
      Output information may be incomplete.
lsof: WARNING: can't stat() squashfs file system /opt/google/containers/android/rootfs/root/vendor
      Output information may be incomplete.
lsof: WARNING: can't stat() squashfs file system /opt/google/containers/arc-downloads-filesystem/mountpoints/container-root
      Output information may be incomplete.
lsof: WARNING: can't stat() squashfs file system /opt/google/containers/arc-removable-media/mountpoints/container-root
      Output information may be incomplete.
lsof: WARNING: can't stat() squashfs file system /opt/google/containers/arc-sdcard/mountpoints/container-root
      Output information may be incomplete.
lsof: WARNING: can't stat() squashfs file system /opt/google/containers/arc-obb-mounter/mountpoints/container-root
      Output information may be incomplete.
lsof: WARNING: can't stat() ecryptfs file system /home/.shadow/bac160ce84f196dada0c0688dd5c6a3d71e3b9e3/mount
      Output information may be incomplete.
lsof: WARNING: can't stat() ecryptfs file system /home/chronos/user
      Output information may be incomplete.
lsof: WARNING: can't stat() ecryptfs file system /home/user/bac160ce84f196dada0c0688dd5c6a3d71e3b9e3
      Output information may be incomplete.
lsof: WARNING: can't stat() ecryptfs file system /home/chronos/u-bac160ce84f196dada0c0688dd5c6a3d71e3b9e3
      Output information may be incomplete.
lsof: WARNING: can't stat() ecryptfs file system /home/root/bac160ce84f196dada0c0688dd5c6a3d71e3b9e3
      Output information may be incomplete.
lsof: WARNING: can't stat() tmpfs file system /run/crw
      Output information may be incomplete.

@henrikdahl, installing lsof restores most functionality to both hypercwd and hyper-statusline, though there are still some remaining issues with the Git status bar. Everything relating to the working directory is fully functional. Does any of this help in isolating what the remaining problem might be?

screenshot2

henrikruscon commented 7 years ago

@elmasse Thanks for pointing that out. I'll look into it 👍

@nhejazi Try to update to latest version of statusline and it should restore the git icons ✌️

nhejazi commented 7 years ago

@henrikdahl Confirming that everything works as expected now. Thanks for the help!