[{"data":1,"prerenderedAt":608},["ShallowReactive",2],{"page-\u002Fen-us\u002Fblog\u002Fvscode-taskbar-codex-fix":3,"surrounding-\u002Fen-us\u002Fblog\u002Fvscode-taskbar-codex-fix":586,"language-switcher-data-\u002Fen-us\u002Fblog\u002Fvscode-taskbar-codex-fix":592,"blog-i18n-paths-\u002Fen-us\u002Fblog\u002Fvscode-taskbar-codex-fix":607},{"id":4,"title":5,"body":6,"canonicalPath":571,"chapterDepth":572,"chapterOrder":572,"date":573,"description":574,"docI18nKey":572,"docKey":572,"docRoot":572,"docTitle":572,"extension":575,"i18nKey":576,"isBlogPost":577,"isWikiDoc":578,"isWikiIndex":578,"layout":572,"legacyPath":572,"locale":579,"localeSlug":580,"meta":581,"navigation":577,"path":571,"seo":582,"sourcePath":583,"sourceStem":576,"stem":584,"wikiDepth":572,"__hash__":585},"content\u002F_i18n\u002Fen-us\u002Fposts\u002F2026-07-21-VSCode任务栏启动Codex插件打不开.md","Linux下从任务栏启动VS Code时Codex插件打不开的解决方法",{"type":7,"value":8,"toc":553},"minimark",[9,13,17,29,34,37,40,43,53,56,63,66,69,88,91,97,100,117,120,126,132,135,150,153,164,167,170,173,183,186,197,200,203,219,222,240,246,264,267,270,276,279,283,299,303,324,328,337,364,368,382,385,400,404,407,419,422,435,438,450,453,456,462,467,472,478,481,487,493,496,499,523,526,531,534,537,543,549],[10,11,12],"h2",{"id":12},"问题现象",[14,15,16],"p",{},"在Linux桌面环境中，我遇到了一个很奇怪的问题：",[18,19,20],"ul",{},[21,22,23,24,28],"li",{},"在终端执行",[25,26,27],"code",{},"code .","启动VS Code，Codex插件可以正常打开；",[18,30,31],{},[21,32,33],{},"点击KDE任务栏中的VS Code图标启动，Codex插件却无法正常进入。",[14,35,36],{},"如果你也遇到了“同一个VS Code，终端启动正常，任务栏启动异常”的情况，可以先检查两种启动方式实际执行的程序是否相同。",[10,38,39],{"id":39},"两种启动方式的区别",[14,41,42],{},"在我的系统中，VS Code安装后存在下面两个入口：",[44,45,51],"pre",{"className":46,"code":48,"language":49,"meta":50},[47],"language-text","\u002Fusr\u002Fshare\u002Fcode\u002Fcode\n\u002Fusr\u002Fbin\u002Fcode\n","text","",[25,52,48],{"__ignoreMap":50},[14,54,55],{},"它们看起来都能启动VS Code，但实际用途并不完全相同。",[57,58,60],"h3",{"id":59},"usrsharecodecode",[25,61,62],{},"\u002Fusr\u002Fshare\u002Fcode\u002Fcode",[14,64,65],{},"这是VS Code的Electron主程序，也就是实际的GUI可执行文件。",[14,67,68],{},"直接运行：",[44,70,74],{"className":71,"code":72,"language":73,"meta":50,"style":50},"language-bash shiki shiki-themes github-light github-dark","\u002Fusr\u002Fshare\u002Fcode\u002Fcode .\n","bash",[25,75,76],{"__ignoreMap":50},[77,78,81,84],"span",{"class":79,"line":80},"line",1,[77,82,62],{"class":83},"sScJk",[77,85,87],{"class":86},"sZZnC"," .\n",[14,89,90],{},"相当于直接启动Electron应用。",[57,92,94],{"id":93},"usrbincode",[25,95,96],{},"\u002Fusr\u002Fbin\u002Fcode",[14,98,99],{},"这是VS Code提供的命令行启动入口。在我的系统中，它是一个符号链接：",[44,101,103],{"className":71,"code":102,"language":73,"meta":50,"style":50},"ls -l \u002Fusr\u002Fbin\u002Fcode\n",[25,104,105],{"__ignoreMap":50},[77,106,107,110,114],{"class":79,"line":80},[77,108,109],{"class":83},"ls",[77,111,113],{"class":112},"sj4cs"," -l",[77,115,116],{"class":86}," \u002Fusr\u002Fbin\u002Fcode\n",[14,118,119],{},"Output similar to:",[44,121,124],{"className":122,"code":123,"language":49,"meta":50},[47],"\u002Fusr\u002Fbin\u002Fcode -> \u002Fusr\u002Fshare\u002Fcode\u002Fbin\u002Fcode\n",[25,125,123],{"__ignoreMap":50},[14,127,128,131],{},[25,129,130],{},"\u002Fusr\u002Fshare\u002Fcode\u002Fbin\u002Fcode","是一个Shell脚本。它会调用VS Code的CLI逻辑，再由CLI创建新窗口或者连接已经运行的VS Code进程。",[14,133,134],{},"可以查看实际路径：",[44,136,138],{"className":71,"code":137,"language":73,"meta":50,"style":50},"readlink -f \u002Fusr\u002Fbin\u002Fcode\n",[25,139,140],{"__ignoreMap":50},[77,141,142,145,148],{"class":79,"line":80},[77,143,144],{"class":83},"readlink",[77,146,147],{"class":112}," -f",[77,149,116],{"class":86},[14,151,152],{},"因此，下面这条命令并不是简单地直接执行Electron主程序：",[44,154,156],{"className":71,"code":155,"language":73,"meta":50,"style":50},"code .\n",[25,157,158],{"__ignoreMap":50},[77,159,160,162],{"class":79,"line":80},[77,161,25],{"class":83},[77,163,87],{"class":86},[10,165,166],{"id":166},"如何确认是不是启动入口的问题",[14,168,169],{},"先正常退出所有VS Code窗口，然后分别测试下面两个命令。",[14,171,172],{},"直接运行GUI程序：",[44,174,175],{"className":71,"code":72,"language":73,"meta":50,"style":50},[25,176,177],{"__ignoreMap":50},[77,178,179,181],{"class":79,"line":80},[77,180,62],{"class":83},[77,182,87],{"class":86},[14,184,185],{},"通过官方CLI入口运行：",[44,187,189],{"className":71,"code":188,"language":73,"meta":50,"style":50},"\u002Fusr\u002Fbin\u002Fcode .\n",[25,190,191],{"__ignoreMap":50},[77,192,193,195],{"class":79,"line":80},[77,194,96],{"class":83},[77,196,87],{"class":86},[14,198,199],{},"在我的环境中，前一种方式无法正常进入Codex插件，后一种方式可以正常使用。",[14,201,202],{},"接着检查系统的VS Code桌面启动器：",[44,204,206],{"className":71,"code":205,"language":73,"meta":50,"style":50},"grep '^Exec=' \u002Fusr\u002Fshare\u002Fapplications\u002Fcode.desktop\n",[25,207,208],{"__ignoreMap":50},[77,209,210,213,216],{"class":79,"line":80},[77,211,212],{"class":83},"grep",[77,214,215],{"class":86}," '^Exec='",[77,217,218],{"class":86}," \u002Fusr\u002Fshare\u002Fapplications\u002Fcode.desktop\n",[14,220,221],{},"原来的配置为：",[44,223,227],{"className":224,"code":225,"language":226,"meta":50,"style":50},"language-ini shiki shiki-themes github-light github-dark","Exec=\u002Fusr\u002Fshare\u002Fcode\u002Fcode %F\nExec=\u002Fusr\u002Fshare\u002Fcode\u002Fcode --new-window %F\n","ini",[25,228,229,234],{"__ignoreMap":50},[77,230,231],{"class":79,"line":80},[77,232,233],{},"Exec=\u002Fusr\u002Fshare\u002Fcode\u002Fcode %F\n",[77,235,237],{"class":79,"line":236},2,[77,238,239],{},"Exec=\u002Fusr\u002Fshare\u002Fcode\u002Fcode --new-window %F\n",[14,241,242,243,245],{},"这就解释了为什么点击任务栏图标和在终端执行",[25,244,25],{},"会得到不同结果：任务栏直接执行了Electron主程序，而终端使用的是VS Code CLI入口。",[247,248,249],"blockquote",{},[14,250,251,252,255,256,259,260,263],{},"不同发行版和安装方式的路径可能不同。修改前应先通过",[25,253,254],{},"command -v code","、",[25,257,258],{},"readlink -f \"$(command -v code)\"","和桌面文件中的",[25,261,262],{},"Exec","字段确认实际路径。",[10,265,266],{"id":266},"使用用户级desktop文件修复",[14,268,269],{},"不建议直接修改：",[44,271,274],{"className":272,"code":273,"language":49,"meta":50},[47],"\u002Fusr\u002Fshare\u002Fapplications\u002Fcode.desktop\n",[25,275,273],{"__ignoreMap":50},[14,277,278],{},"这个文件由系统软件包管理，VS Code升级后可能会被覆盖。更合适的方法是在当前用户目录创建同名desktop文件，覆盖系统启动器。",[57,280,282],{"id":281},"_1-创建用户级应用目录","1. 创建用户级应用目录",[44,284,286],{"className":71,"code":285,"language":73,"meta":50,"style":50},"mkdir -p ~\u002F.local\u002Fshare\u002Fapplications\n",[25,287,288],{"__ignoreMap":50},[77,289,290,293,296],{"class":79,"line":80},[77,291,292],{"class":83},"mkdir",[77,294,295],{"class":112}," -p",[77,297,298],{"class":86}," ~\u002F.local\u002Fshare\u002Fapplications\n",[57,300,302],{"id":301},"_2-复制系统desktop文件","2. 复制系统desktop文件",[44,304,306],{"className":71,"code":305,"language":73,"meta":50,"style":50},"cp \u002Fusr\u002Fshare\u002Fapplications\u002Fcode.desktop \\\n  ~\u002F.local\u002Fshare\u002Fapplications\u002Fcode.desktop\n",[25,307,308,319],{"__ignoreMap":50},[77,309,310,313,316],{"class":79,"line":80},[77,311,312],{"class":83},"cp",[77,314,315],{"class":86}," \u002Fusr\u002Fshare\u002Fapplications\u002Fcode.desktop",[77,317,318],{"class":112}," \\\n",[77,320,321],{"class":79,"line":236},[77,322,323],{"class":86},"  ~\u002F.local\u002Fshare\u002Fapplications\u002Fcode.desktop\n",[57,325,327],{"id":326},"_3-修改启动路径","3. 修改启动路径",[14,329,330,331,333,334,336],{},"把所有",[25,332,62],{},"替换为",[25,335,96],{},"：",[44,338,340],{"className":71,"code":339,"language":73,"meta":50,"style":50},"sed -i \\\n  's#\u002Fusr\u002Fshare\u002Fcode\u002Fcode#\u002Fusr\u002Fbin\u002Fcode#g' \\\n  ~\u002F.local\u002Fshare\u002Fapplications\u002Fcode.desktop\n",[25,341,342,352,359],{"__ignoreMap":50},[77,343,344,347,350],{"class":79,"line":80},[77,345,346],{"class":83},"sed",[77,348,349],{"class":112}," -i",[77,351,318],{"class":112},[77,353,354,357],{"class":79,"line":236},[77,355,356],{"class":86},"  's#\u002Fusr\u002Fshare\u002Fcode\u002Fcode#\u002Fusr\u002Fbin\u002Fcode#g'",[77,358,318],{"class":112},[77,360,362],{"class":79,"line":361},3,[77,363,323],{"class":86},[57,365,367],{"id":366},"_4-检查修改结果","4. 检查修改结果",[44,369,371],{"className":71,"code":370,"language":73,"meta":50,"style":50},"grep '^Exec=' ~\u002F.local\u002Fshare\u002Fapplications\u002Fcode.desktop\n",[25,372,373],{"__ignoreMap":50},[77,374,375,377,379],{"class":79,"line":80},[77,376,212],{"class":83},[77,378,215],{"class":86},[77,380,381],{"class":86}," ~\u002F.local\u002Fshare\u002Fapplications\u002Fcode.desktop\n",[14,383,384],{},"正确结果应该是：",[44,386,388],{"className":224,"code":387,"language":226,"meta":50,"style":50},"Exec=\u002Fusr\u002Fbin\u002Fcode %F\nExec=\u002Fusr\u002Fbin\u002Fcode --new-window %F\n",[25,389,390,395],{"__ignoreMap":50},[77,391,392],{"class":79,"line":80},[77,393,394],{},"Exec=\u002Fusr\u002Fbin\u002Fcode %F\n",[77,396,397],{"class":79,"line":236},[77,398,399],{},"Exec=\u002Fusr\u002Fbin\u002Fcode --new-window %F\n",[57,401,403],{"id":402},"_5-刷新桌面应用缓存","5. 刷新桌面应用缓存",[14,405,406],{},"通用桌面数据库可以这样刷新：",[44,408,410],{"className":71,"code":409,"language":73,"meta":50,"style":50},"update-desktop-database ~\u002F.local\u002Fshare\u002Fapplications\n",[25,411,412],{"__ignoreMap":50},[77,413,414,417],{"class":79,"line":80},[77,415,416],{"class":83},"update-desktop-database",[77,418,298],{"class":86},[14,420,421],{},"如果使用KDE Plasma，再执行：",[44,423,425],{"className":71,"code":424,"language":73,"meta":50,"style":50},"kbuildsycoca6 --noincremental\n",[25,426,427],{"__ignoreMap":50},[77,428,429,432],{"class":79,"line":80},[77,430,431],{"class":83},"kbuildsycoca6",[77,433,434],{"class":112}," --noincremental\n",[14,436,437],{},"较旧的KDE版本可能使用：",[44,439,441],{"className":71,"code":440,"language":73,"meta":50,"style":50},"kbuildsycoca5 --noincremental\n",[25,442,443],{"__ignoreMap":50},[77,444,445,448],{"class":79,"line":80},[77,446,447],{"class":83},"kbuildsycoca5",[77,449,434],{"class":112},[10,451,452],{"id":452},"重新固定任务栏图标",[14,454,455],{},"即使desktop文件已经修改，KDE任务栏中原来固定的图标仍可能保留旧启动信息。因此还需要：",[457,458,459],"ol",{},[21,460,461],{},"从任务栏取消固定原来的VS Code图标；",[457,463,464],{"start":236},[21,465,466],{},"在应用菜单中重新搜索“Visual Studio Code”；",[457,468,469],{"start":361},[21,470,471],{},"从应用菜单启动一次并测试Codex插件；",[457,473,475],{"start":474},4,[21,476,477],{},"确认正常后，再将新的图标固定到任务栏。",[14,479,480],{},"之后，从任务栏启动VS Code就会使用：",[44,482,485],{"className":483,"code":484,"language":49,"meta":50},[47],"\u002Fusr\u002Fbin\u002Fcode\n",[25,486,484],{"__ignoreMap":50},[14,488,489,490,492],{},"它与终端中的",[25,491,25],{},"命令走同一个启动入口。",[10,494,495],{"id":495},"恢复原始配置",[14,497,498],{},"如果修改后需要恢复，只需删除用户级覆盖文件并刷新缓存：",[44,500,502],{"className":71,"code":501,"language":73,"meta":50,"style":50},"rm ~\u002F.local\u002Fshare\u002Fapplications\u002Fcode.desktop\nupdate-desktop-database ~\u002F.local\u002Fshare\u002Fapplications\nkbuildsycoca6 --noincremental\n",[25,503,504,511,517],{"__ignoreMap":50},[77,505,506,509],{"class":79,"line":80},[77,507,508],{"class":83},"rm",[77,510,381],{"class":86},[77,512,513,515],{"class":79,"line":236},[77,514,416],{"class":83},[77,516,298],{"class":86},[77,518,519,521],{"class":79,"line":361},[77,520,431],{"class":83},[77,522,434],{"class":112},[14,524,525],{},"删除后，系统会重新使用：",[44,527,529],{"className":528,"code":273,"language":49,"meta":50},[47],[25,530,273],{"__ignoreMap":50},[10,532,533],{"id":533},"总结",[14,535,536],{},"这次问题的关键不在Codex插件本身，而在VS Code的启动入口不同：",[44,538,541],{"className":539,"code":540,"language":49,"meta":50},[47],"任务栏 → \u002Fusr\u002Fshare\u002Fcode\u002Fcode → 直接启动Electron主程序\n终端   → \u002Fusr\u002Fbin\u002Fcode        → 通过VS Code CLI启动\n",[25,542,540],{"__ignoreMap":50},[14,544,545,546,548],{},"将任务栏的desktop启动命令改为",[25,547,96],{},"后，两种启动方式保持一致，Codex插件也可以正常进入。",[550,551,552],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":50,"searchDepth":236,"depth":236,"links":554},[555,556,560,561,568,569,570],{"id":12,"depth":236,"text":12},{"id":39,"depth":236,"text":39,"children":557},[558,559],{"id":59,"depth":361,"text":62},{"id":93,"depth":361,"text":96},{"id":166,"depth":236,"text":166},{"id":266,"depth":236,"text":266,"children":562},[563,564,565,566,567],{"id":281,"depth":361,"text":282},{"id":301,"depth":361,"text":302},{"id":326,"depth":361,"text":327},{"id":366,"depth":361,"text":367},{"id":402,"depth":361,"text":403},{"id":452,"depth":236,"text":452},{"id":495,"depth":236,"text":495},{"id":533,"depth":236,"text":533},"\u002Fen-us\u002Fblog\u002Fvscode-taskbar-codex-fix",null,"2026-07-21","解决Linux KDE任务栏直接启动VS Code时Codex插件无法打开，而从终端执行code命令可以正常使用的问题。","md","posts\u002F2026-07-21-VSCode任务栏启动Codex插件打不开",true,false,"en-US","en-us",{},{"title":5,"description":574},"\u002Fblog\u002Fvscode-taskbar-codex-fix","_i18n\u002Fen-us\u002Fposts\u002F2026-07-21-VSCode任务栏启动Codex插件打不开","TnqXkUvChcEzjFtQLdOeBQ_iTQSynX44cbNp_olcVzQ",[572,587],{"path":588,"title":589,"date":590,"localeSlug":580,"i18nKey":591},"\u002Fen-us\u002Fblog\u002Fnewtodolist","The new todolist is now live.","2026-01-09","posts\u002F2026-02-09-新的todolist界面",{"variants":593},[594,595,598,601,604],{"path":571,"localeSlug":580,"i18nKey":576},{"path":596,"localeSlug":597,"i18nKey":576},"\u002Fzh-hant\u002Fblog\u002Fvscode-taskbar-codex-fix","zh-hant",{"path":599,"localeSlug":600,"i18nKey":576},"\u002Fzh-hk\u002Fblog\u002Fvscode-taskbar-codex-fix","zh-hk",{"path":602,"localeSlug":603,"i18nKey":576},"\u002Fzh-tw\u002Fblog\u002Fvscode-taskbar-codex-fix","zh-tw",{"path":605,"localeSlug":606,"i18nKey":576},"\u002Fzh-cn\u002Fblog\u002Fvscode-taskbar-codex-fix","zh-cn",[571,583,596,583,599,583,602,583,605,583],1784646742438]