diff --git a/modules/applications/codex-desktop.nix b/modules/applications/codex-desktop.nix index 4060223..4071170 100644 --- a/modules/applications/codex-desktop.nix +++ b/modules/applications/codex-desktop.nix @@ -7,6 +7,37 @@ }: let cfg = config.my.applications.codexDesktop; + codexCliPackage = pkgs.llm-agents.codex; + codexDesktopPackage = + inputs.codex-desktop-linux.packages.${pkgs.stdenv.hostPlatform.system}.codex-desktop-computer-use-ui; + codexDesktopLauncher = pkgs.makeDesktopItem { + name = "codex"; + desktopName = "Codex"; + genericName = "ChatGPT Desktop"; + comment = "Run Codex Desktop on Linux"; + exec = "env CODEX_CLI_PATH=${lib.getExe' codexCliPackage "codex"} BAMF_DESKTOP_FILE_HINT=codex.desktop CHROME_DESKTOP=codex.desktop ${lib.getExe' codexDesktopPackage "codex-desktop"} %u"; + icon = "codex-desktop"; + terminal = false; + categories = [ "Development" ]; + keywords = [ + "codex" + "chatgpt" + "openai" + "ai" + "assistant" + ]; + startupNotify = true; + startupWMClass = "codex-desktop"; + actions = { + new-window = { + name = "New Window"; + exec = "env CODEX_CLI_PATH=${lib.getExe' codexCliPackage "codex"} BAMF_DESKTOP_FILE_HINT=codex.desktop CHROME_DESKTOP=codex.desktop CODEX_MULTI_LAUNCH=1 ${lib.getExe' codexDesktopPackage "codex-desktop"} --new-instance"; + }; + }; + extraConfig = { + X-GNOME-WMClass = "codex-desktop"; + }; + }; in { imports = [ @@ -22,8 +53,13 @@ in programs.codexDesktopLinux = { enable = true; - cliPackage = pkgs.llm-agents.codex; + package = codexDesktopPackage; + cliPackage = codexCliPackage; computerUseUi.enable = true; }; + + environment.systemPackages = [ + codexDesktopLauncher # Vicinae-searchable Codex Desktop launcher alias + ]; }; }