Skip to content

PhantomShift/lxcomm

Repository files navigation

LXCOMM - Linux (XCOM2) Mod Manager

icon

Mod browser, downloader and manager made specifically for non-Steam versions of XCOM2 (War of the Chosen) on Linux.

Caveats

Before getting into more of the project, I want to get out of the way all the caveats that I believe users should be aware of coming into using LXCOMM:

  1. If you're on Windows, use Alternative Mod Launcher (AML). Although I have actually written the project to be usable on both Linux and Windows where possible, Linux is very much the focus of this project with Windows seeing minimum viable support. Additionally, the project makes extensive use of symlinks which means you must run LXCOMM as administrator, run Windows in developer mode or go through the annoying process of enabling symlinks (Windows non-Home only, unless you're a wizard or something).
  2. If you're not on Windows, use AML. AML is a much more mature project with a large backing by the community. Although the inconvenience of setting it up on Linux for a non-Steam installation was why I started writing this project in the first place, it is still possible to set up and is still the best solution for mod management in XCOM2 (and is working on proton again it seems!).
  3. Steam login and Steam Web API Key required. As much as possible, I would like to refrain from resorting to scraping Steam's resources or using non-official tools for downloading Workshop items in LXCOMM. As such, a Steam account is required for downloading mods through LXCOMM via SteamCMD (although you do not need to own XCOM2 on Steam to download mods, thankfully, you just need to not be anonymous), and for browsing and automatically retrieving workshop information, a Steam web API key is needed. (Saving these account details is an opt-in action via the settings.)
  4. As of writing, this is alpha software. For one, I'm actually new to modding XCOM 2 after finally getting around to beating the game and finding myself seeking more. Although the project as it stands is in a usable-enough state for modding your game, there are a lot of quality of life features that I still want to add (you can take a look at Tracking Ideas) and there are likely lots of bugs that I've yet to uncover and fix. You use LXCOMM at your own risk (though bug reports are appreciated!)

If you read all that and you've still decided that you want to at least try out LXCOMM, then feel free to install and read the startup guide.

Installation

Releases

Binaries for versioned releases of supported platforms are available to download at Releases.

Package Manager

As of writing, LXCOMM is only packaged in the AUR. If anyone is interested in maintaining packages elsewhere, please feel free to open an issue for communicating any needs or wants.

# Replace `paru` with your AUR helper of choice
# From source
paru -Syu lxcomm
# Binary-only package
paru -Syu lxcomm-bin

Manual Installation

Specifically for a local Linux user installation. Requires just.

git clone https://github.com/phantomshift/lxcomm.git
cd lxcomm
just install-local
# For uninstalling
# just uninstall-local

Other Platforms

The main intended place to be running the program is on Linux, but at a best effort, LXCOMM is written to be cross-platform. However, in particular, macOS cannot be fully verified as working by me as I do not have a machine to develop on. Regardless, I am very much open to receiving suggestions or pull requests for platform-specific fixes.

Tracking Ideas

In order of "whenever the hell it pops up in my head":

  • Option to log out of steamcmd on exit (default command: quit)
  • Text editor + diffing for per-profile mod ini settings
  • On detailed view open, resolve unknown dependencies in the background
  • Filter library with option for fuzzy finding
  • (Blocked on #1) Check for updates without having to invoke downloads on all mods (build manifest file from scratch and then try running steamcmd +workshop_status?) Updates are now checked via the Steam Web API.
  • Automatically find game installations and folders (using walkdir?)
  • Options for ranking search results in browsing
  • Per-profile character pools
  • Read most recent game logs
  • Recurse full mod dependency tree when checking for missing dependencies
  • Support manually downloaded mods
  • Support workshop collections
  • Copying/importing+exporting profiles (Facilitated via snapshots)
  • Disk cache trimming
  • Ability to enter workshop ID directly for browsing or downloading (due to unreliable browsing results) Search results should now be all-inclusive
  • Investigate controller navigation in iced (or libcosmic) (for the Steam Deck gamers)
  • Make profile page widgets resizable
  • Add option to create profile snapshots when applying and/or launching via LXCOMM
  • Display Workshop content author information
  • Facilitate resolution of missing local mods (e.g. recovering a snapshot from a different computer with different file paths) (probably needs another breaking change)
  • Add a first-run wizard (enable/disable Steam Workshop features, login handling, link to guide, etc.)

License

lxcomm is dual-licensed under MIT or Apache License 2.0 at a given contributor's choice, defaulting to being dual-licensed under each's terms unless explicitly stated.

About

Mod browser, downloader and manager made for XCOM2(WOTC) on Linux

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks