ä»åã¯ãWSL2ã§ãLinux GUIã¢ããªã±ãŒã·ã§ã³ãåäœãããããã®WSLgã«ã€ããŠè§£èª¬ãè¡ãããŸãã¯ãLinuxã®GUIã·ã¹ãã ã«ãªããŠããªããŠãŒã¶ãŒã®ããã«WSLã«ãããLinuxã®GUIã·ã¹ãã ã®åºæ¬çãªéšåãWSLgã®ä»çµã¿ãªã©ã解説ããã
Linuxã®GUIã·ã¹ãã
以åŸãWSLã®GUIç°å¢ïŒWSLgïŒãæŽããããã®è§£èª¬ãè¡ããããŸãã¯ãåºæ¬çãªçšèªã衚01ã«ç€ºããåºæ¬çã«ã¯ãWSLgã®æ§æã倿Žããå¿ èŠã¯ãªããã®ã®ãããšãã°ãGUIç°å¢ãæ¥æ¬èªå¯Ÿå¿ãããçšåºŠã®èšå®ã¯å¿ èŠã«ãªãã
X Window System
Linuxã¯ãUnixã§äœãããX Window SystemãããŒã¹ã«ããGUIã·ã¹ãã ã䜿ããLinuxã®çŸåšã®ç¶æ³ã説æããããããã®åºæ¬ãšãªãX Window Systemã«ããGUIç°å¢ããŸãã¯è§£èª¬ããã
X Window Systemã¯ãUnixçšã«äœããããŠã£ã³ããŠã·ã¹ãã ã§ããããã®Xã§ã¯ãåäžã®ã·ã¹ãã ã§GUIãã¹ãŠãå®çŸããã®ã§ã¯ãªããè€æ°ã®ã³ã³ããŒãã³ããçµã¿åãããŠãGUIã·ã¹ãã ãæ§ç¯ã§ããããã«æ§æãããŠããïŒå³01)ãç¹åŸŽãšããŠããããã¯ãŒã¯ãä»ããŠè¡šç€ºãè¡ããããã«ãXèªäœããããã³ã«ãšããŠå®çŸ©ãããããšãããããŸããXèªäœã¯ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã¯äœãèŠå®ãããä»ã®ã³ã³ããŒãã³ããšã®çµã¿åããã«ãããGUIããã¹ã¯ããããå®çŸããããšãæ³å®ããã
-

å³01: Linuxã®GUIã·ã¹ãã ã®åºæ¬ãšãªã£ãX Window Systemãè€æ°ã®ã¢ãžã¥ãŒã«ã飿ºããŠGUIç°å¢ãå®çŸããã¢ãžã¥ãŒã«åäœã§å·®ãæ¿ããããšãå¯èœ
ããã«å¯ŸããŠãWindowsã¯ãæåããGUIç°å¢ãæäŸããããã«äœããããããå éšçã«ã¯è€æ°ã®ã³ã³ããŒãã³ãããæ§æãããŠããŠããã¢ããªã±ãŒã·ã§ã³åŽããã¯ãåäžã®GUI/ãã¹ã¯ãããã·ã¹ãã ããèŠããããããå·®ãæ¿ããããšãã§ããªãããŠã£ã³ããŠè¡šç€ºãGUIããã¹ã¯ããããªã©ãæ§æããéšåããWindowsãµãã·ã¹ãã ããšåŒã¶ïŒå³02)ã
-

