Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mkdir --parents "$HOME/.config/systemd/user"
- mkdir --parents "$HOME/.local/bin/flatpak"
- cat > "$HOME/.local/bin/flatpak/symlink.sh" << 'EOF'
- #!/usr/bin/env bash
- PATH_EXECUTABLES="$HOME/.local/bin" # make sure this is included in $PATH
- createSymlink() {
- flatpakExecutable="$1"
- if [ -e "$flatpakExecutable" ] ; then
- appId="$(basename $flatpakExecutable)" # (e. g. org.example.TextEditor)
- appName="$(printf %s $appId | rev | cut --delimiter='.' --fields='1' | rev | tr '[:upper:]' '[:lower:]')" # lowercase representation of the application name without the domain name (e. g. texteditor)
- ln --symbolic "$flatpakExecutable" "$PATH_EXECUTABLES/$appName" 2> /dev/null
- fi
- }
- mkdir --parents "$PATH_EXECUTABLES"
- find "$PATH_EXECUTABLES/" -lname "${XDG_DATA_HOME:-$HOME/.local/share}/flatpak/exports/bin/*" -delete
- find "$PATH_EXECUTABLES/" -lname "/var/lib/flatpak/exports/bin/*" -delete
- for file in "${XDG_DATA_HOME:-$HOME/.local/share}/flatpak/exports/bin/"* ; do
- createSymlink "$file"
- done
- for file in "/var/lib/flatpak/exports/bin/"* ; do
- createSymlink "$file"
- done
- EOF
- chmod +x "$HOME/.local/bin/flatpak/symlink.sh"
- printf "[Unit]\nDescription=Symlink Flatpak applications to ~/.local/bin/\n\n[Service]\nExecStart=%s/.local/bin/flatpak/symlink.sh\nType=oneshot\n\n[Install]\nWantedBy=default.target" "$HOME" | tee "$HOME/.config/systemd/user/flatpak-symlink.service"
- printf "[Unit]\nDescription=Hourly symlinks Flatpak apps to ~/.local/bin/\n\n[Timer]\nOnBootSec=1min\nOnUnitInactiveSec=1h\n\n[Install]\nWantedBy=timers.target" | tee "$HOME/.config/systemd/user/flatpak-symlink.timer"
- systemctl enable --now --user flatpak-symlink.timer
Advertisement
Add Comment
Please, Sign In to add comment