Working state
This commit is contained in:
@@ -1,2 +1,18 @@
|
|||||||
# better-xcloud-nix
|
# better-xcloud-nix
|
||||||
|
|
||||||
|
A Nix flake providing a standalone Chromium wrapper for Better xCloud.
|
||||||
|
|
||||||
|
## Current State
|
||||||
|
Functional. The flake builds a shell script wrapper that deploys a pre-configured Chromium profile and launches the browser with required extensions.
|
||||||
|
|
||||||
|
## Versions
|
||||||
|
* **Nixpkgs**: nixos-unstable
|
||||||
|
* **Violentmonkey**: v2.49.0 (Manifest V3)
|
||||||
|
* **Better xCloud**: v6.7.12 (State saved within `preferences.tar.gz`)
|
||||||
|
|
||||||
|
## How It Works
|
||||||
|
1. The flake uses `fetchzip` to download the Violentmonkey extension release.
|
||||||
|
2. `writeShellScriptBin` generates the executable wrapper script.
|
||||||
|
3. Upon execution, the script checks for the existence of `$HOME/.config/better-xcloud-wrapper`.
|
||||||
|
4. If the profile directory is missing, it extracts the local `preferences.tar.gz` archive into this path. This archive contains the required browser settings, Violentmonkey configuration, and the installed Better xCloud userscript.
|
||||||
|
5. The script executes Chromium, passing the downloaded extension via `--load-extension` and the extracted profile via `--user-data-dir`. This isolates the application from your primary browser state.
|
||||||
|
|||||||
Generated
+27
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1790463110,
|
||||||
|
"narHash": "sha256-hKlVl12B1dF0Q5vd9dY3lIJM5mFGWYSlXwSLAqHZ1+s=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "e158d9ed9b51c98974c5e66e1ba1c9e0255fecaa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
description = "A chromium wrapper for Better xCloud";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = inputs: {
|
||||||
|
packages = builtins.mapAttrs (
|
||||||
|
system: pkgs:
|
||||||
|
let
|
||||||
|
tamper-monkey-ext = pkgs.fetchzip {
|
||||||
|
url = "https://github.com/violentmonkey/violentmonkey/releases/download/v2.49.0/Violentmonkey-mv3-v2.49.0.zip";
|
||||||
|
hash = "sha256-jeIaytwDzN0Q+Lg+K19HWKZlTzEzBPiUjJy6M+H1kZc=";
|
||||||
|
stripRoot = false;
|
||||||
|
};
|
||||||
|
# better-xcloud-script = pkgs.fetchurl {
|
||||||
|
# url = "https://github.com/redphx/better-xcloud/releases/download/v6.7.12/better-xcloud.user.js";
|
||||||
|
# hash = "sha256-u3iTG07JTWjLGNqX+krh+I5rMQO8FZkFkxsiOKUbUX4=";
|
||||||
|
# };
|
||||||
|
better-xcloud = pkgs.writeShellScriptBin "better-xcloud-wrapper" ''
|
||||||
|
CONF_DIR=$HOME/.config/better-xcloud-wrapper
|
||||||
|
PROF_DIR=$CONF_DIR/better-xcloud-wrapper
|
||||||
|
|
||||||
|
if [[ ! -d $CONF_DIR ]]; then
|
||||||
|
mkdir -p $CONF_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -d $PROF_DIR ]]; then
|
||||||
|
tar -xzf ${./preferences.tar.gz} -C $CONF_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
${pkgs.chromium}/bin/chromium --load-extension=${tamper-monkey-ext} --user-data-dir=$HOME/.config/better-xcloud-wrapper --app=https://www.xbox.com/play/
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
better-xcloud-wrapper = better-xcloud;
|
||||||
|
|
||||||
|
default = inputs.self.packages.${system}.better-xcloud-wrapper;
|
||||||
|
}
|
||||||
|
) inputs.nixpkgs.legacyPackages;
|
||||||
|
};
|
||||||
|
}
|
||||||
Binary file not shown.
Reference in New Issue
Block a user