aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-15 00:09:40 -0500
committerCraig Jennings <c@cjennings.net>2026-07-15 00:09:40 -0500
commit07763fd605b7a7ffa41ad6f1b69479631fc84cb4 (patch)
tree651ac3be7762da1371896fd5b9aef7f6b0368650
parentca994fc61a75c54082676f6b276601b8e582d040 (diff)
downloaddotemacs-07763fd605b7a7ffa41ad6f1b69479631fc84cb4.tar.gz
dotemacs-07763fd605b7a7ffa41ad6f1b69479631fc84cb4.zip
feat(tramp): add phone FTP quick-access entry with passive-mode ange-ftp
The phone's FTP server can't open active-mode data connections back to the client, so LIST hangs under ange-ftp's default. Passive mode fixes it and is the safer default for any NAT'd server. Requires a CLI ftp client (GNU inetutils on Arch).
-rw-r--r--modules/dirvish-config.el1
-rw-r--r--modules/tramp-config.el7
2 files changed, 8 insertions, 0 deletions
diff --git a/modules/dirvish-config.el b/modules/dirvish-config.el
index 0e22dcee..ef41ab33 100644
--- a/modules/dirvish-config.el
+++ b/modules/dirvish-config.el
@@ -589,6 +589,7 @@ no popup frame is live."
("ps" ,(concat pix-dir "/screenshots/") "pictures screenshots")
("px" ,pix-dir "pictures directory")
("wp" ,(concat pix-dir "/wallpaper/") "pictures wallpaper")
+ ("fp" "/ftp:android@192.168.86.13#2221:/" "phone ftp (android)")
("rcj" "/sshx:cjennings@cjennings.net:~" "remote c@cjennings.net")
("rtl" "/sshx:cjennings@truenas.local:~" "remote cjennings@truenas.local")
("rtt" "/sshx:cjennings@truenas:~" "remote cjennings@truenas (tailscale)")
diff --git a/modules/tramp-config.el b/modules/tramp-config.el
index f2bc8457..95fa83db 100644
--- a/modules/tramp-config.el
+++ b/modules/tramp-config.el
@@ -26,6 +26,7 @@
;; Silence byte-compiler "assignment to free variable" warnings for vars
;; defined by lazily-loaded packages (tramp, dirtrack, magit). These are
;; only set inside the use-package :config block, after the package loads.
+(defvar ange-ftp-try-passive-mode)
(defvar tramp-copy-size-limit)
(defvar tramp-use-ssh-controlmaster-options)
(defvar tramp-cleanup-idle-time)
@@ -147,5 +148,11 @@
;; Cleanup TRAMP buffers when idle (every 15 min)
(setq tramp-cleanup-idle-time 900))
+;; FTP (ange-ftp) settings — TRAMP's /ftp: method delegates to ange-ftp.
+;; Passive mode is required for servers that can't open a data connection
+;; back to this machine (NAT, phone FTP servers); active mode hangs on LIST.
+(with-eval-after-load 'ange-ftp
+ (setq ange-ftp-try-passive-mode t))
+
(provide 'tramp-config)
;;; tramp-config.el ends here