<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on 備忘録ときどき日記</title><link>https://www.yuchigames.com/post/</link><description>Recent content in Posts on 備忘録ときどき日記</description><generator>Hugo -- gohugo.io</generator><language>ja-jp</language><lastBuildDate>Mon, 05 Jan 2026 04:42:27 +0000</lastBuildDate><atom:link href="https://www.yuchigames.com/post/index.xml" rel="self" type="application/rss+xml"/><item><title>意外と知られてないVSCodeのCloud Changes機能について</title><link>https://www.yuchigames.com/post/vscode-cloud_changes/</link><pubDate>Mon, 05 Jan 2026 04:42:27 +0000</pubDate><guid>https://www.yuchigames.com/post/vscode-cloud_changes/</guid><description>&lt;h2 id="異なるデバイス間での変更の同期"&gt;異なるデバイス間での変更の同期
&lt;/h2&gt;&lt;p&gt;Gitを使って作業中に、まだコミットはしたくないけど、別のデバイスで作業を続行したい場面があります。
例えば、家のデスクトップPCで開発していたのを、外出先のノートPCで続けたい場合などです。
このような場合は、VSCodeのCloud Changes機能を利用すると便利です。&lt;/p&gt;
&lt;h2 id="使い方変更のコピー元"&gt;使い方（変更のコピー元）
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;ユーザーアイコンをクリックし、「Turn on Cloud Changes&amp;hellip;」を選択し、Cloud Changes機能を有効にする。&lt;/li&gt;
&lt;li&gt;ステージングしていない状態で、F1キーでコマンドパレットを開き、「Cloud Changes: Store Working Changes in Cloud」を選択する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="./img/turn-on-cloud-changes.webp" alt="Cloud Changes機能を有効化する様子" /&gt;
&lt;img src="./img/vscode-command-pallet.webp" alt="VSCodeでコマンドパレットを開く様子" /&gt;
&lt;/p&gt;
&lt;h2 id="使い方変更のコピー先"&gt;使い方（変更のコピー先）
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;F1キーでコマンドパレットを開き、「Cloud Changes: Show Cloud Changes」を選択する。&lt;/li&gt;
&lt;li&gt;左ペインの上部にあるリロードアイコンをクリックして、クラウド上の変更内容を取得する。&lt;/li&gt;
&lt;li&gt;変更内容一覧に表示されたアイテムにカーソルを合わせて、「Resume Working Changes」をクリックする。&lt;/li&gt;
&lt;/ol&gt;
&lt;img src="./img/resume-working-changes.webp" alt="Cloud Changesから変更内容を復元する様子" /&gt;
&lt;h2 id="参考サイト"&gt;参考サイト
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://zenn.dev/qrtz/articles/524e1835d4162b" target="_blank" rel="noopener"
&gt;VSCodeの隠し機能Cloud Changesを使って、複数端末で作業を同期する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>DevContainerでGUIアプリ開発（WSLg）</title><link>https://www.yuchigames.com/post/devcontainer-wslg/</link><pubDate>Fri, 28 Nov 2025 01:55:08 +0000</pubDate><guid>https://www.yuchigames.com/post/devcontainer-wslg/</guid><description>&lt;h2 id="動機"&gt;動機
&lt;/h2&gt;&lt;p&gt;大学の授業でC言語のGUIアプリを開発することになった。GUIライブラリはGTKを利用することにした。
Windows向けにGTKアプリを開発するには、Msys2をインストールして環境を整える必要がある。
しかし、ローカル環境を汚したくなかったので、DevContainerで開発することにした。
WindowsのDockerはWSL2上で動作しており、WSL2にはWSLgというGUIアプリを動かすための仕組みがある。
これを利用してDevContainerでGUIアプリを開発してみようと思う。&lt;/p&gt;
&lt;h2 id="注意"&gt;注意
&lt;/h2&gt;&lt;p&gt;DevContainerを理解していることを前提としている。
そのため、DevContainerの基本的な説明は省略する。
また、本稿ではimageに&lt;code&gt;mcr.microsoft.com/devcontainers/base:debian&lt;/code&gt;を利用している。&lt;/p&gt;
&lt;h2 id="wslのアップデート"&gt;WSLのアップデート
&lt;/h2&gt;&lt;p&gt;まず、WSLを最新バージョンにアップデートする。
私はWSLをアップデートしていなかったため、ここで躓いた。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wsl --update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="dockerの設定"&gt;Dockerの設定
&lt;/h2&gt;&lt;p&gt;Docker Desktopで、WSL Integrationを有効にする。
&lt;img src="./img/docker-desktop.webp" alt="Docker DesktopのWSL Integration設定をオンにする様子" /&gt;
&lt;/p&gt;
&lt;h2 id="devcontainerの設定"&gt;DevContainerの設定
&lt;/h2&gt;&lt;p&gt;DevContainerの&lt;code&gt;docker-compose.yml&lt;/code&gt;に以下を追記する。
サービス名は適宜変更すること。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;devcontainer&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;type&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;source&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;/tmp/.X11-unix&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;target&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;/tmp/.X11-unix&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;type&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;bind&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;source&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;/mnt/wslg&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;target&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;/mnt/wslg&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;environment&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;DISPLAY=$DISPLAY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;WAYLAND_DISPLAY=$WAYLAND_DISPLAY&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;PULSE_SERVER=$PULSE_SERVER&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="devcontainerの立ち上げ"&gt;DevContainerの立ち上げ
&lt;/h2&gt;&lt;p&gt;以上で設定は完了。
DevContainerを立ち上げて、GUIアプリを実行してみる。
&lt;img src="./img/gui_application.webp" alt="DevContainer上でGUIアプリを実行している様子" /&gt;
&lt;/p&gt;
&lt;h1 id="追記"&gt;追記
&lt;/h1&gt;&lt;p&gt;日本語を扱うGUIアプリを動かす場合、フォントが必要になる。
以下のコマンドでコンテナにGoogle Noto Sans Japaneseフォントをインストールする。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt install fonts-noto-cjk
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="参考サイト"&gt;参考サイト
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://learn.microsoft.com/ja-jp/windows/wsl/tutorials/gui-apps" target="_blank" rel="noopener"
&gt;WSL を使用して Linux GUI アプリを実行する | Microsoft Learn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://dev.classmethod.jp/articles/wsl2-docker-gui-app-windows-display/" target="_blank" rel="noopener"
&gt;【WSL 2】dockerコンテナでGUIアプリを実行してWindowsで表示させたい | DevelopersIO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="編集履歴"&gt;編集履歴
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;2025-12-04: imageに関する記述を追加&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>