diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.mdx similarity index 79% rename from docs/getting-started/installation.md rename to docs/getting-started/installation.mdx index aff6aa4..a9de9ae 100644 --- a/docs/getting-started/installation.md +++ b/docs/getting-started/installation.mdx @@ -11,6 +11,8 @@ tags: - linux --- +import { WingetCommand } from "@site/src/components/WingetCommandList"; + # Installation The easiest and most reliable way to install the Godot Launcher is by visiting the official website [download page](https://godotlauncher.org/download). The launcher is cross-platform, works with Windows, macOS, and Linux systems. @@ -33,10 +35,20 @@ On first launch, the launcher matches your operating system language automatical ![Godot Launcher Setup UI - windows](../../static/img/win-installer-ui.webp) -On Windows, simply run the `.exe` installer after download, This it will automatically guide you through the installation process. +On Windows, simply run the `.exe` installer after download. It will automatically guide you through the installation process. If you did not choose to run Godot Launcher at the end of the installation, you can run it directly from the Start Menu. + + +#### Read more + +- [Installing Godot Launcher with winget](/guides/windows-winget) + --- ### macOS @@ -49,7 +61,7 @@ If you did not choose to run Godot Launcher at the end of the installation, you For macOS Godot Launcher is distributed as a universal `.dmg`. Run the `.dmg` file and drag the `Godot Launcher` to the `Applications` folder when the dmg opens. -Once done, Godot Launcher can be opened from the Applications +Once done, Godot Launcher can be opened from the Applications folder. --- diff --git a/docs/guides/windows-winget.mdx b/docs/guides/windows-winget.mdx new file mode 100644 index 0000000..d3f004a --- /dev/null +++ b/docs/guides/windows-winget.mdx @@ -0,0 +1,110 @@ +--- +id: windows-winget +title: Installing Godot Launcher with winget +slug: /guides/windows-winget +description: "Install, upgrade, or remove Godot Launcher on Windows using the official winget package." +tags: + - setup-guide + - getting-started + - windows + - winget +keywords: + - Godot Launcher winget + - winget install GodotLauncher.Launcher + - Windows package manager + - Godot Launcher Windows installation +--- + +import { WingetCommandList } from "@site/src/components/WingetCommandList"; + +# Installing Godot Launcher with winget + +Starting with **Godot Launcher v1.4.0**, we publish an official [winget](https://learn.microsoft.com/windows/package-manager/) manifest that tracks every Windows release. This gives you a trusted, script-friendly way to install and keep the launcher up to date without leaving the terminal. + +--- + +## Requirements + +- Windows 10 version 1809 (build 17763) or later, or Windows 11. +- The **App Installer** package from the Microsoft Store, which provides the `winget` client. +- Administrative rights the first time you install, so winget can unpack the signed installer. + +You can confirm that winget is available by running `winget --info`. If it is missing, open the [App Installer listing](https://www.microsoft.com/p/app-installer/9nblggh4nns1) in the Microsoft Store and click **Get**. + +--- + +## Install the latest release + + + +During the first install you may be prompted to accept the installer or elevate privileges. After completion, Godot Launcher appears in your Start Menu just like the manual installer. + +--- + +## Keep Godot Launcher updated + + + +You can check whether an upgrade is available without running it by using `winget upgrade --name "Godot Launcher"`. + +--- + +## Discover other manifest details + +- `winget show GodotLauncher.Launcher` prints publisher metadata, installer URLs, and release notes. +- `winget search "godot launcher"` confirms you are selecting the official package before installing. +- `winget list Godot` reports whether the launcher is already installed. + +Manifests are kept in sync with every Windows release. If a command fails with **No applicable update found**, you are already on the latest version. + +--- + +## Uninstall or reinstall + +- `winget uninstall GodotLauncher.Launcher` removes the launcher. Your Godot projects remain intact. +- `winget install --id GodotLauncher.Launcher --source winget --silent` reinstalls without UI and is useful in CI scripts. +- Pair `winget uninstall` followed by a fresh `winget install` if you need to repair a corrupted installation. + +--- + +## Troubleshooting tips + +- Run `winget source update` if winget cannot find the package, especially after waking a machine from sleep. +- If the Microsoft Store is blocked, download the latest **App Installer** `.msixbundle` directly from the store page to enable winget. +- For enterprise environments, export the manifest with `winget export GodotLauncher.Launcher --output winget.json` and import it on managed devices. + +If you continue to run into issues, grab the log from `%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir\` and share it when opening an issue so we can help. + +--- + +## Related resources + +- [Download the Windows installer](https://godotlauncher.org/download) +- [FAQ: Can I install via winget?](https://godotlauncher.org/faq#can-i-install-godot-launcher-via-winget) +- [Launcher release notes](https://github.com/godotlauncher/launcher/releases) diff --git a/docs/tags.yml b/docs/tags.yml index facd818..0d9fb94 100644 --- a/docs/tags.yml +++ b/docs/tags.yml @@ -63,15 +63,20 @@ editor-installation: permalink: "/editor-installation" description: Step-by-step guides for installing various Godot Engine editor versions. -windows: - label: "Windows" - permalink: "/windows" - description: Instructions and support tailored specifically for Godot Launcher on Windows. - -macos: - label: "macOS" - permalink: "/macos" - description: Instructions and support tailored specifically for Godot Launcher on macOS. +windows: + label: "Windows" + permalink: "/windows" + description: Instructions and support tailored specifically for Godot Launcher on Windows. + +winget: + label: "winget" + permalink: "/winget" + description: Use the Windows Package Manager to install and maintain Godot Launcher. + +macos: + label: "macOS" + permalink: "/macos" + description: Instructions and support tailored specifically for Godot Launcher on macOS. linux: label: "Linux" @@ -191,4 +196,4 @@ translations: localisation: label: "Localisation" permalink: "/localisation" - description: Best practices for localising Godot Launcher for a global audience. \ No newline at end of file + description: Best practices for localising Godot Launcher for a global audience. diff --git a/package-lock.json b/package-lock.json index bfa461e..3e09d30 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "launcher-docs", - "version": "1.3.0", + "version": "1.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "launcher-docs", - "version": "1.3.0", + "version": "1.5.0", "dependencies": { "@docusaurus/core": "^3.9.2", "@docusaurus/preset-classic": "^3.9.2", diff --git a/package.json b/package.json index ac5719c..bbd4aa3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "launcher-docs", - "version": "1.3.0", + "version": "1.5.0", "private": true, "scripts": { "docusaurus": "docusaurus", diff --git a/sidebars.ts b/sidebars.ts index 8afa53c..ef161c7 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -34,41 +34,62 @@ export default { label: "Guides", collapsed: false, items: [ - "guides/launch-godot-project-in-windowed-mode", - "guides/using-git", - "guides/install-git", - "guides/vscode-setup-for-godot", - "guides/system-tray", - "guides/change-project-editor", - "guides/editor-settings", - "guides/windows-symlink", - "guides/linux-no-sandbox", + { + type: "category", + label: "Project Workflow", + collapsed: false, + items: [ + "guides/using-git", + "guides/install-git", + "guides/vscode-setup-for-godot", + "guides/change-project-editor", + "guides/editor-settings", + "project-badges", + ], + }, + { + type: "category", + label: "Launcher Tips", + collapsed: false, + items: [ + "guides/launch-godot-project-in-windowed-mode", + "guides/system-tray", + ], + }, + { + type: "category", + label: "Platform Specific", + collapsed: false, + items: [ + "guides/windows-winget", + "guides/windows-symlink", + "guides/linux-no-sandbox", + ], + }, ], }, { - type: "doc", - id: "project-badges", - }, - { - type: "doc", - id: "help-and-support", - }, - { - type: "link", - label: "Roadmap", - href: "https://github.com/orgs/godotlauncher/projects/1", - }, - { - type: "doc", - id: "contributing", - }, - { - type: "doc", - id: "contributing/translations", + type: "category", + label: "Support & Community", + collapsed: false, + items: [ + "help-and-support", + "community", + ], }, { - type: "doc", - id: "community", + type: "category", + label: "Contributing", + collapsed: false, + items: [ + "contributing", + "contributing/translations", + { + type: "link", + label: "Roadmap", + href: "https://github.com/orgs/godotlauncher/projects/1", + }, + ], }, { type: "doc", diff --git a/src/components/WingetCommandList/index.tsx b/src/components/WingetCommandList/index.tsx new file mode 100644 index 0000000..7d131df --- /dev/null +++ b/src/components/WingetCommandList/index.tsx @@ -0,0 +1,91 @@ +import { FC, ReactNode, useEffect, useState } from "react"; +import clsx from "clsx"; +import { Check, Copy } from "lucide-react"; + +import styles from "./styles.module.css"; + +interface WingetCommand { + label: string; + command: string; +} + +interface WingetCommandListProps { + commands: WingetCommand[]; + intro?: ReactNode; + hint?: ReactNode; + className?: string; +} + +export const WingetCommandList: FC = ({ + commands, + intro, + hint, + className, +}) => { + const [copiedCommand, setCopiedCommand] = useState(null); + + useEffect(() => { + if (!copiedCommand) { + return; + } + const timeout = setTimeout(() => setCopiedCommand(null), 3000); + return () => clearTimeout(timeout); + }, [copiedCommand]); + + const handleCopy = (command: string) => { + navigator.clipboard.writeText(command); + setCopiedCommand(command); + }; + + return ( +
+ {intro &&

{intro}

} + +
+ {commands.map(({ label, command }) => ( +
+
{label}
+
> {command}
+ +
+ ))} +
+ + {hint &&
{hint}
} +
+ ); +}; + +interface WingetCommandProps { + label: string; + command: string; + intro?: ReactNode; + hint?: ReactNode; + className?: string; +} + +export const WingetCommand: FC = ({ + label, + command, + intro, + hint, + className, +}) => ( + +); + diff --git a/src/components/WingetCommandList/styles.module.css b/src/components/WingetCommandList/styles.module.css new file mode 100644 index 0000000..60657bc --- /dev/null +++ b/src/components/WingetCommandList/styles.module.css @@ -0,0 +1,69 @@ +.card { + display: flex; + flex-direction: column; + gap: 1rem; +} + +.intro { + margin: 0; +} + +.codeGroup { + display: flex; + flex-direction: column; + gap: 0.75rem; +} + +.codeBlock { + position: relative; + background-color: var(--ifm-color-emphasis-0); + border-radius: 8px; + padding: 1rem 3rem 1rem 1rem; + font-family: var(--ifm-font-family-monospace); + font-size: 0.95rem; + display: flex; + align-items: center; + gap: 1rem; +} + +.codeLabel { + font-size: 0.75rem; + font-weight: 600; + opacity: 0.65; + position: absolute; + top: 0.5rem; + left: 1rem; + text-transform: uppercase; + letter-spacing: 0.05em; +} + +.codeText { + color: var(--ifm-color-base); + opacity: 0.9; + padding-top: 1rem; +} + +.copyButton { + cursor: pointer; + background: none; + border: none; + color: var(--ifm-color-secondary); + position: absolute; + top: 0.75rem; + right: 0.75rem; + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0.25rem; +} + +.copyButton:hover { + color: var(--ifm-color-base); +} + +.hint { + margin: 0; + font-size: 0.9rem; + color: var(--ifm-color-emphasis-700); +} +