From 8bd6d80ffb651a571257cc4290fb115dc8e11bed Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Sat, 11 Apr 2026 11:58:01 -0700 Subject: [PATCH] Fix Chrome remote debugging launchers --- nixos/imalison.nix | 6 ++--- nixos/overlay.nix | 32 +++++++++++++++++++++++ nixos/secrets/gws-client-secret.json.age | Bin 0 -> 3401 bytes 3 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 nixos/secrets/gws-client-secret.json.age diff --git a/nixos/imalison.nix b/nixos/imalison.nix index 75e1cd3b..871ea06e 100644 --- a/nixos/imalison.nix +++ b/nixos/imalison.nix @@ -200,15 +200,15 @@ "x-scheme-handler/https" "x-scheme-handler/google-chrome" ]; - exec = "${pkgs.google-chrome}/bin/google-chrome-stable --remote-debugging-port=46649 --remote-allow-origins=http://127.0.0.1,http://localhost %U"; + exec = "${pkgs.google-chrome}/bin/google-chrome-stable --user-data-dir=/home/imalison/.cache/google-chrome-devtools --remote-debugging-port=46649 --remote-allow-origins=http://127.0.0.1,http://localhost %U"; actions = { new-window = { name = "New Window"; - exec = "${pkgs.google-chrome}/bin/google-chrome-stable --remote-debugging-port=46649 --remote-allow-origins=http://127.0.0.1,http://localhost"; + exec = "${pkgs.google-chrome}/bin/google-chrome-stable --user-data-dir=/home/imalison/.cache/google-chrome-devtools --remote-debugging-port=46649 --remote-allow-origins=http://127.0.0.1,http://localhost"; }; new-private-window = { name = "New Incognito Window"; - exec = "${pkgs.google-chrome}/bin/google-chrome-stable --remote-debugging-port=46649 --remote-allow-origins=http://127.0.0.1,http://localhost --incognito"; + exec = "${pkgs.google-chrome}/bin/google-chrome-stable --user-data-dir=/home/imalison/.cache/google-chrome-devtools --remote-debugging-port=46649 --remote-allow-origins=http://127.0.0.1,http://localhost --incognito"; }; }; }; diff --git a/nixos/overlay.nix b/nixos/overlay.nix index ffd8618a..dc1ba6d1 100644 --- a/nixos/overlay.nix +++ b/nixos/overlay.nix @@ -30,9 +30,41 @@ let # hash = "sha256-OqvLiwB5TwZaxDvyN/+/+eueBdWNaYxd81cd5AZK/mA="; # npmDepsHash = "sha256-vy7osk3UAOEgsJx9jdcGe2wICOk5Urzxh1WLAHyHM+U="; # }; + # Chrome 136+ ignores remote debugging switches on the default profile. + # Keep the wrapper in place, but do not inject remote debugging flags into + # the normal Chrome launcher. The supported path for a real profile is the + # Chrome remote debugging permission flow used by chrome-devtools-mcp + # --auto-connect. + chromeRemoteDebuggingFlags = []; placeholder = null; # Dummy binding to keep let block valid in { + google-chrome = prev.symlinkJoin { + name = prev.google-chrome.name; + paths = [ prev.google-chrome ]; + nativeBuildInputs = [ final.makeWrapper ]; + postBuild = '' + rm "$out/bin/google-chrome" "$out/bin/google-chrome-stable" + + makeWrapper ${prev.google-chrome}/bin/google-chrome "$out/bin/google-chrome" \ + ${final.lib.concatMapStringsSep " " (flag: "--add-flags ${final.lib.escapeShellArg flag}") chromeRemoteDebuggingFlags} + + makeWrapper ${prev.google-chrome}/bin/google-chrome-stable "$out/bin/google-chrome-stable" \ + ${final.lib.concatMapStringsSep " " (flag: "--add-flags ${final.lib.escapeShellArg flag}") chromeRemoteDebuggingFlags} + + for desktopName in google-chrome.desktop com.google.Chrome.desktop; do + desktopFile="$out/share/applications/$desktopName" + if [ -f "$desktopFile" ]; then + rm "$desktopFile" + cp "${prev.google-chrome}/share/applications/$desktopName" "$desktopFile" + substituteInPlace "$desktopFile" \ + --replace-fail "${prev.google-chrome}/bin/google-chrome-stable" "$out/bin/google-chrome-stable" + fi + done + ''; + meta = prev.google-chrome.meta; + }; + # Fix poetry pbs-installer version constraint issue poetry = prev.poetry.overrideAttrs (oldAttrs: { dontCheckRuntimeDeps = true; diff --git a/nixos/secrets/gws-client-secret.json.age b/nixos/secrets/gws-client-secret.json.age new file mode 100644 index 0000000000000000000000000000000000000000..d0dae6ae7e08c7ddcc7d53391ffc0e5da6b614f0 GIT binary patch literal 3401 zcmZve`|m9ES;uLpweG1l3Tb1#ZAvNj42PY|&aDz~W-l|lbKlvyMys>`_4@< zrKA@FMB3E0CRnH^7QuvqRcbH|;U`TB(jUNT43v~&qmp2oN|7I`Uw=6MaK8QnpV#O8 zJn!fIJWk+W@>93$^E%4XTe32kG|=eMZR4s6FZmvfq7XT@gK}F?V`B^A@PR1SjF=`q zk%E9wa=EXznK$V9a)`?7ot+Eq4zgAt-;G+HfG zHZ7o~2`UyuE&?VCub6LOgq7@4 z^JE}s(&;{Q3^}zifz1_SR3Rs9vYa=W$Mm%c=0`kM(Z--S2jf<@60}s>t`Mt^)bdd5K-$Hyz?~g?u8rN16^k=aK?v9wsDUw+ zndmGzrvsCAJ8Pm|>fO!(^D?O#@M_vNb<$QDtLQ3|xXwu91(d{AT%g@4ap$mpazRp` zW@T{#fxWq!g26~4`=Y6X9i3w)2UiD5hG1p7Q4n*oZF1jtBeK@J7MF^1eRJ8Va|*^p zobsBqSW89)?|0aV;;7hHQ;CJbDux8~kR%mSPfz7M8F{X<7-)Uk+9kl@GkOyqRuN;V z_DoU^Ay|^qz(>b3wRU^8wjd~}r83qV!<{j%gwA@0@sApHBE39Ps}!zL&&PMVGncd7 zX*)?5qk=Q0B%kV*)0R6x;C7iSgG8qmTWfDF0HKK05H!yoO57{7vU0{jyY4_`l(A7x z_*TfV!WNuvDQ@LVfd!^j%rx*@8?@z+UB=ky*u-2N`!H2Y47j4&iF{;^-g-644glV;k&gx)}lTkQy-W zOTF&kWZ}~y(k@py+YV9R5ZYeVs=-vCNX0RT%|gX-1wg^U?g*rl5;mHV04=w6lO1SB zp;&jD?RImv-Z`7*2vAy^qrP9crV7P7g>n$k#b@w<$+&KUz|Nmla5rjCY{BPRuE=RI z)vPG%)4c4Z6YuJW6)AWIr43Qm9*6kEZHnE2U36Py(^yA#O9GQK)5G`*Rr7|XbZ#HER=tC2J~#V%%>k?RA{l|b zTzaqu0m6}6&#LvBYW13Gb^);{OAvyNOkg#O>Lei5)ih4opZ$3pQ@hmIG!0INev@Ix z7&`Kj0VlIA7wuwFAT4n)`nAz^!ssLbYpKI?W>`nO3^XTkD3)c2qb08z43p(y;4bbFrlFx=V-1E5HedI2{zW-y+ov* zSE|eDVW<`1Sa`;MUvn-Z!OG|)0}zi@p$X+Z&No8Iw}@(Su~C8@BS`}UP{r2Gv<-M} zCa+WyBI>*gT}zmNW*=Ft(J$8#B-h5==oP}f>0BcYuq^NYA8lx)QDYcx@fkN0 zNV_!EI?STI$Le{ob(Ykgu>b-z_K1duCmYO0hkP^TJQ&aCyUIo*XLXd8KA_vvfdOJW zodYx5SfCrIm(O{U;+SOKjt@aGG$!9Rj(O0!9Yh&{2D53kS&7;HD6MG%DUnIV5HvN) zvMGoyDm|bj2`lloLQT5PvA7fyCu7zq7NnL-Izz4!S9=olRTQAc>xSINk)zYBO+luD z4pTVXDk({Z6RxI&2?OulI!==VvKnoGMUWG%Y>A=IJA6+2ylaulu3pchfSe!(9}}gB zt&qvN=_V&rxopP@NM^ktuhwoG*y>`gAsC&DCuc``EPev@t>6)OIdt1uJDSJ+0kU<< z#mGgwt7JR3r0_sAXD3JjQ8|+kX2=FUwr= zGjX;xk=e}N^++}7a4XDPAJ$PA&(8Jj=n%7ZyhqMCj^ouiLM=yT&3kx`Yg9lbqkRjk<3k)WF-ir4S`OqjVgq*Q-TW3IhSm6(1w&T z1JA@wTrWKPc(S8{8{7%b9xB+MDFT036WDIiGg~Q7jbOChbOg+-tho*%WTwt2<#@;% zU)*|n6wKAGM`?{0y?{GSuh!B%(sQV(XffIV%#+lJU9Thu}U>Z(> z6AlvU$!M=Z5x<=e@+ufsT7m2j&TK_Cn=Ml=!wH1CA&Og?ZYIq+TDaneff~E!|DJtP zd=!uM9cu~J{AT|t zut&A)lj|>Bj&A+PGavf(JMO*Z;>EkbTd|+`-d&66!rx!G`~&foPgY-j@yB1Gif`Ps zec`oVlRt;Ce|h7_AI?@k^;gf6e}g`KL;v!FcVl1w@7pe}{^RM{9r^bk4&VC5veciWf>KlokJS3Bw|(J*pWJ+fd*<(s1M9dSJupA5Z9cw#`{bdo zzyBZJ;4T91OPTk4>8szl*$4jk`P-g<&*b$#zxet~_rafd@J9Zr>wa|O%kO>knfbqe z_xqpu!e{