mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-02-02 20:16:25 +00:00
Support remote trash-directory
* doc/misc/tramp.texi (Frequently Asked Questions): Describe how to manipulate trash-directory. Explain tramp-inhibit-errors-if-setting-file-attributes-fail. * lisp/files.el (move-file-to-trash): Use connection-local value of `trash-directory'. (Bug#70421)
This commit is contained in:
parent
0e139ca741
commit
956821672e
@ -5444,7 +5444,7 @@ HISTFILE=/dev/null
|
||||
Where are remote files trashed to?
|
||||
|
||||
@vindex remote-file-name-inhibit-delete-by-moving-to-trash
|
||||
Emacs can trash file instead of deleting
|
||||
Emacs can trash files instead of deleting
|
||||
@ifinfo
|
||||
them, @ref{Misc File Ops, Trashing , , emacs}.
|
||||
@end ifinfo
|
||||
@ -5456,6 +5456,29 @@ option @code{remote-file-name-inhibit-delete-by-moving-to-trash} is
|
||||
non-@code{nil}, or it is a remote encrypted file (@pxref{Keeping files
|
||||
encrypted}), which are deleted anyway.
|
||||
|
||||
@c Since Emacs 30.
|
||||
@vindex trash-directory
|
||||
If you want to trash a remote file into a remote trash directory, you
|
||||
could configure the user option @code{trash-directory} to a
|
||||
connection-local value.
|
||||
@ifinfo
|
||||
@xref{Connection Variables, , , emacs}.
|
||||
@end ifinfo
|
||||
|
||||
@lisp
|
||||
@group
|
||||
(connection-local-set-profile-variables
|
||||
'remote-trash-directory
|
||||
'((trash-directory . "/sudo::~/.local/share/Trash")))
|
||||
@end group
|
||||
|
||||
@group
|
||||
(connection-local-set-profiles
|
||||
`(:application tramp :protocol "sudo" :machine ,system-name)
|
||||
'remote-trash-directory)
|
||||
@end group
|
||||
@end lisp
|
||||
|
||||
If Emacs is configured to use the XDG conventions for the trash
|
||||
directory, remote files cannot be restored with the respective tools,
|
||||
because those conventions don't specify remote paths. Such files must
|
||||
@ -5898,6 +5921,17 @@ If these errors can be ignored, set user option
|
||||
non-@code{nil} value. This transforms the error into a warning.
|
||||
|
||||
|
||||
@item
|
||||
How to ignore errors when changing file attributes?
|
||||
|
||||
@vindex tramp-inhibit-errors-if-setting-file-attributes-fail
|
||||
Sometimes, for example while saving remote files, errors appear when
|
||||
changing file attributes like permissions, time stamps, or ownership.
|
||||
If these errors can be ignored, set user option
|
||||
@code{tramp-inhibit-errors-if-setting-file-attributes-fail} to a
|
||||
non-@code{nil} value. This transforms the error into a warning.
|
||||
|
||||
|
||||
@item
|
||||
How to disable other packages from calling @value{tramp}?
|
||||
|
||||
|
@ -8812,9 +8812,10 @@ Otherwise, trash FILENAME using the freedesktop.org conventions,
|
||||
;; If `system-move-file-to-trash' is defined, use it.
|
||||
(cond ((fboundp 'system-move-file-to-trash)
|
||||
(system-move-file-to-trash filename))
|
||||
(trash-directory
|
||||
((connection-local-value trash-directory)
|
||||
;; If `trash-directory' is non-nil, move the file there.
|
||||
(let* ((trash-dir (expand-file-name trash-directory))
|
||||
(let* ((trash-dir (expand-file-name
|
||||
(connection-local-value trash-directory)))
|
||||
(fn (directory-file-name (expand-file-name filename)))
|
||||
(new-fn (concat (file-name-as-directory trash-dir)
|
||||
(file-name-nondirectory fn))))
|
||||
|
Loading…
x
Reference in New Issue
Block a user