Commit Graph

158 Commits

Author SHA1 Message Date
mihirlad55
fd0413e628 [PATCH] Add support for managing external status bars
This patch allows dwm to manage other status bars such as
polybar/lemonbar without them needing to set override-redirect. For
all intents and purposes, DWM treats this bar as if it were its own
and as a result helps the status bar and DWM live in harmony.

This has a few advantages
* The bar does not block fullscreen windows
* DWM makes room for the status bar, so windows do not overlap the bar
* The bar can be hidden/killed and DWM will not keep an unsightly gap
  where the bar was
* DWM receives EnterNotify events when your cursor enters the bar

To use another status bar, set usealtbar to 1 in your config.h and set
altbarclass to the class name (can be found using xprop) to the class
name of your status bar. Also make sure that if your status bar will
be displayed on top, topbar is set to 1 in your config, and if it will
be displayed on bottom, topbar is set to 0. This patch does not
support bars that are not docked at the top or at the bottom of your
monitor.

This verison of the patch fixes handling of polybar's tray.

The patch is developed at https://github.com/mihirlad55/dwm-anybar

Signed-off-by: Przemek Grondek <przemek@grondek.pl>
2023-08-05 11:17:12 +02:00
7c20857e9b Revert "Add system tray"
This reverts commit 44ba6327
2023-08-04 22:51:22 +02:00
mihirlad55
4a230d362a [PATCH] Add IPC support through a unix socket
This patch currently supports the following requests:
* Run custom commands with arguments (similar to key bind functions)
* Get monitor properties
* Get all available layouts
* Get available tags
* Get client properties
* Subscribe to tag change, client focus change, and layout change,
  monitor focus change, focused title change, and client state change
  events

This patch includes a dwm-msg cli program that supports all of the
above requests for easy integration into shell scripts.

The messages are sent in a JSON format to promote integration to
increase scriptability in languages like Python/JavaScript.

The patch requires YAJL for JSON parsing and a system with epoll
support. Portability is planned to be increased in the future.

This patch is best applied after all other patches to avoid merge
conflicts.

For more info on the IPC implementation and how to send/receive
messages, documentation can be found at
https://github.com/mihirlad55/dwm-ipc
2023-08-04 21:33:07 +02:00
Christopher Drelich
bd79444b3c [PATCH] Function to cycle through available layouts.
MOD-CTRL-, and MOD-CTRL-.
cycle backwards and forwards through available layouts.
Probably only useful if you have a lot of additional layouts.
The NULL, NULL layout should always be the last layout in your list,
in order to guarantee consistent behavior.
2023-03-19 21:18:30 +01:00
Przemek Grondek
175f76256f Add scratchpad for terminal 2023-02-17 00:58:21 +01:00
Przemek Grondek
5f8d048afd Merge tag '6.4' 2022-10-14 00:41:27 +02:00
Przemek Grondek
94c93ee532 Merge tag '6.3' 2022-10-14 00:34:56 +02:00
Stein
c2b748e793 Remove dmenumon variable
Reasoning: Since 2011 dmenu has been capable of working out which
monitor currently has focus in a Xinerama setup, making the use
of the -m flag more or less redundant.

This is easily demonstrated by using dmenu in any other window
manager.

There used to be a nodmenu patch that provided these changes:
https://git.suckless.org/sites/commit/ed68e3629de4ef2ca2d3f8893a79fb570b4c0cbc.html

but this was removed on the basis that it was very easy to work
out and apply manually if needed.

The proposal here is to remove this dependency from dwm. The
mechanism of the dmenumon variable could be provided via a patch
if need be.

The edge case scenario that dmenu does not handle on its own, and
the effect of removing this mechanism, is that if the user trigger
focusmon via keybindings to change focus to another monitor that
has no clients, then dmenu will open on the monitor containing the
window with input focus (or the monitor with the mouse cursor if
no windows have input focus).

If this edge case is important to cover then this can be addressed
by setting input focus to selmon->barwin in the focus function if
there is no client to give focus to (rather than giving focus back
to the root window).
2022-08-28 11:39:43 +02:00
NRK
84d7322113 config.def.h: make keys and buttons const
pretty much all other variables are declared as const when they're not
modified.
2022-08-19 11:47:22 +02:00
Francisco Tapia
50514a2e9a [PATCH] Selective fake full screen 2022-01-10 22:09:30 +01:00
Sermak
75a4d98edc [PATCH] Simulate toggleable fullscreen mode 2021-11-13 01:15:37 +01:00
Soenke Lambert
43d9dc4a93 [PATCH] Fullscreen current window with [Alt]+[Shift]+[f]
This actually fullscreens a window, instead of just hiding the statusbar
and applying the monocle layout.
2021-09-27 22:37:32 +02:00
Quentin Rameau
138b405f0c Add a configuration option for fullscreen locking
Some people are annoyed to have this new behaviour forced for some
application which use fake fullscreen.
2021-07-14 11:26:37 +02:00
24c27ad415 Add ignoretransient to default config 2021-07-07 01:52:21 +02:00
pgrondek
ed637dac70 Add window swallowing
https://dwm.suckless.org/patches/swallow/
2020-06-08 20:30:45 +02:00
pgrondek
2ded22419e Revert "Revert "Add columns layout""
This reverts commit 03d28aa963.
2020-05-29 23:24:11 +02:00
pgrondek
03d28aa963 Revert "Add columns layout"
This reverts commit acdf610fda.
2020-05-29 12:20:24 +02:00
pgrondek
acdf610fda Add columns layout
https://dwm.suckless.org/patches/columns/
2020-05-29 11:24:01 +02:00
pgrondek
dbe98ebfe0 Add fullgaps 2020-05-29 11:02:22 +02:00
pgrondek
44ba63274f Add system tray
Original author: Jan Christoph Ebersbach <jceb@e-jc.de>, inspired by http://code.google.com/p/dwm-plus
 URL: http://dwm.suckless.org/patches/systray
 dwm 6.2 port by Igor Gevka <igor.gevka@gmail.com>
