diff --git a/dwm/config.def.h b/dwm/config.def.h
index a402fe35861d915bdba1d2a90e956ba707778427..73c8d62f27701cb5a369885495bbcd5710893527 100644
--- a/dwm/config.def.h
+++ b/dwm/config.def.h
@@ -91,6 +91,7 @@ static Key keys[] = {
 	{ MODKEY,                       XK_o,      setlayout,      {.v = &layouts[4]} },
 	{ MODKEY,                       XK_space,  setlayout,      {0} },
 	{ MODKEY|ShiftMask,             XK_space,  togglefloating, {0} },
+	{ MODKEY|ShiftMask,             XK_f,      togglefullscr,  {0} },
 	{ MODKEY,                       XK_0,      view,           {.ui = ~0 } },
 	{ MODKEY|ShiftMask,             XK_0,      tag,            {.ui = ~0 } },
 	{ MODKEY,                       XK_comma,  focusmon,       {.i = -1 } },
diff --git a/dwm/dwm.c b/dwm/dwm.c
index ee41c162c19068bc4dfc9d2feecb1ae5a3b60b1e..e1db310903257317b9a16ce9f27c008f7ade70a9 100644
--- a/dwm/dwm.c
+++ b/dwm/dwm.c
@@ -213,6 +213,7 @@ static void tagmon(const Arg *arg);
 static void tile(Monitor *);
 static void togglebar(const Arg *arg);
 static void togglefloating(const Arg *arg);
+static void togglefullscr(const Arg *arg);
 static void toggletag(const Arg *arg);
 static void toggleview(const Arg *arg);
 static void unfocus(Client *c, int setfocus);
@@ -1737,6 +1738,13 @@ togglefloating(const Arg *arg)
 	arrange(selmon);
 }
 
+void
+togglefullscr(const Arg *arg)
+{
+  if(selmon->sel)
+    setfullscreen(selmon->sel, !selmon->sel->isfullscreen);
+}
+
 void
 toggletag(const Arg *arg)
 {