artisanal_pty 0.1.1 copy "artisanal_pty: ^0.1.1" to clipboard
artisanal_pty: ^0.1.1 copied to clipboard

An embeddable ANSI terminal emulator and pty2 widget for Artisanal.

example/main.dart

import 'dart:io';

import 'package:artisanal/runtime.dart' as runtime;
import 'package:artisanal_pty/widgets.dart';
import 'package:artisanal_widgets/app.dart';
import 'package:pty2/pty2.dart';

Future<void> main() async {
  final (:executable, :arguments) = _defaultShell();
  final pty = PseudoTerminal.start(
    executable,
    arguments,
    environment: {...Platform.environment, 'TERM': 'xterm-256color'},
    workingDirectory: Directory.current.path,
    ackProcessed: true,
    raw: false,
  );

  try {
    await runWidgetApp(
      ArtisanalApp(
        title: 'Artisanal PTY',
        home: PseudoTerminalView(pty: pty),
      ),
      options: runtime.ProgramOptions().withoutInterruptMsg(),
    );
  } finally {
    pty.kill();
  }
}

({String executable, List<String> arguments}) _defaultShell() {
  if (Platform.isWindows) {
    return (
      executable: Platform.environment['COMSPEC'] ?? 'powershell.exe',
      arguments: const [],
    );
  }

  return (
    executable: Platform.environment['SHELL'] ?? '/bin/sh',
    arguments: const ['-i'],
  );
}
0
likes
150
points
94
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

An embeddable ANSI terminal emulator and pty2 widget for Artisanal.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

artisanal, artisanal_widgets, characters, pty2

More

Packages that depend on artisanal_pty