2020-05-29 00:48:46 +02:00
Hiltjo Posthuma
c3a2e016bb config.def.h: ClkTagBar missing from comment
by Christopher Drelich <cd@cdrakka.com>

Patch was mangled on the ML, also adjusted the order to be the same as
the enum in dwm.c
2018-05-25 06:56:36 +02:00
Markus Teich
2952b68db8 cleanup
- unify multi-line expression alignment style.
- unify multi-line function call alignment style.
- simplify client moving on monitor count decrease.
- clarify comment for focusin().
- remove old confusing comment about input focus fix in focusmon(). The
  explanation is already in the old commit message, so no need to keep it in the
  code.
- remove old comment describing even older state of the code in focus().
- unify comment style.
- break up some long lines.
- fix some typos and grammar.
2017-03-28 20:23:28 +02:00
Anselm R Garbe
975c898376 applied Markus' decouple color-scheme patch 2016-12-05 10:01:33 +01:00
Hiltjo Posthuma
56a31dc4a7 config.def.h: style improvement, use color Scheme enum 2016-06-28 18:04:56 +02:00
Markus Teich
7af4d439bd import new drw from libsl and minor fixes.
- better scaling for occupied tag squares.
- draw statusline first to omitt some complicated calculations.
2016-06-26 13:52:36 +02:00
Hiltjo Posthuma
3c91283ede unboolification 2015-11-08 22:48:43 +01:00
Hiltjo Posthuma
43e82adf0d separate program-specific c99 bool and X11
True, False are X11-specific (int), make sure to use c99 stdbool for
program-specific things.
2015-11-08 20:35:25 +01:00
Hiltjo Posthuma
7e1182ce55 config.h: use common default font, pass Xft font name to dmenu
dmenu uses Xft now (soon to be released).
2015-10-20 23:10:54 +02:00
Eric Pruitt
14343e69cc Add Xft and follback-fonts support to graphics lib 2015-03-13 21:44:22 +01:00
Anselm R Garbe
6af273771c applied improved version of Martti Kühne's dmenu/multi monitor approach from dwm, no dmenuspawn required 2013-08-02 22:40:20 +02:00
Anselm R Garbe
4fb31e0896 do not take our font declaration as default for st 2013-07-20 09:08:46 +02:00
Anselm R Garbe
7edc596311 include font argument for st by default 2013-05-02 17:31:22 +02:00
Anselm R Garbe
656882d76f use st as default terminal from now on 2013-05-01 15:41:44 +02:00
anselm@garbe.us
61fe833a06 reverting to plain X11 fonts in order to implement draw.c default 2012-11-18 10:56:54 +01:00
anselm@garbe.us
fd3c19bd55 incorporating Xft instead of cairo, cairo provides far too many options 2012-11-02 12:17:50 +01:00
anselm@garbe.us
c4b6ac812e added 20h's clarification 2012-01-22 20:23:49 +01:00
Connor Lane Smith
f099d2d5b5 new default colour scheme 2011-11-06 20:36:23 +01:00
Connor Lane Smith
b1a28ae1da apply nmaster patch 2011-10-25 20:40:46 +01:00
anselm@garbe.us
c6180949a7 applied Sylvain Laurent's EWMH fullscreen state patch, simplified his patch a bit 2010-05-27 08:19:08 +01:00
Anselm R Garbe
c3feffa1e2 applied Tony Lainson's config.def.h patch 2009-09-15 13:50:41 +01:00
Anselm R Garbe
758b100d12 extended rule to apply monitors if set up accordingly 2009-07-09 21:52:17 +01:00
Anselm R Garbe
565050ac51 removed monsyms, useless 2009-07-09 11:29:01 +01:00
Anselm R Garbe
5e408d8ff6 restricting number of mons by length of monsyms 2009-07-09 11:21:06 +01:00
Anselm R Garbe
1724f7fa43 introducing const where it might make some sense 2009-07-08 18:59:20 +01:00
Anselm R Garbe
a9e145fe6d changed focusmon/tagmon to work on prev/next instead (-1/+1), changed shortcuts to Mod1-, Mod1-. and Mod1-Shift-, Mod1-Shift-. 2009-07-02 20:37:26 +01:00
Anselm R Garbe
ca376970db more sensible 2009-07-02 16:48:54 +01:00
Anselm R Garbe
8352f2b3a8 hmm, can't decide on the default monitor symbol set 2009-07-02 16:47:00 +01:00
Anselm R Garbe
d4bfde79f3 update 2009-07-02 16:44:57 +01:00
Anselm R Garbe
7ac8c1d4e1 introduced monitor symbols 2009-07-02 16:41:52 +01:00
Anselm R Garbe
1d729384d1 several bugfixes 2009-07-01 19:15:20 +01:00