# Desktop Settings

---

# Desktop Settings

_Peios / Using Peios / Desktop Settings_

> What Desktop Settings holds — your own wallpaper, clock, dock, keyboard shortcuts and default apps, and the machine's defaults for everyone — and how a person's choice, the machine's and the built-in default stack.

Open **Desktop Settings** from the launcher (type `desktop`) to change
your wallpaper, clock, dock, keyboard shortcuts and default apps. Use
**For You** for your own choices and **All Users** for the machine's
defaults.

Settings that belong to the machine rather than the desktop live in
System Settings, and a person's own account settings, such as their
password and language, in My Settings.

## For you, and for all users

The window has two groups of sections.

| Group | Sections | Kept in |
|---|---|---|
| **For You** | Wallpaper, Clock, Dock, Keyboard Shortcuts, Default Apps | Your own part of the registry, under `CurrentUser\` |
| **All Users** | Sign-In Screen, Desktop, Keyboard Shortcuts, Default Apps, Advanced | The machine's, under `Machine\` |

Anyone may change their own settings. The machine's are, as shipped,
for Administrators to change; anyone else sees them read-only, with the
reason said once at the top of the section.

## How the choices stack

Most settings exist at three levels, and the nearest one that is set
wins:

1. **Your choice**, if you have made one.
2. **The machine's**, set under All Users, for everyone who hasn't
   chosen.
3. **The built-in default**, what Peios does when nobody has chosen.

Desktop Settings calls the second and third together the **System
Default**: choosing System Default for yourself removes your choice, so
the machine's (or the built-in) applies to you again.

## When changes take effect

For your personal settings, a switch or a choice from a list applies the
moment it is made; a typed value applies with the **Apply** button that
appears beside it once it has changed. What a change did is said along
the bottom of the window.

Some [settings for all users](/peios/using-peios/desktop-settings/for-all-users.md) take
effect later: sign-in-screen settings and a new listen address apply when
GXWI next starts, and icon themes apply to new desktop sessions.
Changes that could cut people off, such as the address GXWI listens on,
ask first, under their row.

## Where to start

- [Wallpaper, clock and dock](/peios/using-peios/desktop-settings/wallpaper-clock-and-dock.md)
- [Keyboard shortcuts](/peios/using-peios/desktop-settings/keyboard-shortcuts.md)
- [Default apps](/peios/using-peios/desktop-settings/default-apps.md)
- [Settings for all users](/peios/using-peios/desktop-settings/for-all-users.md)

## Desktop components

For troubleshooting or advanced configuration, the desktop consists of
GXWI, which serves it; Fenestra, which arranges the windows; and fenesh,
which provides the top bar, dock and launcher. Desktop Settings ships
with fenesh. The settings that select those components are under
[Advanced](/peios/using-peios/desktop-settings/for-all-users.md#advanced).

---

# Wallpaper, clock and dock

_Peios / Using Peios / Desktop Settings_

> Choose your wallpaper from the pictures Peios ships or one of your own, set the top bar's clock to 12 or 24 hours, and go back to the System Default dock, in Desktop Settings or the registry.

These are the **For You** sections of Desktop Settings. Each applies to you
alone, and only once you have chosen: until then you have the machine's
choice, and failing that the built-in one.

## Wallpaper

**Wallpaper** shows the pictures you can choose from:

- **System Default**, the machine's wallpaper, or the built-in one when the
  machine has none;
- the wallpapers Peios ships, kept in `/usr/share/wallpapers/peios`, in
  four series: Contours (**Strata**, the built-in one, **Fold**, **Chalk**
  and **Relief**), Afterglow (**Cast Glass**, **Veil** and **Amber**),
  Elsewhere (**Escarpment**, **Canopy**, **Mare** and **Saltpan**) and
  Impressions (**Upland** and **Winter Ridge**);
- your own picture, once you have chosen one.

Click one to use it. **Choose Picture…** opens the file dialog for a
picture of your own: a PNG, JPEG, SVG, WebP, AVIF or GIF of up to 16 MB,
that you can read. The desktop changes at once, on every screen you are
signed in on.

The choice is the picture's path, `CurrentUser\Software\fenesh` `Wallpaper`
(`REG_SZ`). Deleting the value is System Default. A path that can't be
read, isn't a picture or is too large is ignored and the next level down
is used.

## Clock

**Time Format** sets how the clock in the top bar counts the hours:
**24-Hour (14:05)**, **12-Hour (2:05 PM)**, or **System Default**, which is
the machine's choice, else 24-hour. It is `CurrentUser\Software\fenesh`
`ClockHours`, a `REG_DWORD` of 12 or 24; any other number is ignored.

The clock shows the time in the machine's time zone, which is set in
System Settings; see [the time zone](/peios/using-peios/time/time-zone-and-setting-the-clock.md).

## Dock

The apps pinned to your dock are changed from the dock and the launcher
themselves: right-click an app to pin or unpin it, and drag a pin to move
it. Your first change makes your own set; until then the dock shows the
machine's pins.

**Dock** shows whose pins you have. **Use System Default** throws your own
set away, so the machine's applies to you again. Your set is
`CurrentUser\Software\fenesh` `Pinned`, a `REG_MULTI_SZ` of application ids
in order.

**Get Started**, under **Show Again**, opens the welcome you saw on your
first sign-in, and shows it again at your next one if it can't open now.

## Where to go next

- [Keyboard shortcuts](/peios/using-peios/desktop-settings/keyboard-shortcuts.md)
- [Settings for all users](/peios/using-peios/desktop-settings/for-all-users.md), where an
  administrator sets the machine's wallpaper, clock and pins

---

# Keyboard shortcuts

_Peios / Using Peios / Desktop Settings_

> Change the desktop's keyboard shortcuts by pressing the keys you want, put them back, and set them for everyone — with every action, its id and its built-in default, and where each choice is kept in the registry.

The desktop's keyboard shortcuts work wherever the keyboard is, in any
window. Each **action**, such as moving to the next workspace, can have
several shortcuts, or none.

## Changing a shortcut

In Desktop Settings, **Keyboard Shortcuts** under **For You** lists every
action, grouped into **Launcher & Dock** and **Windows & Workspaces**, with
its shortcuts as keys.

- **+ Add**, then press the keys you want. Holding Ctrl or Alt on its own is
  waited past; press Esc, or click elsewhere, to stop without changing
  anything.
- **×** on a shortcut removes it. An action with none says **None**.
- **Reset** puts one action back to the System Default; **Reset All to
  System Default** puts them all back.

A shortcut must include Ctrl, Alt or Meta, since the desktop takes it from
every window, a text field included, and a key on its own is met while
typing. The browser keeps a few shortcuts for itself, such as Ctrl+W, Ctrl+T
and F11, and those can't be used. A shortcut already assigned to another
action is refused, with which; remove it there first.

**Open Dock Item** is set by modifiers, not a whole shortcut: `Alt` means
Alt+1 to Alt+9, one for each of the first nine items in the dock. To change
it, press **Change**, then hold the new modifiers and press any number.

Changes apply at once, in every window of yours.

## The actions

| Action | Id | Built-in default |
|---|---|---|
| Toggle Launcher | `Launcher` | Ctrl+Space, Alt+P |
| Open Dock Item | `DockItem` | Alt (with 1 to 9) |
| Focus Previous Tile | `PreviousTile` | Alt+J |
| Focus Next Tile | `NextTile` | Alt+K |
| Previous Workspace | `PreviousWorkspace` | Ctrl+Alt+←, Ctrl+Alt+J |
| Next Workspace | `NextWorkspace` | Ctrl+Alt+→, Ctrl+Alt+K |
| Move Window to Previous Workspace | `MoveToPreviousWorkspace` | Ctrl+Alt+Shift+←, Ctrl+Alt+Shift+J |
| Move Window to Next Workspace | `MoveToNextWorkspace` | Ctrl+Alt+Shift+→, Ctrl+Alt+Shift+K |

## Where they are kept

Each action's shortcuts are one `REG_SZ` value, named by its id, in:

| Key | Whose |
|---|---|
| `CurrentUser\Software\Fenestra\Shortcuts` | Yours |
| `Machine\Software\Fenestra\Shortcuts` | The machine's, for everyone who hasn't chosen |

Your value is used if there is one, else the machine's, else the built-in
default. The data is the shortcuts separated by spaces, each written as
its keys joined by `+`, for example `Ctrl+Alt+ArrowLeft Ctrl+Alt+J`.
**Open Dock Item**'s is its modifiers alone, such as `Alt` or `Ctrl+Alt`.

An empty value is an action with no shortcut, which is different from no
value, which leaves the next level in force. A value that isn't a
`REG_SZ`, or that holds anything that isn't a shortcut the desktop may
take, is ignored as a whole and the next level is used; nothing repairs
it.

```
$ reg set 'CurrentUser\Software\Fenestra\Shortcuts' Launcher 'sz:Ctrl+Space'
```

## Where to go next

- [Default apps](/peios/using-peios/desktop-settings/default-apps.md)
- [Settings for all users](/peios/using-peios/desktop-settings/for-all-users.md), for the
  machine's shortcuts

---

# Default apps

_Peios / Using Peios / Desktop Settings_

> Choose which app opens each type of file when more than one can, for yourself or for everyone, in Desktop Settings or the registry.

When more than one installed app can open a type of file, the **default
app** is the one that opens it when you open the file, for example by
double-clicking it in Gexora. The others stay on the file's right-click
menu.

## Choosing one

In Desktop Settings, **Default Apps** under **For You** lists each type of
file that more than one app can open, by its name and its media type, with
the apps that can open it. Choose one, or **System Default** for the
machine's choice. It applies at once.

A type only one app opens isn't listed: there is nothing to choose. When
no app can be chosen for anything yet, the section says **No Choices**.

## How the default is found

Choices are made for a whole media type, such as `image/png`, or for a
family of them, such as `image/*`. For a file, the first of these that
names an app that can still open it wins:

1. your choice for its exact type;
2. your choice for its family;
3. the machine's choice for its exact type;
4. the machine's choice for its family.

So your choice for every image beats the machine's choice for PNGs. When
none of them applies, the app that opens the file is the first available.
A choice never makes an app open a type it doesn't say it opens, and a
choice naming an app that has since been removed is simply passed over.

## Where they are kept

Each choice is a `REG_SZ` value in `CurrentUser\Generic\Applications\Defaults`
(yours) or `Machine\Generic\Applications\Defaults` (the machine's), named
by the media type and holding the app's id:

```
$ reg set 'CurrentUser\Generic\Applications\Defaults' image/png sz:dev.peios.peitor
```

The whole rule, for anyone writing a program that opens files, is PGSS
[Defaults](/peios/advanced-peios/pgss/applications/defaults.md).

## Where to go next

- [Settings for all users](/peios/using-peios/desktop-settings/for-all-users.md)

---

# Settings for all users

_Peios / Using Peios / Desktop Settings_

> The machine's desktop settings — the sign-in screen, everyone's wallpaper, clock, pins and icon themes, everyone's shortcuts and default apps, and the programs that make up the desktop — and where each is kept.

The **All Users** sections of Desktop Settings set the machine's choices:
what everyone has until they choose their own, and the parts of the
desktop that are the machine's alone. Changing them needs write access to
the keys below, which as shipped only Administrators have. Anyone else
sees them read-only, with the reason said once.

## Sign-In Screen

- **Machine Name** is the name the sign-in screen shows, up to 64
  characters. It is separate from the machine's network name, which is
  System Settings'. Empty is the System Default.
- **Notice** is text shown under it, such as an acceptable-use notice:
  **Change…** opens it, up to eight paragraphs separated by blank lines and
  2,000 characters in all.

Both apply when GXWI next starts. They are `Machine\Software\GXWI\Logon`
`Name` (`REG_SZ`) and `Notice` (`REG_MULTI_SZ`, a paragraph each).

## Desktop

- **Wallpaper** chooses everyone's from the same pictures as your own.
- **Time Format** is everyone's clock, 24-hour unless chosen.
- **Pinned Apps** shows everyone's dock; **Use My Pins** makes the dock
  you have now everyone's.

These are `Wallpaper`, `ClockHours` and `Pinned` in `Machine\Software\fenesh`,
the same values as a person's own (see [wallpaper, clock and
dock](/peios/using-peios/desktop-settings/wallpaper-clock-and-dock.md)).

- **Icon Themes** are the icon themes desktop apps use, in order of
  preference, each a folder in `/usr/share/icons`; the base theme is always
  used last. They are `Machine\Generic\Icons` `Themes` (`REG_MULTI_SZ`), and
  apply to new desktop sessions.

## Keyboard Shortcuts and Default Apps

These work as the personal sections do, but set the machine's choices:
`Machine\Software\Fenestra\Shortcuts` and
`Machine\Generic\Applications\Defaults`. **Reset All to Built-In** removes
the machine's shortcuts, and **First Available** removes the machine's
default for a type. See [keyboard shortcuts](/peios/using-peios/desktop-settings/keyboard-shortcuts.md)
and [default apps](/peios/using-peios/desktop-settings/default-apps.md).

## Advanced

The programs that make up the desktop, and how GXWI serves it. Leave a
field empty for the System Default.

| Setting | Is | Kept in |
|---|---|---|
| **Listen Address** | The address and port GXWI serves on. The default, `127.0.0.1:7780`, is reachable only from this machine. | `Machine\Software\GXWI` `Listen` |
| **Compositor** | The program each desktop session runs, as its user. Default `/usr/bin/fenestra`. | `Machine\Software\GXWI` `Compositor` |
| **Shell** | The programs that provide the panels, dock and launcher, separated by spaces. Default `/usr/bin/fenesh`. | `Machine\Software\Fenestra` `Shell` |
| **Overlay** | A program shown to everyone in place of the sign-in screen, such as an installer. | `Machine\Software\GXWI` `OverlaySession` |
| **Overlay Account** | The account the overlay runs as. | `Machine\Software\GXWI` `OverlayUsername` |

Each of these is trusted with every person's desktop, so **Review
Changes…** shows what changes and what it means before **Apply Changes**.
A new listen address takes effect when GXWI next starts, and pages open on
the old one, including Desktop Settings, lose the desktop. While an
overlay is set, nobody can sign in or reach a desktop.

## Where to go next

- [Desktop Settings](/peios/using-peios/desktop-settings/overview.md)
