From 58dd804038debf8ccae004957edada14a822e0e3 Mon Sep 17 00:00:00 2001 From: DopeyDave Date: Fri, 9 May 2025 23:01:46 -0700 Subject: [PATCH] New Action added - Follow a Link Follows a .desktop link (shortcut) back to its source folder --- follow-desktop-link@DopeyDave/CHANGELOG.md | 3 +++ follow-desktop-link@DopeyDave/README.md | 19 +++++++++++++++++ .../follow-desktop-link@DopeyDave.sh | 20 ++++++++++++++++++ .../follow-desktop-link@DopeyDave/icon.png | Bin 0 -> 2393 bytes .../metadata.json | 7 ++++++ ...llow-desktop-link@DopeyDave.nemo_action.in | 8 +++++++ follow-desktop-link@DopeyDave/info.json | 3 +++ 7 files changed, 60 insertions(+) create mode 100644 follow-desktop-link@DopeyDave/CHANGELOG.md create mode 100644 follow-desktop-link@DopeyDave/README.md create mode 100755 follow-desktop-link@DopeyDave/files/follow-desktop-link@DopeyDave/follow-desktop-link@DopeyDave.sh create mode 100644 follow-desktop-link@DopeyDave/files/follow-desktop-link@DopeyDave/icon.png create mode 100644 follow-desktop-link@DopeyDave/files/follow-desktop-link@DopeyDave/metadata.json create mode 100644 follow-desktop-link@DopeyDave/follow-desktop-link@DopeyDave.nemo_action.in create mode 100644 follow-desktop-link@DopeyDave/info.json 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 0000000000000000000000000000000000000000..290abb29453463b7095c46db5e5270fc7a29f585 GIT binary patch literal 2393 zcmbVO`#Td18y>CMB5fj!cVJ~9BQu+(_&HNT;`Otr5q+ylv9eF&kPCG zdSi1eeGW6F-WP4^rJR;?pZ6d5e)xX4@B6u)`+BbHzJGgCT%Ae#_rdo80D%4Wb~dMX zHTqwGLAz{5Gkw1+kT5&XNC3b<<6lTbms&>c?xgK)@P9;0%ooOq6o~TN?NZ|QdDkcB z?M~glbe`y+Mf5zCddZd;Iv4CI-m2CI>m{M)DoZQvT~M{W;wGs>U4x`7-PCMi*8O3% z?W_wELS9!i<@@)Af(~PPz?gAZ0-gS4AUE>GCyVChj-Lzl)!fz#$c}RLxKOX)I0&)< zp{9tchF_ZxU0Bp4sWP`RX=0mau zFcEvxQ}4rznl%dyqDe1ISs?vaw8bVK~1OW zCRh#r2%e&G4FBH5K!x)^jnS!I2W^`W;cB<%`qG49a{SMK$TJEd?FoMhWyyLZ^qU2l zxC6-X3m*4>f8tcO?RnxmQ&ev>pZ%eBM1Fsa;_LVOG#x`UViX&fOQGqi!+h87c?YP> zDJkT#x?R&Ul2klH^{{RNX>)C=$0IWdlWbUU8x3-c z1>^Z~Hx19A%T9jml`8~t0P&hjhZ5gfZCpwG(4($dk|fIIankqeUM9JqA5ZPc zbcC*Z2IbD`fzBma8fR|zU$HTcVgvX5?P0Tk>lRy}&79)XLS2wjfv*e*SR6y5)^bUe z+R2d7+au34oHZ4}Orsze;QZyG_Hqj#g42-`n zWA?aF{nq?pFzDfV9tx0~x*`U$^!si_yj?#tBRvx@&am}ap;-off$NRQaW!}^CVHC0 zj#^5{SoH%3w@AE{M^^mA!W1a(baF7ecgJ_e`|B;_6QfvE>o{zDMJd@JoyvId?PPmd z7h=)v(VKSwyMnPkZd*Qm5}-(>5t>qXo+;|oWCkRursOG?(bDnmNBHS zqqR*NRt-^7pBnAJ#j{V6y>+*Mhy$p&#^2aLEe}bnnc&~+HC`a(|1()SxHB=@==PIQA5)xV6yj)(Ybx-Se zb3i9eAbYy=AgeiJx>DaGKF1QUcC851(wgk}Lbz%!_qUf?dEj>V=uZbUk~ht+rbxMq z3h&I{mf!GkQ}%MkW}rG^FrA|h>vKb@y9GJ!j7Brx4%n942f(|yHDjTFis6OX;}iJJ zP^rR&KgQ_euIwo+XH)*_;qqTU3dGPs;dyoj^DoM~Tn5h~EcntU{6r}76Yy6amdX)Z zNQ*#eY&Q-Mk#$@S@Lpl&y9ke{0ITTBnZ9XqMF!1 z540(Iy`XZmVB=A1_)&p0_EN#y-&l`xN;D6AqojTSD6?uJPu0!wYI~g(2MgN<(}!+w z<9LU^YF5wU&Mw^R$3F+PtC_K)+A|O}EBmPHr!R{M&R=`Pr@!jJ_&K^PBCF@NkZd9-#&K6#|}~#lc_s+XMZw6zvk}qvsoQy+lEb_9t!L7Ia67uWzV26rJt1d zB1YFT4K99So6vFqBlygn4I3`u?g4r7u@5K4Hm>4Mcby^8EP5 z)1jqj-BmWw=$Q;dx`;`T5c*;7`txe>ogJmL=Xm%z22Gt2PsfWA$?s8-xkb8nSX?85`W~17se62kr7-4FX z(lYG^7ZS_@$X5>28uQ_tMwj6nj+5+}{?FQv*Q!$0nSPd1K?}4ARCRBbavUh=?yE8p z5Hdzyjg9B1UTEzT&cza$;~bP!1uH-V=w+l+6};zkRXB6uWlMbU8BX@2rvKMy$&jY(3|93?kY&>n zjXCC-Me<_`%?L?}{9?jmc$SmKF_e+@Ghg6sD-0^%Hq3^0Gprjddn3@?be!IZyR(3; zUHp8nRVSW&^_}xp)~6|tN+n5*kNfEL&F6_H5tK$HIzJ5Qp1{S}0xF7_Tn}yc>FA2Z eXGz{EqU-v?f$CLXDa7ut1h6MM+tgW88UF=GIdm2P literal 0 HcmV?d00001 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