summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorOkan Demirmen <okan@cvs.openbsd.org>2008-07-11 15:18:30 +0000
committerOkan Demirmen <okan@cvs.openbsd.org>2008-07-11 15:18:30 +0000
commitc7fa1528d54ba34cd19e60bc2dff53ad0c18df0d (patch)
tree5c5a26378a3c8597e470f10b6eafe5cd4a4af191 /app
parent8540d0c2ad16edb06fa7ae64b59ca6036c79fda8 (diff)
no more hidden (and mysterious) config reloads and allow binding a key
to a config reload; CMS-r by default. ok oga@
Diffstat (limited to 'app')
-rw-r--r--app/cwm/calmwm.h4
-rw-r--r--app/cwm/conf.c24
-rw-r--r--app/cwm/cwm.16
-rw-r--r--app/cwm/cwmrc.56
-rw-r--r--app/cwm/kbfunc.c12
-rw-r--r--app/cwm/mousefunc.c4
6 files changed, 21 insertions, 35 deletions
diff --git a/app/cwm/calmwm.h b/app/cwm/calmwm.h
index de70f55aa..31d43737e 100644
--- a/app/cwm/calmwm.h
+++ b/app/cwm/calmwm.h
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $Id: calmwm.h,v 1.58 2008/07/11 14:21:28 okan Exp $
+ * $Id: calmwm.h,v 1.59 2008/07/11 15:18:29 okan Exp $
*/
#ifndef _CALMWM_H_
@@ -425,7 +425,6 @@ void conf_unbind(struct conf *, struct keybinding *);
void conf_mousebind(struct conf *, char *, char *);
void conf_mouseunbind(struct conf *, struct mousebinding *);
void conf_grab_mouse(struct client_ctx *);
-int conf_changed(char *);
void conf_reload(struct conf *);
void conf_font(struct conf *);
@@ -444,6 +443,7 @@ void kbfunc_client_nogroup(struct client_ctx *, void *);
void kbfunc_client_grouptoggle(struct client_ctx *, void *);
void kbfunc_client_maximize(struct client_ctx *, void *);
void kbfunc_client_vmaximize(struct client_ctx *, void *);
+void kbfunc_reload(struct client_ctx *, void *);
void kbfunc_quit_wm(struct client_ctx *, void *);
void kbfunc_moveresize(struct client_ctx *, void *);
void kbfunc_menu_search(struct client_ctx *, void *);
diff --git a/app/cwm/conf.c b/app/cwm/conf.c
index 6be7b5a2f..3883e4bc6 100644
--- a/app/cwm/conf.c
+++ b/app/cwm/conf.c
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $Id: conf.c,v 1.48 2008/07/11 14:24:34 okan Exp $
+ * $Id: conf.c,v 1.49 2008/07/11 15:18:29 okan Exp $
*/
#include "headers.h"
@@ -61,29 +61,9 @@ conf_font(struct conf *c)
c->FontHeight = font_ascent() + font_descent() + 1;
}
-int
-conf_changed(char *path)
-{
- static struct timespec old_ts;
- struct stat sb;
- int changed;
-
- /* If the file does not exist we pretend that nothing changed */
- if (stat(path, &sb) == -1 || !(sb.st_mode & S_IFREG))
- return (0);
-
- changed = !timespeccmp(&sb.st_mtimespec, &old_ts, ==);
- old_ts = sb.st_mtimespec;
-
- return (changed);
-}
-
void
conf_reload(struct conf *c)
{
- if (!conf_changed(c->conf_path))
- return;
-
if (parse_config(c->conf_path, c) == -1) {
warnx("config file %s has errors, not reloading", c->conf_path);
return;
@@ -132,6 +112,7 @@ conf_init(struct conf *c)
conf_bindname(c, "CM-g", "grouptoggle");
conf_bindname(c, "CM-f", "maximize");
conf_bindname(c, "CM-equal", "vmaximize");
+ conf_bindname(c, "CMS-r", "reload");
conf_bindname(c, "CMS-q", "quit");
conf_bindname(c, "M-h", "moveleft");
@@ -254,6 +235,7 @@ struct {
{ "grouptoggle", kbfunc_client_grouptoggle, KBFLAG_NEEDCLIENT, 0},
{ "maximize", kbfunc_client_maximize, KBFLAG_NEEDCLIENT, 0 },
{ "vmaximize", kbfunc_client_vmaximize, KBFLAG_NEEDCLIENT, 0 },
+ { "reload", kbfunc_reload, 0, 0 },
{ "quit", kbfunc_quit_wm, 0, 0 },
{ "exec", kbfunc_exec, 0, (void *)CWM_EXEC_PROGRAM },
{ "exec_wm", kbfunc_exec, 0, (void *)CWM_EXEC_WM },
diff --git a/app/cwm/cwm.1 b/app/cwm/cwm.1
index 7e13786dc..9dbb8047b 100644
--- a/app/cwm/cwm.1
+++ b/app/cwm/cwm.1
@@ -1,4 +1,4 @@
-.\" $OpenBSD: cwm.1,v 1.33 2008/06/25 22:44:42 oga Exp $
+.\" $OpenBSD: cwm.1,v 1.34 2008/07/11 15:18:29 okan Exp $
.\"
.\" Copyright (c) 2004,2005 Marius Aamodt Eriksen <marius@monkey.org>
.\"
@@ -15,7 +15,7 @@
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The following requests are required for all man pages.
-.Dd $Mdocdate: June 25 2008 $
+.Dd $Mdocdate: July 11 2008 $
.Dt CWM 1
.Os
.Sh NAME
@@ -112,6 +112,8 @@ Spawn
dialog; allows you to switch from
.Nm
to another window manager without restarting the X server.
+.It Ic C-M-S-r
+Reload configuration.
.It Ic C-M-S-q
Quit cwm.
.El
diff --git a/app/cwm/cwmrc.5 b/app/cwm/cwmrc.5
index 4fc2a0b29..0588be182 100644
--- a/app/cwm/cwmrc.5
+++ b/app/cwm/cwmrc.5
@@ -1,4 +1,4 @@
-.\" $OpenBSD: cwmrc.5,v 1.14 2008/06/25 22:44:42 oga Exp $
+.\" $OpenBSD: cwmrc.5,v 1.15 2008/07/11 15:18:29 okan Exp $
.\"
.\" Copyright (c) 2004,2005 Marius Aamodt Eriksen <marius@monkey.org>
.\"
@@ -15,7 +15,7 @@
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The following requests are required for all man pages.
-.Dd $Mdocdate: June 25 2008 $
+.Dd $Mdocdate: July 11 2008 $
.Dt CWMRC 5
.Os
.Sh NAME
@@ -206,6 +206,8 @@ mousebind M-3 window_resize
.Ed
.Sh BIND COMMAND LIST
.Bl -tag -width 18n -compact
+.It reload
+reload configuration
.It quit
quit
.Xr cwm 1
diff --git a/app/cwm/kbfunc.c b/app/cwm/kbfunc.c
index e9f6f0791..a7c9acdb7 100644
--- a/app/cwm/kbfunc.c
+++ b/app/cwm/kbfunc.c
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $Id: kbfunc.c,v 1.31 2008/07/11 14:21:28 okan Exp $
+ * $Id: kbfunc.c,v 1.32 2008/07/11 15:18:29 okan Exp $
*/
#include <paths.h>
@@ -168,7 +168,6 @@ kbfunc_menu_search(struct client_ctx *scratch, void *arg)
TAILQ_INIT(&menuq);
- conf_reload(&Conf);
TAILQ_FOREACH(cmd, &Conf.cmdq, entry) {
XCALLOC(mi, struct menu);
strlcpy(mi->text, cmd->label, sizeof(mi->text));
@@ -215,14 +214,12 @@ kbfunc_cmdexec(struct client_ctx *cc, void *arg)
void
kbfunc_term(struct client_ctx *cc, void *arg)
{
- conf_reload(&Conf);
u_spawn(Conf.termpath);
}
void
kbfunc_lock(struct client_ctx *cc, void *arg)
{
- conf_reload(&Conf);
u_spawn(Conf.lockpath);
}
@@ -393,7 +390,6 @@ kbfunc_ssh(struct client_ctx *scratch, void *arg)
if ((mi = menu_filter(&menuq, "ssh", NULL, 1,
search_match_exec, NULL)) != NULL) {
- conf_reload(&Conf);
l = snprintf(cmd, sizeof(cmd), "%s -e ssh %s", Conf.termpath,
mi->text);
if (l != -1 && l < sizeof(cmd))
@@ -482,3 +478,9 @@ kbfunc_quit_wm(struct client_ctx *cc, void *arg)
{
_xev_quit = 1;
}
+
+void
+kbfunc_reload(struct client_ctx *cc, void *arg)
+{
+ conf_reload(&Conf);
+}
diff --git a/app/cwm/mousefunc.c b/app/cwm/mousefunc.c
index e0b6b575d..a38fdd702 100644
--- a/app/cwm/mousefunc.c
+++ b/app/cwm/mousefunc.c
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $Id: mousefunc.c,v 1.3 2008/07/11 14:21:28 okan Exp $
+ * $Id: mousefunc.c,v 1.4 2008/07/11 15:18:29 okan Exp $
*/
#include "headers.h"
@@ -113,8 +113,6 @@ mousefunc_menu_cmd(struct client_ctx *cc, void *arg)
struct menu_q menuq;
struct cmd *cmd;
- conf_reload(&Conf);
-
TAILQ_INIT(&menuq);
TAILQ_FOREACH(cmd, &Conf.cmdq, entry) {
XCALLOC(mi, struct menu);