Enable GPG-Signed Commits in VSCode

I wanted to make GPG-signed commits directly in VSCode, so I tweaked the GPG settings in WSL. When GPG signing is enabled in Git, you might encounter an error like git =gpg failed to sign the data vscode. To resolve this, I set Git for Windows to trigger a GUI for entering the GPG passphrase. Additionally, I configured WSL to call Pinentry, making the process smoother. $ vim ~/.gnupg/gpg-agent.conf # Add the following line: # pinentry-program "/mnt/c/Program Files (x86)/Gpg4win/bin/pinentry.exe" # Return to the terminal: $ gpg-connect-agent reloadagent /bye With this configuration, a passphrase input GUI will appear when making commits in VSCode. ...

Posted: 2024-10-10, Updated: 2025-03-15

Browser Does Not Launch When Using Vivliostyle Preview on WSL Ubuntu

When using Vivliostyle on WSL (Ubuntu), you might encounter an error with vivliostyle preview where the browser does not launch. Here’s how to resolve this issue. Environment WSL (Ubuntu 22.04 LTS) Vivliostyle CLI 8.10.0 Vivliostyle Core 2.29.0 Error Details $ vivliostyle preview ✖ launch =launch =Target page, context or browser has been closed Browser logs: <launching> /home/<username>/.cache/ms-playwright/chromium-1112/chrome-linux/chrome --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate,HttpsUpgrades,PaintHolding --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --no-sandbox --allow-file-access-from-files --disable-web-security --lang=en --user-data-dir=/tmp/playwright_chromiumdev_profile-7QTpYX --remote-debugging-pipe --no-startup-window <launched> pid=1818 [pid=1818] <process did exit =exitCode=127, signal=null> [pid=1818] starting temporary directories cleanup Call log: - <launching> /home/<username>/.cache/ms-playwright/chromium-1112/chrome-linux/chrome --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate,HttpsUpgrades,PaintHolding --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --disable-search-engine-choice-screen --no-sandbox --allow-file-access-from-files --disable-web-security --lang=en --user-data-dir=/tmp/playwright_chromiumdev_profile-7QTpYX --remote-debugging-pipe --no-startup-window - <launched> pid=1818 - [pid=1818] <process did exit =exitCode=127, signal=null> - [pid=1818] starting temporary directories cleanup at <anonymous> (/home/<username>/cirkit-alumni-books/cirkit-connect-vol1/node_modules/@vivliostyle/cli/dist/browser.js:25:34) at launchBrowser (/home/<username>/cirkit-alumni-books/cirkit-connect-vol1/node_modules/@vivliostyle/cli/dist/browser.js:5:36) at <anonymous> (/home/<username>/cirkit-alumni-books/cirkit-connect-vol1/node_modules/@vivliostyle/cli/dist/preview.js:94:12) at openPreview (/home/<username>/cirkit-alumni-books/cirkit-connect-vol1/node_modules/@vivliostyle/cli/dist/preview.js:92:23) at <anonymous> (/home/<username>/cirkit-alumni-books/cirkit-connect-vol1/node_modules/@vivliostyle/cli/dist/preview.js:129:16) If you think this is a bug, please report at https://github.com/vivliostyle/vivliostyle-cli/issues error =script "preview" exited with code 1 Solution Use the ldd command to check for missing dependencies. In this case, it seems that some packages required for the preview browser are missing. Install the packages that show up as not found. ...

Posted: 2024-05-20, Updated: 2025-03-15

Sharing the SSH Folder Between WSL and Windows

By default, SSH configurations for Windows and WSL (Windows Subsystem for Linux) are handled separately. However, managing different SSH settings for Windows and WSL can be cumbersome. To simplify this, you can unify the SSH configuration by managing it on the Windows side and creating a symbolic link in WSL. Here’s how to share the SSH folder between WSL and Windows: # Replace {username} with your actual username. $ ln -s /mnt/c/Users/{username}/.ssh ~/.ssh By doing this, you can use the SSH folder from Windows within WSL, streamlining your SSH management. ...

Posted: 2023-10-24, Updated: 2025-03-15