- Cross-dir file/all/range selection
- Create (with parents), rename, duplicate files and dirs
- Batch renamer for selection or dir
- - List input file stream from stdin or plugin
+ - List input stream of file paths from stdin or plugin
- Copy (as), move (as), delete, archive, link selection
- Dir updates, notification on cp, mv, rm completion
- Copy file paths to system clipboard on select
| [ringtone](ringtone) | Create a variable bitrate mp3 ringtone from file | sh | date, ffmpeg |
| [splitjoin](splitjoin) | Split file or join selection | sh | split, cat |
| [suedit](suedit) | Edit file using superuser permissions | sh | sudoedit/sudo/doas |
+| [togglex](togglex) | Toggle executable mode for selection | sh | chmod |
| [treeview](treeview) | Informative tree output in `$EDITOR` | sh | tree |
| [uidgid](uidgid) | List user and group of all files in dir | sh | ls, less |
| [upgrade](upgrade) | Upgrade nnn manually on Debian 9 Stretch | sh | curl |
--- /dev/null
+#!/usr/bin/env sh
+
+# Description: Toggles executable mode for selection
+#
+# Dependencies: chmod
+#
+# Note: Works _only_ with selection (nnn can toggle the mode for the hovered file)
+#
+# Shell: POSIX compliant
+# Author: Arun Prakash Jana
+
+selection=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection}
+
+if [ ! -s "$selection" ]; then
+ printf "0 selected "
+ read -r _
+ exit
+fi
+
+xargs -0 -I {} sh -c 'if [ -x {} ] ; then chmod -x {} ; else chmod +x {} ; fi' < "$selection"