diff --git a/README.md b/README.md index a8d3fde..18e8b1a 100644 --- a/README.md +++ b/README.md @@ -623,15 +623,15 @@ If you are experiencing issues then you may want to check out the [Known Issues] - [stacker](https://dwm.suckless.org/patches/stacker/) - provides comprehensive utilities for managing the client stack - - [~staticstatus~](https://dwm.suckless.org/patches/staticstatus/) - - ~allows the status text to be fixed to the bar on a specific monitor rather than being - drawn on the focused monitor~ + - [staticstatus](https://dwm.suckless.org/patches/staticstatus/) + - allows the status text to be fixed to the bar on a specific monitor rather than being + drawn on the focused monitor - [status2d](https://dwm.suckless.org/patches/status2d/) - allows colors and rectangle drawing in the dwm status bar - - [~statusallmons~](https://dwm.suckless.org/patches/statuspadding/) - - ~this patch draws and updates the statusbar on all monitors~ + - [statusallmons](https://dwm.suckless.org/patches/statuspadding/) + - this patch draws and updates the statusbar on all monitors - [statusbutton](https://dwm.suckless.org/patches/statusbutton/) - adds a clickable button to the left hand side of the statusbar diff --git a/README.org b/README.org index 75c88c6..8d96f00 100644 --- a/README.org +++ b/README.org @@ -52,6 +52,8 @@ - [[#ignore-xft-errors-when-drawing-text][Ignore Xft Errors When Drawing Text]] - [[#padding][Padding]] - [[#pango][Pango]] + - [[#static-status][Static Status]] + - [[#status-all-monitors][Status All Monitors]] - [[#status-colors][Status Colors]] - [[#status-padding][Status Padding]] - [[#vt-colors][VT Colors]] @@ -889,14 +891,14 @@ If you are experiencing issues then you may want to check out the [[https://gith - [[https://dwm.suckless.org/patches/stacker/][stacker]] - provides comprehensive utilities for managing the client stack - - +[[https://dwm.suckless.org/patches/staticstatus/][staticstatus]]+ - - +allows the status text to be fixed to the bar on a specific monitor rather than being drawn on the focused monitor+ + - [[https://dwm.suckless.org/patches/staticstatus/][staticstatus]] + - allows the status text to be fixed to the bar on a specific monitor rather than being drawn on the focused monitor - [[https://dwm.suckless.org/patches/status2d/][status2d]] - allows colors and rectangle drawing in the dwm status bar - - +[[https://dwm.suckless.org/patches/statuspadding/][statusallmons]]+ - - +this patch draws and updates the statusbar on all monitors+ + - [[https://dwm.suckless.org/patches/statuspadding/][statusallmons]] + - this patch draws and updates the statusbar on all monitors - [[https://dwm.suckless.org/patches/statusbutton/][statusbutton]] - adds a clickable button to the left hand side of the statusbar @@ -1221,7 +1223,7 @@ Powerline separators are defined as: Examples: #+BEGIN_EXAMPLE xsetroot -name "$(echo -e '<\x01a<\x02b<\x03c')" -xsetroot -name "$(echo -e '/\x01d/\x02d/\x03f')" +xsetroot -name "$(echo -e '/\x01d/\x02e/\x03f')" #+END_EXAMPLE https://gitlab.com/udiboy1209-suckless/dwm/-/commit/071f5063e8ac4280666828179f92788d893eea40#4b1a539194be7467cefbda22f675a3b7c19ceca7 @@ -1667,6 +1669,28 @@ https://dwm.suckless.org/patches/pango/ #define BAR_PANGO_PATCH 0 #+END_SRC +*** Static Status + +This patch allows the status text to be fixed to the bar on a specific monitor rather than being drawn on the focused monitor. + +The statusallmons patch takes precedence over this patch. + +https://dwm.suckless.org/patches/staticstatus/ + +#+BEGIN_SRC c :tangle patches.def.h +#define BAR_STATICSTATUS_PATCH 0 +#+END_SRC + +*** Status All Monitors + +This patch draws and updates the statusbar on all monitors. + +https://dwm.suckless.org/patches/statusallmons/ + +#+BEGIN_SRC c :tangle patches.def.h +#define BAR_STATUSALLMONS_PATCH 0 +#+END_SRC + *** Status Colors This patch enables colored text in the status bar. It changes the way colors are defined in config.h allowing multiple color combinations for use in the status script. @@ -3476,6 +3500,17 @@ static const int riodraw_matchpid = 1; /* 0 or 1, indicates whether to m #endif // RIODRAW_PATCH #+END_SRC +#+BEGIN_SRC c :tangle config.def.h +/* Status is to be shown on: -1 (all monitors), 0 (a specific monitor by index), 'A' (active monitor) */ +#if BAR_STATUSALLMONS_PATCH +static const int statusmon = -1; +#elif BAR_STATICSTATUS_PATCH +static const int statusmon = 0; +#else +static const int statusmon = 'A'; +#endif // BAR_STATUSALLMONS_PATCH | BAR_STATICSTATUS_PATCH +#+END_SRC + #+BEGIN_SRC c :tangle config.def.h #if BAR_STATUSPADDING_PATCH static const int horizpadbar = 2; /* horizontal padding for statusbar */ @@ -3983,78 +4018,78 @@ name - does nothing, intended for visual clue and for logging / debugging #+BEGIN_SRC c :tangle config.def.h static const BarRule barrules[] = { - /* monitor bar alignment widthfunc drawfunc clickfunc name */ + /* monitor bar alignment widthfunc drawfunc clickfunc name */ { -2 }, #if BAR_STATUSBUTTON_PATCH - { -1, 0, BAR_ALIGN_LEFT, width_stbutton, draw_stbutton, click_stbutton, "statusbutton" }, + { -1, 0, BAR_ALIGN_LEFT, width_stbutton, draw_stbutton, click_stbutton, "statusbutton" }, #endif // BAR_STATUSBUTTON_PATCH #if BAR_POWERLINE_TAGS_PATCH - { 0, 0, BAR_ALIGN_LEFT, width_pwrl_tags, draw_pwrl_tags, click_pwrl_tags, "powerline_tags" }, + { 0, 0, BAR_ALIGN_LEFT, width_pwrl_tags, draw_pwrl_tags, click_pwrl_tags, "powerline_tags" }, #endif // BAR_POWERLINE_TAGS_PATCH #if BAR_TAGS_PATCH - { -1, 0, BAR_ALIGN_LEFT, width_tags, draw_tags, click_tags, "tags" }, + { -1, 0, BAR_ALIGN_LEFT, width_tags, draw_tags, click_tags, "tags" }, #endif // BAR_TAGS_PATCH #if BAR_TAGGRID_PATCH - { -1, 0, BAR_ALIGN_LEFT, width_taggrid, draw_taggrid, click_taggrid, "taggrid" }, + { -1, 0, BAR_ALIGN_LEFT, width_taggrid, draw_taggrid, click_taggrid, "taggrid" }, #endif // BAR_TAGGRID_PATCH #if BAR_SYSTRAY_PATCH - { 0, 0, BAR_ALIGN_RIGHT, width_systray, draw_systray, click_systray, "systray" }, + { 0, 0, BAR_ALIGN_RIGHT, width_systray, draw_systray, click_systray, "systray" }, #endif // BAR_SYSTRAY_PATCH #if BAR_LTSYMBOL_PATCH - { -1, 0, BAR_ALIGN_LEFT, width_ltsymbol, draw_ltsymbol, click_ltsymbol, "layout" }, + { -1, 0, BAR_ALIGN_LEFT, width_ltsymbol, draw_ltsymbol, click_ltsymbol, "layout" }, #endif // BAR_LTSYMBOL_PATCH #if BAR_STATUSCOLORS_PATCH && BAR_STATUSCMD_PATCH - { 'A', 0, BAR_ALIGN_RIGHT, width_statuscolors, draw_statuscolors, click_statuscmd, "statuscolors" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_statuscolors, draw_statuscolors, click_statuscmd, "statuscolors" }, #elif BAR_STATUSCOLORS_PATCH - { 'A', 0, BAR_ALIGN_RIGHT, width_statuscolors, draw_statuscolors, click_statuscolors, "statuscolors" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_statuscolors, draw_statuscolors, click_statuscolors, "statuscolors" }, #elif BAR_STATUS2D_PATCH && BAR_STATUSCMD_PATCH - { 'A', 0, BAR_ALIGN_RIGHT, width_status2d, draw_status2d, click_statuscmd, "status2d" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_status2d, draw_status2d, click_statuscmd, "status2d" }, #elif BAR_STATUS2D_PATCH - { 'A', 0, BAR_ALIGN_RIGHT, width_status2d, draw_status2d, click_status2d, "status2d" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_status2d, draw_status2d, click_status2d, "status2d" }, #elif BAR_POWERLINE_STATUS_PATCH - { 0, 0, BAR_ALIGN_RIGHT, width_pwrl_status, draw_pwrl_status, click_pwrl_status, "powerline_status" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_pwrl_status, draw_pwrl_status, click_pwrl_status, "powerline_status" }, #elif BAR_STATUS_PATCH && BAR_STATUSCMD_PATCH - { 0, 0, BAR_ALIGN_RIGHT, width_status, draw_status, click_statuscmd, "status" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_status, draw_status, click_statuscmd, "status" }, #elif BAR_STATUS_PATCH - { 'A', 0, BAR_ALIGN_RIGHT, width_status, draw_status, click_status, "status" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_status, draw_status, click_status, "status" }, #endif // BAR_STATUS2D_PATCH | BAR_STATUSCMD_PATCH #if XKB_PATCH - { 0, 0, BAR_ALIGN_RIGHT, width_xkb, draw_xkb, click_xkb, "xkb" }, + { 0, 0, BAR_ALIGN_RIGHT, width_xkb, draw_xkb, click_xkb, "xkb" }, #endif // XKB_PATCH #if BAR_FLEXWINTITLE_PATCH - { -1, 0, BAR_ALIGN_NONE, width_flexwintitle, draw_flexwintitle, click_flexwintitle, "flexwintitle" }, + { -1, 0, BAR_ALIGN_NONE, width_flexwintitle, draw_flexwintitle, click_flexwintitle, "flexwintitle" }, #elif BAR_TABGROUPS_PATCH - { -1, 0, BAR_ALIGN_NONE, width_bartabgroups, draw_bartabgroups, click_bartabgroups, "bartabgroups" }, + { -1, 0, BAR_ALIGN_NONE, width_bartabgroups, draw_bartabgroups, click_bartabgroups, "bartabgroups" }, #elif BAR_AWESOMEBAR_PATCH - { -1, 0, BAR_ALIGN_NONE, width_awesomebar, draw_awesomebar, click_awesomebar, "awesomebar" }, + { -1, 0, BAR_ALIGN_NONE, width_awesomebar, draw_awesomebar, click_awesomebar, "awesomebar" }, #elif BAR_FANCYBAR_PATCH - { -1, 0, BAR_ALIGN_NONE, width_fancybar, draw_fancybar, click_fancybar, "fancybar" }, + { -1, 0, BAR_ALIGN_NONE, width_fancybar, draw_fancybar, click_fancybar, "fancybar" }, #elif BAR_WINTITLE_PATCH - { -1, 0, BAR_ALIGN_NONE, width_wintitle, draw_wintitle, click_wintitle, "wintitle" }, + { -1, 0, BAR_ALIGN_NONE, width_wintitle, draw_wintitle, click_wintitle, "wintitle" }, #endif // BAR_TABGROUPS_PATCH | BAR_AWESOMEBAR_PATCH | BAR_FANCYBAR_PATCH | BAR_WINTITLE_PATCH #if BAR_EXTRASTATUS_PATCH #if BAR_STATUSCOLORS_PATCH && BAR_STATUSCMD_PATCH - { 'A', 1, BAR_ALIGN_CENTER, width_statuscolors_es, draw_statuscolors_es, click_statuscmd_es, "statuscolors_es" }, + { statusmon, 1, BAR_ALIGN_CENTER, width_statuscolors_es, draw_statuscolors_es, click_statuscmd_es, "statuscolors_es" }, #elif BAR_STATUSCOLORS_PATCH - { 'A', 1, BAR_ALIGN_CENTER, width_statuscolors_es, draw_statuscolors_es, click_statuscolors, "statuscolors_es" }, + { statusmon, 1, BAR_ALIGN_CENTER, width_statuscolors_es, draw_statuscolors_es, click_statuscolors, "statuscolors_es" }, #elif BAR_STATUS2D_PATCH && BAR_STATUSCMD_PATCH - { 'A', 1, BAR_ALIGN_CENTER, width_status2d_es, draw_status2d_es, click_statuscmd_es, "status2d_es" }, + { statusmon, 1, BAR_ALIGN_CENTER, width_status2d_es, draw_status2d_es, click_statuscmd_es, "status2d_es" }, #elif BAR_STATUS2D_PATCH - { 'A', 1, BAR_ALIGN_CENTER, width_status2d_es, draw_status2d_es, click_status2d, "status2d_es" }, + { statusmon, 1, BAR_ALIGN_CENTER, width_status2d_es, draw_status2d_es, click_status2d, "status2d_es" }, #elif BAR_POWERLINE_STATUS_PATCH - { 0, 1, BAR_ALIGN_RIGHT, width_pwrl_status_es, draw_pwrl_status_es, click_pwrl_status, "powerline_status" }, + { statusmon, 1, BAR_ALIGN_RIGHT, width_pwrl_status_es, draw_pwrl_status_es, click_pwrl_status, "powerline_status" }, #elif BAR_STATUSCMD_PATCH && BAR_STATUS_PATCH - { 'A', 1, BAR_ALIGN_CENTER, width_status_es, draw_status_es, click_statuscmd_es, "status_es" }, + { statusmon, 1, BAR_ALIGN_CENTER, width_status_es, draw_status_es, click_statuscmd_es, "status_es" }, #elif BAR_STATUS_PATCH - { 'A', 1, BAR_ALIGN_CENTER, width_status_es, draw_status_es, click_status, "status_es" }, + { statusmon, 1, BAR_ALIGN_CENTER, width_status_es, draw_status_es, click_status, "status_es" }, #endif // BAR_STATUS2D_PATCH | BAR_STATUSCMD_PATCH #endif // BAR_EXTRASTATUS_PATCH #if BAR_FLEXWINTITLE_PATCH #if BAR_WINTITLE_HIDDEN_PATCH - { -1, 1, BAR_ALIGN_RIGHT_RIGHT, width_wintitle_hidden, draw_wintitle_hidden, click_wintitle_hidden, "wintitle_hidden" }, + { -1, 1, BAR_ALIGN_RIGHT_RIGHT, width_wintitle_hidden, draw_wintitle_hidden, click_wintitle_hidden, "wintitle_hidden" }, #endif #if BAR_WINTITLE_FLOATING_PATCH - { -1, 1, BAR_ALIGN_LEFT, width_wintitle_floating, draw_wintitle_floating, click_wintitle_floating, "wintitle_floating" }, + { -1, 1, BAR_ALIGN_LEFT, width_wintitle_floating, draw_wintitle_floating, click_wintitle_floating, "wintitle_floating" }, #endif // BAR_WINTITLE_FLOATING_PATCH #endif // BAR_FLEXWINTITLE_PATCH }; diff --git a/config.def.h b/config.def.h index 08d9159..9494573 100644 --- a/config.def.h +++ b/config.def.h @@ -85,6 +85,15 @@ static const int riodraw_matchpid = 1; /* 0 or 1, indicates whether to m #endif // SWALLOW_PATCH #endif // RIODRAW_PATCH +/* Status is to be shown on: -1 (all monitors), 0 (a specific monitor by index), 'A' (active monitor) */ +#if BAR_STATUSALLMONS_PATCH +static const int statusmon = -1; +#elif BAR_STATICSTATUS_PATCH +static const int statusmon = 0; +#else +static const int statusmon = 'A'; +#endif // BAR_STATUSALLMONS_PATCH | BAR_STATICSTATUS_PATCH + #if BAR_STATUSPADDING_PATCH static const int horizpadbar = 2; /* horizontal padding for statusbar */ static const int vertpadbar = 0; /* vertical padding for statusbar */ @@ -443,78 +452,78 @@ static const Inset default_inset = { #endif // INSETS_PATCH static const BarRule barrules[] = { - /* monitor bar alignment widthfunc drawfunc clickfunc name */ + /* monitor bar alignment widthfunc drawfunc clickfunc name */ { -2 }, #if BAR_STATUSBUTTON_PATCH - { -1, 0, BAR_ALIGN_LEFT, width_stbutton, draw_stbutton, click_stbutton, "statusbutton" }, + { -1, 0, BAR_ALIGN_LEFT, width_stbutton, draw_stbutton, click_stbutton, "statusbutton" }, #endif // BAR_STATUSBUTTON_PATCH #if BAR_POWERLINE_TAGS_PATCH - { 0, 0, BAR_ALIGN_LEFT, width_pwrl_tags, draw_pwrl_tags, click_pwrl_tags, "powerline_tags" }, + { 0, 0, BAR_ALIGN_LEFT, width_pwrl_tags, draw_pwrl_tags, click_pwrl_tags, "powerline_tags" }, #endif // BAR_POWERLINE_TAGS_PATCH #if BAR_TAGS_PATCH - { -1, 0, BAR_ALIGN_LEFT, width_tags, draw_tags, click_tags, "tags" }, + { -1, 0, BAR_ALIGN_LEFT, width_tags, draw_tags, click_tags, "tags" }, #endif // BAR_TAGS_PATCH #if BAR_TAGGRID_PATCH - { -1, 0, BAR_ALIGN_LEFT, width_taggrid, draw_taggrid, click_taggrid, "taggrid" }, + { -1, 0, BAR_ALIGN_LEFT, width_taggrid, draw_taggrid, click_taggrid, "taggrid" }, #endif // BAR_TAGGRID_PATCH #if BAR_SYSTRAY_PATCH - { 0, 0, BAR_ALIGN_RIGHT, width_systray, draw_systray, click_systray, "systray" }, + { 0, 0, BAR_ALIGN_RIGHT, width_systray, draw_systray, click_systray, "systray" }, #endif // BAR_SYSTRAY_PATCH #if BAR_LTSYMBOL_PATCH - { -1, 0, BAR_ALIGN_LEFT, width_ltsymbol, draw_ltsymbol, click_ltsymbol, "layout" }, + { -1, 0, BAR_ALIGN_LEFT, width_ltsymbol, draw_ltsymbol, click_ltsymbol, "layout" }, #endif // BAR_LTSYMBOL_PATCH #if BAR_STATUSCOLORS_PATCH && BAR_STATUSCMD_PATCH - { 'A', 0, BAR_ALIGN_RIGHT, width_statuscolors, draw_statuscolors, click_statuscmd, "statuscolors" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_statuscolors, draw_statuscolors, click_statuscmd, "statuscolors" }, #elif BAR_STATUSCOLORS_PATCH - { 'A', 0, BAR_ALIGN_RIGHT, width_statuscolors, draw_statuscolors, click_statuscolors, "statuscolors" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_statuscolors, draw_statuscolors, click_statuscolors, "statuscolors" }, #elif BAR_STATUS2D_PATCH && BAR_STATUSCMD_PATCH - { 'A', 0, BAR_ALIGN_RIGHT, width_status2d, draw_status2d, click_statuscmd, "status2d" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_status2d, draw_status2d, click_statuscmd, "status2d" }, #elif BAR_STATUS2D_PATCH - { 'A', 0, BAR_ALIGN_RIGHT, width_status2d, draw_status2d, click_status2d, "status2d" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_status2d, draw_status2d, click_status2d, "status2d" }, #elif BAR_POWERLINE_STATUS_PATCH - { 0, 0, BAR_ALIGN_RIGHT, width_pwrl_status, draw_pwrl_status, click_pwrl_status, "powerline_status" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_pwrl_status, draw_pwrl_status, click_pwrl_status, "powerline_status" }, #elif BAR_STATUS_PATCH && BAR_STATUSCMD_PATCH - { 0, 0, BAR_ALIGN_RIGHT, width_status, draw_status, click_statuscmd, "status" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_status, draw_status, click_statuscmd, "status" }, #elif BAR_STATUS_PATCH - { 'A', 0, BAR_ALIGN_RIGHT, width_status, draw_status, click_status, "status" }, + { statusmon, 0, BAR_ALIGN_RIGHT, width_status, draw_status, click_status, "status" }, #endif // BAR_STATUS2D_PATCH | BAR_STATUSCMD_PATCH #if XKB_PATCH - { 0, 0, BAR_ALIGN_RIGHT, width_xkb, draw_xkb, click_xkb, "xkb" }, + { 0, 0, BAR_ALIGN_RIGHT, width_xkb, draw_xkb, click_xkb, "xkb" }, #endif // XKB_PATCH #if BAR_FLEXWINTITLE_PATCH - { -1, 0, BAR_ALIGN_NONE, width_flexwintitle, draw_flexwintitle, click_flexwintitle, "flexwintitle" }, + { -1, 0, BAR_ALIGN_NONE, width_flexwintitle, draw_flexwintitle, click_flexwintitle, "flexwintitle" }, #elif BAR_TABGROUPS_PATCH - { -1, 0, BAR_ALIGN_NONE, width_bartabgroups, draw_bartabgroups, click_bartabgroups, "bartabgroups" }, + { -1, 0, BAR_ALIGN_NONE, width_bartabgroups, draw_bartabgroups, click_bartabgroups, "bartabgroups" }, #elif BAR_AWESOMEBAR_PATCH - { -1, 0, BAR_ALIGN_NONE, width_awesomebar, draw_awesomebar, click_awesomebar, "awesomebar" }, + { -1, 0, BAR_ALIGN_NONE, width_awesomebar, draw_awesomebar, click_awesomebar, "awesomebar" }, #elif BAR_FANCYBAR_PATCH - { -1, 0, BAR_ALIGN_NONE, width_fancybar, draw_fancybar, click_fancybar, "fancybar" }, + { -1, 0, BAR_ALIGN_NONE, width_fancybar, draw_fancybar, click_fancybar, "fancybar" }, #elif BAR_WINTITLE_PATCH - { -1, 0, BAR_ALIGN_NONE, width_wintitle, draw_wintitle, click_wintitle, "wintitle" }, + { -1, 0, BAR_ALIGN_NONE, width_wintitle, draw_wintitle, click_wintitle, "wintitle" }, #endif // BAR_TABGROUPS_PATCH | BAR_AWESOMEBAR_PATCH | BAR_FANCYBAR_PATCH | BAR_WINTITLE_PATCH #if BAR_EXTRASTATUS_PATCH #if BAR_STATUSCOLORS_PATCH && BAR_STATUSCMD_PATCH - { 'A', 1, BAR_ALIGN_CENTER, width_statuscolors_es, draw_statuscolors_es, click_statuscmd_es, "statuscolors_es" }, + { statusmon, 1, BAR_ALIGN_CENTER, width_statuscolors_es, draw_statuscolors_es, click_statuscmd_es, "statuscolors_es" }, #elif BAR_STATUSCOLORS_PATCH - { 'A', 1, BAR_ALIGN_CENTER, width_statuscolors_es, draw_statuscolors_es, click_statuscolors, "statuscolors_es" }, + { statusmon, 1, BAR_ALIGN_CENTER, width_statuscolors_es, draw_statuscolors_es, click_statuscolors, "statuscolors_es" }, #elif BAR_STATUS2D_PATCH && BAR_STATUSCMD_PATCH - { 'A', 1, BAR_ALIGN_CENTER, width_status2d_es, draw_status2d_es, click_statuscmd_es, "status2d_es" }, + { statusmon, 1, BAR_ALIGN_CENTER, width_status2d_es, draw_status2d_es, click_statuscmd_es, "status2d_es" }, #elif BAR_STATUS2D_PATCH - { 'A', 1, BAR_ALIGN_CENTER, width_status2d_es, draw_status2d_es, click_status2d, "status2d_es" }, + { statusmon, 1, BAR_ALIGN_CENTER, width_status2d_es, draw_status2d_es, click_status2d, "status2d_es" }, #elif BAR_POWERLINE_STATUS_PATCH - { 0, 1, BAR_ALIGN_RIGHT, width_pwrl_status_es, draw_pwrl_status_es, click_pwrl_status, "powerline_status" }, + { statusmon, 1, BAR_ALIGN_RIGHT, width_pwrl_status_es, draw_pwrl_status_es, click_pwrl_status, "powerline_status" }, #elif BAR_STATUSCMD_PATCH && BAR_STATUS_PATCH - { 'A', 1, BAR_ALIGN_CENTER, width_status_es, draw_status_es, click_statuscmd_es, "status_es" }, + { statusmon, 1, BAR_ALIGN_CENTER, width_status_es, draw_status_es, click_statuscmd_es, "status_es" }, #elif BAR_STATUS_PATCH - { 'A', 1, BAR_ALIGN_CENTER, width_status_es, draw_status_es, click_status, "status_es" }, + { statusmon, 1, BAR_ALIGN_CENTER, width_status_es, draw_status_es, click_status, "status_es" }, #endif // BAR_STATUS2D_PATCH | BAR_STATUSCMD_PATCH #endif // BAR_EXTRASTATUS_PATCH #if BAR_FLEXWINTITLE_PATCH #if BAR_WINTITLE_HIDDEN_PATCH - { -1, 1, BAR_ALIGN_RIGHT_RIGHT, width_wintitle_hidden, draw_wintitle_hidden, click_wintitle_hidden, "wintitle_hidden" }, + { -1, 1, BAR_ALIGN_RIGHT_RIGHT, width_wintitle_hidden, draw_wintitle_hidden, click_wintitle_hidden, "wintitle_hidden" }, #endif #if BAR_WINTITLE_FLOATING_PATCH - { -1, 1, BAR_ALIGN_LEFT, width_wintitle_floating, draw_wintitle_floating, click_wintitle_floating, "wintitle_floating" }, + { -1, 1, BAR_ALIGN_LEFT, width_wintitle_floating, draw_wintitle_floating, click_wintitle_floating, "wintitle_floating" }, #endif // BAR_WINTITLE_FLOATING_PATCH #endif // BAR_FLEXWINTITLE_PATCH }; diff --git a/dwm.c b/dwm.c index 0c63ca7..2bd28e6 100644 --- a/dwm.c +++ b/dwm.c @@ -2750,15 +2750,10 @@ quit(const Arg *arg) XQueryTree(dpy, root, junk, junk, &junk, &n); - #if COOL_AUTOSTART_PATCH - if (n - autostart_len <= quit_empty_window_count) - #else if (n <= quit_empty_window_count) - #endif // COOL_AUTOSTART_PATCH { #if RESTARTSIG_PATCH - if (arg->i) - restart = 1; + restart = arg->i; #endif // RESTARTSIG_PATCH running = 0; } @@ -2766,17 +2761,16 @@ quit(const Arg *arg) printf("[dwm] not exiting (n=%d)\n", n); free(junk); - #else + #else // !ONLYQUITONEMPTY_PATCH #if RESTARTSIG_PATCH - if (arg->i) - restart = 1; + restart = arg->i; #endif // RESTARTSIG_PATCH running = 0; #endif // ONLYQUITONEMPTY_PATCH #if COOL_AUTOSTART_PATCH /* kill child processes */ - for (i = 0; i < autostart_len; i++) { + for (i = 0; i < autostart_len && !running; i++) { if (0 < autostart_pids[i]) { kill(autostart_pids[i], SIGTERM); waitpid(autostart_pids[i], NULL, 0); @@ -2843,8 +2837,8 @@ resizeclient(Client *c, int x, int y, int w, int h) #endif // FAKEFULLSCREEN_CLIENT_PATCH && !c->isfloating && c->mon->lt[c->mon->sellt]->arrange) { - wc.width += c->bw * 2; - wc.height += c->bw * 2; + c->w = wc.width += c->bw * 2; + c->h = wc.height += c->bw * 2; wc.border_width = 0; } #endif // NOBORDER_PATCH diff --git a/patch/bar_dwmblocks.c b/patch/bar_dwmblocks.c index 25268c5..fe7880b 100644 --- a/patch/bar_dwmblocks.c +++ b/patch/bar_dwmblocks.c @@ -18,7 +18,7 @@ getstatusbarpid() return statuspid; } } - if (!(fp = popen("pidof -s "STATUSBAR, "r"))) + if (!(fp = popen("pgrep -o "STATUSBAR, "r"))) return -1; fgets(buf, sizeof(buf), fp); pclose(fp); diff --git a/patch/focusadjacenttag.c b/patch/focusadjacenttag.c index 1665c18..85d9d74 100644 --- a/patch/focusadjacenttag.c +++ b/patch/focusadjacenttag.c @@ -63,7 +63,8 @@ viewtoright(const Arg *arg) void tagandviewtoleft(const Arg *arg) { - if (__builtin_popcount(selmon->tagset[selmon->seltags] & TAGMASK) == 1 + if (selmon->sel != NULL + && __builtin_popcount(selmon->tagset[selmon->seltags] & TAGMASK) == 1 && selmon->tagset[selmon->seltags] > 1) { selmon->sel->tags >>= 1; selmon->seltags ^= 1; /* toggle sel tagset */ @@ -83,7 +84,8 @@ tagandviewtoleft(const Arg *arg) void tagandviewtoright(const Arg *arg) { - if (__builtin_popcount(selmon->tagset[selmon->seltags] & TAGMASK) == 1 + if (selmon->sel != NULL + && __builtin_popcount(selmon->tagset[selmon->seltags] & TAGMASK) == 1 && selmon->tagset[selmon->seltags] & (TAGMASK >> 1)) { selmon->sel->tags <<= 1; selmon->seltags ^= 1; /* toggle sel tagset */ diff --git a/patches.def.h b/patches.def.h index 93422d7..1a16b2b 100644 --- a/patches.def.h +++ b/patches.def.h @@ -91,6 +91,10 @@ #define BAR_PANGO_PATCH 0 +#define BAR_STATICSTATUS_PATCH 0 + +#define BAR_STATUSALLMONS_PATCH 0 + #define BAR_STATUSCOLORS_PATCH 0 #define BAR_STATUSPADDING_PATCH 0