Add platform-specific extension install paths
Enhanced extension installation documentation across docs, examples, and the generated install guide. Added Windows, macOS, and Linux-specific paths to help users find the correct installation directory. The dynamic README now shows the machine's actual extensions directory and typical OS paths. Also includes a minor fix removing wide string literal prefix from a path string.
This commit is contained in:
@@ -169,6 +169,8 @@ Shared logic in `src/ui/paths.cpp` writes under:
|
|||||||
| macOS | `~/Library/Application Support/Nebula/User Data` |
|
| macOS | `~/Library/Application Support/Nebula/User Data` |
|
||||||
| Linux | `$XDG_DATA_HOME/Nebula/User Data` or `~/.local/share/Nebula/User Data` |
|
| Linux | `$XDG_DATA_HOME/Nebula/User Data` or `~/.local/share/Nebula/User Data` |
|
||||||
|
|
||||||
|
Unpacked extensions load from `<user data>/extensions/` on every OS (`GetExtensionsDirectory()`). Settings → Plugins shows the live path.
|
||||||
|
|
||||||
Platform-specific discovery lives in `src/platform/*/paths_*.cpp`.
|
Platform-specific discovery lives in `src/platform/*/paths_*.cpp`.
|
||||||
|
|
||||||
## GPU / Chromium flags
|
## GPU / Chromium flags
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
Copy this folder into Nebula's extensions directory to install:
|
Copy this folder into Nebula's extensions directory to install:
|
||||||
|
|
||||||
%LOCALAPPDATA%\Nebula\User Data\extensions\hello-nebula\
|
Windows: %LOCALAPPDATA%\Nebula\User Data\extensions\hello-nebula\
|
||||||
|
macOS: ~/Library/Application Support/Nebula/User Data/extensions/hello-nebula/
|
||||||
|
Linux: ~/.local/share/Nebula/User Data/extensions/hello-nebula/
|
||||||
|
(or $XDG_DATA_HOME/Nebula/User Data/extensions/hello-nebula/)
|
||||||
|
|
||||||
Then open Settings > Plugins and click Reload Plugins (or restart Nebula).
|
Or open Settings > Plugins — the install path is shown there.
|
||||||
|
|
||||||
|
Then click Reload Plugins (or restart Nebula).
|
||||||
|
|
||||||
manifest.json fields:
|
manifest.json fields:
|
||||||
id, name, version, description, enabled
|
id, name, version, description, enabled
|
||||||
|
|||||||
@@ -20,7 +20,12 @@ Install
|
|||||||
-------
|
-------
|
||||||
Copy this folder to:
|
Copy this folder to:
|
||||||
|
|
||||||
%LOCALAPPDATA%\Nebula\User Data\extensions\return-youtube-dislike\
|
Windows: %LOCALAPPDATA%\Nebula\User Data\extensions\return-youtube-dislike\
|
||||||
|
macOS: ~/Library/Application Support/Nebula/User Data/extensions/return-youtube-dislike/
|
||||||
|
Linux: ~/.local/share/Nebula/User Data/extensions/return-youtube-dislike/
|
||||||
|
(or $XDG_DATA_HOME/Nebula/User Data/extensions/return-youtube-dislike/)
|
||||||
|
|
||||||
|
Or open Settings > Plugins — the install path is shown there.
|
||||||
|
|
||||||
Open Settings > Plugins > Reload Plugins, then open a YouTube video.
|
Open Settings > Plugins > Reload Plugins, then open a YouTube video.
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ constexpr size_t kMaxSiteHistoryEntries = 200;
|
|||||||
|
|
||||||
std::filesystem::path GetSiteHistoryPath() {
|
std::filesystem::path GetSiteHistoryPath() {
|
||||||
const auto user_data = nebula::ui::GetUserDataDirectory();
|
const auto user_data = nebula::ui::GetUserDataDirectory();
|
||||||
return user_data.empty() ? std::filesystem::path{} : user_data / L"site_history.txt";
|
return user_data.empty() ? std::filesystem::path{} : user_data / "site_history.txt";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ToLowerAscii(std::string value) {
|
std::string ToLowerAscii(std::string value) {
|
||||||
|
|||||||
@@ -274,10 +274,17 @@ void WriteInstallReadme(const std::filesystem::path& extensions_dir) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const std::string dir_utf8 = nebula::platform::PathToUtf8(extensions_dir);
|
||||||
output << "Nebula Extensions\n"
|
output << "Nebula Extensions\n"
|
||||||
<< "=================\n\n"
|
<< "=================\n\n"
|
||||||
|
<< "This machine's install directory:\n"
|
||||||
|
<< " " << dir_utf8 << "\n\n"
|
||||||
<< "Drop an unpacked extension folder here (or copy/paste it into this directory).\n"
|
<< "Drop an unpacked extension folder here (or copy/paste it into this directory).\n"
|
||||||
<< "Each folder must contain a manifest.json file.\n\n"
|
<< "Each folder must contain a manifest.json file.\n\n"
|
||||||
|
<< "Typical locations by OS:\n"
|
||||||
|
<< " Windows: %LOCALAPPDATA%\\Nebula\\User Data\\extensions\\\n"
|
||||||
|
<< " macOS: ~/Library/Application Support/Nebula/User Data/extensions/\n"
|
||||||
|
<< " Linux: ~/.local/share/Nebula/User Data/extensions/\n\n"
|
||||||
<< "Example layout:\n"
|
<< "Example layout:\n"
|
||||||
<< " extensions/\n"
|
<< " extensions/\n"
|
||||||
<< " my-extension/\n"
|
<< " my-extension/\n"
|
||||||
|
|||||||
Reference in New Issue
Block a user