• Wilmo Bones@lemmy.world
    link
    fedilink
    Akan
    arrow-up
    5
    ·
    edit-2
    8 months ago

    Holy moly great news. There’s hope for our /home after all. I think Firefox has an open bug thread or request thread for XDG Base Directory that’s like …20 years old?

    • Samueru@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      8 months ago

      https://bugzilla.mozilla.org/show_bug.cgi?id=259356

      20 indeed

      I use this script with librewolf, give it a try, simply place it in $HOME/.local/bin name it librewolf and export that location as first in $PATH:

      #!/bin/sh
      
      APPHOME="$XDG_DATA_HOME/librewolf/HOME"
      APPEXEC="$HOME/.local/opt/librewolf/librewolf" # Replace this with the path to librewolf
      
      # XDG Check
      if [ -z "$XDG_CACHE_HOME" ] || [ -z "$XDG_CONFIG_HOME" ] || [ -z "$XDG_DATA_HOME" ] || [ -z "$XDG_STATE_HOME" ]; then
      	echo "One or more XDG Base dir variables not defined, bailing out"; exit 1
      fi
      
      # MAKE FAKEHOME AND LINKS
      mkdir -p "$APPHOME/.local" "$XDG_DATA_HOME/pki" "$XDG_DATA_HOME/icons" 2>/dev/null
      [ ! -e "$APPHOME/.local/share" ] && ln -s "$XDG_DATA_HOME" "$APPHOME/.local/share"
      [ ! -e "$APPHOME/.local/state" ] && ln -s "$XDG_STATE_HOME" "$APPHOME/.local/state"
      [ ! -e "$APPHOME/.config" ] && ln -s "$XDG_CONFIG_HOME" "$APPHOME/.config"
      [ ! -e "$APPHOME/.cache" ] && ln -s "$XDG_CACHE_HOME" "$APPHOME/.cache"
      [ ! -e "$APPHOME/.icons" ] && ln -s "$XDG_DATA_HOME/icons" "$APPHOME/.icons" # Some apps have hardcoded ~/.icons path
      [ ! -e "$APPHOME/.pki" ] && ln -s "$XDG_DATA_HOME/pki" "$APPHOME/.pki" # Chromium/electron hardcode ~/.pki
      
      find "$APPHOME" -xtype l -delete
      for FILES in "$HOME"/*; do
          FILENAME=$(basename "$FILES")
          DEST="$APPHOME/$FILENAME"
          if [ ! -e "$DEST" ]; then
              ln -s "$FILES" "$DEST"
          fi
      done
      
      
      # START APP AT APPHOME
      HOME="$APPHOME" "$APPEXEC" "$@" || notify-send "App not found"