$Home, Not So Sweet $Home

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • ld-preload-open

    Library to map files or directories to another location, for use with LD_PRELOAD.

  • > Part of me thinks the solution to some of these trenchant apps is to make a FUSE pass through filesystem driver that has silent redirects.

    LD-preload-open* can be used for this, but it has some potential problems: https://github.com/fritzw/ld-preload-open/tree/master#potent...

    *: https://github.com/fritzw/ld-preload-open

  • xdg-go

    Go implementation of the XDG Base Directory Specification and XDG user directories

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • config

    Config files for some things. (by mid-kid)

  • vuizvui

    Nix(OS) expressions used by the OpenLab and its members

  • For games, I think it's even worse on GNU/Linux systems, since most game developers mainly target Windows and sometimes completely ignore conventions for other platforms (possibly since some game engines have that "Build for Linux" button).

    This also applies to game engines and their own conventions. For example Unity has Application::persistentDataPath[1], which uses $XDG_CONFIG_HOME (still a bit meh, since I wouldn't treat savefiles as "config", but at least some convention). However, some games tend to write those into Application::dataPath[1] (or even other random directories they see fit), which is supposed to be read-only and could possibly be outside of $HOME.

    Fortunately the single one advantage of antivirus software out there seems to be that the above seems to break with some AV, so developers either tell their players to disable AV or they simply fix the issue. I made countless bug reports on this issue and so far it exclusively got fixed because of AV, so I'm using that as an argument for future reports.

    While at least most of the Unity games I've packaged seem to adhere to these conventions, other games and game engines are a mixed bag and I've seen games dumping their stuff into $PWD to games writing to Windows paths (eg. /home/foo/SomeVendor\Somegame).

    Patching these games is also very tedious, since some of them tend to get updates, so patching needs to be done in a way to be forward-compatible.

    For example here is a patcher I wrote to get Factorio to adhere to XDG:

    https://github.com/openlab-aux/vuizvui/blob/4690494feee20a62...

    Here is an example for patching a Unity3d game that writes to Application::dataPath:

    https://github.com/openlab-aux/vuizvui/blob/4690494feee20a62...

    [1]: https://docs.unity3d.com/ScriptReference/Application-persist...

    [2]: https://docs.unity3d.com/ScriptReference/Application-dataPat...

  • nixpkgs

    Nix Packages collection & NixOS

  • Definitely not elegant. https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-supp...

    I rather have a kernel-level filesystem remapper.

  • Electron

    :electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS

  • Open since 2016! https://github.com/electron/electron/issues/8124

  • xdg-ninja

    A shell script which checks your $HOME for unwanted files and directories.

  • Regardagin cargo (and other tools), I've had some success with following suggestions from https://github.com/b3nj5m1n/xdg-ninja

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts