DirectMyFile / console.dart

Console Library
Other
107 stars 24 forks source link

OS Error: Inappropriate ioctl for device, errno = 25 #28

Closed cameralis closed 2 years ago

cameralis commented 3 years ago

This is the entire code:

import 'package:console/console.dart';

void main() {
  Keyboard.init();
}

This is the error message

Unhandled exception:
StdinException: Error setting terminal echo mode, OS Error: Inappropriate ioctl for device, errno = 25
#0      Stdin.echoMode=  (dart:io-patch/stdio_patch.dart:84:7)
#1      Keyboard.init  package:console/src/keyboard.dart:45
#2      main bin/main.dart:4
#3      _startIsolate.<anonymous closure>  (dart:isolate-patch/isolate_patch.dart:301:19)
#4      _RawReceivePortImpl._handleMessage  (dart:isolate-patch/isolate_patch.dart:168:12)
henaff commented 2 years ago

Same for me at .bindKey('enter')

import 'dart:developer';

import 'package:flutter/material.dart';
import "package:console/console.dart" as k;

void main() {
  k.Console.init();

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  TextEditingController _controller = TextEditingController();
  FocusNode _focusNode = FocusNode();

  @override
  void initState() {
    super.initState();

    _focusNode.requestFocus();

    k.Keyboard
      .bindKey('enter')
      .listen((_) {
        log('Enter');
      });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: TextField(
          focusNode: _focusNode,
          controller: _controller,
          keyboardType: TextInputType.multiline,
        )
      ),
    );
  }
}