å³02: Windows GUIç°å¢ã¯ã倿Žãã§ããªãåäžã®ä»çµã¿ã§ãWindowsãµãã·ã¹ãã ãªã©ãšåŒã°ãã
ãã¹ã¯ãããç°å¢
ããããåºæ¬çãªæ çµã¿ãã§ããã®ã¡ãXãäžå¿ã«ãè€æ°ã®ããã¹ã¯ãããããäœãããããšã«ãªããWindowsã®ãã¹ã¯ããããèŠããšãããããã«ãåãªãç»é¢ã§ã¯ãªããã¢ã€ã³ã³ãã¿ã¹ã¯ããŒãã¹ã¿ãŒãã¡ãã¥ãŒãªã©ã®åçš®ã®ãªããžã§ã¯ãããã³ã³ããã¹ãã¡ãã¥ãŒããã€ã¢ãã°ããã¯ã¹ããŠã£ã³ããŠã®ã¿ã€ãã«ããŒãã¡ãã¥ãŒãšãã£ãéšåãªã©ãGUIã®çµ±äžããæ©èœãæäŸããã®ããã¹ã¯ãããç°å¢ã§ããããŸããèãæ¹ã«ãããããæèšãé»åããã°ã©ã ãšãã£ããã¢ã¯ã»ãµãªãããã°ã©ã ãããšã¯ã¹ãããŒã©ãŒã®ãããªãã¡ã€ã«ãã©ãŠã¶ããã¹ã¯ãããç°å¢ã«å«ããããšãããã
Linuxã¯ã倿°ã®ãœãããŠã§ã¢ããŸãšããŠããã£ã¹ããªãã¥ãŒã·ã§ã³ããšããŠé åžãããããšã«ãªã£ãŠãããããã®ãšãããã£ã¹ããªãã¥ãŒã·ã§ã³ã«ãããããã©ã«ãã®ããã¹ã¯ãããç°å¢ããæ±ºãŸãããã ããç°ãªããã¹ã¯ãããç°å¢åãã«äœãããã¢ããªã±ãŒã·ã§ã³ã§ãã£ãŠãããŸã£ããåäœã§ããªãããã§ããªãã
ç°ãªããã¹ã¯ãããç°å¢ãçµæçã«ã¯ãXã®äžã§åäœããŠããããã®ç¹ã§ã¯ããã¹ãŠäºææ§ããããUIããŒã«ãããã¯ãèªèº«ã§ãã¹ãŠã®æç»ãè¡ãããŠã£ã³ããŠã®è¡šç€ºã®ã¿ãXã«å§ãããã®ãšãXã®æç»ã³ãã³ãã䜿ã£ãŠãŠã£ã³ããŠå ã®æç»ãè¡ããã®ã«å€§å¥ãããããã©ã¡ãããŠã£ã³ããŠã®æç»ã«é¢ããŠã¯ãXãããã³ã«ã§è¡ãããã ã
Wayland
XãäœãããŠãããã§ã«40幎ãçµéããŠããããã®éã«ããŸããŸãªæ¹è¯ãè¡ããããã40幎ã®éã«ããŒããŠã§ã¢ã倧ããå€åãããããããWindowsãéå»ã®ã¢ããªã±ãŒã·ã§ã³ãåäœãããŠããããã«ãäºææ§ã¯éèŠãªåé¡ã§ãããç°¡åã«GUIã®ä»çµã¿ãåãæ¿ããããã«ããããªãããã®ãããXãäœããããšãã®GUIæ§é ãããŸã§ãä¿ãããŠããããããã眮ãæããããšããåããããã
ããã®ïŒã€ãWaylandãšåŒã°ããã·ã¹ãã ã ïŒå³03)ãWaylandã¯ããã£ã¹ãã¬ã€ãµãŒããŒãšãŠã£ã³ããŠãããŒãžã£ãŒãçµã¿åããããã³ã³ããžã¿ããšããŠåäœãããçµã¿åãããæå€§ã®çç±ã¯ãGPUã䜿ã£ãŠãã¹ã¯ããããåæãããã³ã³ããžããåããå®çŸããããã ãXãäœããããšãããã¹ã¯ãããã¯ããã¹ã¿ãã¯åããšåŒã°ããèãæ¹ã§äœãããŠãããããããã¹ã¿ãã¯åã§ã¯ãå¹çãæªãããŠã£ã³ããŠã®äžèº«ã«ã¯å€åããªããŠãããŠã£ã³ããŠã®éãªãå ·åãªã©ã§åæç»ãçºçããã·ã¹ãã ã«è² è·ãããã£ãŠããŸãã
-

