Skip to content

appaKappaK/CKAN-LinuxUI

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CKAN LinuxGUI

CKAN LinuxGUI is this fork's Linux desktop shell for the Comprehensive Kerbal Archive Network (CKAN). Its desktop entry point is ckan-linux, which launches the self-contained CKAN-LinuxGUI Avalonia app. The shell uses the existing CKAN core services for metadata, dependency resolution, installs, updates, removals, and registry writes.

In Debian packages built from this fork, /usr/bin/ckan prefers the Avalonia LinuxGUI for graphical no-argument launches. Command-style usage, such as ckan install, ckan remove, or any other invocation with arguments, still runs through the existing Mono ckan.exe command-line path. If no graphical display is available, a no-argument launch opens the console UI instead. If ckan-linux is unavailable, the wrapper falls back to the legacy ckan.exe gui path.

CKAN LinuxGUI mod browser

Desktop App Quick Start

git clone https://github.com/appaKappaK/CKAN-LinuxUI.git
cd CKAN-LinuxUI
./scripts/install-linuxgui.sh
~/.local/bin/ckan-linux

You do not need a separate upstream CKAN checkout. This fork already contains the CKAN core alongside the LinuxGUI shell. If ~/.local/bin is already on your PATH, you can also launch the app as ckan-linux. The local installer does not install or replace the ckan command; it only installs the LinuxGUI launcher.

Entry Point

The explicit desktop command is:

ckan-linux

That command is installed from LinuxGUI/packaging/ckan-linux. It resolves the installed app directory and execs:

usr/lib/ckan-linux/CKAN-LinuxGUI

The .NET entry point for that binary is LinuxGUI/Program.cs; it initializes logging and starts the Avalonia desktop lifetime. LinuxGUI/App.axaml.cs then builds the app services and opens LinuxGUI/Shell/MainWindow.axaml.

For Debian packages produced by this fork, /usr/bin/ckan is also wired to use this replacement desktop UI when no command line arguments are supplied and a Wayland or X11 display is available:

  • ckan with no args and a display: opens /usr/bin/ckan-linux.
  • ckan with no args and a display but no ckan-linux: falls back to ckan.exe gui.
  • ckan with args: runs the existing Mono ckan.exe command path.
  • ckan with no args and no display: runs ckan consoleui.

Desktop App Paths

For normal local use, install the desktop app into ~/.local and launch it as ~/.local/bin/ckan-linux:

./scripts/install-linuxgui.sh
~/.local/bin/ckan-linux

This local install stays separate from any system ckan command. The /usr/bin/ckan wrapper behavior described above applies to Debian/package installs built from this fork, not to the default ~/.local installer.

For package-oriented builds, generate the staged Linux desktop layout:

./build.sh LinuxGUIPackage --configuration=Release

That produces _build/package/ckan-linux/linux-x64/, including:

  • usr/bin/ckan-linux
  • usr/lib/ckan-linux/
  • usr/share/applications/ckan-linux.desktop
  • usr/share/icons/hicolor/*/apps/ckan-linux.png

What This Fork Provides

  • A native Linux desktop app built with Avalonia in LinuxGUI/.
  • A local installer that builds LinuxGUI and installs ckan-linux under ~/.local by default.
  • A package layout under _build/package/ckan-linux/linux-x64/ with the launcher, runtime files, icons, and desktop entry.
  • Debian package integration that routes graphical no-argument ckan launches to ckan-linux while keeping argument-driven command and console behavior intact.
  • Optional fast catalog browsing through Rust-generated sidecar indexes from ckan-meta-rs. The LinuxGUI sidecar reader is included in this repo; CKAN core remains authoritative for details, installs, dependency resolution, and registry writes.
  • LinuxGUI browser conveniences including clearable search, details-pane relationship browsing for mods that require the selected mod, and a File menu shortcut to the KSP Ships craft folders.
  • Visual coverage for the LinuxGUI in LinuxGUI.VisualTests/.

Rust Catalog Sidecar

The LinuxGUI mod browser includes a sidecar reader for prebuilt catalog/search indexes generated by appaKappaK/ckan-meta-rs. That separate Rust project parses CKAN metadata archives and writes the catalog-index JSON consumed by this repo.

When configured, the sidecar is the fast browse/search path for the LinuxGUI catalog. CKAN core remains authoritative for metadata details, installs, dependency resolution, compatibility decisions, and registry writes. If a sidecar index file is missing, invalid, or not configured, the LinuxGUI falls back to the normal CKAN metadata loader.

See the LinuxGUI sidecar workflow for the CKAN_CATALOG_INDEX_PATH development setup and catalog load timing notes.

Desktop App Development

Build the self-contained desktop app package layout:

./build.sh LinuxGUIPackage --configuration=Release

Run the LinuxGUI visual tests:

./build.sh LinuxGUIVisualTests

See LinuxGUI/README.md for the full LinuxGUI build, packaging, development, ckan-meta-rs catalog sidecar, logging, and visual-test workflow.

Upstream CKAN Context

Coverage Status NuGet Version Crowdin

Click here to open a new CKAN issue

Click here to go to the CKAN wiki

Click here to view the CKAN metadata specification

What's the CKAN?

The CKAN is a metadata repository and associated tools to allow you to find, install, and manage mods for Kerbal Space Program. It provides strong assurances that mods are installed in the way prescribed by their metadata files, for the correct version of Kerbal Space Program, alongside their dependencies, and without any conflicting mods.

CKAN is great for players and for authors:

  • players can find new content and install it with just a few clicks;
  • modders don't have to worry about misinstall problems or outdated versions;

The CKAN has been inspired by the solid and proven metadata formats from both the Debian project and the CPAN, each of which manages tens of thousands of packages.

What's the status of the CKAN?

The CKAN is currently under active development. We very much welcome contributions, discussions, and especially pull-requests.

The CKAN spec

At the core of the CKAN is the metadata specification, which comes with a corresponding JSON Schema that you can also find in the Schema Store

This repository includes a validator that you can use to validate your files.

CKAN for players

CKAN can download, install and update mods in just a few clicks. See the User guide to get started with CKAN.

CKAN for modders

While anyone can contribute metadata for your mod, we believe that you know your mod best. So while contributors will endeavor to be as accurate as possible, we would appreciate any efforts made by mod authors to ensure our metadata's accuracy. If the metadata we have is incorrect please open an issue and let us know.

Contributing to CKAN

No technical expertise is required to contribute to CKAN

If you want to contribute, please read our CONTRIBUTING file.

Thanks

Our sincere thanks to SignPath.io for allowing us to use their free code signing service, and to the SignPath Foundation for giving us a free code signing certificate!


Note: Are you looking for the Open Data portal software called CKAN? If so, their GitHub repository is found here.

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C# 99.0%
  • Shell 0.4%
  • Python 0.2%
  • Dockerfile 0.1%
  • Makefile 0.1%
  • Perl 0.1%
  • Other 0.1%