]> Sergey Matveev's repositories - nnn.git/commitdiff
Support screen locking on Linux
authorArun Prakash Jana <engineerarun@gmail.com>
Fri, 30 Mar 2018 15:53:28 +0000 (21:23 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Fri, 30 Mar 2018 15:53:28 +0000 (21:23 +0530)
README.md
nnn.1
nnn.c
nnn.h

index a6170f4b7f97f47f30b06ecd2b62ee48b2060621..fc35517431bb9e5a2e8d0d97d06d0a9677e0a3dd 100644 (file)
--- a/README.md
+++ b/README.md
@@ -242,6 +242,7 @@ optional arguments:
              ^Y | Toggle multi-copy mode
              ^T | Toggle path quote
              ^L | Redraw, clear prompt
+              L | Lock terminal (on Linux)
               ? | Help, settings
           Q, ^G | Quit and cd
           q, ^X | Quit
diff --git a/nnn.1 b/nnn.1
index ab10d1f113b394ee605f710e7657efc0b3755b27..0d00d108052e7ec3664d22aab97d5b3c0d5bf505 100644 (file)
--- a/nnn.1
+++ b/nnn.1
@@ -112,6 +112,8 @@ Toggle multiple file path copy mode
 Toggle path quote
 .It Ic ^L
 Force a redraw, clear rename or filter prompt
+.It Ic L
+Lock terminal (Linux only)
 .It Ic \&?
 Toggle help and settings screen
 .It Ic Q, ^G
diff --git a/nnn.c b/nnn.c
index be830feadee38c796bdf03619ec8ba35c4026c67..c6b3e194cc8755c0d77366c3914148cf8a4662c3 100644 (file)
--- a/nnn.c
+++ b/nnn.c
@@ -1968,6 +1968,9 @@ show_help(char *path)
            "d^Y | Toggle multi-copy mode\n"
            "d^T | Toggle path quote\n"
            "d^L | Redraw, clear prompt\n"
+#ifdef __linux__
+            "eL | Lock terminal\n"
+#endif
             "e? | Help, settings\n"
         "aQ, ^G | Quit and cd\n"
         "aq, ^X | Quit\n\n");
@@ -3208,6 +3211,11 @@ nochange:
                        run = xgetenv(env, run);
                        spawn(run, dents[cur].name, NULL, path, F_NORMAL);
                        break;
+#ifdef __linux__
+               case SEL_LOCK:
+                       spawn(player, "", "screensaver", NULL, F_NORMAL | F_SIGINT);
+                       break;
+#endif
                case SEL_CDQUIT:
                {
                        char *tmpfile = "/tmp/nnn";
diff --git a/nnn.h b/nnn.h
index a3e79679efcdf5aeb23cc7acd7c616bda58dd6dc..680200f2d93d63e118e962cd3e79b4ebab5571f1 100644 (file)
--- a/nnn.h
+++ b/nnn.h
@@ -44,6 +44,9 @@ enum action {
        SEL_RUN,
        SEL_RUNSCRIPT,
        SEL_RUNARG,
+#ifdef __linux__
+       SEL_LOCK,
+#endif
        SEL_CDQUIT,
        SEL_QUIT,
 };
@@ -135,9 +138,9 @@ static struct key bindings[] = {
        /* Open dir in desktop file manager */
        { 'o',            SEL_DFB,       "",     "" },
        /* List archive */
-       { 'F',            SEL_LIST,      "-l", "" },
+       { 'F',            SEL_LIST,      "-l",   "" },
        /* Extract archive */
-       { CONTROL('F'),   SEL_EXTRACT,   "-x", "" },
+       { CONTROL('F'),   SEL_EXTRACT,   "-x",   "" },
        /* Toggle sort by size */
        { 's',            SEL_FSIZE,     "",     "" },
        /* Sort by total block count including dir contents */
@@ -173,6 +176,10 @@ static struct key bindings[] = {
        /* Run command with argument */
        { 'e',            SEL_RUNARG,    "vi",   "EDITOR" },
        { 'p',            SEL_RUNARG,    "less", "PAGER" },
+#ifdef __linux__
+       /* Lock screen */
+       { 'L',            SEL_LOCK,      "",     "" },
+#endif
        /* Change dir on quit */
        { 'Q',            SEL_CDQUIT,    "",     "" },
        { CONTROL('G'),   SEL_CDQUIT,    "",     "" },