+This book covers the assistive technologies available in FreeBSD.
+
+Accessibility is an ongoing effort, not a fixed destination.
+As such, this handbook is a living document and continually evolving.
+Contributions, suggestions, and feedback are highly encouraged.
+If you are interested in contributing, please reach out to us via the https://lists.freebsd.org/subscription/freebsd-accessibility[FreeBSD accessibility mailing list].
+
+You can download this book in various formats and compression options from the FreeBSD download server or one of its many mirror sites.
+This chapter describes assistive technologies for users who are blind, focusing primarily on screen readers and tools designed to work in conjunction with them.
+The chapter deliberately contains no images and aims to minimize the use of elements other than plain text.
+
+[[screen-reader]]
+== Screen Reader
+
+Currently, screen readers function only within the extref:{handbook}x11[X Window System] and are not supported in the crossref:virtual-terminal[virtual-terminal,Virtual Terminal].
+FreeBSD does not currently support Braille displays, so they rely exclusively on speech synthesizers.
+
+[[orca]]
+=== Orca
+
+Orca is a widely used and well-known open source screen reader.
+It offers a comprehensive set of features and is available on FreeBSD through the package:accessibility/orca[] package.
+
+[[orca-install]]
+==== Installation
+
+To install it, execute:
+
+[source,shell]
+....
+# pkg install orca
+....
+
+[[orca-launch]]
+==== Launch
+
+Orca can be launched in several ways.
+From a terminal, type:
+
+[source,shell]
+....
+% orca
+....
+
+Some desktop environments provide a keyboard shortcut to launch Orca:
+
+- XFCE: `Super` + `Alt` + `s`
+- GNOME `Super` + `Alt` + `S`
+
+[TIP]
+====
+The Super key is usually labeled as Windows icon, Command icon, or "Super".
+Refer to https://en.wikipedia.org/wiki/Super_key_(keyboard_button) for more information.
+====
+
+[[orca-usage]]
+==== Usage
+
+Orca provides a manual page: man:orca[1].
+However, most of the documentation is available online.
+The main reference is the starting point in the https://gnome.pages.gitlab.gnome.org/orca/help/[Orca Users Guide], which includes:
+
+ - Getting Started
+ - Reading Documents and Web Pages
+ - Reviewing and Interacting with Screen Contents
+
+The screen reader includes many keyboard commands for navigation and interaction.
+Refer to the https://gnome.pages.gitlab.gnome.org/orca/help/commands.html[Orca's Commands] page for a full list.
+
+[[orca-config]]
+==== Configuration
+
+Orca can be configured through a graphical settings interface. To open it, run:
+
+[source,shell]
+....
+% orca -s
+....
+
+Configuration options are documented on the https://gnome.pages.gitlab.gnome.org/orca/help/preferences.html[Orca's Preferences Dialogs] page.
+
+[[yasr]]
+=== yasr
+
+The package:accessibility/yasr[] utility is a lightweight screen reader that operates exclusively in a terminal environment.
+Yasr requires a speech synthesizer to work.
+Its default configuration file is set up to use package:accessibility/eflite[].
+
+To install both yasr and eflite, run:
+
+[source,shell]
+....
+# pkg install yasr eflite
+....
+
+To start the screen reader, execute:
+
+[source,shell]
+....
+% yasr
+....
+
+The global configuration file for yasr is located at [.filename]#/usr/local/share/yasr/yasr.conf#.
+To create a user-specific configuration file, copy the global one to your home directory:
+For details on configuration options and keyboard shortcuts, refer to man:yasr[1].
+
+[[blindness-ports]]
+== Ports Collection
+
+FreeBSD provides the extref:{handbook}ports[Ports Collection], which offers a simple way to install applications.
+Some ports allow you to configure options before building and installation.
+By default, configuration is handled through a TUI menu not accessible by a screen reader.
+
+The package:ports-mgmt/portoptscli[] utility is a text-only tool specifically designed to configure ports using a screen reader.
+To install it, run:
+
+[source,shell]
+....
+# pkg install portoptscli
+....
+
+Then add to [.filename]#/etc/make.conf#:
+
+[.programlisting]
+....
+DIALOG4PORTS=/usr/local/bin/portoptscli
+....
+
+From now on, the Ports framework will automatically invoke portoptscli whenever a port offers configurable options.
+
+For detailed information about its features and usage, refer to the manual page man:portoptscli[1] and consult the online https://gitlab.com/alfix/portoptscli/-/raw/main/README.txt[README].
+
+[[blindness-editor]]
+== Editor
+
+[[ed]]
+=== ed
+
+The man:ed[1] utility is a line-oriented text editor used to create, view, and modify text files.
+It is included by default in a standard FreeBSD installation.
+To start the editor, run:
+
+[source,shell]
+....
+% ed
+....
+
+ed is a powerful editor.
+Refer to its manual page man:ed[1] for a complete overview of its features and command syntax.
+
+[WARNING]
+====
+ed does not support multibyte characters and may not handle non-ASCII text correctly.
+Alternatively, consider using crossref:blindness[edbrowse,edbrowse], which offers robust text editing features in addition to its browsing capabilities.
+====
+
+[[blindness-internet-web]]
+== Internet and WEB
+
+[[edbrowse]]
+=== Edbrowse
+
+Edbrowse is a text-based browser, editor, IRC chat client, and mail client, specifically designed for screen reader users.
+Its interface is similar to man:ed[1], but with extended functionality.
+
+[[edbrowse-install]]
+==== Installation
+
+To install package:www/edbrowse[], execute:
+
+[source,shell]
+....
+# pkg install edbrowse
+....
+
+[[edbrowse-usage]]
+==== Usage
+
+To launch Edbrowse, run:
+
+[source,shell]
+....
+% edbrowse
+....
+
+The first time you run edbrowse, it will not find the configuration file [.filename]#~/.ebrc#.
+It will automatically create a default configuration file, display a message, and exit:
+
+[source,shell]
+....
+% edbrowse
+Your edbrowse config file is missing; a default file has been created for you.
+Before running edbrowse again, take the time to personalize your config file:
+/home/yournickname/.ebrc
+edbrowse -c to edit
+%
+....
+
+You can now relaunch Edbrowse; it will use the default configuration file.
+To customize it, either run:
+
+[source,shell]
+....
+% edbrowse -c
+....
+
+Or use your preferred text editor, for example:
+
+[source,shell]
+....
+% ed ~/.ebrc
+....
+
+[TIP]
+====
+Example configuration files are provided in [.filename]#/usr/local/share/doc/edbrowse/#.
+These include:
+
+ - sample.ebrc: with comments in English
+ - sample_fr.ebrc: with comments in French
+ - sample_it.ebrc: with comments in Italian
+====
+
+[[edbrowse-doc]]
+==== Documentation
+
+The utility provides a manual page: man:edbrowse[1].
+However, the main documentation is available online in the https://edbrowse.org/usersguide.html[User's Guide].
+
+The package also installs a local copy of the documentation at [.filename]#/usr/local/share/doc/edbrowse/usersguide.html#.
+Translated versions of the user guide are available in the same directory:
+
+ - usersguide_es.html: Spanish
+ - usersguide_fr.html: French
+ - usersguide_pt_br.html: Brazilian Portuguese
+
+[[blindness-liblouis]]
+== Liblouis
+
+package:devel/liblouis[] is a translator for many languages to and from Braille.
+It provides a large number of conversion tables.
+To install, execute:
+
+[source,shell]
+....
+# pkg install liblouis
+....
+
+The package installs both libraries and utilities.
+The translation utility is man:lou_translate[1].
+
+The following example demonstrates how to transcribe the text `FreeBSD Accessibility Handbook` into Braille with English Grade 2 translation table and the unicode.dis display table.
+The final output is Braille encoded as Unicode dot patterns.
+Documentation and additional examples for this utility are available on the project website, specifically in the https://liblouis.io/documentation/liblouis.html#Testing-Translation-Tables-interactively[Testing Translation Tables interactively] section of the official documentation.
+This book covers the assistive technologies available in FreeBSD.
+
+Accessibility is an ongoing effort, not a fixed destination.
+As such, this handbook is a living document and continually evolving.
+Contributions, suggestions, and feedback are highly encouraged.
+If you are interested in contributing, please reach out to us via the https://lists.freebsd.org/subscription/freebsd-accessibility[FreeBSD accessibility mailing list].
+
+You can download this book in various formats and compression options from the FreeBSD download server or one of its many mirror sites.
+Run man:gtk-update-icon-cache[1] to create or update the icon cache:
+
+[source,shell]
+....
+% gtk-update-icon-cache -f -t ~/.icons/treepata
+....
+
+====
+
+[[colors-temperature]]
+== Color temperature
+
+This paragraph explains various utilities that adjust screen colors based on temperature, day/night cycles, and gamma settings.
+These utilities enable both interactive color adjustments and automatic changes based on the local time and geographical location.
+Some utilities are compatible with the extref:{handbook}x11[X Window System], others support extref:{handbook}wayland[Wayland], and some work on both display servers.
+
+.Color Temperature Utilities
+[options="header", cols="1,1,1,1"]
+|===
+| Name | Auto Update | Environment | Package
+
+| darkman
+| Yes
+| X11
+| package:accessibility/darkman[]
+
+| gammastep
+| Yes
+| X11
+| package:accessibility/gammastep[]
+
+| redshift
+| Yes
+| X11, Wayland
+| package:accessibility/redshift[]
+
+| sct
+| No
+| X11
+| package:accessibility/sct[]
+
+| sctd
+| Yes
+| X11
+| package:accessibility/sctd[]
+
+| wlsunset
+| Yes
+| Wayland
+| package:accessibility/wlsunset[]
+
+|===
+
+The rest of this section details the steps to install, configure, and launch the utilities.
+
+[[colors-darkman]]
+=== darkman
+
+man:darkman[1] is a daemon that automatically manages transitions between dark mode and light mode.
+It operates primarily in the background, switching the screen's color scheme based on the local time of the current location.
+To install, run:
+
+[source,shell]
+....
+# pkg install darkman
+....
+
+Create the file [.filename]#~/.config/darkman/config.yaml# and write your latitude and longitude.
+Example:
+
+[.programlisting]
+....
+lat: 37.52
+lng: 122.16
+....
+
+The utility does not directly change the screen colors; instead, it calls external utilities to perform the color transitions.
+Add scripts to be executed at sundown by placing them in [.filename]#$XDG_DATA_DIRS/dark-mode.d/#
+and scripts to be executed at sunrise by placing them in [.filename]#XDG_DATA_DIRS/light-mode.d/#.
+Several https://gitlab.com/WhyNotHugo/darkman/-/tree/main/examples[example scripts] are available in the project repository.
+
+To start darkman manually, run:
+
+[source,shell]
+....
+% darkman run &
+....
+
+The utility also offers some interactive options; for more details refer to the man:darkman[1] manual page.
+
+[[gammastep]]
+=== gammastep
+
+The man:gammastep[1] utility adjusts your screen’s color temperature automatically based on your location.
+To install, run:
+
+[source,shell]
+....
+# pkg install gammastep
+....
+
+The utility works out of the box without any configuration.
+Simply start it by running:
+
+[source,shell]
+....
+% gammastep &
+....
+
+[NOTE]
+====
+If you encounter any issues, customize the configuration by adapting the link:https://gitlab.com/chinstrap/gammastep/-/blob/master/gammastep.conf.sample[gammastep.conf.sample] file and save it as [.filename]#~/.config/gammastep/conf.ini#.
+Refer to the link:https://gitlab.com/chinstrap/gammastep/-/blob/master/README.md[README] for troubleshooting.
+====
+
+[[redshift]]
+=== redshift
+
+The man:redshift[1] utility find your position and sets the color temperature accordingly.
+To install, execute:
+
+[source,shell]
+....
+# pkg install redshift
+....
+
+The redshift utility runs without any configuration.
+To start it, simply execute:
+
+[source,shell]
+....
+% redshift &
+....
+
+The utility might hang while trying to determine the location or the correct method to set the color.
+In this case, specify them explicitly using `-l _latitude:longitude_` and `-m _method_`.
+The available methods can be listed by running: `% redshift -m list`.
+
+Example of running redshift with an explicit location and method:
+
+[source,shell]
+....
+% redshift -l 37.86:-122.27 -m randr &
+....
+
+To make this setting permanent, add the following lines to [.filename]#~/.config/redshift/redshift.conf# file:
+
+[.programlisting]
+....
+[redshift]
+adjustment-method=randr
+location-provider=manual
+
+[manual]
+lat=37.86
+lon=-122.27
+....
+
+[NOTE]
+====
+The project provides a default https://github.com/jonls/redshift/blob/master/redshift.conf.sample[redshift.conf.sample] configuration file.
+For troubleshooting and additional information, please refer to the https://github.com/jonls/redshift/blob/master/README.md[README].
+====
+
+[[sct]]
+=== sct
+
+The man:sct[1] utility is a simple command-line tool for controlling screen color temperature.
+It does not update automatically and must be run repeatedly to adjust the temperature over time.
+To install, execute:
+
+[source,shell]
+....
+# pkg install sct
+....
+
+The utility takes temperature values between 1000 and 10000, 6500 is the default.
+To run sct, type: `sct _value_`:
+
+[source,shell]
+....
+% sct 8000
+....
+
+[TIP]
+====
+The utility suggests 3 styles:
+
+1) Campfire style
+
+[source,shell]
+....
+% sct 4500
+....
+
+2) Dust storm on Mars style
+
+[source,shell]
+....
+% sct 2000
+....
+
+3) Coffee free all nighter style
+
+[source,shell]
+....
+% sct 8000
+....
+====
+
+[[sctd]]
+=== sctd
+
+The sctd utility calculates sunrise and sunset times based on latitude and longitude, and adjusts the screen's color temperature accordingly.
+To install, run:
+
+[source,shell]
+....
+# pkg install sctd
+....
+
+To run sctd, specify your location using the `--latitude` and `--longitude` options:
+
+[source,shell]
+....
+% sctd --latitude 40.55 --longitude 14.34 &
+....
+
+To reset the screen color to default, run:
+
+[source,shell]
+....
+% sctd --reset
+....
+
+[[wlsunset]]
+=== wlsunset
+
+The man:wlsunset[1] utility is a Day/Night gamma adjustments for Wayland compositors.
+
+To install, execute:
+
+[source,shell]
+....
+# pkg install wlsunset
+....
+
+To start the utility type `wlsunset -l _latitude_ -L _longitude_`.
+Example:
+
+[source,shell]
+....
+% wlsunset -l 14.34 -L 40.55 &
+....
+
+[[colors-ports]]
+== Ports Collection
+
+FreeBSD provides the extref:{handbook}ports[Ports Collection], which offers a simple way to install applications.
+Some ports allow you to configure options before building and installation.
+By default, configuration is handled through a TUI menu built by the package:ports-mgmt/portconfig[].
+The colors can be customized in several ways:
+
+. Terminal color capabilities.
+. The $NO_COLOR environment variable.
+. The $PORTCONFIG_THEMEFILE environment variable.
+. The global [.filename]#/usr/local/etc/portconfig/theme.conf# file.
+
+[NOTE]
+====
+These methods are listed in order of decreasing priority and are mutually exclusive, meaning only one can be active at a time.
+====
+
+*1. Terminal Colors*
+
+man:portconfig[1] automatically detects whether the terminal supports colors.
+If not, it defaults to a black-and-white theme.
+
+*2. NO_COLOR*
+
+If the `$NO_COLOR` environment variable is set and not empty, portconfig forces the black-and-white theme
+
+.Example persistent setting `$NO_COLOR`
+[example]
+====
+[.filename]#/etc/make.conf#
+
+[.programlisting]
+....
+export NO_COLOR=YES
+....
+====
+
+*3. PORTCONFIG_THEMEFILE*
+
+If the `$PORTCONFIG_THEMEFILE` environment variable is set and points to a valid theme file, it will be used.
+This chapter provides resources for developers seeking to make their programs accessible, test accessibility, and improve the accessibility of their software.
+
+[[devel-colors]]
+== Colors
+
+Do not assume that users can distinguish all (or even any of) the colors used in your program.
+While official statistics on the prevalence of color blindness are lacking, it is estimated that approximately 5% of the population is affected by some form of it, whether partial or total.
+
+[[devel-color-guidelines]]
+=== Colors Guidelines
+
+Avoid using color as the sole means of conveying information.
+If color must be used, provide a straightforward and well-documented method for configuring color settings.
+Where possible, ensure support for the `$NO_COLOR` environment variable to accommodate user preferences.
+
+[[devel-color-checkers]]
+=== Colors Checker
+
+The package:graphics/kontrast[] package provides the Kontrast GUI utility to check if the color combinations are distinct enough to be readable and accessible.
+To install:
+
+[source,shell]
+....
+# pkg install kontrast
+....
+
+[[devel-cli]]
+== Command Line Interface
+
+The CLI is generally considered accessible by a screen reader.
+However, it is important to understand some concepts, follow best practices, and avoid certain mistakes to ensure an accessible UI.
+
+Dahlke, Karl. _Command Line Programs for the Blind_.
+This article discusses the concept of presenting information in one dimension and addresses the accessibility challenges inherent in programs designed exclusively for sighted users.
+
+Sampath, H., Merrick, A., & Macvean, A. (2021).
+Accessibility of Command Line Interfaces.
+In Proceedings of the CHI Conference on Human Factors in Computing Systems (CHI '21).
+This paper presents guidelines and common pitfalls to avoid when designing command-line interfaces that are accessible to screen reader users.
+
+[[devel-libs]]
+== Libraries
+
+[[devel-at-spi]]
+=== Gnome
+
+AT-SPI (Assistive Technology Service Provider Interface), package:accessibility/at-spi2-core[], is a framework that establishes a communication channel between applications and assistive technologies.
+To install, execute:
+
+[source,shell]
+....
+# pkg install at-spi2-core
+....
+
+AT-SPI offers a wide range of features. For more information, refer to the following resources:
+and https://wiki.gnome.org/Accessibility[GNOME Accessibility Team Wiki].
+
+[TIP]
+====
+Some wrappers are available: package:accessibility/rubygem-atk[] (Ruby), package:accessibility/py-atspi[] (Python), and package:accessibility/atkmm[] (C++).
+====
+
+[[devel-qt]]
+=== QT
+
+package:accessibility/libqaccessibilityclient[] establishes a communication channel between applications and assistive technologies.
+In particular, it provides a bridge between applications built with Qt and the AT-SPI framework crossref:development[devel-at-spi,previously described].
+For full documentation, refer to the https://api.kde.org/libqaccessibilityclient/html/index.html[API Reference] and the https://github.com/KDE/libqaccessibilityclient[official repository].
+To install:
+
+[source,shell]
+....
+# pkg install libqaccessibilityclient
+....
+
+Libraries package:accessibility/qt5-speech[] and package:accessibility/qt6-speech[] provide access to a Text-To-Speech functionality (specifically to package:accessibility/speech-dispatcher[]).
+Documentation is available at https://doc.qt.io/archives/qt-5.15/qtspeech-index.html and https://doc.qt.io/qt-6/qttexttospeech-index.html.
+To install, run:
+
+[source,shell]
+....
+# pkg install qt5-speech
+# pkg install qt6-speech
+....
+
+=== Speech Synthesis
+
+package:accessibility/speech-dispatcher[] provides a simple, high level, and device independent layer for access to Speech Synthesizers.
+To install, run:
+
+[source,shell]
+....
+# pkg install speech-dispatcher
+....
+
+For detailed documentation, refer to the official Speech Dispatcher website: https://freebsoft.org/speechd.
+
+[TIP]
+====
+A Python wrapper for the library is provided by the package:accessibility/py-speech-dispatcher[].
+====
+
+[[devel-liblouis]]
+=== Liblouis
+
+package:devel/liblouis[] provides an API for translating many languages to and from Braille.
+To install, execute:
+
+[source,shell]
+....
+# pkg install liblouis
+....
+
+The library provides many features, https://liblouis.io/documentation/[documented on the liblouis project website].
+
+[TIP]
+====
+Liblouis provides also a Python API, https://liblouis.io/documentation/liblouis.html#Python-bindings[Python bindings].
+====
+
+[[devel-tools]]
+== Tools
+
+package:accessibility/accerciser[] provides an accessibility inspection tool for applications developed for the extref:{handbook}desktop/#gnome-environment[GNOME] desktop environment.
+To install it, run:
+
+[source,shell]
+....
+# pkg install accerciser
+....
+
+For detailed usage and features, refer to man:accerciser[1].
+Additional documentation is available in the https://gitlab.gnome.org/GNOME/accerciser/-/blob/master/README.md[REAMDE.md]
+and the https://help.gnome.org/users/accerciser/stable/index.html.en[Accerciser User Guide].
+Mailing lists are the primary communication channel for the FreeBSD community, covering a wide range of topics related to the project.
+Messages are typically written in plain text without graphical elements, making them well-suited for use with screen readers (both Braille displays and speech synthesizers).
+A complete list of available mailing lists can be found at: https://lists.freebsd.org/.
+
+For accessibility issues, the main point of contact is the FreeBSD Accessibility Mailing List.
+To subscribe, browse the archive, send messages, or manage your subscription, visit: https://lists.freebsd.org/subscription/freebsd-accessibility
+
+[[help-chat]]
+== Chat
+
+FreeBSD users and developers are also active on IRC (Internet Relay Chat), where real-time communication takes place.
+A complete list of servers and channels is available at: https://wiki.freebsd.org/IRC/Channels
+Messages are typically exchanged in plain text, making IRC well-suited for screen readers (both Braille displays and speech synthesizers).
+
+[[help-ports-pkgs]]
+== Ports and Packages
+
+If the issue pertains to an external tool installed through a extref:{handbook}ports[port or package], consider including the port maintainer in the discussion to ensure proper attention and resolution.
+
+To find out who maintains a specific port, navigate to the port's directory and run the command `make maintainer`.
+For example, to find the maintainer of the package:www/edbrowse[] port, run:
+
+[source,shell]
+....
+% cd /usr/ports/www/edbrowse
+% make maintainer
+....
+
+To find the maintainer of an installed package, use the `pkg info -f _package_`.
+This chapter outlines accessibility features available in graphical desktop environments designed for users with low vision, such as virtual magnifiers, easy-to-read fonts, and screen scaling.
+
+[[hidpi]]
+== Desktop Size
+
+Graphical environments allow users to adjust the desktop display size, a feature commonly known as screen scaling or HiDPI scaling.
+The goal is to enlarge desktop elements such as icons, text, and windows to improve visibility and accessibility.
+
+[[xfce-hidpi]]
+=== XFCE
+
+To set a custom scaling factor, for example 4, run the following command:
+Section for Assistive technologies for vision accessibility.
+
+The operating system provides two main interfaces for user interaction: Virtual Terminal and several Desktop Environments.
+
+Virtual Terminal, commonly referenced and documented as man:vt[4] is the system's built-in extref:{handbook}ports[virtual console].
+It is installed by default, provides a command-line interface, and starts automatically at boot.
+Its features relevant to vision accessibility are detailed in the crossref:virtual-terminal[virtual-terminal,Virtual Terminal] chapter.
+
+Desktop environments provide graphical elements, such as windows, menus, buttons, and so on.
+They can be installed using extref:{handbook}ports[ports and packages];
+refer to Chapters extref:{handbook}x11[X Window System], extref:{handbook}wayland[Wayland], and extref:{handbook}desktop[Desktop Environments] of the FreeBSD Handbook.
+This section explains how to install, configure, and use color schemes, themes, and visual accessibility features designed to support users with low vision or blindness in graphical environments.
+ - `_colornum_` is the numeric identifier of the color to be customized (see the table below).
+ - `_colorspec_` is a specification of the color, either as a comma-separated RGB triplet (red, green, and blue, each value from 0 to 255) or as an HTML-style hexadecimal value.
+
+.Default palette: Color, color number, default color in rgb, default color in html.
+[options="header", cols="1,1,1,1"]
+|===
+| Color | _colornum_ | default _colorspec_ RGB | default _colorspec_ html
+
+| Black
+| 0
+| 0,0,0
+| #000000
+
+| Dark red
+| 1
+| 127,0,0
+| #7f0000
+
+| Dark green
+| 2
+| 0,127,0
+| #00ff00
+
+| Dark yellow
+| 3
+| 196,161,0
+| #c4a100
+
+| Dark blue
+| 4
+| 51,102,163
+| #3366a3
+
+| Dark magenta
+| 5
+| 127,0,127
+| #7f007f
+
+| Dark cyan
+| 6
+| 0,127,127
+| #007f7f
+
+| Light gray
+| 7
+| 191,191,191
+| #bfbfbf
+
+| Dark gray
+| 8
+| 115,130,138
+| #73828a
+
+| Light red
+| 9
+| 255,0,0
+| #ff0000
+
+| Light green
+| 10
+| 0,255, 0
+| #00ff00
+
+| Light yellow
+| 11
+| 255,255,0
+| #ffff00
+
+| Light blue
+| 12
+| 115,158,207
+| #739ecf
+
+| Light magenta
+| 13
+| 255,0,255
+| #ff00ff
+
+| Light cyan
+| 14
+| 0,255,255
+| #00ffff
+
+| White
+| 15
+| 255,255,255
+| #ffffff
+
+|===
+
+[[vt4-example-loader-conf-colors]]
+.Set background in white, text in black, boot messages in red.
+[example]
+====
+[.filename]#/boot/loader.conf#
+
+[.programlisting]
+....
+# Background black to white
+kern.vt.color.0.rgb="255,255,255"
+
+# Text light gray to black
+kern.vt.color.7.rgb="0,0,0"
+
+# Boot white to red
+kern.vt.color.15.rgb="255,0,0"
+
+....
+====
+
+[[vidcontrol]]
+=== Vidcontrol
+
+The man:vidcontrol[1] utility allows you to configure colors interactively.
+Use the `show` option to display the list of available colors:
+
+[source,shell]
+....
+% vidcontrol show
+....
+
+To set the foreground color, use `vidcontrol _color_`.
+For example, to set the text color to green:
+
+[source,shell]
+....
+% vidcontrol green
+....
+
+To set both foreground and background colors, use `vidcontrol _foreground_ _background_`.
+For example, to set blue text on a green background:
+
+[source,shell]
+....
+% vidcontrol blue green
+....
+
+Configurations made with man:vidcontrol are not persistent across shutdown.
+To make the settings permanent, add the following line to man:rc.conf[5]:
+Setting allscreens_flags="-c _colors_" in [.filename]#/etc/rc.conf# takes effect after the system boots.
+To change the colors during the boot process, edit [.filename]#/boot/loader.conf# as crossref:virtual-terminal[vt4-colors-loader,previously described].
+====
+
+[[vt4-resolution]]
+== Resolution
+
+The `kern.vt.fb.default_mode="<width>x<height>"` option in man:loader.conf[5] allows you to configure the display resolution.
+Technically, it specifies the display mode of the Virtual Terminal, allowing you to control the size of elements displayed on the screen.
+
+[[vt4-example-resolution]]
+.Sets the width to 800 and the height to 600.
+[example]
+====
+[.filename]#/boot/loader.conf#
+
+[.programlisting]
+....
+kern.vt.fb.default_mode="800x600"
+
+....
+====
+
+[[vt4-font]]
+== Font
+
+Virtual Terminal allows you to configure the font in use, and the system supports installing and utilizing additional fonts.
+
+[[vt4-select-font]]
+=== Select a Font
+
+The utilities man:vidfont[1] and man:vidcontrol[1] can load a font from [.filename]#/usr/share/vt/fonts/#.
+To list the currently available fonts:
+
+[source,shell]
+....
+% ls /usr/share/vt/fonts
+....
+
+Usually a file name has the format `<name>-<width>x<height>`, where:
+
+ - `<name>` is the font name.
+ - `<width>x<height>` is the size.
+
+man:vidfont[1] provides an interactive menu in a Text User Interface to select a font.
+Run the following command:
+
+[source,shell]
+....
+% vidfont
+....
+
+Alternatively, man:vidcontrol[1] provides a CLI, `vidcontrol -f _font_`.
+Example for `spleen-32x64.fnt`:
+
+[source,shell]
+....
+% vidcontrol -f spleen-32x64.fnt
+....
+
+[TIP]
+====
+Tip: You can omit the _.fnt_ extension when specifying the file name.
+For example, to load `spleen-32x64.fnt`, use:
+
+[source,shell]
+....
+% vidcontrol -f spleen-32x64
+....
+====
+
+Settings configured with either utility are not preserved after a reboot.
+
+[[vt4-vidcontrol-font-rc]]
+.Select the font to load at each startup.
+[example]
+====
+[.filename]#/etc/rc.conf#
+
+[.programlisting]
+....
+allscreens_flags="-f spleen-32x64.fnt"
+
+....
+====
+
+[[vt4-new-font]]
+=== New Fonts
+
+The man:vtfontcvt[8] utility allows you to convert a font into the .fnt format for use in the Virtual Terminal.
+The converted font must be copied to [.filename]#/usr/share/vt/fonts/# and selected as crossref:virtual-terminal[vt4-select-font,previously described].
+
+[[vt4-bell]]
+== Bell
+
+The terminal bell can be activated by:
+
+[source,shell]
+....
+# sysctl kern.vt.enable_bell=1
+....
+
+To make the configuration persistent after reboot, save it in either man:loader.conf[5] or man:sysctl.conf[5].