Commit Graph

1801 Commits

Author SHA1 Message Date
4bbe67604c Move barrier to tag 9 
Signed-off-by: Przemek Grondek <przemek@grondek.pl>
2023-08-06 14:14:53 +02:00
da49fa490f Update altbar spawnbar
Signed-off-by: Przemek Grondek <przemek@grondek.pl>
2023-08-06 01:31:58 +02:00
e463fe2a13 Add rule for smile
Signed-off-by: Przemek Grondek <przemek@grondek.pl>
2023-08-06 01:30:45 +02:00
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
Przemek Grondek
adda93ff82 Add key shortcut for emoji picker 2023-08-04 09:19:58 +02:00
Przemek Grondek
b4dc856afb Probably fix firefox PiP floating window 2023-07-29 11:58:34 +02:00
Przemek Grondek
9091f0c403 Update hotkeys for flameshot 2023-07-29 10:24:52 +02:00
Przemek Grondek
2ff154d1a3 Fix borders for scratchpad 2023-07-29 10:20:20 +02:00
Przemek Grondek
ca3cf62435 Fix gaps on stack on tile layout 2023-07-29 10:06:01 +02:00
Przemek Grondek
995615d95e Update shortcuts 2023-07-29 09:58:56 +02:00
Przemek Grondek
f916445cac Add brightness control 2023-07-29 09:54:33 +02:00
Przemek Grondek
5cdd3b25d6 Update borders
Fix semi transparent borders
Change active window border color
2023-07-29 01:45:41 +02:00
Przemek Grondek
a5b1ae0e02 Add another steam rule 2023-07-29 01:06:26 +02:00
5cf38785d5 Fix fakefullscreen 2023-06-14 20:39:38 +02:00
8cd6ccf437 Fix steam and firefox rules 2023-05-14 11:10:59 +02:00
5cc0f6e86a Add different tags icons for Monitor 0 2023-03-20 12:39:49 +01:00
e3173ac946 Revert "Hide vacant tags"
This reverts commit b774677b
2023-03-20 12:37:04 +01:00
e240a2a8ad Tags per monitor 2023-03-20 12:16:58 +01:00
e7d5655e90 Changes in configurations
Changes in tag icons
 Added more rules for tags
2023-03-20 11:53:31 +01:00
f9038f2d95 Changes in configurations
Added Font Awesome
 Added rules for applications
 Added icons for tags
2023-03-20 02:40:36 +01:00
ec2b390354 Revert "Configure Three Column Layout"
This reverts commit a44e4648
2023-03-19 21:32:32 +01:00
c644af303e Revert "Three Column Layout"
This reverts commit 02dfb51d
2023-03-19 21:30:30 +01:00
e46e3b5016 Configure cyclelayout 2023-03-19 21:29:16 +01: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
73a7246f2f Add config for ceneredmaster layout 2023-03-19 21:16:26 +01:00
021f5f6d9b centeredmaster layout
Jérôme Andrieux - jerome@gcu.info
    Laslo Hunhold - dev@frign.de (6.1, git ports)
2023-03-19 21:16:09 +01:00
a44e464824 Configure Three Column Layout 2023-03-19 17:26:46 +01:00
Chris Truett
02dfb51d07 Three Column Layout 2023-03-19 17:26:34 +01:00
Przemek Grondek
f8656ec0f2 Don't count windows that are on all tags when showing icons for tags 2023-03-05 02:46:55 +01:00
Przemek Grondek
dd46203749 Make scratchpad like a quake console 2023-02-17 01:17:54 +01:00
Przemek Grondek
175f76256f Add scratchpad for terminal 2023-02-17 00:58:21 +01:00
20edd67116 Fix shortcut for picom 2023-01-17 23:38:04 +01:00
Przemek Grondek
ea0611f930 Add Super+Launch1 to reload picom 2023-01-17 02:59:04 +01:00
Przemek Grondek
2d40900619 Fix 6.4 for ubuntu 22.04 2022-10-14 01:00:30 +02:00
Przemek Grondek
5f8d048afd Merge tag '6.4' 2022-10-14 00:41:27 +02:00
Przemek Grondek
2e59cd6c58 Update config to 6.3 2022-10-14 00:36:12 +02:00
Przemek Grondek
94c93ee532 Merge tag '6.3' 2022-10-14 00:34:56 +02:00
Hiltjo Posthuma
50ad171eea bump version to 6.4 2022-10-04 19:35:13 +02:00
Hiltjo Posthuma
970f376973 remove workaround for a crash with color emojis on some systems, now fixed in libXft 2.3.5
https://gitlab.freedesktop.org/xorg/lib/libxft/-/blob/libXft-2.3.5/NEWS
2022-09-17 15:32:41 +02:00
9b342a6bcb Fix picom dwmtray 2022-09-03 18:34:56 +02:00
bba5360831 Remove border px 2022-09-03 15:36:29 +02:00
ed022553b9 Add editor config 2022-09-03 15:36:13 +02:00
57b595556c Small changes in color 2022-09-03 11:52:50 +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
Stein
5799dd1fca Remove blw variable in favour of calculating the value when needed
The purpose and reasoning behind the bar layout width (blw) variable
in dwm the way it is today may not be immediately obvious.

The use of the variable makes more sense when looking at commit
2ce37bc from 2009 where blw was initialised in the setup function
and it represented the maximum of all available layout symbols.

	for(blw = i = 0; LENGTH(layouts) > 1 && i < LENGTH(layouts); i++) {
		w = TEXTW(layouts[i].symbol);
		blw = MAX(blw, w);
	}

As such the layout symbol back then was fixed in size and both drawbar
and buttonpress depended on this variable.

The the way the blw variable is set today in drawbar means that it
merely caches the size of the layout symbol for the last bar drawn.

While unlikely to happen in practice it is possible that the last bar
drawn is not that of the currently selected monitor, which can result
in misaligned button clicks if there is a difference in layout symbol
width between monitors.
2022-08-17 13:33:57 +02:00
Stein
44adafe006 Make floating windows spawn within the monitor's window area
This is a follow-up on this thread:
https://lists.suckless.org/hackers/2208/18462.html

The orginal code had constraints such that if a window's starting
attributes (position and size) were to place the window outside of
the edges of the monitor, then the window would be moved into view
at the closest monitor edge.

There was an exception to this where if a top bar is used then the
window should not obscure the bar if present, which meant to place
the window within the window area instead.

The proposed change here makes it the general rule that floating
windows should spawn within the window area rather than within the
monitor area. This makes it simple and consistent with no
exceptions and it makes the intention of the code clear.

This has the benefit of making the behaviour consistent regardless
of whether the user is using a top bar or a bottom bar.

Additionally this will have an effect on patches that modify the
size of the window area. For example if the insets patch is used to
reserve space on the left hand side of the monitor for a dock or a
vertical bar then new floating clients will not obscure that area.
2022-08-12 09:02:34 +02:00
Stein
a859676ead Simplify client y-offset correction
The reasoning behind the original line may be lost to time as
it does not make much sense checking the position on the x-axis
to determine how to position the client on the y-axis.

In the context of multi-monitor setups the monitor y position
(m->my) may be greater than 0 (say 500), in which case the window
could be placed out of view if:
   - the window attributes have a 0 value for the y position and
   - we end up using the y position of bh (e.g. 22)

If the aim is to avoid a new floating client covering the bar then
restricting y position to be at least that of the window area
(m->wy) should cover the two cases of using a top bar and using a
bottom bar.
2022-08-10 15:31:21 +02:00