The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Term::App::Role::Attrs - Role for terminal-related attributes

VERSION

This document describes version 0.031 of Term::App::Role::Attrs (from Perl distribution Term-App-Roles), released on 2020-06-08.

DESCRIPTION

This role gives several options to turn on/off terminal-oriented features like whether to use UTF8 characters, whether to use colors, and color depth. Defaults are set from environment variables or by detecting terminal software/capabilities.

ATTRIBUTES

use_utf8 => BOOL (default: from env, or detected from terminal)

The default is retrieved from environment: if UTF8 is set, it is used. Otherwise, the default is on if terminal emulator software supports Unicode and language (LANG/LANGUAGE) setting has /utf-?8/i in it.

use_box_chars => BOOL (default: from env, or detected from OS)

Default is 0 for Windows.

interactive => BOOL (default: from env, or detected from terminal)

use_color => BOOL (default: from env, or detected from terminal)

For convenience, this attribute is "linked" with color_depth. Setting use_color will also set color_depth when the value is not ''/1/0 and matches color depth pattern. For example, setting use_color to 256 or '8bit' will also set color_depth to 256.

color_depth => INT (or STR, default: from env, or detected from terminal)

Get/set color depth. When setting, you can use string like '8 bit' or '24b' and it will be converted to 256 (2**8) or 16777216 (2**24).

For convenience, this attribute is "linked" with use_color. Setting color_depth to non-zero value will enable use_color, while setting it to 0 will disable use_color.

term_width => INT (default: from env, or detected from terminal)

term_height => INT (default: from env, or detected from terminal)

METHODS

detect_terminal() => HASH

Call Term::Detect::Software's detect_terminal_cached.

ENVIRONMENT

  • UTF8 => BOOL

    Can be used to set use_utf8.

  • INTERACTIVE => BOOL

    Can be used to set interactive.

  • NO_COLOR

    Can be used to disable color. Takes precedence over COLOR.

    For more information, see https://no-color.org.

  • COLOR => BOOL (or INT or STR)

    Can be used to set use_color. Can also be used to set color_depth (if COLOR_DEPTH is not defined).

  • COLOR_DEPTH => INT (or STR)

    Can be used to set color_depth. Can also be used to enable/disable use_color.

  • BOX_CHARS => BOOL

    Can be used to set use_box_chars.

  • COLUMNS => INT

    Can be used to set term_width.

  • LINES => INT

    Can be used to set term_height.

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/Term-App-Roles.

SOURCE

Source repository is at https://github.com/perlancar/perl-Term-App-Roles.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Term-App-Roles

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020, 2018, 2014 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.