å³03: WaylandãXåæ§ãããã³ã«ãšããŠå®çŸ©ãããŠããããããWaylandã³ã³ããžã¿ãšåŒã³ãããã€ãã®å®è£ ããã
ãã®åŸãã¡ã¢ãªã¯å¢ããGPUãªã©ã®ããããããåæãããŒããŠã§ã¢ã§è¡ãããšãå¯èœã«ãªã£ãŠãããããã§ç»å Žããã®ããã³ã³ããžããåãŠã£ã³ããŠãããŒãžã£ã§ãããã³ã³ããžããåã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãæç»ãããŠã£ã³ããŠããGPUã®ããããããåææ©èœãªã©ã䜿ã£ãŠãã€ã¡ãŒãžã®ã¬ãã«ã§ãã¹ã¯ããããåæããããã衚瀺ãããã
Xãã³ã³ããžããåã«æ¹è¯ããããšã¯äžå¯èœã§ã¯ãªãã£ãããå¹çããããã®ã§ããªãã£ãããã®ããã«ããã£ã¹ãã¬ã€ãµãŒããŒããŠã£ã³ããŠãããŒãžã£ã眮ãæããåããåºãŠãããWaylandã¯ãã®1ã€ã§ããã
ãã®WaylandèªäœãXåæ§ã«ãããã³ã«ãšããŠå®çŸ©ãè¡ãããŠããããã®ãªãã¡ã¬ã³ã¹å®è£ ïŒå®éã®ããã°ã©ã ãœãŒã¹ïŒãšããŠäœããããã®ãWestonãšãããWaylandèªäœã¯ãããã³ã«ã®å®çŸ©ã§ããããããå ã«äœããããã®ãWaylandã³ã³ããžã¿ã§ãããWestonã¯ãã®ïŒã€ã§ããã®ã»ãã«ãããã€ãWaylandã³ã³ããžã¿ãååšããŠããã
ãã®Waylandã®ãããã³ã«ã¯ãXãšã®çŽæ¥ã®äºææ§ã¯ãªãããã®ããã«Xã®ãããã³ã«ãåãä»ããŠãWaylandã«æç»ãªã©ãè¡ãããXWaylandãšããããã°ã©ã ã¢ãžã¥ãŒã«ãäœããããããã¯ãã¢ããªã±ãŒã·ã§ã³åŽããèŠããšXã®ãã£ã¹ãã¬ã€ãµãŒããŒãšããŠåäœãããããã®åŠçããã¹ãŠWaylandã§åŠçãããã®ã ã
WSLgã®ä»çµã¿
2020幎ã«ãã€ã¯ããœããã¯ãWSL2ã§Linuxã®GUIã¢ããªã±ãŒã·ã§ã³ãåäœãããããã®WSLgãçºè¡šãããWSLgã¯ãLinuxãã£ã¹ããªãã¥ãŒã·ã§ã³çšã®ãã€ããªã®GUIã¢ããªã±ãŒã·ã§ã³ã倿Žããããšãªãå®è¡ã§ãããã€ãŸããGUIéšåã«ã€ããŠã¯ãååºã®Xã®ä»çµã¿ãåŸç¶ã®Waylandãšäºææ§ãããã
ãã ãã倧ããªéããšããŠãWSLgã䜿ãå Žåããã¹ã¯ãããç°å¢ã¯ååšãããWindowsãã¹ã¯ãããã«GUIã¢ããªã±ãŒã·ã§ã³ã®ãŠã£ã³ããŠãçŽæ¥è¡šç€ºãããç¹ã ãéã«èšããšãWSLgã®å ŽåãWindowsã®ãã¹ã¯ããããLinuxãã¹ã¯ãããç°å¢ã®ä»£ããã«äœ¿ãããã
ãã1ã€ã¯ããã£ã¹ãã¬ã€ãµãŒããŒããŠã£ã³ããŠãããŒãžã£ãªã©GUIãæ§æãã倧åã®ããã°ã©ã ã¯ã皌åäžã®ãã£ã¹ããªãã¥ãŒã·ã§ã³å ã«ã¯ååšãããWSLgå°çšã®systemãšåŒã°ãããã£ã¹ããªãã¥ãŒã·ã§ã³åŽã§åäœããŠããç¹ã ïŒå³04)ããããå¯èœã«ãªãã®ã¯ãXãWaylandããããã³ã«ãšããŠå®çŸ©ãããŠããããœã±ãããä»ããŠX/WaylandåŽãšéä¿¡ãè¡ãããã ã
-

