---
title: Chapter 4. Low Vision
part: Part II. Vision
prev: books/accessibility/colors
next: books/accessibility/blindness
description: Assistive technologies for low vision
tags: ["Accessibility", "Low Vision", "Magnify", "Desktop"]
showBookMenu: true
weight: 7
params:
  path: "/books/accessibility/lowvision/"
---

[[lowvision]]
= Low Vision
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 4
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/accessibility/lowvision/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[lowvisin-intro]]
== Introduction

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.

[[kde-hidpi]]
=== KDE Plasma

Open the `_Display Configuration_` module:

[source,shell]
....
% kcmshell6 kcm_kscreen
....

Select the scaling via the `_Global Scale_` bar.
The change will take effect after a KDE Plasma restart.

[[xfce-hidpi]]
=== XFCE

To set a custom scaling factor, for example 4, run the following command:

[source,shell]
....
% xfconf-query -c xsettings -p /Gdk/WindowScalingFactor -s 4
....

Alternatively, HiDPI scaling can be enabled with a fixed 2x factor using the graphical interface.
This option is available in the `_Appearance_` dialog, under the `_Settings_` tab as `_Window Scaling_`.
To open the `_Appearance_` dialog, execute:

[source,shell]
....
% xfce4-appearance-settings
....

[[lowvision-font]]
== Font

The package:x11-fonts/atkinson-hyperlegible[] provides the _atkinson-hyperlegible_ font.
It is designed for good readability, the letter shapes aim to increase character recognition.
To install, execute:

[source,shell]
....
# pkg install atkinson-hyperlegible
....

The remainder of this section describes how to set up fonts in various graphical environments using _atkinson-hyperlegible_ as an example.

[[kde-fonts]]
=== KDE Plasma

KDE allows selecting a font and its size via the `_Fonts_` module.
Run:

[source,shell]
....
% kcmshell6 kcm_fonts
....

Click on the Adjust `_All Fonts..._` button to select the font and its size for all graphical elements.
Alternatively, you can choose the font and size for individual elements using the forms below.

At the bottom of the window, you can also select options such as `_Anti-Aliasing_`, `_Sub-pixel Rendering_`, `_Hinting_`, and `_Force Font DPI_`.
Each option has an icon on the right to open a help dialog.

[[xfce-fonts]]
=== XFCE

XFCE allows you to select the font and size for window titles and content text, as well as the font size for icon labels.

[source,shell]
....
% xfconf-query -c xfwm4 -p /general/title_font -s "Atkinson Hyperlegible 15" <1>
% xfconf-query -c xsettings -p /Gtk/FontName -s "Atkinson Hyperlegible 15" <2>
% xfconf-query -c xsettings -p /Gtk/MonospaceFontName -s "Atkinson Hyperlegible 15" <3>
% xfconf-query -c xfce4-desktop -p /desktop-icons/use-custom-font-size -s true <4>
% xfconf-query -c xfce4-desktop -p /desktop-icons/font-size -s 15.0 <5>
....

<.> Set the window title font to _Atkinson Hyperlegible_, size 15.
<.> Set the window content font to _Atkinson Hyperlegible_, size 15.
<.> Set the monospace font within windows to _Atkinson Hyperlegible_, size 15.
<.> Enable custom font sizing for icons.
<.> Set the icon font size to 15.0.

Alternatively, you can configure the same settings using the graphical XFCE configuration dialogs.

To select the font for window titles, open the `_Window Manager_` dialog:

[source,shell]
....
% xfwm4-settings
....

To choose the font used inside windows, open the `_Appearance_` dialog and go to the `_Fonts_` tab:

[source,shell]
....
% xfce4-appearance-settings
....

[TIP]
====
In the Fonts tab, you can also adjust options such as `_anti-aliasing_`, `_Hinting_`, `_Sub-pixel order_`, and `_Custom DPI_`.
For more details, see the https://docs.xfce.org/xfce/xfce4-settings/appearance#fonts[XFCE documentation].
====

To set the font size for icons, open the `_Desktop_` dialog and go to the `_Desktop Icons_` tab where you can adjust the icon font size:

[source,shell]
....
% xfdesktop-settings
....

[[magnify]]
== Magnify

This section describes various utilities that magnify portions of the screen, acting as virtual magnifying lenses.
Some tools continuously enlarge the area beneath the mouse cursor, while others do not.
Certain utilities automatically move the magnified window to follow the cursor, whereas others keep it fixed in place.

.Screen magnifier utilities.
[options="header", cols="1,1,1,1"]
|===
| Name | Auto Update | Auto Move Lens | Package

| lupe
| Yes
| No
| package:x11/lupe[]

| kmag
| Yes
| No
| package:accessibility/kmag[]

| xlupe
| Yes
| No
| package:x11/xlupe[]

| xmag
| No
| No
| package:x11/xmag[]

| xzoom
| No
| No
| package:x11/xzoom[]

|===

The rest of this section details the steps to install, configure, and launch the utilities.

[[lupe]]
=== lupe

The man:lupe[1] utility is a screen magnifier for the X Window System that updates the magnified area in real time.
To install it, run:

[source,shell]
....
# pkg install lupe
....

By default, lupe magnifies the screen content beneath the mouse pointer within a circular area (25×25 pixels) displayed at the center of the screen.
To start lupe, run:

[source,shell]
....
% lupe
....

To exit lupe, press the `q` key.

[TIP]
====
Start lupe with the `-noshape` option to display the magnified area in a separate, movable window.
Without this option, the magnifier is locked to the center of the screen.
====

