clipboardSync: off by default

It is built from source, which makes the first switch long. The template
lists it as a commented option; status shows clipboard-sync only while it
runs or its autostart link exists.
This commit is contained in:
Pierre Kisters committed 2026-10-02 00:40:01 +02:00
1 parent e597c6e34b
commit dc527d0253
5 files changed
+23 -13

No files matched your search

+8 -7
View File
@@ -15,9 +15,9 @@ their lifetime and what removes them; `steam-frame-nix-cleanup` removes every
one of them (on each switch what the configuration no longer uses, `--all` one of them (on each switch what the configuration no longer uses, `--all`
for everything). for everything).
All options live under `steamFrame.*`. The portal fix, the applications menu, All options live under `steamFrame.*`. The portal fix, the applications menu
clipboard sync and the "+" menu's icon fallbacks are on by default; and the "+" menu's icon fallbacks are on by default; everything else is
everything else is opt-in. opt-in.
## Features ## Features
@@ -30,7 +30,7 @@ configuration, limitations and how it works.
- [Portal fix](docs/session.md#portal-fix) (`session.portalFix`, on): apps in the Steam session can open links, and Flatpak apps get KDE's file dialog. - [Portal fix](docs/session.md#portal-fix) (`session.portalFix`, on): apps in the Steam session can open links, and Flatpak apps get KDE's file dialog.
- [Applications menu](docs/session.md#applications-menu) (`session.applicationsMenu`, on): KDE apps in the Steam session (Dolphin from the "+" menu) know the installed apps. - [Applications menu](docs/session.md#applications-menu) (`session.applicationsMenu`, on): KDE apps in the Steam session (Dolphin from the "+" menu) know the installed apps.
- [Keyboard layout](docs/session.md#keyboard-layout) (`keyboard.layout`, `keyboard.variant`): XKB layout for the Steam session. - [Keyboard layout](docs/session.md#keyboard-layout) (`keyboard.layout`, `keyboard.variant`): XKB layout for the Steam session.
- [Clipboard sync](docs/session.md#clipboard-sync) (`clipboardSync`, on): one clipboard for the Steam session and the nested desktop. - [Clipboard sync](docs/session.md#clipboard-sync) (`clipboardSync`): one clipboard for the Steam session and the nested desktop (built from source).
**VR keyboard** ([docs/keyboard.md](docs/keyboard.md)): **VR keyboard** ([docs/keyboard.md](docs/keyboard.md)):
@@ -139,8 +139,8 @@ of their differences:
What this means for you: What this means for you:
- **Switch from the nested desktop:** run `home-manager switch` in a - **Switch from the nested desktop:** run `home-manager switch` in a
terminal there, so clipboard-sync restarts with the desktop's terminal there, so clipboard-sync (if enabled) restarts with the
environment. User services are handled for you desktop's environment. User services are handled for you
([session settings](docs/session.md#session-settings-and-services)). ([session settings](docs/session.md#session-settings-and-services)).
- **Wallet:** there should be one `kwalletd6`, on the outer bus; apps started - **Wallet:** there should be one `kwalletd6`, on the outer bus; apps started
from the desktop would otherwise start a second one whose secrets VR can't from the desktop would otherwise start a second one whose secrets VR can't
@@ -207,6 +207,7 @@ these two files ([`template/`](template), with more comments):
keyboard.layout = "de"; # XKB layout, Steam session keyboard.layout = "de"; # XKB layout, Steam session
keyboard.vr.extraKeys.enable = true; # Esc/Ctrl/Alt/arrows in VR keyboard.vr.extraKeys.enable = true; # Esc/Ctrl/Alt/arrows in VR
keyboard.vr.enable = true; # swipe, suggestions, Backspace drag keyboard.vr.enable = true; # swipe, suggestions, Backspace drag
clipboardSync.enable = true; # one clipboard for both sessions (builds from source)
launcherMenu = { launcherMenu = {
sort = true; sort = true;
pinDesktop = "bottom"; pinDesktop = "bottom";
@@ -344,7 +345,7 @@ which: [Repository layout](docs/development.md).
| `steamFrame.pet.mount` | `"dynamic"`, `"all"` | `"dynamic"` | Baked frames kept mounted in the scene graph: the clips needed now or next, or all of them. | | `steamFrame.pet.mount` | `"dynamic"`, `"all"` | `"dynamic"` | Baked frames kept mounted in the scene graph: the clips needed now or next, or all of them. |
| `steamFrame.pet.debug.demo` | bool | `false` | Demo tour: cycles through all poses and activities. | | `steamFrame.pet.debug.demo` | bool | `false` | Demo tour: cycles through all poses and activities. |
| `steamFrame.steamvrDebugger.enable` | bool | automatic | SteamVR dashboard DevTools on `127.0.0.1:8087` (set only while SteamVR runs); on when a dashboard patch is, see [SteamVR debugger](docs/steamvr-debugger.md). | | `steamFrame.steamvrDebugger.enable` | bool | automatic | SteamVR dashboard DevTools on `127.0.0.1:8087` (set only while SteamVR runs); on when a dashboard patch is, see [SteamVR debugger](docs/steamvr-debugger.md). |
| `steamFrame.clipboardSync.enable` | bool | `true` | Clipboard bridge between the Steam session and the nested desktop. | | `steamFrame.clipboardSync.enable` | bool | `false` | Clipboard bridge between the Steam session and the nested desktop; built from source (the first switch takes a while). |
| `steamFrame.clipboardSync.package` | package | built from `dnut/clipboard-sync` | The clipboard-sync package. | | `steamFrame.clipboardSync.package` | package | built from `dnut/clipboard-sync` | The clipboard-sync package. |
| `steamFrame.firefox.enable` | bool | `false` | Launcher for the Flathub Firefox Flatpak with the fixes below. | | `steamFrame.firefox.enable` | bool | `false` | Launcher for the Flathub Firefox Flatpak with the fixes below. |
| `steamFrame.firefox.vrFullscreenFix` | bool | `true` | Default `full-screen-api.ignore-widgets` to `true` (not in the desktop profile). | | `steamFrame.firefox.vrFullscreenFix` | bool | `true` | Default `full-screen-api.ignore-widgets` to `true` (not in the desktop profile). |
+2 -1
View File
@@ -132,7 +132,8 @@ steamFrame.keyboard = { layout = "de"; variant = "nodeadkeys"; };
## Clipboard sync ## Clipboard sync
`clipboardSync.enable`, module `clipboard-sync`. On by default. `clipboardSync.enable`, module `clipboard-sync`. Off by default: it is
built from source, so the first switch with it takes a while.
**Problem:** the Steam session's X displays and the nested desktop have **Problem:** the Steam session's X displays and the nested desktop have
separate clipboards. separate clipboards.
+6 -1
View File
@@ -1416,7 +1416,12 @@ cmd_status() {
else else
info "user manager not reachable at $OUTER_RUNTIME_DIR" info "user manager not reachable at $OUTER_RUNTIME_DIR"
fi fi
info "$(printf '%-30s %s' clipboard-sync "$(pgrep -u "$USER_ID" -x clipboard-sync >/dev/null && echo running || echo 'not running')")" # steamFrame.clipboardSync (off by default): its autostart link or a process
if pgrep -u "$USER_ID" -x clipboard-sync >/dev/null; then
info "$(printf '%-30s %s' clipboard-sync running)"
elif [[ -e $CONFIG_HOME/autostart/clipboard-sync.desktop ]]; then
info "$(printf '%-30s %s' clipboard-sync 'not running')"
fi
cmd_cleanup --dry-run --all cmd_cleanup --dry-run --all
} }
+3 -2
View File
@@ -12,10 +12,11 @@ in {
options.steamFrame.clipboardSync = { options.steamFrame.clipboardSync = {
enable = lib.mkOption { enable = lib.mkOption {
type = lib.types.bool; type = lib.types.bool;
default = true; # without it the nested desktop's clipboard is isolated default = false; # built from source: a long first build
description = '' description = ''
Run clipboard-sync between the Steam session and the nested desktop Run clipboard-sync between the Steam session and the nested desktop
(KDE autostart; switch stops stale builds and duplicates). (KDE autostart; switch stops stale builds and duplicates). Built from
source.
''; '';
}; };
package = lib.mkOption { package = lib.mkOption {
+4 -2
View File
@@ -23,12 +23,14 @@
# home.packages = with pkgs; [ htop ripgrep ]; # home.packages = with pkgs; [ htop ripgrep ];
# Steam Frame fixes, see https://github.com/lhns/steam-frame-nix # Steam Frame fixes, see https://github.com/lhns/steam-frame-nix
# (session.portalFix, session.applicationsMenu and clipboardSync are on # (session.portalFix and session.applicationsMenu are on by default).
# by default).
# steamFrame = { # steamFrame = {
# keyboard.layout = "de"; # XKB layout, Steam session # keyboard.layout = "de"; # XKB layout, Steam session
# keyboard.vr.extraKeys.enable = true; # Esc/Ctrl/Alt/arrows in VR # keyboard.vr.extraKeys.enable = true; # Esc/Ctrl/Alt/arrows in VR
# keyboard.vr.enable = true; # swipe, suggestions, Backspace drag # keyboard.vr.enable = true; # swipe, suggestions, Backspace drag
# # nested desktop <-> Steam session clipboard (builds from source,
# # takes a while):
# clipboardSync.enable = true;
# # VR "+" menu: sorted by name, Desktop pinned below the list, closed # # VR "+" menu: sorted by name, Desktop pinned below the list, closed
# # on click, no second launch of the same program within 10 s, programs # # on click, no second launch of the same program within 10 s, programs
# # as a grid of 4 columns, at most 4 rows visible: # # as a grid of 4 columns, at most 4 rows visible: