Commit Graph

312 Commits (master)

Author SHA1 Message Date
bakkeby c6c2f0109f noborder: the recorded height and width of the client should most likely not be changed when noborder is in effect 4 years ago
bakkeby f9a3c2f88c savefloats: disable restoring float position when using movemouse and resizemouse functions for a more intuitive behaviour 4 years ago
bakkeby 81ae102bb9 savefloats: set the _IS_FLOATING property also when restoring float position 4 years ago
bakkeby 21fd715afa swallow / arrange mismatch: swallow needs XMapWindow for the window being called beforehand, whereas arrange needs it called afterwards 4 years ago
bakkeby 016cdf3857 for new clients trigger arrange before XMapWindow to avoid visual glitches 4 years ago
bakkeby 56c81ddbfa warp: dragmfact + dragcfact compatibility
These set of changes introduce:
   a) a flag to ignore warp from happening while dragmfact or
      dragcfact is being used and
   b) a flag to force warp when killclient or showhideclient
      is used, to make for a more intuitive experience

ref. https://github.com/bakkeby/patches/issues/11
4 years ago
bakkeby 21bafa5e69 on_empty_keys: global isempty rather than per-monitor 4 years ago
bakkeby 6742783b87 center: minor nitpick for transient windows 4 years ago
bakkeby 37c212ad55 Adding on_empty_keys patch ref. #51 4 years ago
bakkeby fbacf17346 center: center windows by default if they are placed in the top right corner, ref. #52 4 years ago
bakkeby 795fcc3b51 scratchpads: when the scratchpad patch is added, the tagmask is altered, so to get a window onto all tags you have to do ~SPTAGSMASK instead of ~0 as otherwise it will interfere with the scratchpads, ref. #53 4 years ago
bakkeby 8726ae0aa9 Adding _IS_FLOATING xproperty patch for floating windows ref. #50 4 years ago
B4rc1 efeb5fcbf4 fixed warp patch for local monitor 4 years ago
bakkeby 00320fb842 Adding nomodbuttons patch 4 years ago
bakkeby 8aa21b0311 XKeycodeToKeysym --> XGetKeyboardMapping (XKeycodeToKeysym is allegedly deprecated) 4 years ago
bakkeby b8dc848918 Adding fakefullscreen client rule 4 years ago
bakkeby 01464c584e ignoreconfigurenotifyrequests --> ignoreconfigurerequests 4 years ago
bakkeby a7da48ca3d Add logic to ignore ConfigureNotify requests while a window is being moved or resized 4 years ago
bakkeby 32f9a73c0d scratchtags: allow moving / resizing scratchtag window to another monitor + minor comment 4 years ago
bakkeby fada5790a2 fakefullscreenclient: setfullscreen logic overhaul 4 years ago
bakkeby 819d06c5c9 swallow: arrange monitor if window is not swallowed 4 years ago
bakkeby 7b477bc7db fakefullscreen: fullscreen --> fake fullscreen can make the tiled window display on top of floating window 4 years ago
bakkeby c3e5910080 swallow: no good reason to call arrange if a client window is being swallowed 4 years ago
bakkeby dc9e57a6b6 swallow: upgrading to latest version with OpenBSD support 4 years ago
bakkeby 4a35cd2704 fakefullscreen: do not interfere with client message 4 years ago
bakkeby 104c9909b5 swallow: upgrading patch + fixing glitches 4 years ago
bakkeby 95c3014bd5 fakefullscreen: prevent focus from drifting away from client when going from fullscreen to fake fullscreen 4 years ago
bakkeby d91db5cd65 anybar: adding experimental support for having both anybar + dwm bar(s) in play 4 years ago
bakkeby 8994f375e8 anybar: initial commit 4 years ago
bakkeby f4a6866e8c barmodules: skip if widthfunc is NULL 4 years ago
bakkeby ed0e503a6b barmodules: skip if widthfunc is NULL 4 years ago
bakkeby c257e2e390 fakefullscreen: prevent focus from drifting away from client when going from fullscreen to fake fullscreen 4 years ago
bakkeby ff9811f73d Just some minor changes adding bar border patch ref. #41 4 years ago
bakkeby 4379517c25 Adding IPC v1.5.5 patch 4 years ago
bakkeby 260bd11a53 systray may not always exist 4 years ago
bakkeby 018721ca76 systray may not exist when a clientmessage is received, resulting in dwm crash 4 years ago
bakkeby f4f5ecab75 Scratchpads improvement (multi-monitor support) 4 years ago
bakkeby c14f40190e Assortment of fullscreen improvements 4 years ago
bakkeby 5f5dc7ab9c Assortment of fullscreen improvements (togglefullscreen / fakefullscreenclient / tagallmon / tagswapmon) 4 years ago
bakkeby dcf7b049ba Adding view same tag gives previous tag patch 4 years ago
bakkeby 1d19f4d309 Making warp preprocessor directive easier for flexipatch-finalizer to understand 4 years ago
bakkeby 0d743eddff flexwintitle: allow flexwintitle to control window borders 4 years ago
bakkeby b3d336322e Adding aspectresize patch 4 years ago
bakkeby e952cc9a81 Minor refactoring of warp and fullscreen patches, getting rid of MONOCLE_LAYOUT_POS setting 4 years ago
bakkeby f45acf8795 Added alttagsdecoration patch.
Unified tag icon handling while adding support for different icons per monitor.

In general LENGTH(tags) has been replaced with a NUMTAGS macro (defaulting to 9)
and the tags[] array has been replaced with a tagicons[][] array, access to which
is done through a single function tagicon.

This allows one central place where alternative tags, alttagsdecoration, or other
future tags logic is handled. This also gives a consistent display of tags
regardless of the module that presents tags.

Additionally the monitor index has been integrated into dwm for easier access.
4 years ago
bakkeby df57bdeb64 Identified and fixed a few more cross-compilation issues 4 years ago
bakkeby 939a407e25 Fixing wintitle and a few warning messages ref. #37 4 years ago
bakkeby 81f44b036c Simplified Pango integration by settling on common function signatures. 4 years ago
bakkeby eb782ae920 Added zoomfloating patch. Changed zoom and togglefloating functions to use c rather than selmon->sel. 4 years ago
bakkeby 91b6671981 Added zoomfloating patch. Changed zoom and togglefloating functions to use c rather than selmon->sel. 4 years ago
bakkeby 110cc7d240 Added logic to auto-hide bars if nothing is drawn on them (e.g. for standalone bars that only show certain clients) 4 years ago
bakkeby 81488b4862 Simplification of color configuration; settling on a set of color schemes that is shared between multiple patches (urgentborder, floatborder and titlecolor patches made non-optional) 4 years ago
bakkeby ef287c46cd losefullscreen: minor improvements to keep fullscreen while moving focus to another monitor 4 years ago
bakkeby a085c788e3 Adding experimental flexwintitle patch based on bartabgroups 4 years ago
bakkeby de47bd8839 Adding bartabgroups patch 4 years ago
bakkeby 10f4d513ec Adding decoration hints patch 4 years ago
bakkeby 14e148be2a Adding steam patch 4 years ago
bakkeby 1dd4ec5bc4 Adding insets patch 4 years ago
bakkeby e5ea493d32 systray: systray window may always not exist depending on configuration and number of monitors available, causing segfault in cleanup. Fixing double free on freeing fonts. 4 years ago
bakkeby dfe1c40563 Adding cool autostart patch 4 years ago
bakkeby 12527f00d9 zoomswap: renamed prevtiled back to findbefore as per original patch 4 years ago
bakkeby f87bd6c86e Fix for focustack not being able to focus past hidden windows.
Also focusstack +2/-2 allow hidden windows to be selected using
keyboard shortcuts in order to unhide them via showhideclient.

Ref.
https://www.reddit.com/r/suckless/comments/i1c66t/how_to_make_awesomebar_patch_more_keyboard_centric/
4 years ago
bakkeby d85dc0404f systray: add / override class hints for the systray clients (allows for compositors to exlude them from shadows) 4 years ago
bakkeby 55c9570681 Fix for monitor rules not applying for tag 1 specific rule 4 years ago
bakkeby b5165a1c8f barmodules: refactoring updatebarpos 4 years ago
bakkeby ff72f80029 barmodules: refactoring updatebarpos 4 years ago
bakkeby 023aa218e4 Adding powerline patch 4 years ago
bakkeby a7d1663571 Adding bar modules which splits the dwm bar into modules allowing for re-arrangement of the bar and easier integration for new features 4 years ago
bakkeby 6961418d63 Extrabar --> extrastatus 4 years ago
bakkeby 346d7f6b1d Making bars list into linked list 4 years ago
bakkeby 664484d572 Refinement 4 years ago
bakkeby aa70728d00 Adding BarWidthArg, BarDrawArg, BarClickArg to keep the method signatures static 4 years ago
bakkeby 903b32ac8b Major refactoring in preparation for bar modules 4 years ago
bakkeby 38c77b06f0 Fixing rawstext defined but not used warning 4 years ago
bakkeby 1d8aef2198 awesomebar: refactoring remainder logic, which seemed a bit off 4 years ago
bakkeby fbaa215a14 staticstatus + extrabar: Allow extrabar to be static on a monitor other than that of the main staticstatus monitor 4 years ago
bakkeby ccb275b984 Extrabar alignment, buttonclicks and other improvements 4 years ago
bakkeby ab488abc11 Extrabar compatibility improvements 4 years ago
bakkeby 5478f99c3b extrabar compatibility updates
+ only shows on a given monitor if staticstatus patch is enabled.
+ status2d support (although extrabar status is written on the right, not on the left)
+ now clears extrabar on other monitors in a multi-monitor setup
- breaks dwmblocks in terms of registred buttonpresses
- extrabar is not clickable
4 years ago
bakkeby 9fcb63164d center patch: adding options to center transient windows 4 years ago
bakkeby 8f06f9a2d5 switchtag improvements, making the restoring of tags optional and configurable 4 years ago
bakkeby a7763038fd switchtag improvements, making the restoring of tags optional and configurable 4 years ago
bakkeby 188f2f482f switchtag patch: do not switch tags if the tag is already shown, same with focusonnetactive patch 4 years ago
bakkeby 8120e0b858 Fixed a dwmblocks / statuscmd / systray compatibility issue where button clicks would be misaligned if systray pinning is used and systray is on another monitor 4 years ago
bakkeby 9e8d70788c Adding alternative activetagindicatorbar patch 4 years ago
bakkeby 8c07458f11 holdbar: toggle bar improvements 4 years ago
bakkeby c14a51524b Adding cursor icons for resizecorners, resizepoint, dragmfact and dragcfact 4 years ago
bakkeby 5a4c350b9c Updating sendmon_keepfocus to only keep focus if the client had focus 4 years ago
bakkeby 9574035849 Adding sendmon_keepfocus patch 4 years ago
bakkeby ce12e07163 Adding statusbutton patch ref. #33 4 years ago
bakkeby 04906b4ddf Adding resizepoint patch 4 years ago
bakkeby 9ae251791d floatpos: correction 4 years ago
bakkeby c3d368f193 Adding bar_height patch 4 years ago
bakkeby 6a683c729e Adding floatpos patch. 4 years ago
bakkeby 5e0a9c49f8 Adding sizehints patch 4 years ago
bakkeby cac3e7d2c9 Rule macro improvements + rule macro helper macros 4 years ago
bakkeby a7b226de41 Make EWMH windows float
Move updatewindowtype() functionality into applyrules(), and also make
following EWMH windows float: DIALOG, UTILITY, TOOLBAR, SPLASH.

This is taking the proposed patch to add window type to the rule matching
options for dwm, allowing dialog, utility, toolbar and splash windows
to be configured to float by default.

This patch is intended to be merged into the main dwm build.

In effect the intermediate EWMH_WINDOWS_FLOAT_PATCH has also been removed.
4 years ago
bakkeby f315188728 Autostart: Make autostart conform to XDG Base Directory specification (upgrade) 4 years ago
bakkeby 6f20203975 Added RULE macro to replace rules setup making the default config less of an abomination and making it simpler to include new rules based patches 4 years ago
bakkeby 8c4eaccf16 Adding pango patch (ref. #10)
Text from original patch:

Using pango markup for status text

Use a single font. Removed some code utf8 code from drw.
Created for pango 1.44. Older versions might not have getter
for font height, ascent + descent can be used instead.
All texts are rendered with pango but only status is with
markup. Increased stext size (in case a lot of markup is used).
MIN/MAX is already defined (didn't redefine them).
4 years ago
bakkeby e355c49833 noborder: The noborder patch had a bug in it such that if moving the window in floating layout then the window would continuously grow, adding the fix for that 4 years ago
bakkeby a5e74cd720 staticstatus: Adding note about systray pinning 4 years ago
bakkeby 164095db40 Adding staticstatus patch 4 years ago
bakkeby 622c4bc0d6 EWMH window float patch: Floating window x, y coordinates may be negative in a multi-monitor setup 4 years ago
bakkeby 6321b52a30 Renamed SCRATCHPAD_PATCH --> SCRATCHPADS_PATCH to match the naming of the suckless patches as the multiple scratchpads patch has its own location now 4 years ago
bakkeby bad53d2cc4 Upgrading Gaspar Vardanyan's scratchpad patch to the 20200510 version.
https://github.com/GasparVardanyan/dwm-scratchpad/blob/master/dwm-scratchpad-20200510-f09418b.diff
4 years ago
bakkeby af96d4c358 Adding keymodes patch 4 years ago
bakkeby 643ea4d84f Awesomebar: patch to prevent visual glitches from uneven tabs count 4 years ago
bakkeby 2c9ff7453a dwmblocks and status2d compatibility fix for barpadding patch 4 years ago
bakkeby 66a32a0e48 fancybar: renaming tw variable to ftw due to clash with upstream sw --> tw variable rename 4 years ago
bakkeby 8236f1940b dwmblocks and status2d buttonpress adjustments for awesomebar and statuspadding 4 years ago
bakkeby 2e30bddc16 Fixing status2d and statuscmd / dwmblocks compatibility issues.
Text width calculations when using status2d strings resulted in
statuscmd button placement calculations to be way off. Fixed by
introducing a separate function status2dtextlength to get an
approximate correct text width.
4 years ago
bakkeby 1bf50728a7 Awesomebar: dwm crashes on bar click with 0 clients
Clicking on the bar before any clients have been started results
in dwm crashing. This fix addresses that.
4 years ago
bakkeby e79aec52c2 Adding status2d patch 4 years ago
bakkeby df118dc046 Switchtag patch, lose switchtag feature for client if the client is moved to another tag 4 years ago
bakkeby 5e281dcd44 Adding (temporary?) EWMH_WINDOWS_FLOAT_PATCH 4 years ago
bakkeby 1a4b3632d1 Removing redundant lastbutton variable when both statuscmd and dwmblocks patches are enabled 4 years ago
bakkeby 91291ceb9f Removing redundant statuscmds logic when both statuscmd and dwmblocks patches are applied 4 years ago
bakkeby f028377c98 Adding dwmblocks patch 4 years ago
bakkeby 5911a9b7d7 Upgrade of the tagmonfixfs patch, allows e.g. fullscreen YouTube videos to be moved to an adjacent screen 4 years ago
bakkeby 14b7edd911 Expanded monitor rules patch to include nmaster, showbar and topbar options. 4 years ago
bakkeby 5848460fff Improved swallow and switchtag compatibility 4 years ago
bakkeby 7c4a0c347f Adding if conditions before freeing res_class and res_name in applyrules 4 years ago
bakkeby 1bed3b0093 drawbar: Don't shadow sw global
This jarred me a bit while reading the code, since "sw" usually refers
to the global screen geometry, but in drawbar() only it refers to
text-related geometry. Renaming it makes it more obvious that these are
not related.
4 years ago
bakkeby 2d8d5a0931 getatomprop: Add forward declaration
No functional changes, but for every other function we have a forward
declaration here. getatomprop should be no exception.
4 years ago
bakkeby 11b47dda99 setmfact: Unify bounds for compile-time and runtime mfact
There are two places that mfact can be set:

- In the mfact global, which is defined at compile time and passed
  into m->mfact during monitor setup. No bounds checks are performed,
  but the comment alongside it says that valid values are [0.05..0.95]:

      static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */

- By setmfact, which adjusts m->mfact at runtime. It also does some
  minimum and maximum bounds checks, allowing [0.1..0.9]. Values outside
  of that range are ignored, and mfact is not adjusted.

These different thresholds mean that one cannot setmfact 0.95 or 0.05,
despite the comment above that lists the legal range for mfact.

Clarify this by enforcing the same bounds in setmfact at runtime as
those listed for mfact at compile time.
4 years ago
bakkeby ec32a28380 [dwm][PATCH] statuscolors, fix status text width computation
This is an updated version of the statuscolors patch that fixes the
computation of the text width. The previous version of the patch
inculded all the byte codes that are used to select the color schemes
when computing the width, obaining a width that is larger than the real
width. This patch fixes that by adding up the widths of the individual
chunks, separated by the codes that select the color schemes.
4 years ago
bakkeby f9a001dee7 [dwm][PATCH] Multiple scratchpads
This patch enables multiple scratchpads, each with one assigned window.
This enables the same scratchpad workflow that you have in i3.

Scratchpads are implemented as special tags, whose mask does not
apply to new spawned windows. To assign a window to a scratchpad you
have to set up a rule, as you do with regular tags.

Windows tagged with scratchpad tags can be set floating or not in the
rules array. Most users would probably want them floating (i3 style),
but having them tiled does also perfectly work and might fit better the
DWM approach. In case they are set floating, the patch moves them to the
center of the screen whenever the are shown. The patch can easily be
modified to make this last feature configurable in the rules array (see
the center patch).

The togglescratch function, borrowed from the previous scratchpad patch
and slightly modified, can be used to spawn a registered scratchpad
process or toggle its view. This function looks for a window tagged on
the selected scratchpad. If it is found its view is toggled. If it is
not found the corresponding registered command is spawned. The
config.def.h shows three examples of its use to spawn a terminal in the
first scratchpad tag, a second terminal running ranger on the second
scratchpad tag and the keepassxc application to manage passwords on a
third scratchpad tag.

If you prefer to spawn your scratchpad applications from the startup
script, you might opt for binding keys to toggleview instead, as
scratchpads are just special tags (you may even extend the TAGKEYS macro
to generalize the key bindings).
4 years ago
bakkeby 525dc0d107 Adding statuscmd patch ref. #23 4 years ago
bakkeby c5e257d442 Simplifying the lose fullscreen patch 4 years ago
bakkeby 674c00594b Proposed fix for fake fullscreen clients ref. #15 4 years ago
bakkeby a560b9cb53 Adding rounded corners patch 4 years ago
bakkeby e9e32d28c7 Adding revamped dragmfact patch ref. #19 4 years ago
bakkeby 7bc3cf765e Adding stacker patch as requested ref. #17 4 years ago
bakkeby 39df3ca2ec Replacing SchemeSel background for systray with that of SchemeNorm 4 years ago
bakkeby 873b856428 FAKEFULLSCREEN_PATCH takes precedence over the FAKEFULLSCREEN_CLIENT_PATCH, ref. #13 4 years ago
bakkeby e75decf7de Pertag togglegaps change ref. issue #11 4 years ago
bakkeby 4b45c6071f Adding vtcolors patch 4 years ago
bakkeby 69a7b2ad6b Fixing overlapping window name area when using barpadding patch ref. #9 4 years ago
bakkeby 4ddfdab30e Adding fsignal patch and moved dwmc signal settings to config.def.h 4 years ago
bakkeby 8f53248a0f [dwm][patch] swapfocus just focus next client after tag or toggletag 4 years ago
bakkeby 0da53e1e9b Correcting minor compilation errors in relation to hidevacanttags, barpadding and centeredwindowname patches 4 years ago
bakkeby 5e75da8dd1 Adding swapfocus patch 4 years ago
bakkeby 21ba1d7bb3 [dwm][PATCH] remember to free everything we create 4 years ago
bakkeby 3567e59e20 [dwm][PATCH] remove NULL guards for XFree 4 years ago
bakkeby 60209c98d7 Fixing minor annoyance with the switchtag patch. When closing a window the tag switches back to the previous tag. This fix prevents that from happening when the client has since moved to another monitor. 4 years ago
bakkeby fa6e3d9500 Holdbar compatibility with barpadding, extrabar and statuspadding. 4 years ago
bakkeby d04b3899fd Fix for using pertagbar patch, but no zoomswap patch 4 years ago
bakkeby b866bf5319 Adding barpadding patch and moving patches.h to paches.def.h 4 years ago
bakkeby bf4fdc6484 Fixes for missleading variable? #2 4 years ago