From a34af54e78e558018ca96ff11ceebb234b41b778 Mon Sep 17 00:00:00 2001 From: Martin Duquesnoy Date: Mon, 24 Aug 2009 17:27:27 +0200 Subject: [PATCH] Conf/ViWMFS: Add bind to set WMFS in ViWMFS mode in the default configuration and improve viwmfs function. --- src/viwmfs.c | 30 ++++++++++++++++++++++++++---- src/wmfs.c | 2 +- src/wmfs.h | 2 +- wmfs.1 | 5 +++++ wmfsrc.in | 13 ++++++++----- 5 files changed, 41 insertions(+), 11 deletions(-) diff --git a/src/viwmfs.c b/src/viwmfs.c index ea1f1c4..8f65050 100644 --- a/src/viwmfs.c +++ b/src/viwmfs.c @@ -57,20 +57,42 @@ vicmd_to_uicb vicmd[] = }; void -viwmfs(char *str) +viwmfs_help(void) +{ + printf("ViWMFS commands list:\n"); + + return; +} + +void +viwmfs(int argc, char **argv) { int i; - char *cmd; + char *cmd, str[256] = { 0 }; Bool e; - if(!str) + if(!argc) return; + if(argc > 3) + { + for(i = 2; i < argc; ++i) + { + strcat(str, argv[i]); + + if(*(str + strlen(str) - 1) != ':') + strcat(str, " "); + } + } + else + strcpy(str, argv[2]); + if(*str == ':') { - ++str; + for(i = 0; i < strlen(str); str[i] = str[i + 1], ++i); cmd = _strdup(str); + for(i = 0; cmd[i] && cmd[i] != ' '; ++i); cmd[i] = '\0'; diff --git a/src/wmfs.c b/src/wmfs.c index 5586033..6516fdf 100644 --- a/src/wmfs.c +++ b/src/wmfs.c @@ -415,7 +415,7 @@ main(int argc, char **argv) exit(EXIT_SUCCESS); break; case 'V': - viwmfs(optarg); + viwmfs(argc, argv); XCloseDisplay(dpy); exit(EXIT_SUCCESS); break; diff --git a/src/wmfs.h b/src/wmfs.h index 143b77b..a83fcda 100644 --- a/src/wmfs.h +++ b/src/wmfs.h @@ -318,7 +318,7 @@ void getinfo_nmaster(void); void getinfo(char *info); /* viwmfs.c */ -void viwmfs(char *str); +void viwmfs(int argc, char **argv); /* wmfs.c */ int errorhandler(Display *d, XErrorEvent *event); diff --git a/wmfs.1 b/wmfs.1 index 4388cec..6ca3142 100644 --- a/wmfs.1 +++ b/wmfs.1 @@ -156,6 +156,11 @@ Swap the current client with the previous\fR Make a launcher in the infobar to run an unix command\fR .RE .PP +\fBAlt + Escape\fR +.RS 4 +Set WMFS in ViWMFS mode. (see wmfs -V)\fR +.RE +.PP \fBAlt\-Shift + p\fR .RS 4 Make a launcher in the infobar to run an ssh session\fR diff --git a/wmfsrc.in b/wmfsrc.in index a379ee6..544a939 100644 --- a/wmfsrc.in +++ b/wmfsrc.in @@ -155,10 +155,11 @@ command = "exec" [/set_launcher] + #ViWMFS : manage wmfs with vi-based command. [set_launcher] - name = "launcher_ssh" - prompt = "ssh to: " - command = "@WMFS_TERM@ -e ssh" + name = "viwmfs" + prompt = "> " + command = "wmfs -V" [/set_launcher] [/launcher] @@ -223,9 +224,11 @@ # Decease nmaster. [key] mod = {"Alt", "Shift"} key = "d" func = "set_nmaster" cmd = "-1" [/key] - #Launchers. + #Launcher. [key] mod = {"Alt"} key = "p" func = "launcher" cmd = "launcher_exec" [/key] - [key] mod = {"Alt", "Shift"} key = "p" func = "launcher" cmd = "launcher_ssh" [/key] + + #ViWMFS + [key] mod = {"Alt"} key = "Escape" func = "launcher" cmd = "viwmfs" [/key] # Set the tag x. [key] mod = {"Alt"} key = "F1" func = "tag" cmd = "1" [/key]