Perl6 programmatic interface for manipulating GNU screen sesssions
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib Deal with new Proc::Async constructor API, what we were using got dep… Dec 30, 2016
t Skip tests if screen is too old. Update Jan 29, 2016
.travis.yml See if we can get test output to show up. Jan 29, 2016
LICENSE Use legal name in LICENSE Nov 21, 2015
META6.json Use SPDX identifier in license field of META6.json Apr 21, 2017
META6.yaml Skip tests if screen is too old. Update Jan 29, 2016


Perl6 programmatic interface for manipulating GNU screen sesssions


This is in "release early" status. Basic use of Proc::Screen may work and Test::Screen may also work, but has very few available tests. The version of GNU screen must be 4.02 (a.k.a. 4.2) or greater since there is no way I know of to get the session ID back from a detached launch on prior versions.


Proc::Screen currently allows you to silently create screen sessions and send commands to them. Eventually managing previously created screen sessions and support for programmatic generation of screenrc and screen commandlines is planned, but for now the main objective is to provide only what Test::Screen needs.


Test::Screen will allow development environments that contain or interface to interactive terminal applications to run non-interactive tests on an emulated terminal. This is not as thorough as interactive tests on actual terminals, but it is better than no testing at all.

External Requirements

GNU screen wil not be available everywhere that a Perl6 application may be installed, so both packages gracefully "pass" tests unless it is detected. To actually run tests, screen should be installed and from the perspective of the test environment, should be findable as an executable named "screen" -- this does not need to be the case for general use, as the package can work with custom installations, it just needs to be that way for automated testing.