-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fatal: Micro could not initialize a Screen. #2442
Comments
I can't able to reproduce your problem, seems works fine for me, no issue at all. Can you try micro on xfce terminal, by doing |
It works on Budgie |
I can reproduce on Arch
No issues with
|
Hi, I am having same issue on Arch Linux Sway (Wayland) using Alacritty terminal.
Installed using Any news on this issue ? |
Same issue on OpenBSD -current (either installed from packages, or built from scratch from upstream master): obsd$ micro obsd$ micro -version |
For OpenBSD is fails due to : golang/go#63900 |
On Mon, 29 Apr 2024 07:51:29 -0700
Joel Sing ***@***.***> wrote:
@vazub @rosco-pc - the most likely cause is code that is calling
`syscall.Syscall*` - either directly in this code base, in a
dependency or an out-of-date dependency. Running under `egdb` with a
breakpoint on the `syscall.Syscall*` functions should identify the
source of the call.
It is running syscall.Syscall6 in the tcell dependency (also from
zyedidia :))
From a mail chain on openbsd ports:
… > On Sun, 7 Apr 2024 12:21:14 -0400
> George Koehler ***@***.***> wrote:
>
> > On Sun, 7 Apr 2024 15:57:26 +0200
> > Rob Schmersel ***@***.***> wrote:
> >
> > > I tracked it down to the use of syscall in the tcell package
> > > file tscreen_bsd.go (line 46)
> > >
> > >
> > > > fd = uintptr(t.out.(*os.File).Fd())
> > > > if _, _, e1 := syscall.Syscall6(syscall.SYS_IOCTL, fd,
> > > > ioc, tios, 0, 0, 0); e1 != 0 { e = e1
> > > > goto failed
> > > > }
> >
> > Joel Sing patched our lang/go to allow SYS_IOCTL in Syscall, but
> > not in Syscall6. I tried changing Syscall6 to Syscall in
> > tscreen_bsd.go. The "function not implemented" error stopped
> > appearing, but
> >
> I think there is a reason why Syscall6 was used instead of Syscall
> (i.e. number of arguments). Just removing the last 3 arguments now
> makes the last argument (tios) be a pointer (at least according to
> the syscall package description) which I'm not sure is the
> intention and probably the reason for the black screen :)
>
> So I guess I need to look at the syscall package to figure what
> changes where made for Syscall. Will give it go later today.
>
> > - micro got stuck on a black screen; I needed to close the
> > terminal.
> Got the same after patching
>
> > - I can't add my patch to the port, because "make update-patches"
> > doesn't see it. The file is outside WRKSRC, in
> > ***@***.***
> >
>
> Yeah, the tcell package is a dependency that gets pulled in during
> compilation. We need to request upstream to patch or get tcell as an
> own package once it is figured out what is the cause (it definitely
> used to work before :))
>
> > --- tscreen_bsd.go.orig.port Sun Apr 7 11:53:03 2024
> > +++ tscreen_bsd.go Sun Apr 7 11:57:57 2024
> > @@ -43,7 +43,7 @@
> > tios = uintptr(unsafe.Pointer(t.tiosp))
> > ioc = uintptr(syscall.TIOCGETA)
> > fd = uintptr(t.out.(*os.File).Fd())
> > - if _, _, e1 := syscall.Syscall6(syscall.SYS_IOCTL, fd,
> > ioc, tios, 0, 0, 0); e1 != 0 {
> > + if _, _, e1 := syscall.Syscall(syscall.SYS_IOCTL, fd,
> > ioc, tios); e1 != 0 { e = e1
> > goto failed
> > }
> > @@ -61,7 +61,7 @@
> > tios = uintptr(unsafe.Pointer(&newtios))
> >
> > ioc = uintptr(syscall.TIOCSETA)
> > - if _, _, e1 := syscall.Syscall6(syscall.SYS_IOCTL, fd,
> > ioc, tios, 0, 0, 0); e1 != 0 {
> > + if _, _, e1 := syscall.Syscall(syscall.SYS_IOCTL, fd,
> > ioc, tios); e1 != 0 { e = e1
> > goto failed
> > }
> > @@ -94,7 +94,7 @@
> > fd := uintptr(t.out.(*os.File).Fd())
> > ioc := uintptr(syscall.TIOCSETAF)
> > tios := uintptr(unsafe.Pointer(t.tiosp))
> > - syscall.Syscall6(syscall.SYS_IOCTL, fd, ioc,
> > tios, 0, 0, 0)
> > + syscall.Syscall(syscall.SYS_IOCTL, fd, ioc, tios)
> > t.out.(*os.File).Close()
> > }
> > if t.in != nil {
> > @@ -108,8 +108,8 @@
> > dim := [4]uint16{}
> > dimp := uintptr(unsafe.Pointer(&dim))
> > ioc := uintptr(syscall.TIOCGWINSZ)
> > - if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL,
> > - fd, ioc, dimp, 0, 0, 0); err != 0 {
> > + if _, _, err := syscall.Syscall(syscall.SYS_IOCTL,
> > + fd, ioc, dimp); err != 0 {
> > return -1, -1, err
> > }
> > return int(dim[1]), int(dim[0]), nil
> >
>
|
Description of the problem or steps to reproduce
Fatal: Micro could not initialize a Screen.
Install from
curl https://getmic.ro | bash
and run it.Specifications
Running KDE Plasma on Arch Linux, I am using Konsole
Commit hash: b976385
OS: Arch Linux
Terminal: Konsole
The text was updated successfully, but these errors were encountered: