diff --git a/follow-desktop-link@DopeyDave/CHANGELOG.md b/follow-desktop-link@DopeyDave/CHANGELOG.md new file mode 100644 index 00000000..bd7d37cc --- /dev/null +++ b/follow-desktop-link@DopeyDave/CHANGELOG.md @@ -0,0 +1,3 @@ +### 1.0 + +* Initial Release \ No newline at end of file diff --git a/follow-desktop-link@DopeyDave/README.md b/follow-desktop-link@DopeyDave/README.md new file mode 100644 index 00000000..047ec9e0 --- /dev/null +++ b/follow-desktop-link@DopeyDave/README.md @@ -0,0 +1,19 @@ +Follow a Link +======================== + +Description +----------- + +This Action adds the ability to follow a .desktop type link back to its source folder. + +The behavior is similar to the Windows "open file location" functionality. + +This following Actions should be paired for a complete package: +* create-link-desktop@DopeyDave +* create-link-here@DopeyDave +* follow-desktop-link@DopeyDave (You Are Here) + +Usage +----------- + +Right click on a shortcut file (.desktop type). Select the new option "Follow Link to Target". diff --git a/follow-desktop-link@DopeyDave/files/follow-desktop-link@DopeyDave/follow-desktop-link@DopeyDave.sh b/follow-desktop-link@DopeyDave/files/follow-desktop-link@DopeyDave/follow-desktop-link@DopeyDave.sh new file mode 100755 index 00000000..6277b104 --- /dev/null +++ b/follow-desktop-link@DopeyDave/files/follow-desktop-link@DopeyDave/follow-desktop-link@DopeyDave.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +for file in "$@"; do + # Extract the target path from the URL= line + url=$(grep -E '^URL=' "$file" | sed -E 's/^URL=//') + + # Remove the file:// prefix if present + target="${url#file://}" + + # Decode any URL-encoded characters (like spaces (%20) in path) + target=$(printf '%b' "${target//%/\\x}") + + if [[ -d "$target" ]]; then + nemo "$target" + elif [[ -f "$target" ]]; then + nemo --no-desktop --browser "$(dirname "$target")" + else + zenity --error --text="Target not found or invalid: $target" + fi +done diff --git a/follow-desktop-link@DopeyDave/files/follow-desktop-link@DopeyDave/icon.png b/follow-desktop-link@DopeyDave/files/follow-desktop-link@DopeyDave/icon.png new file mode 100644 index 00000000..290abb29 Binary files /dev/null and b/follow-desktop-link@DopeyDave/files/follow-desktop-link@DopeyDave/icon.png differ diff --git a/follow-desktop-link@DopeyDave/files/follow-desktop-link@DopeyDave/metadata.json b/follow-desktop-link@DopeyDave/files/follow-desktop-link@DopeyDave/metadata.json new file mode 100644 index 00000000..e0d3c947 --- /dev/null +++ b/follow-desktop-link@DopeyDave/files/follow-desktop-link@DopeyDave/metadata.json @@ -0,0 +1,7 @@ +{ + "description": "Follow a .desktop link (shortcut) back to its source folder", + "uuid": "follow-desktop-link@DopeyDave", + "name": "Follow a Link", + "author": "DopeyDave", + "version": "1.0" +} \ No newline at end of file diff --git a/follow-desktop-link@DopeyDave/follow-desktop-link@DopeyDave.nemo_action.in b/follow-desktop-link@DopeyDave/follow-desktop-link@DopeyDave.nemo_action.in new file mode 100644 index 00000000..7c15553a --- /dev/null +++ b/follow-desktop-link@DopeyDave/follow-desktop-link@DopeyDave.nemo_action.in @@ -0,0 +1,8 @@ +[Nemo Action] +_Name=Follow Link to Target +_Comment=Open the target file or folder from this .desktop shortcut +Exec= +Icon-Name=go-home-symbolic +Selection=notnone +Extensions=desktop; +Quote=double diff --git a/follow-desktop-link@DopeyDave/info.json b/follow-desktop-link@DopeyDave/info.json new file mode 100644 index 00000000..a72bf873 --- /dev/null +++ b/follow-desktop-link@DopeyDave/info.json @@ -0,0 +1,3 @@ +{ + "author": "DopeyDave" +} \ No newline at end of file