[[kmag]]
=== kmag

The man:kmag[1] utility provides a screen magnifier that displays a zoomed view of the area under the mouse cursor in a dedicated window.
The magnifier window includes a menu with various options and settings for customization.

To install kmag, run:

[source,shell]
....
# pkg install kmag
....

To launch kmag, execute:

[source,shell]
....
% kmag
....

[[xlupe]]
=== xlupe

The package:x11/xlupe[] utility is a screen magnifier for the X Window System that updates the magnified view in real time.
To install it, run:

[source,shell]
....
# pkg install xlupe
....

To launch xlupe, execute:

[source,shell]
....
% xlupe
....

The utility does not include a manual page, but it starts in a graphical window with buttons that allow you to configure its options interactively.

[[xmag]]
=== xmag

The man:xmag[1] utility is a basic screen magnifier for the X Window System.
Unlike other magnifiers, it does not update the magnified area in real time.

To install it, run:

To install, execute:

[source,shell]
....
# pkg install xmag
....

To launch xmag, execute:

[source,shell]
....
% mag
....

[NOTE]
====
xmag does not display a magnified area immediately upon launch.
Click anywhere on the screen with the left mouse button to select a region, and xmag will open a window showing a magnified view of that area.
The application window includes a few buttons offering limited functionality.
====

[[xzoom]]
=== xzoom

The man:xzoom[1] utility is a screen magnifier for the X Window System that updates the magnified view in real time.
To install it, run:

[source,shell]
....
# pkg install xzoom
....

To launch xzoom, execute:

[source,shell]
....
% xzoom
....

[NOTE]
====
Unlike other magnifiers, xzoom does not automatically follow the mouse cursor or magnify the area beneath it in its own window.
Interaction is keyboard-driven, refer to man:xzoom[1] for available commands and usage details.
====

[[lowvision-mouse]]
== Mouse

[[mouse-apparance]]
=== Apparance

Some desktop environments allow you to change the size, color, and other graphical properties of the mouse cursor.

[[kde-mouse]]
==== KDE Plasma

KDE Plasma provides the `_Cursors_` module to select the mouse cursor theme and size.
To launch it, run:

[source,shell]
....
% kcmshell6 kcm_cursortheme
....

Select an installed cursor theme in the window.
There is a `_Size_` drop-down menu in the top left corner to choose the mouse cursor size,
available sizes depend on the selected theme.

Click the `_Get New..._` icon in the top right corner to install a new theme.
You can install new themes from the new window.
As a suggestion, search for `_Large Mouse Cursors_`, a black and white high contrast theme.

[[xfce-mouse]]
==== XFCE

XFCE allows you to set the size and color of the mouse pointer via `_Mouse and Touchpad_` dialog.
To run the dialog start:

[source,shell]
....
% xfce4-mouse-settings
....

Then click on the `_Theme_` tab to select a size and a style.

[NOTE]
====
Some themes, included the _Default_, do not support cursor size customization.
====

Alternatively, you can achieve the same result via the `xfconf-query` command.
The following example set the current theme cursur to size 50:

[source,shell]
....
% xfconf-query -c xsettings -n -p /Gtk/CursorThemeSize -s 50
....

[[find-mouse-cursor]]
=== Find Cursor

Some desktop environments provide a visul feedback of the mouse pointer's current position.

[[kde-find-mouse-cursor]]
==== KDE Plasma

KDE Plasma draws two circular lines moving around the mouse cursor.
Open the `Desktop Effects` module:

[source,shell]
....
% kcmshell6 kcm_kwin_effects
....

Enable the `_Track Mouse_` checkbox.
Draw circular lines by pressing `Meta` + `Ctrl` keys.
You can change the shortcut via the `_Configure_` button related to `_Track Mouse_`.

[TIP]
====
On keyboards where the `Meta` key is not present, it is usually replaced by the `Super` key.
Refer to https://en.wikipedia.org/wiki/Meta_key and https://en.wikipedia.org/wiki/Super_key_(keyboard_button) for more information.
====


[[xfce-find-mouse-cursor]]
==== XFCE

Xfce draws large red circles around the mouse pointer.
Type:

[source,shell]
....
% xfce4-find-cursor
....

The above command draws circles for a few seconds.

**Keyboard Shortcut**

XFCE allows to add a keyboard shortcut.
Circles are drawn for as long as the shortcut keys are pressed.
To use the shortcut before enable the feature then choose the key combination to bind to `xfce4-find-cursor`.

Example to enable and bind `Ctrl` + `Super` + `k`:
[source,shell]
....
xfconf-query -c accessibility -p /FindCursor -s true
xfconf-query -c xfce4-keyboard-shortcuts -n -t 'string' -p '/commands/custom/<Ctrl><Super>k' -s xfce4-find-cursor
....

**Keyboard Shortcut via Dialogs**

Alternatively, you can achieve the same result via the XFCE configuration dialogs.
First step, open the XFCE `_Accessibility_` dialog:

[source,shell]
....
% xfce4-accessibility-settings
....

Click on `_Mouse_` tab and enable the `_Show location of pointer on keypress_` checkbox.

Second step, open the XFCE `_Keyboard_` dialog:

[source,shell]
....
% xfce4-keyboard-settings
....

Click on `_Application Shortcuts_` tab.
Click on `_+ Add_` button, it opens the `_Shortcut Command_` dialog.
Write _xfce4-find-cursor_ in the form, then click on the `_OK_` button.
Choose a key combination to bind to `xfce4-find-cursor` in the new dialog.
