Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Sravan Balaji 2024-07-12 20:06:29 -04:00
commit a10bfa96db
12 changed files with 157 additions and 10 deletions

View File

@ -19,6 +19,8 @@ Browsing patches? There is a [map of patches](https://coggle.it/diagram/X9IiSSM6
### Changelog: ### Changelog:
2024-07-11 - Added variant of the launcher patch
2024-01-31 - Added the placedir patch 2024-01-31 - Added the placedir patch
2023-12-22 - Added the do-not-die-on-color-allocation-failure patch 2023-12-22 - Added the do-not-die-on-color-allocation-failure patch
@ -522,6 +524,9 @@ Browsing patches? There is a [map of patches](https://coggle.it/diagram/X9IiSSM6
- [killunsel](https://dwm.suckless.org/patches/killunsel/) - [killunsel](https://dwm.suckless.org/patches/killunsel/)
- kills all visible clients that are not selected (only the selected client will remain) - kills all visible clients that are not selected (only the selected client will remain)
- [launcher](https://dwm.suckless.org/patches/launcher/)
- adds buttons to the bar that can be used to launch applications
- [~leftlayout~](http://dwm.suckless.org/patches/leftlayout/) - [~leftlayout~](http://dwm.suckless.org/patches/leftlayout/)
- ~moves the layout symbol in the status bar to the left hand side~ - ~moves the layout symbol in the status bar to the left hand side~

View File

@ -19,6 +19,7 @@
- [[#dwm-blocks][DWM Blocks]] - [[#dwm-blocks][DWM Blocks]]
- [[#fancy-bar][Fancy Bar]] - [[#fancy-bar][Fancy Bar]]
- [[#flex-win-title][Flex Win Title]] - [[#flex-win-title][Flex Win Title]]
- [[#bar-launcher][Bar Launcher]]
- [[#layout-menu][Layout Menu]] - [[#layout-menu][Layout Menu]]
- [[#layout-symbol][Layout Symbol]] - [[#layout-symbol][Layout Symbol]]
- [[#powerline][Powerline]] - [[#powerline][Powerline]]
@ -198,6 +199,7 @@
- [[#make-config][Make Config]] - [[#make-config][Make Config]]
- [[#makefile][Makefile]] - [[#makefile][Makefile]]
- [[#dwm-configuration][DWM Configuration]] - [[#dwm-configuration][DWM Configuration]]
- [[#helper-macros-for-spawning-commands][Helper Macros for Spawning Commands]]
- [[#appearance][Appearance]] - [[#appearance][Appearance]]
- [[#indicators][Indicators]] - [[#indicators][Indicators]]
- [[#colors][Colors]] - [[#colors][Colors]]
@ -209,6 +211,7 @@
- [[#set-colors][Set Colors]] - [[#set-colors][Set Colors]]
- [[#powerline-1][Powerline]] - [[#powerline-1][Powerline]]
- [[#layout-menu-1][Layout Menu]] - [[#layout-menu-1][Layout Menu]]
- [[#bar-launcher-1][Bar Launcher]]
- [[#autostart][Autostart]] - [[#autostart][Autostart]]
- [[#scratchpads][Scratchpads]] - [[#scratchpads][Scratchpads]]
- [[#tags-1][Tags]] - [[#tags-1][Tags]]
@ -309,6 +312,8 @@ Browsing patches? There is a [[https://coggle.it/diagram/X9IiSSM6PTWOM9Wz][map o
** Changelog ** Changelog
2024-07-11 - Added variant of the launcher patch
2024-01-31 - Added the placedir patch 2024-01-31 - Added the placedir patch
2023-12-22 - Added the do-not-die-on-color-allocation-failure patch 2023-12-22 - Added the do-not-die-on-color-allocation-failure patch
@ -771,6 +776,9 @@ Browsing patches? There is a [[https://coggle.it/diagram/X9IiSSM6PTWOM9Wz][map o
- [[https://dwm.suckless.org/patches/killunsel/][killunsel]] - [[https://dwm.suckless.org/patches/killunsel/][killunsel]]
- kills all visible clients that are not selected (only the selected client will remain) - kills all visible clients that are not selected (only the selected client will remain)
- [[https://dwm.suckless.org/patches/launcher/][launcher]]
- adds buttons to the bar that can be used to launch applications
- +[[http://dwm.suckless.org/patches/leftlayout/][leftlayout]]+ - +[[http://dwm.suckless.org/patches/leftlayout/][leftlayout]]+
- +moves the layout symbol in the status bar to the left hand side+ - +moves the layout symbol in the status bar to the left hand side+
@ -1210,6 +1218,16 @@ Being an evolution of the bartabgroups patch the flexwintitle patch specifically
#define BAR_FLEXWINTITLE_PATCH 0 #define BAR_FLEXWINTITLE_PATCH 0
#+END_SRC #+END_SRC
*** Bar Launcher
Adds buttons to the bar that can be used to launch applications.
https://dwm.suckless.org/patches/launcher/
#+BEGIN_SRC c :tangle patches.def.h
#define BAR_LAUNCHER_PATCH 0
#+END_SRC
*** Layout Menu *** Layout Menu
This patch adds a context menu for layout switching. This patch adds a context menu for layout switching.
@ -3677,6 +3695,13 @@ uninstall:
* DWM Configuration * DWM Configuration
** Helper Macros for Spawning Commands
#+BEGIN_SRC c :tangle config.def.h
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
#define CMD(...) { .v = (const char*[]){ __VA_ARGS__, NULL } }
#+END_SRC
** Appearance ** Appearance
#+BEGIN_SRC c :tangle config.def.h #+BEGIN_SRC c :tangle config.def.h
@ -4212,6 +4237,18 @@ static const char *layoutmenu_cmd = "layoutmenu.sh";
#endif #endif
#+END_SRC #+END_SRC
** Bar Launcher
#+BEGIN_SRC c :tangle config.def.h
#if BAR_LAUNCHER_PATCH
static const Launcher launchers[] = {
/* icon to display command */
{ "surf", CMD("surf", "duckduckgo.com") },
};
#endif // BAR_LAUNCHER_PATCH
#+END_SRC
** Autostart ** Autostart
#+BEGIN_SRC c :tangle config.def.h #+BEGIN_SRC c :tangle config.def.h
@ -4431,6 +4468,9 @@ static const BarRule barrules[] = {
#if BAR_STATUSBUTTON_PATCH #if BAR_STATUSBUTTON_PATCH
{ -1, 0, BAR_ALIGN_LEFT, width_stbutton, draw_stbutton, click_stbutton, NULL, "statusbutton" }, { -1, 0, BAR_ALIGN_LEFT, width_stbutton, draw_stbutton, click_stbutton, NULL, "statusbutton" },
#endif // BAR_STATUSBUTTON_PATCH #endif // BAR_STATUSBUTTON_PATCH
#if BAR_LAUNCHER_PATCH
{ -1, 0, BAR_ALIGN_LEFT, width_launcher, draw_launcher, click_launcher, NULL, "launcher" },
#endif // BAR_LAUNCHER_PATCH
#if BAR_POWERLINE_TAGS_PATCH #if BAR_POWERLINE_TAGS_PATCH
{ 0, 0, BAR_ALIGN_LEFT, width_pwrl_tags, draw_pwrl_tags, click_pwrl_tags, hover_pwrl_tags, "powerline_tags" }, { 0, 0, BAR_ALIGN_LEFT, width_pwrl_tags, draw_pwrl_tags, click_pwrl_tags, hover_pwrl_tags, "powerline_tags" },
#endif // BAR_POWERLINE_TAGS_PATCH #endif // BAR_POWERLINE_TAGS_PATCH
@ -4767,11 +4807,6 @@ static const char *xkb_layouts[] = {
#endif // BAR_HOLDBAR_PATCH #endif // BAR_HOLDBAR_PATCH
#+END_SRC #+END_SRC
#+BEGIN_SRC c :tangle config.def.h
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
#+END_SRC
#+BEGIN_SRC c :tangle config.def.h #+BEGIN_SRC c :tangle config.def.h
#if !NODMENU_PATCH #if !NODMENU_PATCH
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */

View File

@ -1,3 +1,6 @@
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
#define CMD(...) { .v = (const char*[]){ __VA_ARGS__, NULL } }
#if ROUNDED_CORNERS_PATCH #if ROUNDED_CORNERS_PATCH
static const unsigned int borderpx = 0; /* border pixel of windows */ static const unsigned int borderpx = 0; /* border pixel of windows */
static const int corner_radius = 10; static const int corner_radius = 10;
@ -425,6 +428,13 @@ static char *statuscolors[][ColCount] = {
static const char *layoutmenu_cmd = "layoutmenu.sh"; static const char *layoutmenu_cmd = "layoutmenu.sh";
#endif #endif
#if BAR_LAUNCHER_PATCH
static const Launcher launchers[] = {
/* icon to display command */
{ "surf", CMD("surf", "duckduckgo.com") },
};
#endif // BAR_LAUNCHER_PATCH
#if COOL_AUTOSTART_PATCH #if COOL_AUTOSTART_PATCH
static const char *const autostart[] = { static const char *const autostart[] = {
"st", NULL, "st", NULL,
@ -553,6 +563,9 @@ static const BarRule barrules[] = {
#if BAR_STATUSBUTTON_PATCH #if BAR_STATUSBUTTON_PATCH
{ -1, 0, BAR_ALIGN_LEFT, width_stbutton, draw_stbutton, click_stbutton, NULL, "statusbutton" }, { -1, 0, BAR_ALIGN_LEFT, width_stbutton, draw_stbutton, click_stbutton, NULL, "statusbutton" },
#endif // BAR_STATUSBUTTON_PATCH #endif // BAR_STATUSBUTTON_PATCH
#if BAR_LAUNCHER_PATCH
{ -1, 0, BAR_ALIGN_LEFT, width_launcher, draw_launcher, click_launcher, NULL, "launcher" },
#endif // BAR_LAUNCHER_PATCH
#if BAR_POWERLINE_TAGS_PATCH #if BAR_POWERLINE_TAGS_PATCH
{ 0, 0, BAR_ALIGN_LEFT, width_pwrl_tags, draw_pwrl_tags, click_pwrl_tags, hover_pwrl_tags, "powerline_tags" }, { 0, 0, BAR_ALIGN_LEFT, width_pwrl_tags, draw_pwrl_tags, click_pwrl_tags, hover_pwrl_tags, "powerline_tags" },
#endif // BAR_POWERLINE_TAGS_PATCH #endif // BAR_POWERLINE_TAGS_PATCH
@ -860,9 +873,6 @@ static const char *xkb_layouts[] = {
#define HOLDKEY 0 // replace 0 with the keysym to activate holdbar #define HOLDKEY 0 // replace 0 with the keysym to activate holdbar
#endif // BAR_HOLDBAR_PATCH #endif // BAR_HOLDBAR_PATCH
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
#if !NODMENU_PATCH #if !NODMENU_PATCH
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
#endif // NODMENU_PATCH #endif // NODMENU_PATCH

1
dwm.c
View File

@ -4102,6 +4102,7 @@ spawn(const Arg *arg)
if (arg->v == dmenucmd) if (arg->v == dmenucmd)
dmenumon[0] = '0' + selmon->num; dmenumon[0] = '0' + selmon->num;
#endif // NODMENU_PATCH #endif // NODMENU_PATCH
fprintf(stderr, "spawn running cmd:\n");
#if RIODRAW_PATCH #if RIODRAW_PATCH
if ((pid = fork()) == 0) if ((pid = fork()) == 0)

81
patch/bar_launcher.c Normal file
View File

@ -0,0 +1,81 @@
#if BAR_STATUS2D_PATCH
int
width_launcher(Bar *bar, BarArg *a)
{
int i, x = 0;
for (i = 0; i < LENGTH(launchers); i++) {
x += status2dtextlength(launchers[i].name) + lrpad;
}
return x;
}
int
draw_launcher(Bar *bar, BarArg *a)
{
int i, w = 0;;
for (i = 0; i < LENGTH(launchers); i++) {
w = status2dtextlength(launchers[i].name);
drawstatusbar(a, launchers[i].name);
a->x += w + lrpad;
}
return a->x ;
}
int
click_launcher(Bar *bar, Arg *arg, BarArg *a)
{
int i, x = 0;
for (i = 0; i < LENGTH(launchers); i++) {
x += status2dtextlength(launchers[i].name) + lrpad;
if (a->x < x) {
spawn(&launchers[i].command);
break;
}
}
return -1;
}
#else
int
width_launcher(Bar *bar, BarArg *a)
{
int i, x = 0;
for (i = 0; i < LENGTH(launchers); i++) {
x += TEXTW(launchers[i].name);
}
return x;
}
int
draw_launcher(Bar *bar, BarArg *a)
{
int i, x = 0, w = 0;;
for (i = 0; i < LENGTH(launchers); i++) {
w = TEXTW(launchers[i].name);
drw_text(drw, x, 0, w, bh, lrpad / 2, launchers[i].name, 0, True);
x += w;
}
return x;
}
int
click_launcher(Bar *bar, Arg *arg, BarArg *a)
{
int i, x = 0;
for (i = 0; i < LENGTH(launchers); i++) {
x += TEXTW(launchers[i].name);
if (a->x < x) {
spawn(&launchers[i].command);
break;
}
}
return -1;
}
#endif // BAR_STATUS2D_PATCH

8
patch/bar_launcher.h Normal file
View File

@ -0,0 +1,8 @@
typedef struct {
char* name;
const Arg command;
} Launcher;
static int width_launcher(Bar *bar, BarArg *a);
static int draw_launcher(Bar *bar, BarArg *a);
static int click_launcher(Bar *bar, Arg *arg, BarArg *a);

View File

@ -15,4 +15,3 @@ click_ltsymbol(Bar *bar, Arg *arg, BarArg *a)
{ {
return ClkLtSymbol; return ClkLtSymbol;
} }

View File

@ -1,4 +1,3 @@
static int width_ltsymbol(Bar *bar, BarArg *a); static int width_ltsymbol(Bar *bar, BarArg *a);
static int draw_ltsymbol(Bar *bar, BarArg *a); static int draw_ltsymbol(Bar *bar, BarArg *a);
static int click_ltsymbol(Bar *bar, Arg *arg, BarArg *a); static int click_ltsymbol(Bar *bar, Arg *arg, BarArg *a);

View File

@ -96,6 +96,7 @@ drawstatusbar(BarArg *a, char* stext)
#else #else
memcpy(text, stext, len); memcpy(text, stext, len);
#endif // BAR_STATUSCMD_PATCH #endif // BAR_STATUSCMD_PATCH
text[len] = '\0';
x += lrpad / 2; x += lrpad / 2;
drw_setscheme(drw, scheme[LENGTH(colors)]); drw_setscheme(drw, scheme[LENGTH(colors)]);

View File

@ -21,6 +21,9 @@
#if COMBO_PATCH #if COMBO_PATCH
#include "combo.c" #include "combo.c"
#endif #endif
#if BAR_LAUNCHER_PATCH
#include "bar_launcher.c"
#endif
#if BAR_LTSYMBOL_PATCH #if BAR_LTSYMBOL_PATCH
#include "bar_ltsymbol.c" #include "bar_ltsymbol.c"
#endif #endif

View File

@ -24,6 +24,9 @@
#if BAR_HOLDBAR_PATCH #if BAR_HOLDBAR_PATCH
#include "bar_holdbar.h" #include "bar_holdbar.h"
#endif #endif
#if BAR_LAUNCHER_PATCH
#include "bar_launcher.h"
#endif
#if BAR_LTSYMBOL_PATCH #if BAR_LTSYMBOL_PATCH
#include "bar_ltsymbol.h" #include "bar_ltsymbol.h"
#endif #endif

View File

@ -8,6 +8,8 @@
#define BAR_FLEXWINTITLE_PATCH 0 #define BAR_FLEXWINTITLE_PATCH 0
#define BAR_LAUNCHER_PATCH 0
#define BAR_LAYOUTMENU_PATCH 0 #define BAR_LAYOUTMENU_PATCH 0
#define BAR_LTSYMBOL_PATCH 0 #define BAR_LTSYMBOL_PATCH 0