cvsimport

* refs/heads/master:
  Allow cwm(1) to cycle through windows of the same window class as the active window; default key binding to M-grave, respectively Alt-Tilde, like other window managers have as well.
This commit is contained in:
okan
2023-07-20 14:39:34 +00:00
5 changed files with 18 additions and 1 deletions

View File

@@ -88,6 +88,7 @@ size_t strlcpy(char *, const char *, size_t);
#define CWM_CYCLE_FORWARD 0x0001
#define CWM_CYCLE_REVERSE 0x0002
#define CWM_CYCLE_INGROUP 0x0004
#define CWM_CYCLE_INCLASS 0x0008
enum cwm_status {
CWM_QUIT,

6
conf.c
View File

@@ -136,6 +136,10 @@ static const struct {
(CWM_CYCLE_FORWARD | CWM_CYCLE_INGROUP)) },
{ FUNC_SC(window-rcycle-ingroup, client_cycle,
(CWM_CYCLE_REVERSE | CWM_CYCLE_INGROUP)) },
{ FUNC_SC(window-cycle-inclass, client_cycle,
(CWM_CYCLE_FORWARD | CWM_CYCLE_INCLASS)) },
{ FUNC_SC(window-rcycle-inclass, client_cycle,
(CWM_CYCLE_REVERSE | CWM_CYCLE_INCLASS)) },
{ FUNC_SC(group-cycle, group_cycle, (CWM_CYCLE_FORWARD)) },
{ FUNC_SC(group-rcycle, group_cycle, (CWM_CYCLE_REVERSE)) },
@@ -220,6 +224,8 @@ static const struct {
{ "C-slash", "menu-cmd" },
{ "M-Tab", "window-cycle" },
{ "MS-Tab", "window-rcycle" },
{ "M-grave", "window-cycle-inclass" },
{ "MS-grave", "window-rcycle-inclass" },
{ "CM-n", "window-menu-label" },
{ "CM-x", "window-close" },
{ "CM-a", "group-toggle-all" },

4
cwm.1
View File

@@ -102,6 +102,10 @@ Label current window.
Cycle through currently visible windows.
.It Ic MS-Tab
Reverse cycle through currently visible windows.
.It Ic M-grave
Cycle through currently visible windows of the same window class.
.It Ic MS-grave
Reverse cycle through currently visible windows of the same window class.
.It Ic CM-x
Close current window.
.It Ic CM-[n]

View File

@@ -295,6 +295,10 @@ Reverse cycle through windows.
Forward cycle through windows in current group.
.It window-rcycle-ingroup
Reverse cycle through windows in current group.
.It window-cycle-inclass
Forward cycle through windows of the current window class.
.It window-rcycle-inclass
Reverse cycle through windows of the current window class.
.It window-close
Close current window.
.It window-hide

View File

@@ -433,7 +433,9 @@ kbfunc_client_cycle(void *ctx, struct cargs *cargs)
/* Only cycle visible and non-ignored windows. */
if ((newcc->flags & (CLIENT_SKIP_CYCLE)) ||
((flags & CWM_CYCLE_INGROUP) &&
(newcc->gc != oldcc->gc)))
(newcc->gc != oldcc->gc)) ||
((flags & CWM_CYCLE_INCLASS) &&
strcmp(newcc->res_class, oldcc->res_class) != 0))
again = 1;
/* Is oldcc the only non-hidden window? */