Introduction
Introduction Statistics Contact Development Disclaimer Help
Adding fullscreen mode to tabbed. - tabbed - tab interface for application supp…
git clone git://git.suckless.org/tabbed
Log
Files
Refs
README
LICENSE
---
commit 29c5878d4c7d62def831471ebc82f63ecfd7105b
parent e70d87e83bdc49b24c302131f281fe0c6eac0634
Author: Christoph Lohmann <[email protected]>
Date: Mon, 3 Dec 2012 21:28:02 +0100
Adding fullscreen mode to tabbed.
Diffstat:
M config.def.h | 5 +++++
M tabbed.1 | 3 +++
M tabbed.c | 21 ++++++++++++++++++++-
3 files changed, 28 insertions(+), 1 deletion(-)
---
diff --git a/config.def.h b/config.def.h
@@ -16,11 +16,13 @@ static Key keys[] = { \
/* modifier key function argument */
{ MODKEY|ShiftMask, XK_Return, focusonce, { 0 } },
{ MODKEY|ShiftMask, XK_Return, spawn, { 0 } },
+
{ MODKEY|ShiftMask, XK_l, rotate, { .i = +1 }…
{ MODKEY|ShiftMask, XK_h, rotate, { .i = -1 }…
{ MODKEY|ShiftMask, XK_j, movetab, { .i = -1 }…
{ MODKEY|ShiftMask, XK_k, movetab, { .i = +1 }…
{ MODKEY, XK_Tab, rotate, { .i = 0 } …
+
{ MODKEY, XK_1, move, { .i = 0 } …
{ MODKEY, XK_2, move, { .i = 1 } …
{ MODKEY, XK_3, move, { .i = 2 } …
@@ -31,6 +33,9 @@ static Key keys[] = { \
{ MODKEY, XK_8, move, { .i = 7 } …
{ MODKEY, XK_9, move, { .i = 8 } …
{ MODKEY, XK_0, move, { .i = 9 } …
+
{ MODKEY, XK_q, killclient, { 0 } },
+
+ { 0, XK_F11, fullscreen, { 0 } },
};
diff --git a/tabbed.1 b/tabbed.1
@@ -72,6 +72,9 @@ close tab
.TP
.B Ctrl\-[0..9]
jumps to nth tab
+.TP
+.B F11
+Toggle fullscreen mode.
.SH EXAMPLES
$ tabbed surf -e
.TP
diff --git a/tabbed.c b/tabbed.c
@@ -49,7 +49,8 @@
#define TEXTW(x) (textnw(x, strlen(x)) + dc.font.height)
enum { ColFG, ColBG, ColLast }; /* color */
-enum { WMProtocols, WMDelete, WMName, XEmbed, WMLast }; /* default atoms */
+enum { WMProtocols, WMDelete, WMName, WMState, WMFullscreen,
+ XEmbed, WMLast }; /* default atoms */
typedef union {
int i;
@@ -103,6 +104,7 @@ static void expose(const XEvent *e);
static void focus(int c);
static void focusin(const XEvent *e);
static void focusonce(const Arg *arg);
+static void fullscreen(const Arg *arg);
static int getclient(Window w);
static unsigned long getcolor(const char *colstr);
static int getfirsttab(void);
@@ -463,6 +465,20 @@ focusonce(const Arg *arg) {
nextfocus = True;
}
+void
+fullscreen(const Arg *arg) {
+ XEvent e;
+
+ e.type = ClientMessage;
+ e.xclient.window = win;
+ e.xclient.message_type = wmatom[WMState];
+ e.xclient.format = 32;
+ e.xclient.data.l[0] = 2;
+ e.xclient.data.l[1] = wmatom[WMFullscreen];
+ e.xclient.data.l[2] = 0;
+ XSendEvent(dpy, root, False, SubstructureNotifyMask, &e);
+}
+
int
getclient(Window w) {
int i;
@@ -839,6 +855,9 @@ setup(void) {
wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
wmatom[XEmbed] = XInternAtom(dpy, "_XEMBED", False);
wmatom[WMName] = XInternAtom(dpy, "_NET_WM_NAME", False);
+ wmatom[WMState] = XInternAtom(dpy, "_NET_WM_STATE", False);
+ wmatom[WMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN",
+ False);
/* init appearance */
wx = 0;
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.