add desktop

This commit is contained in:
2026-10-29 07:27:23 -06:00
parent 3d3b56013b
commit 925d0c46dc
6 changed files with 191 additions and 4 deletions
+139
View File
@@ -0,0 +1,139 @@
---
title: "Desktop"
description: "A short guide to the Federated CoreDesktop desktop: launching apps, moving windows with Tiling Shell, editing layouts, workspaces, notifications, screenshots and screen recordings."
sections:
- type: hero
compact: true
eyebrow: "GNOME · Tiling Shell"
title: "Find your way around the desktop."
subhead: "CoreDesktop is GNOME with the Tiling Shell extension. A few keys get you most of the way: Super to find things, Super and the arrows to move windows, Print Screen to capture the screen."
tiles: ["Launch", "Tile", "Capture"]
- type: text
id: launching
kicker: "Launching apps"
headline: "Press Super and type."
body: |
<kbd>Super</kbd> is the Windows key, or <kbd>⌘</kbd> on a Mac keyboard. Press it to open the overview, start typing an app's name, and press <kbd>Enter</kbd>. The same search finds files, settings and calculations.
- <kbd>Super</kbd>+<kbd>A</kbd> opens the app grid, with every app installed.
- The dock at the bottom of the overview holds your favorite apps. Right-click an app there or in the app grid and choose **Pin to Dash** to add it.
- <kbd>Alt</kbd>+<kbd>Tab</kbd> or <kbd>Super</kbd>+<kbd>Tab</kbd> switches between open apps.
- <kbd>Alt</kbd>+<kbd>F2</kbd> runs a command without opening a terminal.
To see everything CoreDesktop installs, browse the [software catalog](/software/).
- type: text
id: windows
kicker: "Moving windows"
headline: "Windows go into tiles."
body: |
Tiling Shell divides each screen into tiles. CoreDesktop starts you with three columns. A new window goes into an empty tile by itself, so you rarely need to drag or resize anything.
From the keyboard, select a window and hold <kbd>Super</kbd>:
- <kbd>←</kbd> and <kbd>→</kbd> move it to the next tile. At the edge of the screen, they move it to the next monitor, if there is one.
- <kbd>↑</kbd> maximizes it, from a tile in the top row. If the layout has a tile above, it moves the window there instead.
- <kbd>↓</kbd> puts a maximized window back in a tile.
With the mouse, drag a window by its title bar:
- Hold <kbd>Ctrl</kbd> while you drag, and the tiles appear. Drop the window on one.
- Hold <kbd>Ctrl</kbd> and <kbd>Alt</kbd> to stretch it across more than one tile.
- Or drag the window to the top of the screen. A strip of layouts opens, and you drop the window into a tile of any of them.
Drag the window away from its tile to free it. It goes back to the size it had before.
- type: text
id: layouts
kicker: "Layouts"
headline: "Change the tiles to suit the screen."
body: |
Click the Tiling Shell icon in the top right of the top bar to choose a layout for the current workspace. CoreDesktop comes with three columns, two columns and a single full-screen tile. Each workspace keeps its own layout, so one can have three columns for code and another a single tile for a video call.
To change a layout or make your own:
1. Click the Tiling Shell icon, then **Edit Layouts** (or **New Layout**).
2. Choose the layout to change, then **Start editing**.
3. Click inside a tile to split it in two side by side, where the line shows. <kbd>Ctrl</kbd>+click to split it top and bottom. Right-click a tile to delete it. Drag the line between two tiles to resize them.
4. Click the Tiling Shell icon again and choose **Save**, or **Cancel** to leave the layout as it was.
Ultrawide monitors are where this shines: try four narrow columns, or a wide middle tile with a narrow one on each side.
- type: text
id: workspaces
kicker: "Workspaces"
headline: "More room than one screen."
body: |
Workspaces are screens side by side, each with its own windows and layout. There's always an empty one at the end; put a window on it and another empty one appears.
From the keyboard:
- <kbd>Super</kbd>+<kbd>Page Up</kbd> or <kbd>Page Down</kbd> switches to the workspace to the left or right. <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>←</kbd> or <kbd>→</kbd> does the same.
- Add <kbd>Shift</kbd> to take the selected window with you: <kbd>Super</kbd>+<kbd>Shift</kbd>+<kbd>Page Up</kbd> or <kbd>Page Down</kbd>.
With the mouse:
- Click the dots in the top left of the top bar, or press <kbd>Super</kbd>, to open the overview. It shows your workspaces side by side; click one to go there, or scroll to move between them.
- In the overview, drag a window onto another workspace to move it there.
- On a touchpad, swipe left or right with three fingers to switch, and up to open the overview.
- type: text
id: notifications
kicker: "Notifications"
headline: "Everything that wanted your attention."
body: |
Notifications appear at the top of the screen for a moment. Click one to open what it's about.
To see the ones you missed, click the clock in the middle of the top bar, or press <kbd>Super</kbd>+<kbd>V</kbd>. That opens the calendar and the list of notifications. **Clear** removes them, and the **Do Not Disturb** switch holds new ones back until you turn it off. They still go into the list.
CoreDesktop uses notifications too. If a daily [backup](/utilities/#backups) fails, you'll hear about it here.
The menu in the top right, which you can also open with <kbd>Super</kbd>+<kbd>S</kbd>, has Wi-Fi, Bluetooth, sound, power and dark mode.
- type: text
id: screenshots
kicker: "Screenshots and recordings"
headline: "Capture the screen, or a video of it."
body: |
Press <kbd>Print</kbd> (<kbd>PrtSc</kbd> on many keyboards) to open GNOME's screenshot tool. Choose an area, a window or the whole screen, then press <kbd>Enter</kbd> or click the round button. To record a video instead, switch the tool from the camera to the video icon first, and stop the recording with the red button in the top bar.
- <kbd>Print</kbd> opens the screenshot tool.
- <kbd>Shift</kbd>+<kbd>Print</kbd> takes a screenshot of the whole screen.
- <kbd>Alt</kbd>+<kbd>Print</kbd> takes a screenshot of the selected window.
- <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Alt</kbd>+<kbd>R</kbd> opens the tool ready to record.
Screenshots go to `~/Pictures/Screenshots` and are copied to the clipboard, so you can paste one straight into a chat. Recordings go to `~/Videos/Screencasts`.
To point at something with arrows, boxes or text, or to blur a password before you share, use [Flameshot](/software/flameshot/): open it from the app grid, or run `flameshot gui`. For recordings with your camera, several sources or live streaming, there's [OBS Studio](/software/obs-studio/).
- type: table
id: shortcuts
kicker: "Cheat sheet"
headline: "The shortcuts worth learning."
lede: "For the rest, open **Settings › Keyboard › View and Customize Shortcuts**, where you can change them too."
headers: ["Keys", "What it does"]
rows:
- ["<kbd>Super</kbd>", "Opens the overview, to search for an app or file"]
- ["<kbd>Super</kbd>+<kbd>A</kbd>", "Opens the app grid"]
- ["<kbd>Alt</kbd>+<kbd>Tab</kbd>", "Switches between apps"]
- ["<kbd>Super</kbd>+<kbd>←</kbd> <kbd>→</kbd>", "Moves the window to the next tile, or the next monitor"]
- ["<kbd>Super</kbd>+<kbd>↑</kbd> <kbd>↓</kbd>", "Maximizes the window, or puts it back in a tile"]
- ["<kbd>Ctrl</kbd> while dragging", "Shows the tiles to drop a window into"]
- ["<kbd>Super</kbd>+<kbd>Page Up</kbd> <kbd>Page Down</kbd>", "Switches workspace"]
- ["<kbd>Super</kbd>+<kbd>Shift</kbd>+<kbd>Page Up</kbd> <kbd>Page Down</kbd>", "Moves the window to the next workspace"]
- ["<kbd>Super</kbd>+<kbd>V</kbd>", "Shows notifications and the calendar"]
- ["<kbd>Super</kbd>+<kbd>S</kbd>", "Opens the system menu: network, sound, power"]
- ["<kbd>Print</kbd>", "Takes a screenshot or a recording"]
- ["<kbd>Alt</kbd>+<kbd>F4</kbd>", "Closes the window"]
- ["<kbd>Super</kbd>+<kbd>L</kbd>", "Locks the screen"]
- type: final-cta
headline: "Now make it yours."
body: "See what CoreDesktop sets up under the hood, or browse the software it installs."
ctas:
- label: "What's set up"
url: "/system/"
- label: "Browse the software"
url: "/software/"
---
+2
View File
@@ -28,3 +28,5 @@ The `gnome` package group is the desktop and its core apps. `gnome-extra` adds m
You install Arch with GNOME before CoreDesktop. The installer then makes sure the `gnome` and `gnome-extra` groups are there from pacman, enables the GDM login screen, and installs the Tiling Shell and Tailscale extensions with gext. It loads CoreDesktop's [tiling](/system/#tiling) settings for Tiling Shell from `gnome/gnome-settings.dconf`.
`update` updates GNOME with the rest of Arch, then updates your extensions and reinstalls any that no longer support the current GNOME Shell. It reapplies CoreDesktop's extension settings only when CoreDesktop changes them, so your own tweaks stay. Log out and back in to load updated extensions.
New to GNOME? [Using the desktop](/desktop/) covers launching apps, moving windows, workspaces, notifications and screenshots.
+1 -1
View File
@@ -15,7 +15,7 @@ sections:
body: |
You end up with a [GNOME](https://www.gnome.org) system with a flexible tiling setup that works on any screen and really shines on widescreens. Hold <kbd>Super</kbd> (the Windows key or equivalent) and use the arrow keys to move windows around the screen.
To change the tiling, use the icon in the top right of your screen. You can set it up however you want.
To change the tiling, use the icon in the top right of your screen. You can set it up however you want. [Using the desktop](/desktop/#windows) shows how, along with workspaces, notifications and screenshots.
- type: text
kicker: "Shell"
+38 -1
View File
@@ -161,9 +161,46 @@ sections:
kicker: "Backups"
headline: "How the backups work."
body: |
Once a day, shortly after midnight, restic backs up your home folder to `.backup-{machine name}` in your Nextcloud files. If the computer was off or you weren't logged in, it runs at your next login instead, once Nextcloud can be reached. It runs at the lowest priority, so it stays out of the way of whatever you're doing, and it only uploads what changed since the last backup.
restic reaches Nextcloud directly through rclone, with its own Nextcloud app password, so the backup doesn't depend on the `/mnt` mount. The Nextcloud app passwords configure creates can be revoked in Nextcloud under **Settings › Security**.
To leave out more, list paths in `~/.config/coredesktop/backup-exclude`, one per line.
If a backup fails, a notification tells you. If only a few files couldn't be read, the rest are still backed up, and the log names the ones it skipped.
### How many backups are kept
restic calls each backup a snapshot. After each backup, it removes older snapshots and keeps:
- the latest from each of the last **7 days**
- the latest from each of the last **4 weeks**
- the latest from each of the last **6 months**
One snapshot can count for more than one of these, so there are usually about 15 snapshots, going back about six months. Days, weeks and months with no backup, such as when the computer was off, don't count, so the oldest snapshot can be older than that. A file that's in several snapshots is stored only once, so keeping them all takes little more space than one full copy plus what's changed.
### What's left out
The backup is for what you can't get back any other way. It leaves out things that can be downloaded, reinstalled or rebuilt, which keeps it smaller and quicker and saves space in your Nextcloud:
- **Caches and the trash.** `~/.cache`, `~/.local/share/Trash`, the cache for the `/mnt` mount, Flatpak apps' caches, the caches Electron and Chromium apps (Element, browsers, editors) keep in `~/.config`, and any folder marked as a cache with a `CACHEDIR.TAG` file.
- **Apps and tools that can be installed again.** Flatpak apps, Podman containers and images, CoreDesktop's own files and sibling projects, package caches (npm, bun, Cargo, Go), and what mise, uv, pipx, Claude Code and Neovim's plugins install.
- **The AI agents' programs and downloads.** Their settings, memories and sessions are backed up.
- **LM Studio's models and engines.** They're large and can be downloaded again.
- **Element's search index** for encrypted messages, which Element rebuilds.
- **WinBoat's Windows VM** (`~/winboat`). Its disk is large and changes whenever Windows runs, so most of it would be uploaded every day.
- **Other drives and btrfs subvolumes** mounted inside your home folder.
To leave out more, list paths or patterns in `~/.config/coredesktop/backup-exclude`, one per line, e.g. `$HOME/Videos` or `*.iso`.
### Turning backups off
Run `configure backup` and choose **Turn backups off**. This stops the daily backup, and any backup that's running.
The backups made so far stay in your Nextcloud files, and configure asks whether to delete them:
- **Keep them** (the default). You can still restore from them as shown below, as your passphrase and app password stay in your keyring. To turn backups back on, run `configure backup`; they carry on in the same folder.
- **Delete them.** Type the folder name to confirm. configure deletes the folder, revokes the backup's Nextcloud app password, and removes the passphrase and app password from your keyring. Nextcloud keeps the folder in its trash bin, where it still uses your storage, until you empty it. After that, the backups are gone for good.
### Checking on it
```
systemctl --user list-timers coredesktop-backup.timer
+9
View File
@@ -23,6 +23,11 @@ disableKinds = ["taxonomy", "term", "RSS", "sitemap", "robotsTXT"]
url = "/install/"
weight = 10
[[menu.main]]
name = "Desktop"
url = "/desktop/"
weight = 15
[[menu.main]]
name = "Software"
url = "/software/"
@@ -74,6 +79,10 @@ disableKinds = ["taxonomy", "term", "RSS", "sitemap", "robotsTXT"]
url = "/utilities/#reset"
weight = 50
[[menu.footer_desktop]]
name = "Using the desktop"
url = "/desktop/"
weight = 5
[[menu.footer_desktop]]
name = "Software"
url = "/software/"
+2 -2
View File
@@ -740,7 +740,7 @@ html.js .hero [data-reveal] { opacity: 1; translate: 0; transition: none; }
.tile i:nth-of-type(3) { width: 74%; }
.tile.is-focus i:nth-of-type(1) { background: var(--magenta); }
.tiles-keys { display: flex; align-items: center; gap: 6px; padding: 0 4px; font-size: 12px; color: var(--on-dark-56); }
.tiles-keys kbd, .prose kbd {
.tiles-keys kbd, .prose kbd, .compare-table kbd {
display: inline-block; padding: 2px 7px; border-radius: 5px;
font-family: var(--font-mono); font-size: 11px; line-height: 1.5;
}
@@ -809,7 +809,7 @@ pre.has-copy code { display: block; padding-right: 64px; }
padding: 0; background: none; color: #ffffffe0;
font-size: 14px; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere;
}
.prose kbd { font-size: .78em; background: #fff; box-shadow: inset 0 -1px 0 var(--rule), inset 0 0 0 1px var(--rule); color: var(--ink); }
.prose kbd, .compare-table kbd { font-size: .78em; background: #fff; box-shadow: inset 0 -1px 0 var(--rule), inset 0 0 0 1px var(--rule); color: var(--ink); }
.prose ol { display: flex; flex-direction: column; gap: 12px; counter-reset: li; }
.prose ol > li { position: relative; padding-left: 40px; counter-increment: li; }
.prose ol > li::before {