å³04: WSLgã§ã¯ãsystemãã£ã¹ããªãã¥ãŒã·ã§ã³ã§WaylandïŒãªãã¡ã¬ã³ã¹å®è£ ã®Westonãå©çšïŒãªã©ãåãããWSLãã£ã¹ããªãã¥ãŒã·ã§ã³ãšã¯ãœã±ããçµç±ã§æ¥ç¶ãWaylandãXãããã³ã«ãåãä»ãããWin32åŽãšã¯Hyper-Vãœã±ãããçµç±ããŠRDPã§ãŠã£ã³ããŠæç»ãè¡ã
WSLgã§Xã¢ããªã±ãŒã·ã§ã³ãèµ·åãã
çŸåšã®WSLã§ã¯ãæšæºã§WSLgãçµã¿èŸŒãŸããŠãããXã®ã¢ããªã±ãŒã·ã§ã³ãªã©ããã£ã¹ããªãã¥ãŒã·ã§ã³ã«ã€ã³ã¹ããŒã«ããã°ããããèµ·åããããšãã§ããã
ãŸãã¯ãXçšã«äœãããã¢ããªã±ãŒã·ã§ã³ãåãããŠã¿ããããã§ã¯ãWSLãã£ã¹ããªãã¥ãŒã·ã§ã³ãšããŠUbuntuã䜿ãã
èåãªXã®ããã°ã©ã ã«ãXã®ãã¢çšããã°ã©ã ãããããŸãã¯ãããã±ãŒãžã®ã€ã³ã¹ããŒã«ãè¡ãã
sudo apt update
sudo apt install x11-apps -y
ãã®ããã±ãŒãžã«ã¯ã27åã®ããã°ã©ã ïŒè¡š02ïŒãå«ãŸããŠããïŒåç01ïŒãã©ãããããã°ã©ã ãšããŠã¯ç°¡åãªãã®ã ããXã®ããã°ã©ãã³ã°ã®ãµã³ãã«ãšããŠéèŠãªãã®ã ãããšãã°ãxeyesã¯ãããŠã¹ã®åãã远跡ããŠç®çãåããããã°ã©ã ã ã
xeyes &
-

åç01: "x11-apps"ããã±ãŒãžã«å«ãŸããã¢ããªã±ãŒã·ã§ã³ãç»é¢å·ŠåŽãäžãã2çªç®ãxeyes
次ã«ãUIããŒã«ãããã䜿ã£ãããã°ã©ã ãèµ·åããŠã¿ããUIããŒã«ãããGTKã䜿ãâgeditâã ïŒåç02ïŒãããã¯ãGNOMEãšãããã¹ã¯ãããç°å¢ã®æšæºçãªããã¹ããšãã£ã¿ãšããŠäœ¿ãããŠããã
sudo apt install gedit -y
gedit &
geditãã€ã³ã¹ããŒã«ãããšãWin32åŽã§ããã¹ã¿ãŒãã¡ãã¥ãŒã®ããã¹ãŠã®ã¢ããªãã«ãããã£ã¹ããªãã¥ãŒã·ã§ã³åã®ãã©ã«ããŒã«ãâText Editorâãç»é²ãããïŒåç03ïŒãããã¯ãWSLãã£ã¹ããªãã¥ãŒã·ã§ã³å ã§ãgeditããã¹ã¯ãããç°å¢ã®ã©ãŠã³ãã£ãŒã«èªèº«ãç»é²ããåŠçãWSLgãæ€åºããŠã¹ã¿ãŒãã¡ãã¥ãŒã«ç»é²ãè¡ãããã®ãšããWin32åŽããLinux GUIã¢ããªã±ãŒã·ã§ã³ã®èµ·åã«äœ¿ãããã®ãwslg.exeã§ããã
-

åç03: Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ãã¹ã¯ãããç°å¢ã«èªèº«ãç»é²ããã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ãããšãWin32åŽã®ã¹ã¿ãŒãã¡ãã¥ãŒã«ãèµ·åã·ã§ãŒãã«ãããç»é²ããã
WSLgã䜿ãããšã§ãLinuxã®GUIã¢ããªã±ãŒã·ã§ã³ãéåžžã®Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ãšããªãããã«ã€ã³ã¹ããŒã«ããŠå®è¡ã§ããããã ããããã€ãã®åé¡ããããããšãã°ãæ¥æ¬èªå ¥åãè¡ãããšãã§ããªãããã®ããã«ã¯ãWSLãã£ã¹ããªãã¥ãŒã·ã§ã³åŽã«Linuxçšã®æ¥æ¬èªå ¥åããã°ã©ã ïŒIMEãInput Method EngineãWindowsã®IME:Input Method Editorãšã¯ç°ãªãïŒãã€ã³ã¹ããŒã«ããå¿ èŠããããæ¬¡åã¯ãWSLgã®æ¥æ¬èªç°å¢æŽåãè¡ãã
ïŒ Windows Subsystem for Linuxã¬ã€ã é£èŒããã¯ãã³ããŒ
https://news.mynavi.jp/tag/winsubsystem/



