diff --git a/README.md b/README.md index 11cfdb6..4ca3faf 100644 --- a/README.md +++ b/README.md @@ -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` for everything). -All options live under `steamFrame.*`. The portal fix, the applications menu, -clipboard sync and the "+" menu's icon fallbacks are on by default; -everything else is opt-in. +All options live under `steamFrame.*`. The portal fix, the applications menu +and the "+" menu's icon fallbacks are on by default; everything else is +opt-in. ## 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. - [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. -- [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)): @@ -139,8 +139,8 @@ of their differences: What this means for you: - **Switch from the nested desktop:** run `home-manager switch` in a - terminal there, so clipboard-sync restarts with the desktop's - environment. User services are handled for you + terminal there, so clipboard-sync (if enabled) restarts with the + desktop's environment. User services are handled for you ([session settings](docs/session.md#session-settings-and-services)). - **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 @@ -207,6 +207,7 @@ these two files ([`template/`](template), with more comments): keyboard.layout = "de"; # XKB layout, Steam session keyboard.vr.extraKeys.enable = true; # Esc/Ctrl/Alt/arrows in VR keyboard.vr.enable = true; # swipe, suggestions, Backspace drag + clipboardSync.enable = true; # one clipboard for both sessions (builds from source) launcherMenu = { sort = true; 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.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.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.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). | diff --git a/docs/session.md b/docs/session.md index fa1845f..58ef033 100644 --- a/docs/session.md +++ b/docs/session.md @@ -132,7 +132,8 @@ steamFrame.keyboard = { layout = "de"; variant = "nodeadkeys"; }; ## 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 separate clipboards. diff --git a/install.sh b/install.sh index 5006788..0fc7b55 100755 --- a/install.sh +++ b/install.sh @@ -1416,7 +1416,12 @@ cmd_status() { else info "user manager not reachable at $OUTER_RUNTIME_DIR" 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 } diff --git a/modules/clipboard-sync.nix b/modules/clipboard-sync.nix index 7df42ba..e263a24 100644 --- a/modules/clipboard-sync.nix +++ b/modules/clipboard-sync.nix @@ -12,10 +12,11 @@ in { options.steamFrame.clipboardSync = { enable = lib.mkOption { 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 = '' 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 { diff --git a/template/home.nix b/template/home.nix index bed4e8f..42c3c77 100644 --- a/template/home.nix +++ b/template/home.nix @@ -23,12 +23,14 @@ # home.packages = with pkgs; [ htop ripgrep ]; # Steam Frame fixes, see https://github.com/lhns/steam-frame-nix - # (session.portalFix, session.applicationsMenu and clipboardSync are on - # by default). + # (session.portalFix and session.applicationsMenu are on by default). # steamFrame = { # keyboard.layout = "de"; # XKB layout, Steam session # keyboard.vr.extraKeys.enable = true; # Esc/Ctrl/Alt/arrows in VR # 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 # # on click, no second launch of the same program within 10 s, programs # # as a grid of 4 columns, at most 4 rows visible: