vercel / vercel/hyper

`ioctl` system call returning the wrong result

Open
#7,375 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
44.7k
Forks
3.6k
Avg merge
21m
Merged PRs (30d)
1

Description

  • Your Hyper.app version is 3.4.1. 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):

No

  • Is the issue reproducible in vanilla Hyper.app?

Yes

Issue

Can't use ioctl to get the correct value of xpixel and ypixel:

let s = unsafe {
	let s: winsize = std::mem::zeroed();
	ioctl(STDOUT_FILENO, TIOCGWINSZ, &s);
	s
};
dbg!(s.ws_col, s.ws_row, s.ws_xpixel, s.ws_ypixel);
image

There are both zero, which causes some apps don't work.


  • Hyper version: undefined "3.4.1"
  • OS ARCH VERSION: darwin arm64 22.5.0
  • Electron: 20.3.6 LANG: undefined
  • SHELL: /opt/homebrew/bin/zsh 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": []
}

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The report names no source file or test entry point. Start by tracing Hyper's terminal resize handling on macOS and reproducing the ioctl behavior on darwin arm64 with the supplied Rust snippet; done means xpixel and ypixel return correct values and affected applications work.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, typescript
Domain
cli, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.